Dynamic QRIS

Dynamic QRIS

1. Generating a dynamic QR code

To start generating Dynamic QR codes, you can use Dynamic QR API with these details:

curl --location 'https://sandbox.onebrick.io/v2/payments/gs/qris/dynamic' \
--header 'publicAccessToken: Bearer {{publicAccessToken}}' \
--header 'Content-Type: application/json' \
--data '{
    "referenceId":"test-qris-sandbox",
    "amount":10000,
    "expiredAt":"2024-01-12T17:00:00+07:00"
}'

You will get the responses like below when successful:

{
    "status": 200,
    "data": {
        "message": "We have successfully generated the dynamic qris",
        "id":"QR_XXXX",
        "referenceId": "test-qris-sandbox",
        "amount": 10000,
        "createdAt": "2024-01-16T17:00:00.000+07:00",
        "expiredAt": "2024-01-19T17:00:00.000+07:00",
        "qrData": "XXXX"
    },
    "metaData": {
        "source": "API",
        "entity": "Payment"
    },
    "error": null
}

2. Callback notification

Brick notifies you when the user has already made the payment via callbacks (you will be able to set up the Virtual account callback in the Brick Dashboard )

The callback will be received once payment is made by the end user.

{
  "data": {
    "id": "QR_XXXX",
    "referenceId": "XXXX",
    "amount": 11000,
    "status": "PAID",
    "createdAt": "2024-03-13T16:58:37.000+07:00",
    "paidAt": "2024-03-13T23:58:58.000+07:00",
    "qrisType": "DYNAMIC",
    "merchant": "merchant_name",
    "merchantNmid": "merchant_Nmid"
  }
}

📘

Setting up your QRIS callback URL

For now setting up callback QRIS need to be done manually. You can contact Brick team to setup your QRIS callback URL.

3. Status check for QR Codes

This APIs will help clients to initialize the status update from their side, They have to pass on the transactions referenceId and gets the update.

curl --location 'https://sandbox.onebrick.io/v2/payments/gs/qris/dynamic/{{referenceId}}' \
--header 'publicAccessToken: Bearer {{publicAccessToken}}'

You will get the response like below

{
    "status": 200,
    "data": {
        "referenceId": "XXXX",
        "id": "QR_XXXX",
        "amount": 10000,
        "status": "completed",
        "qrData": "XXXX",
        "paidAt": "2024-03-09T00:53:07.000+07:00",
        "type": "DYNAMIC",
        "merchant": "merchant_name",
        "merchantNmid": "merchant_Nmid"
    },
    "metaData": {
        "source": "API",
        "entity": "Payment"
    },
    "error": null
}

QRIS status available are processing, paid, expired, and cancelled.

4. Cancel the QR Codes

We need to provide Cancel QRIS APIs to our clients, This APIs will help to cancel the QRIS and then will can’t be use.

curl --location --request POST 'https://sandbox.onebrick.io/v2/payments/gs/qris/dynamic/{{referenceId}}/cancel' \
--header 'publicAccessToken: Bearer {{publicAccessToken}}'

You will get a response like below

{
    "status": 200,
    "data": {
        "message": "We have successfully cancel the qris",
        "id": "QR_XXXX",
        "referenceId": "test-qris-sandbox",
        "cancelledAt": "2024-01-20T17:00:00.000+07:00",
    },
    "metaData": {
        "source": "API",
        "entity": "Payment"
    },
    "error": null
}