---
agentTools:
  projectIndex: https://onebrick.readme.io/llms.txt
---

# QRIS Callback - Dynamic QRIS

Brick sends this callback to your configured URL when a Dynamic QRIS transaction status changes.

Brick sends this callback to your configured URL when a Dynamic QRIS transaction status changes.

Use this callback as the primary real-time payment notification for Dynamic QRIS. Your system should match the callback to the original transaction, persist the update, and then update the customer order or balance.

## Callback Handling

* Match the callback using `referenceId` and the Brick QRIS `id`.
* Treat callbacks as idempotent because retries can happen.
* Store `paidAt`, `amount`, `feeAmount`, and merchant information for reconciliation.
* If `customerInformation` is enabled, store the buyer and issuer details only for the relevant transaction record.

**This is a sample of the status update we send to your callback URL:**

```json Callback Response - Paid
{
  "data": {
    "id": "QR_XXXX",
    "referenceId": "XXXX",
    "amount": 10000,
    "feeAmount": 70,
    "status": "PAID",
    "createdAt": "2024-03-13T14:12:25.000+07:00",
    "paidAt": "2024-03-13T14:12:26.212+07:00",
    "qrisType": "DYNAMIC",
    "merchant": "merchant_name",
    "merchantNmid": "merchant_Nmid"
  }
}
```

<br />

**This is a sample of the status update we send to your callback URL if `customerInformation` is enabled:**

```json Callback Response - CustomerInformation
{
  "data": {
    "id": "QR_0a50018350f34cd4901c97e22cb1cfde",
    "referenceId": "1710323916255",
    "amount": 11000,
    "feeAmount": 77,
    "status": "PAID",
    "createdAt": "2024-03-13T16:58:37.000+07:00",
    "paidAt": "2024-03-13T23:58:58.000+07:00",
    "qrisType": "DYNAMIC",
    "merchant": null,
    "merchantNmid": null,
    "customerInformation": {
      "customerName": "Customer QRIS",
      "issuerName": "issuerName"
    }
  }
}
```

> **Note:** To get `customerInformation`, refer to the [QRIS Overview docs](https://onebrick.readme.io/reference/qris-overview) or contact our Sales team.