# Gọi API Refund

### <mark style="color:green;">`POST`</mark>

```
https://<vietqr-host>/<basepath>/api/transaction/refund
```

**Headers**

<table><thead><tr><th width="214">Name</th><th>Value</th></tr></thead><tbody><tr><td>Content-Type</td><td><code>application/json</code></td></tr><tr><td>Authorization</td><td><code>Bearer &#x3C;token></code></td></tr></tbody></table>

**Body**

<table data-full-width="false"><thead><tr><th width="200">Name</th><th width="93">Type</th><th width="101">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>bankAccount</code></td><td>String</td><td>Yes</td><td>TK ngân hàng của đối tác.</td></tr><tr><td><code>referenceNumber</code></td><td>String</td><td>Yes</td><td>Mã giao dịch (GD TT đang cần hoàn tiền).</td></tr><tr><td><code>amount</code></td><td>String</td><td>Yes</td><td>Số tiền cần hoàn tiền cho KH của đối tác.</td></tr><tr><td><code>content</code></td><td>String</td><td>Yes</td><td>Nội dung hoàn tiền.</td></tr><tr><td><code>checkSum</code></td><td>String</td><td>Yes</td><td><p>Chuỗi mã hóa MD5 các tham số: (<strong><code>secretKey</code></strong>+<strong><code>referenceNumber</code></strong>+</p><p><strong><code>amount</code></strong> + <strong><code>bankAccount)</code></strong></p></td></tr><tr><td><code>multiTimes</code></td><td>Boolean</td><td>Optional</td><td><p>Cho phép hoàn tiền nhiều lần.</p><p>Chỉ có thể chọn vào lần hoàn tiền đầu tiên.</p></td></tr><tr><td><code>bankCode</code></td><td>String</td><td>Yes</td><td>Tên viết tắt của ngân hàng.</td></tr><tr><td><code>terminalCode</code></td><td>String</td><td>Optional</td><td>Mã cửa hàng/điểm bán.</td></tr><tr><td><code>subTerminalCode</code></td><td>String</td><td>Optional</td><td>Mã cửa hàng phụ/điểm bán phụ.</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "status": "SUCCESS",
    "message": "mã_giao_dịch"
}
```

{% endtab %}

{% tab title="400" %}

```json
{
    "status": "FAILED",
    "message": "mã_lỗi_và_mô_tả_lỗi"
}
```

{% endtab %}
{% endtabs %}

***

### Code mẫu

{% tabs %}
{% tab title="cURL" %}

```
curl --location 'https://api.vietqr.org/vqr/api/transaction/refund' \
--header 'Cookie: JSESSIONID=5CAD2D74C5EBDF9B1CAC5684F2DB47CE; JSESSIONID=C1711954475F66AE09967ADFFA4C80CD; JSESSIONID=F40E5CBDEEB02F82DF40BAD476A6222B' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJhdXRob3JpdGllcyI6WyJST0xFX1VTRVIiXSwidXNlciI6IlkzVnpkRzl0WlhJdGJtZDFlV1Z1TFhWelpYSXlORGt5IiwiaWF0IjoxNzIxMjk3NjAxLCJleHAiOjE3MjEyOTc5MDF9.SEy2kqjhNup2UVaKhldXZQ1bVJn6o69LxgF9r0yA7zBqJWC5n9PhFUYk3G_oBsmCrAbobMohNHzJRsgqbwsUUA' \
--data '{
    "bankCode": "mã_ngân_hàng",
    "bankAccount": "tài_khoản_ngân_hàng_đồng_bộ",
    "referenceNumber": "mã_giao_dịch_đã_thanh_toán_cần_hoàn_tiền",
    "amount": "số_tiền_được_hoàn",
    "content": "nội_dung_hoàn_tiền",
    "multiTimes": "true: cho_phép_hoàn_tiền_nhiều_lần",
    "terminalCode": "mã_điểm_bán",
    "subTerminalCode": "mã_con_điểm_bán",
    "checkSum": "HASH MD5 128 bit: secret_key_do_vietqr_cung_cấp + referenceNumber + amount + bankAccount"
}'

```

{% endtab %}
{% endtabs %}

***

### Các câu hỏi thường gặp

<details>

<summary><strong><code>secretKey</code></strong> tôi phải lấy ở đâu?</summary>

Sau khi bạn tích hợp xong dịch vụ thanh toán qua mã VietQR, hãy liên hệ đến bộ phận kỹ thuật của VietQR để được cấp **`secretKey`**.

</details>

<details>

<summary>API Refund hỗ trợ những loại giao dịch nào?</summary>

API Refund chỉ hỗ trợ hoàn tiền cho các giao dịch đã thanh toán qua mã VietQR và còn hiệu lực.

</details>

<details>

<summary>Làm thế nào để kiểm tra trạng thái hoàn tiền?</summary>

Bạn có thể kiểm tra trạng thái của yêu cầu hoàn tiền bằng cách gọi lại API `Check Transaction` với mã giao dịch hoặc mã đơn hàng.

</details>

<details>

<summary>Có giới hạn về số lần hoàn tiền cho một giao dịch không?</summary>

Tùy thuộc vào chính sách của VietQR và cấu hình của bạn, có thể có giới hạn về số lần hoàn tiền cho một giao dịch cụ thể.

</details>


---

# 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/korea/vietqr-xin-chao/api-nang-cao/vietqr-refund-apis/goi-api-refund.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.
