# 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://api.vietqr.vn/vi/cac-dich-vu-api-khac/push-qr-vao-vietqr-paybox.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
