QRIS BRI Merchant API

Dashboard Go · API & mutasi Python + Playwright · https://bri.tgxapi.my.id

Autentikasi

Tambahkan ?api=API_KEY di URL. Ini bukan token BRI Merchant. Setiap toko punya API sendiri.

Endpoint

PathKeterangan
/healthCek status service
/create-qrisBuat QRIS dinamis
/check-qrisCek & sync status order
/cancel-qrisBatalkan order pending

/health

https://bri.tgxapi.my.id/health

Contoh respon

{
  "status": true,
  "service": "qris-brimerchant-python",
  "stores": ["tgx"],
  "public_url": "https://bri.tgxapi.my.id",
  "watcher": {
    "enabled": true,
    "interval": 5
  }
}

/create-qris

https://bri.tgxapi.my.id/create-qris?api=API_KEY&amount=5000&expired_minutes=15

Nominal unik per hari per toko: request kedua dengan amount sama otomatis naik +1 (5000 → 5001).

Contoh respon sukses

{
  "status": true,
  "orderId": "INV-ABCDEF1234-XYZ789",
  "amount": 5000,
  "qris_dinamis": "0002010102112661...",
  "expired_at": "2026-08-27 10:40:00",
  "order_status": "pending"
}

Contoh respon gagal

{
  "status": false,
  "message": "amount must be positive"
}

/check-qris

https://bri.tgxapi.my.id/check-qris?api=API_KEY&orderId=INV-XXXXXXXXXX-XXXXXX

Jika sudah bayar tapi status masih pending, tunggu ~5 detik (watcher otomatis mencocokkan mutasi BRI Merchant by amount).

Contoh respon pending

{
  "status": true,
  "orderId": "INV-ABCDEF1234-XYZ789",
  "data": {
    "orderId": "INV-ABCDEF1234-XYZ789",
    "store": "tgx",
    "status": "pending",
    "amount_trx": 5000,
    "changed": false,
    "changed": false,
    "created_at": "2026-08-27 10:25:00",
    "expired_at": "2026-08-27 10:40:00",
    "qris_dinamis": "0002010102112661..."
  }
}

Contoh respon success

{
  "status": true,
  "orderId": "INV-ABCDEF1234-XYZ789",
  "data": {
    "orderId": "INV-ABCDEF1234-XYZ789",
    "store": "tgx",
    "status": "success",
    "date_trx": "2026-08-05",
    "time_trx": "05:13:34",
    "no_kartu_trx": "93600002*******8265",
    "mid": "9360000200430885678",
    "amount_trx": 10000,
    "reff_num": "189127644553",
    "tid": "43088567",
    "metode_pembayaran": "QRIS - BRImo",
    "trx_status": "Pencairan Diproses",
    "reff_num_copy": "1891276445532026-08-0505:13:34",
    "changed": false,
    "created_at": "2026-08-27 10:25:00",
    "expired_at": "2026-08-27 10:40:00",
    "payment_at": "2026-08-27 10:26:12",
    "qris_dinamis": "0002010102112661..."
  }
}

Contoh respon gagal

{
  "status": false,
  "message": "transaction not found"
}

/cancel-qris

https://bri.tgxapi.my.id/cancel-qris?api=API_KEY&orderId=INV-XXXXXXXXXX-XXXXXX

Contoh respon sukses

{
  "status": true,
  "orderId": "INV-ABCDEF1234-XYZ789",
  "deleted": true
}

Contoh respon gagal

{
  "status": false,
  "message": "only pending transaction can be cancelled"
}

Auto watcher

Setiap 5 detik order pending dicocokkan ke mutasi BRI Merchant (inquiryListTransaction). Dana masuk tanpa order → simpan dengan qris_dinamis: "tidak ada pemilik".