OCB API
Tích hợp giao dịch OCB
Tích hợp giao dịch OCB vào website hoặc phần mềm bằng API token và phản hồi JSON nhất quán. Kết nối này phù hợp cho hộ kinh doanh, phần mềm SaaS và cổng thanh toán chuyển khoản.
Phương thứcGET
Định dạngJSON
Xác thựcToken
Phiên bảnV1, V2, V3
Tài liệu API theo phiên bản
Chọn phiên bản tương ứng trong trang quản lý tài khoản OCB để xem tham số và dữ liệu trả về.
Tham số cần thiết
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
YOUR_TOKEN | Có | Token API được cấp trong trang quản lý. |
Code mẫu
curl --request GET \
"https://thueapibank.vn/historyapiocb/YOUR_TOKEN" \
--header "Accept: application/json"
<?php
$ch = curl_init('https://thueapibank.vn/historyapiocb/YOUR_TOKEN');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 20,
CURLOPT_HTTPHEADER => ['Accept: application/json'],
]);
$response = curl_exec($ch);
$data = json_decode($response, true, flags: JSON_THROW_ON_ERROR);
curl_close($ch);
const response = await fetch('https://thueapibank.vn/historyapiocb/YOUR_TOKEN', {
headers: { Accept: 'application/json' }
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
Response mẫu
[
{
"id": "2cd83f0693fea11a01945d91633a1c07",
"arrangementId": "711ba7f4-3dad-40c4-8710-546033f69b62",
"reference": "FT25013MLSWF",
"description": "BUI THANH PHUONG chuyen tien",
"typeGroup": "Payment",
"type": "Payment",
"category": "CT01",
"bookingDate": "2025-01-13",
"valueDate": "2025-01-13",
"creditDebitIndicator": "DBIT",
"transactionAmountCurrency": {
"amount": "5000.00000",
"currencyCode": "VND"
},
"counterPartyName": "Bui Duc Duy",
"counterPartyAccountNumber": "0118100026325004",
"counterPartyBankName": "Ngân hàng TMCP Phương Đông",
"runningBalance": 10000,
"additions": {
"coreTransType": "ACIB",
"transCode": "213",
"transType": "ACIB",
"counterPartyBankLogo": "https://cdn.ocb.com.vn/new_omni/mobile/bank/33.png",
"subCategory": "CT01_CTOCB"
},
"checkImageAvailability": "UNAVAILABLE",
"creationTime": "2025-01-13T02:49:00Z",
"state": "COMPLETED"
},
{
"id": "2cd80fe393fea13e01945ac46109793d",
"arrangementId": "711ba7f4-3dad-40c4-8710-546033f69b62",
"reference": "FT25013J0ZNR",
"description": "Nguyen Nhat Loc chuyen tien",
"typeGroup": "Payment",
"type": "Payment",
"category": "TN02",
"bookingDate": "2025-01-12",
"valueDate": "2025-01-13",
"creditDebitIndicator": "CRDT",
"transactionAmountCurrency": {
"amount": "5000.00000",
"currencyCode": "VND"
},
"counterPartyBankName": "Ngân hàng TMCP Phương Đông",
"runningBalance": 15000,
"additions": {
"coreTransType": "AC8S",
"transCode": "213",
"transType": "AC8S",
"counterPartyBankLogo": "https://cdn.ocb.com.vn/new_omni/mobile/bank/33.png",
"subCategory": "TN02_NHANTIENNAPAS"
},
"checkImageAvailability": "UNAVAILABLE",
"creationTime": "2025-01-12T13:46:00Z",
"state": "COMPLETED"
},
{
"id": "2cd80fe393fea13e01945a07acf3440a",
"arrangementId": "711ba7f4-3dad-40c4-8710-546033f69b62",
"reference": "FT25013NDLJN",
"description": "BUI THANH PHUONG chuyen FT25013581167920",
"typeGroup": "Payment",
"type": "Payment",
"category": "TN02",
"bookingDate": "2025-01-12",
"valueDate": "2025-01-13",
"creditDebitIndicator": "CRDT",
"transactionAmountCurrency": {
"amount": "10000.00000",
"currencyCode": "VND"
},
"counterPartyBankName": "Ngân hàng TMCP Phương Đông",
"runningBalance": 10000,
"additions": {
"coreTransType": "AC8S",
"transCode": "213",
"transType": "AC8S",
"counterPartyBankLogo": "https://cdn.ocb.com.vn/new_omni/mobile/bank/33.png",
"subCategory": "TN02_NHANTIENNAPAS"
},
"checkImageAvailability": "UNAVAILABLE",
"creationTime": "2025-01-12T10:20:00Z",
"state": "COMPLETED"
}
]
Tham số cần thiết
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
YOUR_TOKEN | Có | Token API được cấp trong trang quản lý. |
Code mẫu
curl --request GET \
"https://thueapibank.vn/historyapiocbv2/YOUR_TOKEN" \
--header "Accept: application/json"
<?php
$ch = curl_init('https://thueapibank.vn/historyapiocbv2/YOUR_TOKEN');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 20,
CURLOPT_HTTPHEADER => ['Accept: application/json'],
]);
$response = curl_exec($ch);
$data = json_decode($response, true, flags: JSON_THROW_ON_ERROR);
curl_close($ch);
const response = await fetch('https://thueapibank.vn/historyapiocbv2/YOUR_TOKEN', {
headers: { Accept: 'application/json' }
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
Response mẫu
{
"status": "success",
"message": "Thành công",
"transactions": [
{
"transactionID": 3172,
"amount": 13000,
"description": "E4S9J GD 519816-013124 22:29:46",
"transactionDate": "01/02/2024",
"type": "IN"
},
{
"transactionID": 3171,
"amount": 10000,
"description": "Thanh toan QR E923Z GD 343127-013124 20:40:43",
"transactionDate": "01/02/2024",
"type": "OUT"
}
]
}
Tham số cần thiết
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
PASSWORD | Có | Mật khẩu hoặc mã xác thực kết nối. |
ACCOUNT_NUMBER | Có | Số tài khoản OCB cần truy vấn. |
YOUR_TOKEN | Có | Token API được cấp trong trang quản lý. |
Code mẫu
curl --request GET \
"https://thueapibank.vn/historyapiocbv3/PASSWORD/ACCOUNT_NUMBER/YOUR_TOKEN" \
--header "Accept: application/json"
<?php
$ch = curl_init('https://thueapibank.vn/historyapiocbv3/PASSWORD/ACCOUNT_NUMBER/YOUR_TOKEN');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 20,
CURLOPT_HTTPHEADER => ['Accept: application/json'],
]);
$response = curl_exec($ch);
$data = json_decode($response, true, flags: JSON_THROW_ON_ERROR);
curl_close($ch);
const response = await fetch('https://thueapibank.vn/historyapiocbv3/PASSWORD/ACCOUNT_NUMBER/YOUR_TOKEN', {
headers: { Accept: 'application/json' }
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
Response mẫu
{
"status": "success",
"message": "Thành công",
"transactions": [
{
"type": "IN",
"transactionID": "FT26091912345678",
"amount": 450000,
"description": "DH1024 THANH TOAN",
"transactionDate": "2026-09-19 10:24:36"
}
]
}
Response thực tế có thể bổ sung trường riêng của OCB. Luôn kiểm tra trường tồn tại trước khi đọc.
Luồng xử lý khuyến nghị
- 1Lưu mã giao dịch
Dùng
transactionIDlàm khóa chống xử lý trùng. - 2Chỉ xử lý tiền vào
Kiểm tra
type === "IN"trước khi ghép đơn. - 3Ghép đúng đơn hàng
So khớp số tiền và mã đơn trong nội dung chuyển khoản.
- 4Đối soát lại
Chạy tác vụ định kỳ để bù các webhook bị chậm hoặc thất bại.
Câu hỏi về API OCB
API OCB dùng để làm gì?
API giúp lấy dữ liệu giao dịch OCB dạng JSON để xác nhận chuyển khoản, cộng số dư và đối soát tự động.
Nên dùng phiên bản API nào?
Nên ưu tiên phiên bản mới nhất mà tài khoản của bạn đang hỗ trợ. V1 và V2 phù hợp tích hợp bằng token; V3 bổ sung thông tin tài khoản trong đường dẫn.
Có thể nhận giao dịch OCB qua webhook không?
Có. Sau khi thêm tài khoản, bạn có thể cấu hình URL webhook để hệ thống gửi sự kiện giao dịch mới về máy chủ của bạn.