Brick API Documentation
Static QR Code

QR Code Callback - Static QR Code

Use this callback as the primary real-time payment notification for Static QR Code. Static QR Code can be reused, so your system should rely on the callback data to identify the payment and reconcile it to the correct merchant or customer flow.

Callback Handling

  • Match the callback using referenceId, QR Code id, and merchant information.
  • Treat callbacks as idempotent because retries can happen.
  • Store paidAt, amount, feeAmount, merchant, and merchantNmid for reconciliation.
  • Return HTTP 200 only after your system has accepted the callback. Dashboard Test URL / Save & Test also requires a JSON ACK with the exact Brick test referenceId.
  • If customerInformation is enabled, store buyer and issuer details according to your own data handling policy.

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

JSONCode
{ "data": { "id": "QR_e4716e3c1a426db7d505ed2160334880", "type": "qris", "referenceId": "16345320260702103220", "amount": 111300, "feeAmount": 865, "status": "PAID", "createdAt": "2026-07-02T10:32:20.460+07:00", "paidAt": "2026-07-02T10:32:20.953+07:00", "qrisType": "STATIC", "merchant": "merchant name", "merchantNmid": "ID1026497335111" } }

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

JSONCode
{ "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": "STATIC", "merchant": null, "merchantNmid": null, "customerInformation": { "customerName": "Customer QR Code", "issuerName": "issuerName" } } }

Note: To get customerInformation, refer to the QR Code Overview docs or contact our Sales team.

Last modified on