Chuyển tới nội dung chính
Phiên bản: 1.7.0

Create VA

POST /openapi/v1/va/va-account/create

Tạo tài khoản ảo (Virtual Account) cho Merchant để nhận thanh toán chuyển khoản.
Gọi Get Services trước để lấy service_code (dùng làm header x-service-code). Truyền qr-pay sẽ chạy luồng tạo QR Pay.

Payload trước khi mã hóa:

{
"request_id": "8bd13901-b0f1-42c1-b38f-59cd0d8faff8",
"bank_account_no": "31052426",
"internal_code": "KH_0000024",
"qr_type": "qrpay"
}

internal_code là Merchant CIF — thường trùng với Partner-Code (vd sandbox: KH_0000024), không phải số ngẫu nhiên. va_type tự gán "M" khi x-service-code="qr-pay"; fixed_amount tùy chọn (bỏ qua nếu VA động).

TrườngBắt buộcMô tả
request_id✅Mã định danh duy nhất cho mỗi yêu cầu khởi tạo.
bank_account_no✅Số tài khoản ngân hàng gốc của Merchant.
internal_code✅Merchant CIF — mã định danh khách hàng tại ngân hàng (thường trùng Partner-Code).
va_type✕Loại Virtual Account (tùy chọn, tự động gán "M" khi x-service-code="qr-pay").
fixed_amount✕Số tiền cố định định danh cho VA/QR (nếu có).
qr_type✕Loại QR: "qrpay" nếu là QR Pay, mặc định "ibft".
curl --location '<base_url>/openapi/v1/va/va-account/create' \
--header 'Partner-Code: YOUR_PARTNER_CODE' \
--header 'x-service-code: SERVICE_CODE' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1…' \
--data '{
"data": ENCRYPTED_PAYLOAD
}'

Request​

Headers​

NameRequiredDescription
Partner-Code✅Mã định danh Merchant (TCONNECT cung cấp)
x-service-code✅Mã dịch vụ ngân hàng (lấy từ API Get Services). Truyền qr-pay sẽ chạy luồng tạo QR Pay.
Content-Type✅application/json
Authorization✅Bearer <access_token> từ Login

Body​

FieldTypeRequiredDescription
datastring✅Payload đã mã hóa AES-256-CBC dạng Hexadecimal

Response​

200 — Tạo VA thành công​

FieldTypeDescription
va_account_nostringSố tài khoản ảo được tạo (vd: VA100023312)
request_idstringMã định danh yêu cầu
ref_idintMã định danh tài khoản ảo

[!NOTE] Quy trình xử lý dữ liệu hệ thống:

  • Data gửi hệ thống xử lý: Được bổ sung thêm qr_type ("qrpay" nếu là QR Pay / mặc định "ibft"), va_type (sẽ luôn gán "M" nếu truyền x-service-code="qr-pay"), và fixed_amount (nếu có).
  • Lưu DB MMS (res_partner_bank): Khi x-service-code="qr-pay", cột acc_type trong DB được lưu là 'qr_pay' thay vì 'va', đồng thời cập nhật query check trùng số VA/QR áp dụng cho cả 2 loại này.