> For the complete documentation index, see [llms.txt](https://api.vietqr.vn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api.vietqr.vn/vi/cac-dich-vu-api-khac/push-qr-vao-vietqr-paybox.md).

# PUSH QR VÀO VIETQR PAYBOX

1. #### GỌI API Get Token

Mục đích: Dùng để tạo lấy token Dùng để lấy bearer token phục vụ cho việc truy cập API tạo mã thanh toán VietQR.

POST:&#x20;

<https://api.vietqr.org/vqr/api/token_generate>

Header:

<table data-header-hidden><thead><tr><th width="281"></th><th></th></tr></thead><tbody><tr><td>Name</td><td>Value</td></tr><tr><td>Content-Type</td><td>application/json</td></tr><tr><td>Authorization</td><td><p>Basic Authentication: </p><p>Base64[username:password]</p></td></tr></tbody></table>

Liên hệ VietQR : 0922333636 hoặc 0939603636 để được cấp Username, password.

Response Body:

<table data-header-hidden><thead><tr><th width="159"></th><th width="127"></th><th></th></tr></thead><tbody><tr><td>Name</td><td>Type</td><td>Desc</td></tr><tr><td>access_token</td><td>String</td><td>Là Bearer Token được VietQR cung cấp sau khi hoàn thành bước 4. Dùng để truy cập tạo mã thanh toán VietQR.</td></tr><tr><td>token_type</td><td>String</td><td>Là dạng token dạng “Bearer”</td></tr><tr><td>expires_in</td><td>int</td><td>Thời gian hết hạn của token. Mặc định là 300 giây</td></tr></tbody></table>

cURL:

curl --location --request POST '<https://api.vietqr.org/vqr/api/token\\_generate'&#x20>;

\--header 'Authorization: Basic Y3VzdG9tZXItdmlldHFydGVzdC11c2VyMjQ2ODpZM1Z6ZEc5dFpYSXRkbWxsZEhGeWRHVnpkQzExYzJWeU1qUTJPQT09'

Response:

{

&#x20;   "access\_token": "eyJhbGciOiJIUzUxMiJ9.eyJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwidXNlciI6IlkzVnpkRzl0WlhJdGRtbGxkSEZ5ZEdWemRDMTFjMlZ5TWpRMk9BPT0iLCJpYXQiOjE3MjEzNzI2MzQsImV4cCI6MTcyMTM3MjkzNH0.D19qvrpYHUgcGjDCXuXXAv3j6lZr6tfmIB0VzdCzAXMJAElGok04sNLysS6PRLdRb0hSgEX5\_9KpLjB-xErn-A",

&#x20;   "token\_type": "Bearer",

&#x20;   "expires\_in": 300

}

2. #### Gọi API truyền mã QR xuống thiết bị

Mục đích: Dùng truyền mã QR xuống thiết bị để hiển thị

POST:  <https://api.vietqr.org/vqr/api/tid/send-qr>

Request Header:

<table data-header-hidden><thead><tr><th width="237"></th><th></th></tr></thead><tbody><tr><td>Name</td><td>Value</td></tr><tr><td>Content-Type</td><td>application/json</td></tr><tr><td>Authorization</td><td>Bearer Token</td></tr></tbody></table>

Request Body:

<table data-header-hidden><thead><tr><th width="165.00006103515625"></th><th width="114"></th><th></th></tr></thead><tbody><tr><td>Name</td><td>Type</td><td>Desc</td></tr><tr><td>bankAccount</td><td>String</td><td>STK được liên kết với thiết bị paybox</td></tr><tr><td>bankCode</td><td>String</td><td>Mã ngân hàng được liên kết với thiết bị paybox</td></tr><tr><td>amount</td><td>String</td><td>Số tiền</td></tr><tr><td>content</td><td>String</td><td>Nội dung thanh toán</td></tr><tr><td>qrCode</td><td>String</td><td>Mã QR Code cần truyền xuống thiết bị</td></tr><tr><td>terminalCode</td><td>String</td><td>Mã thiết bị (định dạng VVB)</td></tr><tr><td>serialNumber</td><td>String</td><td>Mã thiết bị (định dạng VVB)</td></tr><tr><td>orderId</td><td>String</td><td>Mã đơn hàng</td></tr><tr><td>checkSum</td><td>String</td><td>mã hóa checkSum MD5(password + bankAccount + amount + bankCode)</td></tr></tbody></table>

Response Body:

| Name    | Type   | Desc                                                  |
| ------- | ------ | ----------------------------------------------------- |
| status  | String | <p>“SUCCESS”: Thành công</p><p>“FAILED”: Thất bại</p> |
| message | String | Mã lỗi                                                |

cURL:

curl --location '<https://api.vietqr.org/vqr/api/tid/send-qr>' \\

\--header 'Content-Type: application/json' \\

\--header 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwidXNlciI6IllXUnRhVzR0ZG5GeUxXRmpkR2wyWlMxclpYa3RNak15Tmc9PSIsImlhdCI6MTc0NDYwNTE5MCwiZXhwIjoxNzQ0NjA1NDkwfQ.KaHnBRrmE4xQRqvLFoDN5Hlrv0olprlgW-3El-jALV8SmKK1RQuO50-1HLrAOlNfjMnFRxoMjX77Ll\_B3X2F4g' \\

\--header 'Cookie: JSESSIONID=006F5D39156747B38EB4187401E14210' \\

\--data '{

&#x20;   "bankAccount": "037356",

&#x20;   "bankCode": "MB",

&#x20;   "amount": "1000",

&#x20;   "content": "",

&#x20;   "qrCode": "123",

&#x20;   "terminalCode": "VVB407323",

&#x20;   "serialNumber": "ZSV242400203",

&#x20;   "orderId": "1234",

&#x20;   "checkSum": "0a644dad4146ddb232a2d8d619ed3b70"

}'

