Asynchronous Notification

Panduan callback notifikasi pembayaran dari Paylabs ke Merchant.

  • Jika status 02 (Sukses) atau 09 (Gagal), sistem akan mengirim callback.
  • URL diambil dari notifyUrl yang dikirim saat pembuatan order.
  • Jika response tidak sesuai, notifikasi akan dikirim ulang hingga 8 kali pada interval 1s, 5s, 10s, 30s, 60s, 300s, 900s, 1800s.

Request URL

URL: nilai notifyUrl saat kirim request order
HTTPMethod: POST
EndpointUrl: path dari URL, contoh jika URL=https://merchant-domain.com/v2/qris/notify maka Path=/v2/qris/notify

Asynchronous Notification Request Parameters (Paylabs → Merchant)

Cara Membuat Signature

Field NameTypeValueRequired
Content-TypeString(30)Isi dengan nilai "application/json;charset=utf-8"Yes
X-TIMESTAMPString(29)Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00Yes
X-SIGNATUREString(64)Signature. Untuk selengkapnya cekYes
X-PARTNER-IDString(20)Merchant IDYes
X-REQUEST-IDString(64)ID unik merepresentasikan setiap request yang dikirimYes

Body

Kode Error

ParameterTypeRequiredRemarks
requestIdString(64)YesKode unik untuk setiap request
errCodeString(32)Yes0 adalah sukses, untuk lainnya bisa lihat tabel
errCodeDesString(128)NoDeskripsi terkait error
merchantIdString(20)YesMerchant ID
storeIdString(30)NoJika Merchant memiliki cabang dan ingin membuat order dengan ID cabang
paymentTypeString(20)YesNama tipe pembayaran, cek tabel Tipe Pembayaran
amountDecimal(12,2)YesNominal dalam Rupiah Indonesia, with 2 decimal places
merchantTradeNoString(32)YesKode unik yang dibuat oleh Merchant untuk setiap transaksi
platformTradeNoString(32)NoNomor order di platform Paylabs
createTimeString(16)NoyyyyMMddHHmmss
successTimeString(16)NoyyyyMMddHHmmss
statusString(32)No01: Pending, 09: Failed, 02: Success
productNameString(100)NoNama produk atau layanan
+productInfoArray<Object>(30)NoInformasi detil atas produk atau layanan dalam transaksi
a?OidString(10)YesProduct ID
a?OnameString(32)YesProduct Name
a?Opricedecimal(12,2)YesNilai dalam Rupiah, mendukung dua angka belakang koma
a?OtypeString(20)YesProduct Type
a?OurlString(200)NoProduct URL
a?OquantityNumber(4)YesProduct Quantity
+paymentMethodInfoObjectNoInformasi tambahan terkait Payment channel
transFeeRateDecimal(6,6)NoRate Transaksi, mendukung enam angka belakang koma
transFeeAmountDecimal(12,2)NoBiaya, mendukung dua angka belakang koma
totalTransFeeDecimal(12,2)NoTotal rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma
vatFeeDecimal(12,2)NoPajak, mendukung dua angka belakang koma

QRIS paymentMethodInfo

ParameterTypeRequiredRemarks
nmidString(32)YesNational Merchant ID
rrnString(32)NoKode pembayaran sukses
tidString(32)NoTerminal ID (Hanya ada di QRIS)
payerString(60)NoNama payer sebenarnya (jika didukung). Catatan: bukan nilai payer yang dikirim saat inisiasi.
phoneNumberString(20)NoNomor telepon pembayar
issuerIdString(20)NoID Aplikasi dari issuer
accountNoString(32)NoNomor rekening payer sebenarnya (jika didukung), null jika tidak.

VA paymentMethodInfo

ParameterTypeRequiredRemarks
vaCodeString(32)YesNomor Virtual Account
payerString(60)NoNama payer sebenarnya (jika didukung), null jika tidak.
accountNoString(32)NoNomor rekening payer sebenarnya (jika didukung), null jika tidak.

OTC paymentMethodInfo

ParameterTypeRequiredRemarks
paymentCodeString(32)YesNomor kode pembayaran
payerString(60)NoNama payer sebenarnya (jika didukung), null jika tidak.
accountNoString(32)NoNomor rekening payer sebenarnya (jika didukung), null jika tidak.

E-Money paymentMethodInfo

ParameterTypeRequiredRemarks
payerString(60)NoNama payer sebenarnya (jika didukung), null jika tidak.
accountNoString(32)NoNomor rekening payer sebenarnya (jika didukung), null jika tidak.

Asynchronous Notification Response Parameters (Merchant → Paylabs)

Header

Cara Membuat Signature

Field NameTypeValueRequired
Content-TypeString(30)Isi dengan nilai "application/json;charset=utf-8"Yes
X-TIMESTAMPString(29)Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00Yes
X-SIGNATUREString(64)Signature. Untuk selengkapnya cekYes
X-PARTNER-IDString(20)Merchant IDYes
X-REQUEST-IDString(64)ID unik merepresentasikan setiap request yang dikirimYes

Body

Kode Error

ParameterTypeRequiredRemarks
requestIdString(64)YesKode unik untuk setiap request
errCodeString(32)Yes0 adalah sukses, untuk lainnya bisa lihat tabel
errCodeDesString(128)NoDeskripsi error
merchantIdString(20)YesMerchant ID
storeIdString(30)NoJika Merchant memiliki cabang dan ingin membuat order dengan ID cabang

Example

Request

POST URL yang diberikan Merchant
# HTTP Header
Content-Type: application/json;charset=utf-8
X-TIMESTAMP: 2022-09-16T16:58:47.964+07:00
X-SIGNATURE: xxxxxxxxx
X-PARTNER-ID: 010001
X-REQUEST-ID: xxxxxxxxxxxxxxxxxxxxxxxx

# HTTP Body
{
  "merchantId":"010001",
  "requestId":"N01029020230619290000003911687350380290",
  "errCode":"0",
  "paymentType":"MandiriVA",
  "amount":"150000.00",
  "createTime":"20230619221611",
  "successTime":"20230621094325",
  "merchantTradeNo":"673492076",
  "platformTradeNo":"2023061929000000001",
  "status":"02",
  "vaCode":"8959410619000001",
  "transFeeRate":"0",
  "transFeeAmount":"0",
  "totalTransFee":"0",
  "vatFee":"0"
}

Response

POST URL yang diberikan Merchant
# HTTP Header
Content-Type: application/json;charset=utf-8
X-TIMESTAMP: 2022-09-16T16:58:47.964+07:00
X-SIGNATURE: xxxxxxxxx
X-PARTNER-ID: 010001
X-REQUEST-ID: xxxxxxxxxxxxxxxxxxxxxxxx

# HTTP Body
{
  "merchantId":"010001",
  "requestId":"N01029020230619290000003911687350380290",
  "errCode":"0"
}