# 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>