Response:

{

&#x20;   "status": "SUCCESS",

&#x20;   "message": ""

}

### 2 - HƯỚNG  DẪN CÁC BƯỚC KẾT NỐI

{% tabs %}
{% tab title="API Get Token" %}
curl --location --request POST '<https://api.vietqr.org/vqr/api/token\\_generate>' \\

\--header 'Authorization: Basic Y3VzdG9tZXItdmlldHFydGVzdC11c2VyMjQ2ODpZM1Z6ZEc5dFpYSXRkbWxsZEhGeWRHVnpkQzExYzJWeU1qUTJPQT09' \\

\--header 'Cookie: JSESSIONID=8E0DE1EDE33EC191F611536DB6895898; JSESSIONID=DC4871188D95F26D481CB72C012F8F8D; JSESSIONID=F42DA5E6
{% endtab %}

{% tab title="Second Tab" %}

{% endtab %}
{% endtabs %}

<table data-header-hidden><thead><tr><th></th><th width="378.7333984375"></th><th width="139"></th><th width="180.2666015625"></th></tr></thead><tbody><tr><td>API</td><td>Import</td><td>Truyền dữ liệu</td><td>Response</td></tr><tr><td>API <sub>Get</sub> Token</td><td><p>curl --location --request POST 'https://api.vietqr.org/vqr/api/token_generate' \</p><p>--header 'Authorization: Basic Y3VzdG9tZXItdmlldHFydGVzdC11c2VyMjQ2ODpZM1Z6ZEc5dFpYSXRkbWxsZEhGeWRHVnpkQzExYzJWeU1qUTJPQT09' \</p><p>--header 'Cookie: JSESSIONID=8E0DE1EDE33EC191F611536DB6895898; JSESSIONID=DC4871188D95F26D481CB72C012F8F8D; JSESSIONID=F42DA5E6B21EC2F3788ADE512EB6AEFF'</p></td><td>Truyền thông tin username và password do VietQR cung cấp vào Basic Auth</td><td>Token có thời hạn sử dụng là 300s (5 phút)</td></tr><tr><td>API Generate QR Code</td><td><p>curl --location 'https://api.vietqr.org/vqr/api/qr/generate-customer' \</p><p>--header 'Content-Type: application/json' \</p><p>--header 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwidXNlciI6IlkzVnpkRzl0WlhJdGRtbGxkSEZ5ZEdWemRDMTFjMlZ5TWpRMk9BPT0iLCJpYXQiOjE3NDQ3MTMzMDksImV4cCI6MTc0NDcxMzYwOX0.cY3g8qGdBH20owYDmTfOodL_j2ieg6tcPasdEJslVt-z1dJzg6M2aZ0yuJ2dmh56O0AgHjWsu0Q9O67bmu1pgw' \</p><p>--header 'Cookie: JSESSIONID=57714DA017AF2E5EC3851BB1CE7DCDAB; JSESSIONID=023FE56A409B1D90B6860ED141EBF915; JSESSIONID=DC4871188D95F26D481CB72C012F8F8D; JSESSIONID=C3913C5A8AE870D3E7450FDBE1E36927' \</p><p>--data '{</p><p>    "amount": 99999,</p><p>    "content": "Anh Hieu Dep Trai",</p><p>    "bankAccount": "0852240768",</p><p>    "bankCode": "MB",</p><p>    "userBankName": "HA TRUNG HIEU",</p><p>    "transType": "C",</p><p>    "orderId": "Z153",</p><p>    "qrType": 0</p><p>}</p></td><td><p>Truyền token lấy được ở bước trên vào mục Header</p><p>và sửa thông tin body để tạo mã QR</p></td><td>Thông tin đầy đủ của mã QR động</td></tr><tr><td>API Push QR Pay Box</td><td><p>curl --location 'https://api.vietqr.org/vqr/api/tid/send-qr' \</p><p>--header 'Content-Type: application/json' \</p><p>--header 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwidXNlciI6IlkzVnpkRzl0WlhJdGRtbGxkSEZ5ZEdWemRDMTFjMlZ5TWpRMk9BPT0iLCJpYXQiOjE3NDQ3MTMzMDksImV4cCI6MTc0NDcxMzYwOX0.cY3g8qGdBH20owYDmTfOodL_j2ieg6tcPasdEJslVt-z1dJzg6M2aZ0yuJ2dmh56O0AgHjWsu0Q9O67bmu1pgw' \</p><p>--header 'Cookie: JSESSIONID=006F5D39156747B38EB4187401E14210; JSESSIONID=C3913C5A8AE870D3E7450FDBE1E36927' \</p><p>--data '{</p><p>    "bankAccount": "0852240768",</p><p>    "bankCode": "MB",</p><p>    "amount": 99999,</p><p>    "content": "Anh Hieu Dep Trai",</p><p>    "qrCode": "00020101021138540010A00000072701240006970422011008522407680208QRIBFTTA53037045405999995802VN62350831VQRbc67cc3484 Anh Hieu Dep Trai6304E9A9",</p><p>    "terminalCode": "VVB567340",</p><p>    "serialNumber": "VVB567340",</p><p>    "orderId": "Z153",</p><p>    "checkSum": "8f95bb14f078099ab0001184bae0f59f"</p><p>}'</p></td><td><p>Truyền token lấy được ở bước trên vào mục Header</p><p>và sửa thông tin body để push mã QR về Pay box</p></td><td>Success</td></tr></tbody></table>

Note:&#x20;

qrCode: response API Generate QR Code

checkSum: mã hóa checkSum MD5(password + bankAccount + amount + bankCode)

[https://www.md5hashgenerator.com](https://www.md5hashgenerator.com/) web mã hóa MD5
