PRODUK
SOLUSI PEMBAYARAN
INTEGRASI
Catatan Perubahan
Versi | Tanggal Perubahan | Perubahan |
---|---|---|
4.6.0 | 2023-06-15 | 1.QRIS tambah tid 2.Tambah QRIS Static Asynchronous Notification (Apabila Anda perlu melihat dokumentasi API versi lama, silahkan hubungi Paylabs Care kami untuk mendapatkannya.) |
4.6.1 | 2023-07-14 | 1.Memperbaiki judul kepala Download Rekonsiliasi |
4.6.2 | 2023-09-16 | 1.Antarmuka tautan pengunduhan file rekonsiliasi pesanan |
4.6.3 | 2023-10-27 | 1. Tambahkan OVOBALANCE, GOPAYBALANCE, BSIVA,BRIVA,MandiriVA,CIMBVA, StaticBCAVA |
4.6.4 | 2023-10-31 | 1. Perbarui daftar limit, ubah CreditCard,CreditCard_6Mos,CreditCard_12Mos limit 10,000.00-100,000,000.00 |
4.6.5 | 2023-12-05 | 1. Ubah *VA limit 10,000.00-100,000,000.00 |
4.6.6 | 2024-01-16 | 1. Memperbaiki kesalahan jenis pembayaran |
4.6.7 | 2024-01-17 | 1. Ubah CIMBVA limit 15,000.00-100,000,000.00 |
4.6.8 | 2024-02-19 | 1. Menambahkan Buat parameter permintaan QRIS `expire` waktu kedaluwarsa 2. OVO tambahkan pushPay |
4.6.9 | 2024-02-19 | 1. Menambahkan produk pembayaran CreditCard_2DSecure |
4.7.0 | 2024-05-16 | 1. API V2.1 versi, menambahkan rate kembali |
4.7.1 | 2024-07-15 | 1.Static QRIS、 QRIS inquiry endpoint add rrn request parameters |
4.8.0 | 2024-10-16 | 1.Versi API V2.2, tambahkan feeType, requestAmount |
Target Pembaca
Target utama pembaca dokumen ini adalah orang teknis terutama untuk developer/programmer. Namun tidak menutup kemungkinan sebagian dari isi dokumen ini dapat menjadi rujukan bagi tim bisnis dan manajemen.
Satuan Mata Uang
Satuan mata uang dalam Rupiah Indonesia, dengan 2 desimal. Contoh seperti 10.25. Nilai amount tidak boleh lebih kecil dari fee.
Batas Per Transaksi
Payment Code | Minimum (IDR)/Transaksi | Maksimum (IDR)/Transaksi |
---|---|---|
POS | 50,000.00 | 1,000,000.00 |
DANABALANCE,OVOBALANCE,LINKAJABALANCE, SHOPEEBALANCE,GOPAYBALANCE | 10,000.00 | 20,000,000.00 |
Indomaret | 10,000.00 | 5,000,000.00 |
CreditCard,CreditCard_2DSecure,CreditCard_6Mos,CreditCard_12Mos | 10,000.00 | 100,000,000.00 |
Indodana,Atome,Kredivo | 10,000.00 | 50,000,000.00 |
Alfarmart | 10,000.00 | 2,000,000.00 |
BNIVA,BNCVA,BTNVA,OCBCVA,SinarmasVA,MandiriVA, INAVA,PermataVA,MaybankVA,DanamonVA,BRIVA, BCAVA,MuamalatVA,BSIVA | 10,000.00 | 100,000,000.00 |
CIMBVA | 15,000.00 | 100,000,000.00 |
QRIS | 1,000.00 | 10,000,000.00 |
Cara Membuat Signature
1. Masing-masing dari Paylabs dan Merchant membuat sepasang kunci RSA 2048 (format PKCS8). Kemudian masing-masing saling menukar public key (bukan private key).
a. Merchant perlu mengirim public key ini ke email operation Paylabs (cs@paylabs.co.id)
b. Pada saat akun merchant teraktivasi, maka akan ada email yang terkirim ke merchant berisi public key dari Paylabs.
2. Kemudian lakukan minify terhadap request body dengan ketentuan sebagai berikut:
Hapus semua simbol dan karakter yang berhubungan dengan spasi/jarak seperti \n,\r,\t , dari konten di dalam format JSON.
Jika nilai dari field adalah null maka tidak akan diikutsertakan dalam pembuatan signature.
3. Persiapkan string-stringnya:
stringContent: HTTPMethod:EndpointUrl:Lowercase(SHA256Hex(minify(body))):TimeStamp
HTTPMethod: POST
EndpointUrl: /payment/v2.1/va/create
TimeStamp: Request header's X-TIMESTAMP
4. Metode untuk signing:
X-SIGNATURE: Base64(SHA256withRSA(stringContent, privateKey))
Klik melompat ke:"Calculation Tool"
Contoh Proses Data Signing
Contoh Pembuatan pasangan kunci RSA
# Untuk generate RSA 2048 bit silakan cek https://www.openssl.org/docs/man3.1/man1/genrsa.html
openssl genrsa -out rsakey.pem 2048 # generate 2048 bit RSA private key
# konversi ke format PKCS8 (Format support Java) https://www.openssl.org/docs/man3.1/man1/openssl-pkcs8.html
# Generate private key (dipakai oleh Merchant sendiri, jangan kirim ke siapapun)
openssl pkcs8 -topk8 -nocrypt -inform PEM -in rsakey.pem -outform PEM -out private-key.pem
# generate public key untuk dikasih ke Paylabs
openssl rsa -inform PEM -in rsakey.pem -pubout -outform PEM -out public-key.pem
Harap perhatikan. Jika Public Key di paling atas dan paling bawah ada teks sebagai berikut:
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
Misalnya kita ada request sebagai berikut:
# POST Request
POST ${ROOT_URL}/payment/v2.1/va/create
# HTTP Header
Content-Type: application/json;charset=utf-8
# HTTP Body
{
"merchantId":"0010001",
"merchantTradeNo":"100100011650868989065",
"requestId":"200100011650868989065",
"paymentType":"CreditCard",
"amount":"10000.00",
"productName":"Test",
"paymentParams":{
"redirectUrl": "http://google.com"
}
}
Langkah 1:Lakukan minify pada body request, dan simpan ke variable stringContent
minifyString = {"merchantId":"0010001","merchantTradeNo":"100100011650868989065","requestId":"200100011650868989065","paymentType":"CreditCard","amount":"10000.00","productName":"Test","paymentParams":{"redirectUrl":"https://google.com"}}
Langkah 2: Gabungkan string-string ini menjadi stringContent:
stringContent = POST:/payment/v2.1/va/create:Lowercase(SHA256Hex(minifyString)):2022-09-16T16:58:47.964+07:00
Langkah 3: Gabungkan stringContent dengan signKey. Kemudian lakukan hash pada string untuk mendapatkan X-SIGNATURE
X-SIGNATURE = Base64(SHA256withRSA(stringContent, privateKey))
Jika sudah mendapatkan string signature, maka letakkan ke Header HTTP:
# POST Request
POST ${ROOT_URL}/payment/v2.1/va/create
# 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":"0010001",
"merchantTradeNo":"100100011650868989065",
"requestId":"200100011650868989065",
"paymentType":"CreditCard",
"amount":"10000.00",
"productName":"Test",
"paymentParams":{
"redirectUrl": "http://google.com"
}
}
API Protocols & Standards
Jenis | Penjelasan |
---|---|
Submission Method | Gunakan metode POST. Content-Type diisi "application/json;charset=utf-8" |
Data Format | Baik Request maupun response dalam format JSON |
Character Encoding | Gunakan pengkodean karakter UTF-8 |
Amount Format | Gunakan Rupiah dengan dua angka belakang koma |
Hash Method | SHA256withRSA |
Signing Request | Verifikasi signature adalah wajib baik untuk kirim maupun terima request. Cek "Cara Membuat Signature" untuk selengkapnya. |
Verification Steps | Ketika mendapat respon, cek terlebih daulu nilai dari errCode, kemudian baru field-field lainnya, dan yang terakhir cek status transaksi |
ROOT_URL
Production URL: Akan diinformasikan melalui email
Sandbox URL: Akan diinformasikan melalui email
Request URL
URL: ${ROOT_URL}/payment/v2.1/qris/create
HTTPMethod: POST
EndpointUrl: /payment/v2.1/qris/create
Generate QRIS Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
notifyUrl | String(200) | No | URL yang akan ditembak saat terjadi pembayaran. Untuk parameter-parameternya cek di bagian Inquiry Order |
expire | Number | No | Satuan adalah detik, tidak didukung, saluran yang berbeda memiliki nilai default yang berbeda |
feeType | String(3) | No | Jenis pengurangan biaya layanan:BEN、OUR Standarnya adalah BEN. Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order secara otomatis. |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
paymentType
Payment Type | Code |
---|---|
QRIS | QRIS |
Generate QRIS Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | Merchant ID |
storeId | String(30) | No | Hanya diisi jika perlu menggunakan akun channel cabang |
paymentType | String(20) | Yes | Nama dari Jenis Pembayaran, cek tabel Jenis Pembayaran |
requestAmount | Decimal(12,2) | No | Nominal pada saat permintaan |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places Jenis pengurangan biaya layanan:Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order. Ketika biaya layanan yang dihitung mengandung desimal, biaya layanan akan otomatis +1 setelah menghilangkan desimal. Misalnya, 10.000,11 akan secara otomatis +1 untuk mendapatkan 10.001,00. |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
createTime | String(16) | No | yyyyMMddHHmmss |
qrCode | String(300) | No | The code that can be converted to QRIS |
qrisUrl | String(300) | No | QRIS image link |
nmid | String(32) | No | National Merchant ID |
platformTradeNo | String(32) | No | Nomor order di platform Paylabs |
successTime | String(16) | No | yyyyMMddHHmmss |
expiredTime | String(16) | No | yyyyMMddHHmmss |
status | String(32) | No | 01: PENDING, 09: FAILED, 02: SUCCEEDED |
productName | String(100) | Yes | Nama layanan atau produk |
rrn | String(32) | No | RRN, kode pembayaran sukses |
tid | String(32) | No | Terminal ID or POS ID |
payer | String(60) | No | Nama Pembayar |
phoneNumber | String(20) | No | Nomor telepon pembayar |
issuerId | String(20) | No | ID dari aplikasi Issuer |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
transFeeRate | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
transFeeAmount | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
totalTransFee | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
vatFee | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
Example
Request:
POST /payment/v2.1/qris/create
# 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":"0010001",
"merchantTradeNo":"100100011649756102739",
"requestId":"200100011649756102739",
"paymentType":"QRIS",
"amount":"10000.00",
"productName":"Test"
}
Response:
POST /payment/v2.1/qris/create
# 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
{
"amount":"10000.00",
"merchantTradeNo":"100100011649756102739",
"platformTradeNo":"2022041200000000026",
"expiredTime":"20220412163603",
"paymentType":"QRIS",
"qrCode":"00020101021226610016ID.CO.PAYLABS.WWW01189360091800200340760208200340760303UMI520467895303360540810000.005802ID5918Paylabs Test Store6015KOTA JAKARTA BA6105111116223051920220412000000000266304741E",
"createTime":"20220412163504",
"merchantId":"0010001",
"errCode":"0",
"requestId":"200100011649756102739",
"productName":"Test",
"status":"01",
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
Request URL
URL: ${ROOT_URL}/payment/v2.1/qris/query
HTTPMethod: POST
EndpointUrl: /payment/v2.1/qris/query
Static QRIS、 QRIS Order Status Inquiry Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | ID unik untuk setiap request |
merchantId | String(10) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Choice | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
rrn | String(32) | Choice | Nomor pembayaran yang berhasil yang secara unik mengidentifikasi transaksi |
paymentType | String(20) | Yes | Tipe pembayaran, cek Tipe Pembayaran |
Pada parameter request, pilih salah satu dari merchantTradeNo atau rrn.Error akan dilaporkan jika keduanya dikirim.
QRIS Order Status Inquiry Response Parameters
Request URL
URL: ${ROOT_URL}/payment/v2.1/qris/cancel
HTTPMethod: POST
EndpointUrl: /payment/v2.1/qris/cancel
Cancel QRIS Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
platformTradeNo | String(32) | Yes | Nomor order di platform Paylabs |
qrCode | String(300) | No | Kode dari QRIS |
Cancel QRIS Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama dari Jenis Pembayaran, cek tabel Jenis Pembayaran |
amount | decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
createTime | String(16) | No | yyyyMMddHHmmss |
qrCode | String(300) | No | Kode dari QRIS |
platformTradeNo | String(32) | No | Nomor transaksi di Paylabs |
expiredTime | String(16) | No | yyyyMMddHHmmss |
status | String(32) | No | 01 PENDING 09 FAILED 06 CANCEL |
Please note after sending cancel QRIS request, there is still possibility customer has paid, hence transaction can from 06 CANCEL, changed to 02 SUCCESS
Example
Request:
POST /payment/v2.1/qris/cancel
# 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":"0010001",
"merchantTradeNo":"100100011649756102739",
"platformTradeNo":"2022041200000000026",
"requestId":"200100011649756102739",
"qrCode":"00020101021226610016ID.CO.PAYLABS.WWW01189360091800200340760208200340760303UMI520467895303360540810000.005802ID5918Paylabs Test Store6015KOTA JAKARTA BA6105111116223051920220412000000000266304741",
"productName":"Test"
}
Response:
POST /payment/v2.1/qris/cancel
# 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
{
"requestId":"200100011649756102739",
"errCode":"0",
"merchantId":"0010001",
"amount":"10000.00",
"merchantTradeNo":"100100011649756102739",
"platformTradeNo":"2022041200000000026",
"expiredTime":"20220412163603",
"paymentType":"QRIS",
"qrCode":"00020101021226610016ID.CO.PAYLABS.WWW01189360091800200340760208200340760303UMI520467895303360540810000.005802ID5918Paylabs Test Store6015KOTA JAKARTA BA6105111116223051920220412000000000266304741E",
"createTime":"20220412163504",
"status":"01"
}
1.Server mengirim request POST dalam format JSON
Please checkAsynchronous Notification
Request Address
URL: ${ROOT_URL}/payment/v2.1/ewallet/create
HTTPMethod: POST
EndpointUrl: /payment/v2.1/ewallet/create
E-Money Order Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Nilai fix yakni "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu sekarang, menggunakan format ini 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk detailnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | ID unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Tipe Pembayaran, silahkan lihat Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia |
feeType | String(3) | No | Jenis pengurangan biaya layanan:BEN、OUR Standarnya adalah BEN. Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order secara otomatis. |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant |
notifyUrl | String(200) | No | URL yang akan diakses oleh API jika pembayaran sukses; |
+paymentParams | Object | No | Parameter tambahan khusus untuk channel tertentu. Mohon cek tabel Tipe Pembayaran . |
productName | String(100) | Yes | Nama produk atau layanan |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
paymentType
Payment Type | Code |
---|---|
DANA E-Money (Support Refund) | DANABALANCE |
Shopee E-Money (Support Refund) | SHOPEEBALANCE |
Linkaja E-Money (Support Refund) | LINKAJABALANCE |
OVO E-Money (refunds not supported) | OVOBALANCE |
GoPay E-Money (Support Refund) | GOPAYBALANCE |
paymentParams
DANABALANCE, SHOPEEBALANCE, LINKAJABALANCE, GOPAYBALANCE
Parameter | Type | Required | Remarks |
---|---|---|---|
redirectUrl | String(200) | Yes | Baik saat sukses ataupun gagal, akan diarahkan ke URL tersebut |
OVOBALANCE
Parameter | Type | Required | Remarks |
---|---|---|---|
redirectUrl | String(200) | No | Baik saat sukses ataupun gagal, akan diarahkan ke URL tersebut |
phoneNumber | String(200) | No | mobilePayUrl tidak akan dikembalikan jika value field ini adalah Nomor HP |
E-Money Order Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | No | Untuk selengkapnya cek bagian Kode Error |
errCodeDes | String(128) | No | Detail error berdasarkan kode error |
merchantId | String(20) | No | Merchant ID |
storeId | String(30) | No | Hanya diisi jika perlu menggunakan akun channel cabang |
paymentType | String(20) | Yes | Tipe pembayaran, cek Tipe Pembayaran |
requestAmount | Decimal(12,2) | No | Nominal pada saat permintaan |
amount | Decimal(12,2) | Yes | Nominal transaksi, dalam format Rupiah dengan dua angka belakang koma Jenis pengurangan biaya layanan:Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order. Ketika biaya layanan yang dihitung mengandung desimal, biaya layanan akan otomatis +1 setelah menghilangkan desimal. Misalnya, 10.000,11 akan secara otomatis +1 untuk mendapatkan 10.001,00. |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
createTime | String(16) | Yes | yyyyMMddHHmmss |
+paymentActions | Object | No | Informasi URL pembayaran yang bisa berupa URL PC, URL Web dan lainnya. |
「pcPayUrl | String(200) | No | PC Payment URL |
「mobilePayUrl | String(200) | No | Mobile Payment URL |
「appDeeplink | String(200) | No | Langsung buka di App |
「pushPay | String(200) | No | User buka Akun APP untuk konfirmasi pembayaran |
platformTradeNo | String(32) | No | Nomor Transaksi Paylabs |
successTime | String(16) | No | yyyyMMddHHmmss |
expiredTime | String(16) | No | yyyyMMddHHmmss |
status | String(32) | No | 01: PENDING, 09: FAILED, 02: SUCCEEDED |
productName | String(100) | Yes | Nama produk atau layanan |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
transFeeRate | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
transFeeAmount | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
totalTransFee | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
vatFee | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
paymentActions Support
Channel | pcPayUrl | mobilePayUrl | appDeeplink | pushPay |
---|---|---|---|---|
Dana | Y | Y | N | N |
Shopee | N | Y | N | N |
Linkaja | Y | Y | N | N |
OVO | N | C | N | C |
GoPay | N | Y | N | N |
Example
Request:
POST /payment/v2.1/ewallet/create
# 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":"0010001",
"merchantTradeNo":"100100011649755299703",
"requestId":"200100011649755299703",
"paymentType":"SHOPEEBALANCE",
"amount":"10000.00",
"productName":"Test",
"paymentParams":{
"redirectUrl": "http://google.com"
}
}
Response:
POST /payment/v2.1/ewallet/create
# 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
{
"amount":"10000.00",
"merchantTradeNo":"100100011649755299703",
"platformTradeNo":"2022041200000000022",
"expiredTime":"20220412162641",
"paymentType":"SHOPEEBALANCE",
"paymentActions":{
"mobilePayUrl":"https://wsa.uat.wallet.airpay.co.id/universal-link/wallet/pay?deep_and_deferred=1&token=dFhkbmR1bTBIamhWkALJbE72qKeb2LpWAmThwGAMEXu0oo6lQWWCBMbH6JezjfA"
},
"createTime":"20220412162143",
"merchantId":"0010001",
"errCode":"0",
"requestId":"200100011649755299703",
"productName":"Test",
"status":"01",
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
Request URL
URL: ${ROOT_URL}/payment/v2.1/ewallet/query
HTTPMethod: POST
EndpointUrl: /payment/v2.1/ewallet/query
E-Money Status Inquiry Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Nilai fix yakni "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu sekarang, menggunakan format ini 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk detailnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(10) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
paymentType | String(20) | Yes | Tipe pembayaran, cek Tipe Pembayaran |
E-Money Status Inquiry Response
Harap cek E-Money Order Response Parameters
1.Server mengirim request POST dalam format JSON
Harap cek Asynchronous Notification
Request URL
URL: ${ROOT_URL}/payment/v2.1/ewallet/refund
HTTPMethod: POST
EndpointUrl: /payment/v2.1/ewallet/refund
Refund Supported Channel
Channel | Support |
---|---|
DANA | Y |
Shopee | Y |
Linkaja | Y |
OVO | N |
Gopay | Y |
E-Money Refund Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, dengan dua angka belakang koma |
refundAmount | Decimal(12,2) | Yes | Refund Nominal dalam Rupiah Indonesia, dengan dua angka belakang koma Biaya Layanan dihitung secara otomatis ketika jumlahnya adalah Request Amount dan jenisnya adalah OUR |
platformRefundNo | String(32) | Yes | Nomor order Paylab yang ingin di-refund |
merchantRefundNo | String(32) | Yes | Nomor order Merchant yang ingin di-refund |
notifyUrl | String(200) | No | URL notifikasi setelah refund selesai, untuk parameter mohon cek E-Money Inquiry Status |
reason | String(200) | No | Alasan melakukan refund |
transFeeRate | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
transFeeAmount | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
totalTransFee | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
vatFee | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
E-Money Refund Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places |
requestAmount | decimal(12,2) | No | |
merchantRefundNo | String(32) | Yes | Nomor Refund |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
platformTradeNo | String(32) | No | Nomor Transaksi Paylabs |
createTime | String(16) | No | yyyyMMddHHmmss |
successTime | String(16) | No | yyyyMMddHHmmss |
status | String(2) | No | 02:Refund sukses, 03:Refund dalam proses, 05:Refund gagal |
Example
Request:
POST /payment/v2.1/ewallet/query
# 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":"0010001",
"merchantTradeNo":"100100011650869509422",
"requestId":"200100011650869509422",
"paymentType":"DANABALANCE",
"amount":"10000.00",
"refundAmount":"10000.00",
"merchantRefundNo":"100100011650869509423",
"platformRefundNo":"100100011650869509423",
"reason":"test",
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
Response:
POST /payment/v2.1/ewallet/query
# 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
{
"errCode":0,
"merchantId":"0010001",
"merchantTradeNo":"100100011650869509422",
"requestId":"200100011650869509422",
"paymentType":"DANABALANCE",
"amount":"10000.00",
"merchantRefundNo":"100100011650869509423",
"status":"05"
}
Request URL
URL: ${ROOT_URL}/payment/v2.1/ewallet/refundQuery
HTTPMethod: POST
EndpointUrl: /payment/v2.1/ewallet/refundQuery
E-Money Refund Status Inquiry
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(10) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
paymentType | String(20) | Yes | Tipe pembayaran, cek Tipe Pembayaran |
E-Money Refund Inquiry
Please check E-Money Refund Response Parameters
1.Server mengirim request POST dalam format JSON
Please check Refund Notification
Create VA
HTTPMethod: POST
${ROOT_URL}/v1.0/transfer-va/create-va
Service Code: 27
Version: 1.0
ServiceGroup: transfer-va
ProductType: create-va
Request Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
Authorization | C | String | Dynamic | Nilai access_token, jika Anda menggunakan enkripsi symmetric, kolom ini wajib diisi |
X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
X-PARTNER-ID | M | String | 36 | Merchant ID |
X-EXTERNAL-ID | M | String | 12 | Request ID |
X-SIGNATURE | M | String | Dynamic | Signature strings |
X-IP-ADDRESS | M | String | 15 | IP Client (IPv4) |
Request Body
exampleParameter | Required | Type | Length | Remarks |
---|---|---|---|---|
partnerServiceId | M | String | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri |
customerNo | M | String | 20 | No virtualAccount 00000000000000000000 |
virtualAccountNo | M | String | 28 | partnerServiceId + customerNo |
virtualAccountName | O | String | 255 | Nama Customer. contoh: Jokul Doe |
virtualAccountEmail | O | String | 255 | |
virtualAccountPhone | O | String | 30 | No Hp, Format: 62xxxxxxxxxxxxx |
trxId | M | String | 64 | No Transaksi Merchant |
+totalAmount | M | Object | - | Transaction amount |
「value | M | String | 16,2 | Amount dengan 2 digit angka dibelakang koma.contoh: 10000.00 , static va : 0.00 |
「currency | M | String | 3 | Mata Uang. fixed value : IDR |
+billDetails | O | List | - | Array dengan maksimal 24 Objects(Sementara belum tersedia) |
「billCode | O | String | 2 | Kode tagihan untuk Customer pilih |
「billNo | O | String | 18 | No taghan dari Partner |
「billName | O | String | 20 | Bill Name |
「billShortName | O | String | 18 | Bill Name to shown to |
+billDescription | O | Object | - | Deskripsi Tagihan |
「english | O | String | 18 | Deskripsi Tagihan menggunakan bahasa inggris |
「indonesia | O | String | 18 | Deskripsi Tagihan menggunakan bahasa Indonesia |
「billSubCompany | O | String | 5 | - |
+billAmount | O | Object | - | - |
「value | M | String | 16,2 | Amount dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「currency | M | String | 3 | Mata Uang. fixed value : IDR |
+additionalInfo | O | Object | - | - |
+freeTexts | O | List | - | Array dengan maksimal 25 Objects |
「english | O | String | 32 | Akan ditampilkan di Channel |
「indonesia | O | String | 32 | Akan ditampilkan di Channel |
virtualAccountTrxType | O | String | 1 | Type Virtual Account |
+feeAmount | O | Object | - | Transaction Amount.(Sementara Tidak Tersedia) |
「value | M | String | 16,2 | Amount dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「currency | M | String | 3 | Mata Uang. fixed value : IDR |
expiredDate | M | String | 25 | waktu kadaluwarsa Virtual Account.ISO-8601 contoh: 2020-12-31T23:59:59-07:00 |
+additionalInfo | M | Object | - | Informasi tambahan |
「paymentType | M | String | 32 | Type Payment |
paymentType
VA: Ini akan kedaluwarsa setelah satu pembayaran berhasil dalam masa berlaku.
MultipleVA: Jumlah tetap dapat dibayarkan beberapa kali selama masa berlaku.
Static***VA: Anda dapat membayar jumlah berapa pun beberapa kali selama masa berlaku
Payment type | Encodings (code) |
---|---|
BCA | BCAVA, MultipleBCAVA, StaticBCAVA |
BNI | BNIVA, MultipleBNIVA |
BRI | BRIVA, MultipleBRIVA |
BSI | BSIVA, MultipleBSIVA |
CIMB | CIMBVA, MultipleCIMBVA |
Danamon | DanamonVA, MultipleDanamonVA |
INA | INAVA, MultipleINAVA |
Permata | PermataVA, MultiplePermataVA |
Mandiri | MandiriVA, MultipleMandiriVA, StaticMandiriVA |
Maybank | MaybankVA, MultipleMaybankVA |
Muamalat | MuamalatVA, MultipleMuamalatVA |
Sinarmas | SinarmasVA, MultipleSinarmasVA |
Request Body Example
POST .../v1.0/transfer-va/create-va HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:56:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-ORIGIN: www.hostname.com
X-PARTNER-ID: 010001
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
{
"partnerServiceId":" 088899",
"customerNo":"00000000000000000000",
"virtualAccountNo":" 08889912345678901234567890",
"virtualAccountName":"Jokul Doe",
"virtualAccountEmail":"jokul@email.com",
"virtualAccountPhone":"6281828384858",
"trxId":"abcdefgh1234",
"totalAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"billDetails":[
{
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription":{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"additionalInfo":{
}
}
],
"freeTexts":[
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
"virtualAccountTrxType":"1",
"feeAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"expiredDate":"2020-12-31T23:59:59-07:00",
"additionalInfo":{
"paymentType": "XXXVA"
}
}
Response Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
Response Body
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
responseCode | M | String | 7 | Kode Response. response code = HTTP status code + service code + case code |
responseMessage | M | String | 150 | Pesan Response |
+virtualAccountData | O | Object | - | - |
「partnerServiceId | M | String | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri |
「customerNo | M | String | 20 | No virtualAccount. fixed value 00000000000000000000 |
「virtualAccountNo | M | String | 20 | No virtualAccount |
「virtualAccountName | O | String | 255 | Nama Customer. contoh: Jokul Doe |
「virtualAccountEmail | O | String | 255 | |
「virtualAccountPhone | O | String | 30 | No Hp, Format: 62xxxxxxxxxxxxx |
「trxId | O | String | 32 | Platform Order No / Order No |
+totalAmount | O | Object | - | Transaction Amount |
「value | M | String | 16,2 | Amount dengan 2 digit angka dibelakang koma.contoh: 10000.00 , static va : 0.00 |
「currency | M | String | 3 | Mata Uang. fixed value : IDR |
+billDetails | O | List | - | Array dengan maksimal 24 Objects(Sementara Tidak Tersedia) |
「billCode | O | String | 2 | Kode tagihan untuk Customer pilih |
「billNo | O | String | 18 | Bill No dari Partner |
「billName | O | String | 20 | Bill Name |
「billShortName | O | String | 10 | Bill Name to shown to |
+billDescription | O | Object | - | Deskripsi Tagihan |
「english | O | String | 18 | Deskripsi Tagihan menggunakan bahasa inggris |
「indonesia | O | String | 18 | Deskripsi Tagihan menggunakan bahasa Indonesia |
「billSubCompany | O | String | 5 | Kode Product Partner |
+billAmount | O | Object | - | Transaction Amount |
「value | M | String | 16,2 | Amount dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「currency | M | String | 3 | Mata Uang. fixed value : IDR |
+additionalInfo | O | Object | - | Informasi Tambahan untuk customer khusus untuk setiap tagihan |
+freeTexts | O | List | - | Array dengan maksimal 25 Objects |
「english | O | String | 32 | Akan ditampilkan di Channel |
「indonesia | O | String | 32 | Akan ditampilkan di Channel |
「virtualAccountTrxType | O | String | 1 | Type Virtual Account |
+feeAmount | O | Object | - | Transaction Amount. |
「value | M | String | 16,2 | Amount dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「currency | M | String | 3 | Mata Uang. fixed value : IDR |
「expiredDate | M | String | 25 | waktu kadaluwarsa Virtual Account.ISO-8601 |
+additionalInfo | O | Object | - | Informasi tambahan untuk customer gunakan |
Response Body Example
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:36:19+07:00
{
"responseCode":"2002700",
"responseMessage":"Success",
"virtualAccountData":{
"partnerServiceId":" 088899",
"customerNo":"00000000000000000000",
"virtualAccountNo":" 08889912345678901234567890",
"virtualAccountName":"Jokul Doe",
"virtualAccountEmail":"jokul@email.com",
"virtualAccountPhone":"6281828384858",
"trxId":"abcdefgh1234",
"totalAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"billDetails":[
{
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription":{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"additionalInfo":{
}
}
],
"freeTexts":[
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
"virtualAccountTrxType":"1",
"feeAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"expiredDate":"2020-12-31T23:59:59-07:00",
"additionalInfo":{
"deviceId": "12345679237",
"channel": "mobilephone"
}
}
}
belum tersedia untuk merchant , bergantung pada asynchronous notifications
HTTPMethod: POST
URL: ${ROOT_URL}/v1.0/transfer-va/status
Service Code: 26
Version: 1.0
ServiceGroup: transfer-va
ProductType: status
Request Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
Authorization | C | String | Dynamic | Nilai access_token, jika Anda menggunakan enkripsi symmetric, kolom ini wajib diisi |
X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
X-PARTNER-ID | M | String | 36 | Merchant ID |
X-EXTERNAL-ID | M | String | 12 | Request ID |
X-SIGNATURE | M | String | Dynamic | Signature strings |
X-IP-ADDRESS | M | String | 15 | IP Client (IPv4) |
Request Body
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
partnerServiceId | M | String | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri |
customerNo | M | String | 20 | No virtualAccount |
virtualAccountNo | M | String | 28 | No virtualAccount |
inquiryRequestId | M | String | 128 | paymentRequestId (asynchronous) |
paymentRequestId | O | String | 128 | paymentRequestId (asynchronous) |
+additionalInfo | O | Object | - | - |
Request Body Example
POST .../v1.0/transfer-va/status HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:56:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-ORIGIN: www.hostname.com
X-PARTNER-ID: 010001
X-EXTERNAL-ID: 41807553358950093184162180797837
{
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"inquiryRequestId":"abcdef-123456-abcdef",
"paymentRequestId":"abcdef-123456-abcdef",
"additionalInfo":{
}
}
Response Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
Response Body
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
responseCode | M | String | 7 | Kode Response. response code = HTTP status code + service code + case code |
responseMessage | M | String | 150 | Pesan Response |
+virtualAccountData | O | Object | - | - |
+paymentFlagReason | O | Object | - | Alasan Status Pembayaran multi bahasa |
「english | O | String | 200 | Alasan Status Pembayaran dalam bahasa Inggris |
「indonesia | O | String | 200 | Alasan Status Pembayaran dalam bahasa Indonesia |
「partnerServiceId | M | String | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri |
「customerNo | M | String | 20 | fixed value 00000000000000000000 |
「virtualAccountNo | M | String | 28 | No virtualAccount |
「inquiryRequestId | M | String | 128 | dari Request Parameters |
「paymentRequestId | M | String | 128 | dari Request Parameters |
+paidAmount | O | Object | - | Transaction Amount |
「value | M | String | 16,2 | Amount dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「currency | M | String | 3 | Mata Uang. fixed value : IDR |
「paidBills | M | String | 6 | tagihan yang di bayar Format Hexadecimal |
+totalAmount | O | Object | - | Transaction amount |
「value | M | String | 16,2 | Amount dengan 2 digit angka dibelakang koma.contoh: 10000.00 , static va : 0.00 |
「currency | M | String | 3 | Mata Uang. fixed value : IDR |
「trxDateTime | O | String | 25 | Waktu transaksi ISO-8601 standard |
「transactionDate | O | String | 25 | Waktu Sukses Pembayaran |
「referenceNo | O | String | 15 | No Order |
「paymentType | O | Number | 1 | Type Payment |
「flagAdvise | O | String | 1 | Status is this a retry notification // |
「paymentFlagStatus | O | String | 2 | Status untuk penanda pembayaran |
+billDetails | O | List | - | Array dengan maksimal 24 Objects(Sementara Tidak Tersedia) |
「billCode | O | String | 2 | Kode tagihan untuk Customer pilih |
「billNo | O | String | 18 | Bill No dari Partner |
「billName | O | String | 20 | Bill Name |
「billShortName | O | String | 10 | Bill Name to shown to |
+billDescription | O | Object | - | Deskripsi Tagihan |
「english | O | String | 18 | Deskripsi Tagihan dalam bahasa Inggris |
「indonesia | O | String | 18 | Deskripsi Tagihan dalam bahasa Indonesia |
「billSubCompany | O | String | 5 | Kode Product Partner |
+billAmount | O | Object | - | Transaction Amount |
「value | M | String | 16,2 | Amount dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「currency | M | String | 3 | Mata Uang. fixed value : IDR |
+additionalInfo | O | Object | - | Informasi tambahan untuk customer gunakan khusus setiap tagihan |
「billReferenceNo | O | String | 15 | kode Bill auth digenerate oleh PJP |
「status | O | String | 2 | Status pembayaran untuk Tagihan tertentu |
+reason | O | Object | - | Alasan Status Pembayaran untuk Tagihan tertentu dalam multi bahasa |
「english | O | String | 64 | Alasan Status Pembayaran untuk Tagihan tertentu dalam multi bahasa dalam bahasa Inggris |
「indonesia | O | String | 64 | Alasan Status Pembayaran untuk Tagihan tertentu dalam multi bahasa dalam bahasa Indonesia |
+freeTexts | O | List | - | Array dengan maksimal 25 Objects |
「english | O | String | 32 | Akan ditampilkan di Channel |
「indonesia | O | String | 32 | Akan ditampilkan di Channel |
+additionalInfo | O | Object | - | - |
「transFeeRate | O | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
「transFeeAmount | O | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
「totalTransFee | O | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
「vatFee | O | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
Response Body Example
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:36:19+07:00
{
"responseCode":"2002600",
"responseMessage":"Success",
"virtualAccountData":{
"paymentFlagReason":{
"english":"Success",
"indonesia":"Sukses"
},
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"inquiryRequestId":"abcdef-123456-abcdef",
"paymentRequestId":"abcdef-123456-abcdef",
"paidAmount":{
"value":"12345678.00",
"currency":"IDR",
},
"paidBills":"95000",
"totalAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"trxDateTime":"20201231T235959Z",
"transactionDate":"20201230T235959Z",
"referenceNo":"123456789012345",
"paymentType":"1",
"flagAdvise":"Y",
"paymentFlagStatus":"00",
"billDetails":[
{
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription":{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"additionalInfo":{
}
"billReferenceNo": "123456789012345",
"status": "00",
"reason":{
"english": "Success",
"indonesia": "Sukses"
}
}
],
"freeTexts":[
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
},
"additionalInfo":{
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
}
HTTPMethod: POST
URL: ${ROOT_URL}/v1.0/transfer-va/payment
Service Code: 25
Version: 1.0
ServiceGroup: transfer-va
ProductType: payment
Notify when an order is successful
Request Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
Authorization | C | String | Dynamic | Nilai access_token, jika Anda menggunakan enkripsi symmetric, kolom ini wajib diisi |
X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
X-PARTNER-ID | M | String | 36 | Merchant ID |
X-EXTERNAL-ID | M | String | 12 | Request ID |
X-SIGNATURE | M | String | Dynamic | Signature strings |
X-IP-ADDRESS | M | String | 15 | Client IP (IPv4) |
Request Body
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
partnerServiceId | M | String | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri |
customerNo | M | String | 20 | fixed value 00000000000000000000 |
virtualAccountNo | M | String | 28 | virtualAccountNo |
virtualAccountName | O | String | 255 | Nama Customer. contoh: Jokul Doe |
virtualAccountEmail | O | String | 255 | |
virtualAccountPhone | O | String | 30 | No Hp, Format: 62xxxxxxxxxxxxx |
trxId | C | String | 64 | Unik ID di generated oleh Partner |
paymentRequestId | M | String | 128 | Unik ID di generated oleh PJP. Platform Order Number |
channelCode | O | Number | 4 | kode channel berdasarkan ISO 18245 |
hashedSourceAccountNo | O | String | 32 | Source account number dalam hash |
sourceBankCode | O | String | 3 | kode rekening bank |
+paidAmount | M | Object | ||
「Value | M | String (ISO4217) | 16,2 | Jumlah yang Dibayar dengan 2 digit di belakang koma |
「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
+cumulativePaymentAmount | O | Object | ||
「Value | M | String (ISO4217) | 16,2 | Transaction Amount |
「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
paidBills | O | String | 6 | tagihan yang di bayar Format Hexadecimal |
+totalAmount | O | Object | ||
「Value | M | String (ISO4217) | 16,2 | Transaction Amount. |
「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
trxDateTime | O | Date | 25 | Tanggal dan waktu sistem internal PJP dengan zona waktu, yang mana mengikuti ISO-8601 standard |
referenceNo | O | String | 64 | Kode autentikasi pembayaran dihasilkan oleh PJP, Platform Order Number |
journalNum | O | String | 6 | Urutan nomor jurnal pada Sistem core PJP |
paymentType | O | String | 1 | Type Payment |
flagAdvise | O | String | 1 | status callback, N: Deny, Y: Allow |
subCompany | O | String | 5 | Kode Sub Perusahaan dihasilkan oleh by Partner |
+billDetails | O | Array of Objects | Array dengan maksimal 24 Object | |
「billCode | O | String | 2 | dari Inquiry Response |
「billNo | O | String | 18 | dari Inquiry Response |
「billName | O | String | 20 | dari Inquiry Response |
「billShortName | O | String | 10 | dari Inquiry Response |
+billDescription | O | Object | dari Inquiry Response | |
「english | O | String | 18 | dari Inquiry Response |
「indonesia | O | String | 18 | dari Inquiry Response |
「billSubCompany | O | String | 5 | dari Inquiry Response |
+billAmount | O | Object | ||
「Value | M | String (ISO4217) | 16,2 | Transaction Amount. dari Inquiry Response |
「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
+additionalInfo | O | Object | unlimited | dari Inquiry Response |
「billReferenceNo | O | Number | 15 | kode Bill auth digenerate oleh PJP |
+freeTexts | O | Array of Objects | Array dengan maksimal 25 Object | |
「english | O | String | 32 | Akan ditampilkan di Channel |
「indonesia | O | String | 32 | Akan ditampilkan di Channel |
+additionalInfo | O | Object | ||
「transFeeRate | O | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
「transFeeAmount | O | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
「totalTransFee | O | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
「vatFee | O | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
Request Body Example
POST .../v1.0/transfer-va/payment HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:56:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-ORIGIN: www.hostname.com
X-PARTNER-ID: 010001
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
{
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"virtualAccountName":"Jokul Doe",
"virtualAccountEmail":"jokul@email.com",
"virtualAccountPhone":"6281828384858",
"trxId":"abcdefgh1234",
"paymentRequestId":"abcdef-123456-abcdef",
"channelCode":"6011",
"hashedSourceAccountNo":"abcdefghijklmnopqrstuvwxyz123456",
"sourceBankCode":"008",
"paidAmount":{
"value":"12345678.00",
"currency":"IDR",
},
"cumulativePaymentAmount":{
"value":"12345678.00",
"currency":"IDR",
},
"paidBills":"95000",
"totalAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"trxDateTime":"20201231T235959Z",
"referenceNo":"123456789012345",
"journalNum":"123456",
"paymentType":"1",
"flagAdvise":"Y",
"subCompany":"12345",
"billDetails":[
{
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription":{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"additionalInfo":{
},
"billReferenceNo": "123456789012345"
}
],
"freeTexts":[
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
"additionalInfo":{
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
}
Response Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
Response Body
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
responseCode | M | String | 7 | Response Code. response code = HTTP status code + service code + case code |
responseMessage | M | String | 150 | Response Description |
+virtualAccountData | M | Object | ||
+paymentFlagReason | O | Object | Alasan Status Pembayaran multi bahasa | |
「indonesia | O | String | 200 | Alasan Status Pembayaran dalam bahasa Inggris |
「english | O | String | 200 | Alasan Status Pembayaran dalam bahasa Indonesia |
「partnerServiceId | M | String | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri |
「customerNo | M | String | 20 | fixed value 00000000000000000000 |
「virtualAccountNo | M | String | 28 | No virtualAccount |
「virtualAccountName | M | String | 255 | Nama Customer. contoh: Jokul Doe |
「virtualAccountEmail | O | String | 255 | Email Customer |
「virtualAccountPhone | O | String | 30 | No HP Customer |
「trxId | O | String | 32 | dari Payment Request |
「paymentRequestId | M | String | 128 | dari Payment Request |
+paidAmount | O | Object | ||
「Value | M | String (ISO4217) | 16,2 | Transaction Amount. |
「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
「paidBills | O | String | 6 | dari Payment Request |
+totalAmount | O | Object | ||
「Value | M | String (ISO4217) | 16,2 | Transaction Amount.contoh: 10000.00 , static va : 0.00 |
「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
「trxDateTime | O | Date | 25 | dari Payment Request |
「referenceNo | O | String | 15 | dari Payment Request |
「journalNum | O | String | 6 | dari Payment Request |
「paymentType | O | String | 1 | dari Payment Request |
「flagAdvise | O | String | 1 | dari Payment Request |
「paymentFlagStatus | O | String | 2 | Status Penandaan Pembayaran dari Partner |
+billDetails | O | Array of Objects | Array dengan maksimal 24 Object | |
「billerReferenceId | O | 64 | dari Inquiry Response | |
「billCode | O | String | 2 | dari Inquiry Response |
「billNo | O | String | 18 | dari Inquiry Response |
「billName | O | String | 20 | dari Inquiry Response |
「billShortName | O | String | 10 | dari Inquiry Response |
+billDescription | O | Object | dari Inquiry Response | |
「english | O | String | 18 | dari Inquiry Response |
「indonesia | O | String | 18 | dari Inquiry Response |
「billSubCompany | O | String | 5 | dari Inquiry Response |
+billAmount | O | Object | ||
「Value | M | String (ISO4217) | 16,2 | Transaction Amount. |
「Currency | M | String | 3 | Mata Uang. fixed value : IDR |
+additionalInfo | O | Object | unlimited | dari Inquiry Response |
「status | O | String | 2 | Status pembayaran untuk Tagihan tertentu |
+reason | O | Object | Alasan Status Pembayaran untuk Tagihan tertentu dengan multi bahasa | |
「english | O | String | 64 | Alasan Status Pembayaran untuk Tagihan tertentu dalam bahasa Inggris |
「indonesia | O | String | 64 | Alasan Status Pembayaran untuk Tagihan tertentu dalam bahasa Indonesia |
+freeTexts | O | Array of Objects | Array dengan maksimal 25 Object | |
「english | O | String | 32 | Akan ditampilkan di Channel |
「indonesia | O | String | 32 | Akan ditampilkan di Channel |
+additionalInfo | O | Object |
paymentFlagStatus
Code | DESC |
---|---|
00 | Success |
01 | Initiated |
02 | Paying |
03 | Pending |
04 | Refunded |
05 | Canceled |
06 | Failed |
07 | Not found |
Response Body Example
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:36:19+07:00
{
"responseCode":"2002500",
"responseMessage":"Success",
"virtualAccountData":{
"paymentFlagReason":{
"english":"Success",
"indonesia":"Sukses"
},
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"virtualAccountName":"Jokul Doe",
"virtualAccountEmail":"jokul@email.com",
"virtualAccountPhone":"6281828384858",
"trxId":"abcdefgh1234",
"paymentRequestId":"abcdef-123456-abcdef",
"paidAmount":{
"value":"12345678.00",
"currency":"IDR",
},
"paidBills":"95000",
"totalAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"trxDateTime":"20201231T235959Z",
"referenceNo":"123456789012345",
"journalNum":"123456",
"paymentType":"1",
"flagAdvise":"Y",
"paymentFlagStatus":"00",
"billDetails":[
{
"billerReferenceId": "123456789012345678",
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription":{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"additionalInfo":{
}
"status": "00",
"reason":{
"english": "Success",
"indonesia": "Sukses"
}
}
],
"freeTexts":[
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
},
"additionalInfo":{
}
}
HTTPMethod: POST
URL: ${ROOT_URL}/v1.0/transfer-va/update-va
Service Code: 28
Version: 1.0
ServiceGroup: transfer-va
ProductType: update-va
Request Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
Authorization | C | String | Dynamic | Nilai access_token, jika Anda menggunakan enkripsi symmetric, kolom ini wajib diisi |
X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
X-PARTNER-ID | M | String | 36 | Merchant ID |
X-EXTERNAL-ID | M | String | 12 | Request ID |
X-SIGNATURE | M | String | Dynamic | Signature strings |
X-IP-ADDRESS | M | String | 15 | IP Client (IPv4) |
Request Body
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
partnerServiceId | String | M | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri. partnerServiceId + customerNo or virtualAccountNo |
customerNo | String | M | 20 | No Unique (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
virtualAccountNo | String | M | 28 | partnerServiceId (8 digit spasi disebelah kiri) + customerNo (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
virtualAccountName | String | M | 255 | Nama Customer. contoh: Jokul Doe |
virtualAccountEmail | String | O | 255 | Email Customer |
virtualAccountPhone | String | O | 30 | No HP Customer Format: 62xxxxxxxxxxxxx |
trxId | String | M | 64 | Transaction ID in Partner system |
+totalAmount | Object | O | ||
「Value | String (ISO4217) | M | 16,2 | Transaction Amount.Total Amount dengan 2 digit dibelakang koma. |
「Currency | String | M | 3 | Currency.Currency of amount based on ISO 4217. |
+billDetails | Array of Objects | O | Array dengan maksimal 24 Object | |
「billCode | String | O | 2 | Kode tagihan untuk Customer pilih |
「billNo | String | O | 18 | Bill No dari Partner |
「billName | String | O | 20 | Bill Nama |
「billShortName | String | O | 10 | Bill Name to shown to |
+billDescription | Object | O | Deskripsi Tagihan | |
「english | String | O | 18 | Deskripsi Tagihan dalam English |
「indonesia | String | O | 18 | Deskripsi Tagihan Bahasa Indonesia |
「billSubCompany | String | O | 5 | Kode Product Partner |
+billAmount | Object | O | ||
「Value | String (ISO4217) | M | 16,2 | Transaction Amount.Nominal yang diinput oleh Nasabah dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「Currency | String | M | 3 | Mata Uang. fixed value : IDR |
+additionalInfo | Object | O | unlimited | Informasi Tambahan untuk customer khusus untuk setiap tagihan |
+freeTexts | Array of Objects | O | Array dengan maksimal 25 Object | |
「english | String | O | 32 | Akan ditampilkan di Channel |
「indonesia | String | O | 32 | Akan ditampilkan di Channel |
virtualAccountTrxType | String | O | 1 | Type Virtual Account |
+feeAmount | Object | O | ||
「Value | String (ISO4217) | M | 16,2 | Transaction Amount. Nominal yang diinput oleh Nasabah dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「Currency | String | M | 3 | Mata Uang. fixed value : IDR |
expiredDate | String | O | 25 | Tanggal kadaluwarsa Virtual Account. ISO-8601 |
+additionalInfo | Object | O | Informasi Tambahan untuk digunakan customer |
Request Body Example
POST .../v1.0/transfer-va/update-va HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:56:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-ORIGIN: www.hostname.com
X-PARTNER-ID: 010001
X-EXTERNAL-ID: 41807553358950093184162180797837
{
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"virtualAccountName":"Jokul Doe",
"virtualAccountEmail":"jokul@email.com",
"virtualAccountPhone":"6281828384858",
"trxId":"abcdefgh1234",
"totalAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"billDetails":[
{
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription":{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"additionalInfo":{
}
}
],
"freeTexts":[
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
"virtualAccountTrxType":"1",
"feeAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"expiredDate":"2020-12-31T23:59:59-07:00",
"additionalInfo":{
"deviceId": "12345679237",
"channel": "mobilephone"
}
}
Response Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
X-TIMESTAMP | M | String | 64 | Jakarta time, format 2021-11-29T09:22:18+07:00 |
Response Body
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
responseCode | String | M | 7 | Response Code |
responseMessage | String | M | 150 | Response Description |
+virtualAccountData | Object | M | ||
「partnerServiceId | String | M | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri. partnerServiceId + customerNo or virtualAccountNo |
「customerNo | String | M | 20 | Unique number (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
「virtualAccountNo | String | M | 28 | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
「virtualAccountName | String | M | 255 | Nama Customer. contoh: Jokul Doe |
「virtualAccountEmail | String | O | 255 | Email Customer |
「virtualAccountPhone | String | O | 30 | No HP Customer Format: 62xxxxxxxxxxxxx |
「trxId | String | M | 32 | Transaction ID in Partner system |
+totalAmount | Object | O | ||
「Value | String (ISO4217) | M | 16,2 | Transaction Amount.Bill Amount dengan 2 digit angka dibelakang koma. |
「Currency | String | M | 3 | Mata Uang. ISO 4217. |
+billDetails | Array of Objects | O | Array dengan maksimal 24 Object | |
「billCode | String | O | 2 | Kode tagihan untuk Customer pilih |
「billNo | String | O | 18 | Bill No dari Partner |
「billName | String | O | 20 | Bill Nama |
「billShortName | String | O | 10 | Bill Name to shown to |
+billDescription | Object | O | Deskripsi Tagihan | |
「english | String | O | 18 | Deskripsi Tagihan dalam Inggris |
「indonesia | String | O | 18 | Deskripsi Tagihan dalam bahasa Indonesia |
「billSubCompany | String | O | 5 | Kode Product Partner |
+billAmount | Object | O | ||
「Value | String (ISO4217) | M | 16,2 | Transaction Amount.Nominal yang diinput oleh Nasabah dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「Currency | String | M | 3 | Mata Uang. fixed value : IDR |
+additionalInfo | Object | O | unlimited | Informasi Tambahan untuk customer khusus untuk setiap tagihan |
「virtualAccountTrxType | String | O | 1 | Type Virtual Account |
+feeAmount | Object | O | ||
「Value | String (ISO4217) | M | 16,2 | Transaction Amount.Nominal yang diinput oleh Nasabah dengan 2 digit angka dibelakang koma. contoh: 10000.00 |
「Currency | String | M | 3 | Mata Uang. fixed value : IDR |
「expiredDate | String | O | 25 | Tanggal kadaluwarsa Virtual Account. ISO-8601 |
「lastUpdateDate | String | O | 25 | Last update date for Virtual Account.ISO-8601 |
「paymentDate | String | O | 25 | tanggal pembayaran Virtual Account.ISO-8601 |
+additionalInfo | Object | O | Informasi Tambahan untuk digunakan customer |
Response Body Example
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:36:19+07:00
{
"responseCode":"2002800",
"responseMessage":"Success",
"virtualAccountData":{
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"virtualAccountName":"Jokul Doe",
"virtualAccountEmail":"jokul@email.com",
"virtualAccountPhone":"6281828384858",
"trxId":"abcdefgh1234",
"totalAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"billDetails":[
{
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription":{
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"additionalInfo":{
}
}
],
"virtualAccountTrxType":"1",
"feeAmount":{
"value": "12345678.00",
"currency": "IDR"
},
"expiredDate":"2020-12-31T23:59:59-07:00",
"lastUpdateDate":"2020-12-31T23:59:59-07:00",
"paymentDate":"2020-12-31T23:59:59-07:00",
"additionalInfo":{
"deviceId": "12345679237",
"channel": "mobilephone"
}
}
}
HTTPMethod: POST
URL: ${ROOT_URL}/v1.0/transfer-va/delete-va
Service Code: 31
Version: 1.0
ServiceGroup: transfer-va
ProductType: delete-va
Request Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
Authorization | C | String | Dynamic | Nilai access_token, jika Anda menggunakan enkripsi symmetric, kolom ini wajib diisi |
X-TIMESTAMP | M | String | 64 | Jakarta time, format 2021-11-29T09:22:18+07:00 |
X-PARTNER-ID | M | String | 36 | Merchant ID |
X-EXTERNAL-ID | M | String | 12 | Request ID |
X-SIGNATURE | M | String | Dynamic | Signature strings |
X-IP-ADDRESS | M | String | 15 | Client IP (IPv4) |
Request Body
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
partnerServiceId | String | M | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri. partnerServiceId + customerNo or virtualAccountNo |
customerNo | String | M | 20 | Unique number (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
virtualAccountNo | String | M | 28 | partnerServiceId (8 digit spasi disebelah kiri) + customerNo (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
trxId | String | O | 64 | Transaction ID di sistem Partner |
+additionalInfo | Object | O | unlimited | dari Inquiry Response |
Request Body Example
POST .../v1.0/transfer-va/status HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:56:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
X-ORIGIN: www.hostname.com
X-PARTNER-ID: 010001
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
{
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"trxId":"abcdefgh1234",
"additionalInfo":{
}
}
Response Header
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
Content-Type | M | String | - | Fixed value application/json |
X-TIMESTAMP | M | String | 64 | Waktu Jakarta, format 2021-11-29T09:22:18+07:00 |
Response Body
Parameter | Required | Type | Length | Remarks |
---|---|---|---|---|
responseCode | String | M | 7 | Response Code. response code = HTTP status code + service code + case code |
responseMessage | String | M | 150 | Response Description |
+virtualAccountData | Object | M | ||
「partnerServiceId | String | M | 8 | turunan X-PARTNER-ID, mirip dengan kode perusahaan, 8 digit spasi disebelah kiri. partnerServiceId + customerNo or virtualAccountNo |
「customerNo | String | M | 20 | Unique number (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
「virtualAccountNo | String | M | 28 | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
「trxId | String | O | 12 | Transaction ID di sistem Partner |
+additionalInfo | Object | O | unlimited | dari Inquiry Response |
Response Body Example
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:36:19+07:00
{
"responseCode":"2003100",
"responseMessage":"Success",
"virtualAccountData":{
"partnerServiceId":" 088899",
"customerNo":"12345678901234567890",
"virtualAccountNo":" 08889912345678901234567890",
"trxId":"abcdefgh1234",
"additionalInfo":{
}
}
}
Request URL
URL: ${ROOT_URL}/payment/v2.1/va/create
HTTPMethod: POST
EndpointUrl: /payment/v2.1/va/create
Generate VA Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
notifyUrl | String(200) | No | URL yang akan ditembak saat terjadi pembayaran. Untuk parameter-parameternya cek di bagian Inquiry Order |
payer | String(60) | Yes | Nama orang yang melakukan pembayaran |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
paymentType
Payment Type | Code |
---|---|
VA | SinarmasVA,MaybankVA,DanamonVA,BNCVA,BCAVA,INAVA,BNIVA,PermataVA,MuamalatVA,BSIVA,BRIVA,MandiriVA,CIMBVA |
Generate VA Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama dari Jenis Pembayaran, cek tabel Jenis Pembayaran |
requestAmount | Decimal(12,2) | No | Nominal pada saat permintaan |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places Jenis pengurangan biaya layanan:Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order. Ketika biaya layanan yang dihitung mengandung desimal, biaya layanan akan otomatis +1 setelah menghilangkan desimal. Misalnya, 10.000,11 akan secara otomatis +1 untuk mendapatkan 10.001,00. |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
createTime | String(16) | No | yyyyMMddHHmmss |
vaCode | String(32) | No | Nomor Virtual Account |
platformTradeNo | String(32) | No | Nomor order di platform Paylabs |
successTime | String(16) | No | yyyyMMddHHmmss |
expiredTime | String(16) | No | yyyyMMddHHmmss |
status | String(32) | No | 01 PENDING, 09 FAILED, 02 SUCCEEDED |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
transFeeRate | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
transFeeAmount | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
totalTransFee | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
vatFee | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
feeType | String(3) | No | Jenis pengurangan biaya layanan:BEN、OUR Standarnya adalah BEN. Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order secara otomatis. |
Example
Request:
POST /payment/v2.1/va/create
# 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":"0010001",
"merchantTradeNo":"100100011649755895582",
"requestId":"200100011649755895582",
"paymentType":"BTNVA",
"amount":"10000.00",
"productName":"Test",
"payer":"test"
}
Response:
```http
POST /payment/v2.1/va/create
# 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
{
"amount":"10000.00",
"merchantTradeNo":"100100011649755895582",
"vaCode":"94810003800000626",
"platformTradeNo":"2022041200000000025",
"expiredTime":20220413163136,
"paymentType":"BTNVA",
"createTime":"20220412163136",
"merchantId":"0010001",
"errCode":"0",
"requestId":"200100011649755895582",
"productName":"Test",
"status":"01",
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
Request
URL: ${ROOT_URL}/payment/v2.1/va/query
HTTPMethod: POST
EndpointUrl: /payment/v2.1/va/query
VA Status Inquiry Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(10) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
paymentType | String(20) | Yes | Tipe pembayaran, cek Tipe Pembayaran |
VA Status Inquiry Response Parameters
1.Server mengirim request POST dalam format JSON
Please check Asynchronous Notification
Each merchant has daily limit of 100 accounts creation of static VA
Request URL
URL: ${ROOT_URL}/payment/v2.1/staticva/create
HTTPMethod: POST
EndpointUrl: /payment/v2.1/staticva/create
Static VA Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama dari Jenis Pembayaran, cek tabel Jenis Pembayaran |
payer | String(60) | Yes | Nama orang yang melakukan pembayaran |
beUsedFor | String(100) | No | Static VA' usage (will be recorded into "productName" field) |
notifyUrl | String(200) | No | If payment is done, the callback will go to this URL |
paymentType
Payment Type | Code |
---|---|
StaticVA | StaticMandiriVA,StaticBCAVA |
Static VA Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama dari Jenis Pembayaran, cek tabel Jenis Pembayaran |
createTime | String(16) | No | yyyyMMddHHmmss |
vaCode | String(32) | No | Virtual Account Number |
expiredTime | String(16) | No | yyyyMMddHHmmss. Because Static VA won't expire, this value won't be returned |
Example
Request:
POST /payment/v2.1/staticva/create
# 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":"0010001",
"requestId":"200100011649755895582",
"paymentType":"StaticMandiriVA",
"payer":"test"
}
Response:
POST /payment/v2.1/staticva/create
# 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
{
"vaCode":"94810003800000626",
"paymentType":"StaticMandiriVA",
"createTime":"20220412163136",
"merchantId":"0010001",
"errCode":"0",
"requestId":"200100011649755895582"
}
1.Paylabs using POST method will send JSON request.
Please check Asynchronous Notification
Request URL
URL: ${ROOT_URL}/payment/v2.1/cc/create
HTTPMethod: POST
EndpointUrl: /payment/v2.1/cc/create
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Credit Card Request Order Parameters
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
notifyUrl | String(200) | No | URL yang akan ditembak saat terjadi pembayaran. Untuk parameter-parameternya cek di bagian Inquiry Order |
+paymentParams | Object | No | Parameter tambahan khusus untuk channel tertentu. Mohon cek tabel Tipe Pembayaran . |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
feeType | String(3) | No | Jenis pengurangan biaya layanan:BEN、OUR Standarnya adalah BEN. Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order secara otomatis. |
paymentType
Payment Type | Code |
---|---|
Credit Card 3D-Secure | CreditCard |
Credit Card 2D-Secure | CreditCard_2DSecure |
Installment (6 Months) | CreditCard_6Mos |
Installment (12 Months) | CreditCard_12Mos |
paymentParams
Parameter | Type | Required | Remarks |
---|---|---|---|
redirectUrl | String(200) | Yes | The target URL redirection, after the order is either paid successfully or failed |
Create Credit Card Order Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
requestAmount | Decimal(12,2) | No | Nominal pada saat permintaan |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places Jenis pengurangan biaya layanan:Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order. Ketika biaya layanan yang dihitung mengandung desimal, biaya layanan akan otomatis +1 setelah menghilangkan desimal. Misalnya, 10.000,11 akan secara otomatis +1 untuk mendapatkan 10.001,00. |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
createTime | String(16) | No | yyyyMMddHHmmss |
+paymentActions | Object | No | Informasi URL pembayaran yang bisa berupa URL PC, URL Web dan lainnya. |
「payUrl | String(200) | No | Payment URL |
platformTradeNo | String(32) | No | Nomor order di platform Paylabs |
successTime | String(16) | No | yyyyMMddHHmmss |
expiredTime | String(16) | No | yyyyMMddHHmmss |
status | String(32) | No | 01: PENDING, 09: FAILED, 02: SUCCEEDED |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
transFeeRate | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
transFeeAmount | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
totalTransFee | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
vatFee | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
Example
Request:
POST /payment/v2.1/cc/create
# 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":"0010001",
"merchantTradeNo":"100100011649751697607",
"requestId":"100100011649751697607",
"paymentType":"CreditCard",
"amount":"10000.00",
"productName":"Test",
"paymentParams":{
"redirectUrl": "http://google.com"
}
}
Response:
POST /payment/v2.1/cc/create
# 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
{
"amount":"10000.00",
"merchantTradeNo":"T00100011649751697607",
"platformTradeNo":"2022041200000000015",
"expiredTime":"20220413152138",
"paymentType":"CreditCard",
"paymentActions":{
"payUrl":"http://192.168.0.119:8081/en-credit-index.html?k=c2b2da7c8ce8b00691a68c38d77e000eeec0f030655f06a93eeeee051ca3235024591ab3207f9a39e58e4082d2b6f922"
},
"createTime":"20220412152138",
"merchantId":"0010001",
"errCode":"0",
"requestId":"R00100011649751697607",
"productName":"Test",
"status":"01",
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
Request URL
URL: ${ROOT_URL}/payment/v2.1/cc/query
HTTPMethod: POST
EndpointUrl: /payment/v2.1/cc/query
Credit Card Status Inquiry Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(10) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
paymentType | String(20) | Yes | Tipe pembayaran, cek Tipe Pembayaran |
Credit Card Status Inquiry Response Parameters
1.Server mengirim request POST dalam format JSON
Please check Asynchronous Notification
Request URL
URL: ${ROOT_URL}/payment/v2.1/dd/create
HTTPMethod: POST
EndpointUrl: /payment/v2.1/dd/create
Create E-Credit Order Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
notifyUrl | String(200) | No | URL yang akan ditembak saat terjadi pembayaran. Untuk parameter-parameternya cek di bagian Inquiry Order |
+paymentParams | Object | No | Parameter tambahan khusus untuk channel tertentu. Mohon cek tabel Tipe Pembayaran . |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
feeType | String(3) | No | Jenis pengurangan biaya layanan:BEN、OUR Standarnya adalah BEN. Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order secara otomatis. |
Tipe Pembayaran
Payment Type | Code |
---|---|
Indodana | Indodana |
Kredivo | Kredivo |
Atome | Atome |
paymentParams
Indodana
Parameter | Type | Required | Remarks |
---|---|---|---|
redirectUrl | String(200) | Yes | Redirect After Success |
Create E-Credit Order Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
createTime | String(16) | No | yyyyMMddHHmmss |
+paymentActions | Object | No | Informasi URL pembayaran yang bisa berupa URL PC, URL Web dan lainnya. |
「payUrl | String(200) | No | Payment URL |
platformTradeNo | String(32) | No | Nomor order di platform Paylabs |
successTime | String(16) | No | yyyyMMddHHmmss |
expiredTime | String(16) | No | yyyyMMddHHmmss |
status | String(32) | No | 01: PENDING, 09: FAILED, 02: SUCCEEDED |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
transFeeRate | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
transFeeAmount | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
totalTransFee | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
vatFee | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
Example
Request:
POST /payment/v2.1/dd/create
# 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":"0010001",
"merchantTradeNo":"100100011649755017941",
"requestId":"100100011649755017941",
"paymentType":"Indodana",
"amount":"10000.00",
"productName":"Test",
"paymentParams":{
"phoneNumber":"0000000000",
"successUrl":"http://google.com",
"failedUrl":"http://google.com"
}
}
Response:
POST /payment/v2.1/dd/create
# 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
{
"amount":"10000.00",
"merchantTradeNo":"T00100011649755017941",
"platformTradeNo":"2022041200000000021",
"paymentType":"Indodana",
"paymentActions":{
"payUrl": "https://sit-api.paylabs.co.id/payment/edd/enable/085259f66ebf1a171fc0ad7c6d19d624ad10799ff86175a82efbc88c1f5dde70"
},
"createTime":"20220412161700",
"merchantId":"0010001",
"errCode":"0",
"requestId":"R00100011649755017941",
"productName":"Test",
"status":"01",
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
Request URL
URL: ${ROOT_URL}/payment/v2.1/dd/query
HTTPMethod: POST
EndpointUrl: /payment/v2.1/dd/query
E-Credit Status Inquiry Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(10) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
paymentType | String(20) | Yes | Tipe pembayaran, cek Tipe Pembayaran |
Create E-Credit Status Inquiry Response Parameters
1.Server mengirim request POST dalam format JSON
Please checkAsynchronous Notification
Request URL:
URL: ${ROOT_URL}/payment/v2.1/store/create
HTTPMethod: POST
EndpointUrl: /payment/v2.1/store/create
Generate OTC Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
notifyUrl | String(200) | No | URL yang akan ditembak saat terjadi pembayaran. Untuk parameter-parameternya cek di bagian Inquiry Order |
payer | String(60) | Yes | Nama pembayar |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
feeType | String(3) | No | Jenis pengurangan biaya layanan:BEN、OUR Standarnya adalah BEN. Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order secara otomatis. |
paymentType
Payment Type | Code |
---|---|
Convenience Store | Indomaret,Alfarmart,POS |
OTC Order Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
requestAmount | Decimal(12,2) | No | Nominal pada saat permintaan |
amount | decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places Jenis pengurangan biaya layanan:Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order. Ketika biaya layanan yang dihitung mengandung desimal, biaya layanan akan otomatis +1 setelah menghilangkan desimal. Misalnya, 10.000,11 akan secara otomatis +1 untuk mendapatkan 10.001,00. |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
createTime | String(16) | No | yyyyMMddHHmmss |
paymentCode | String(32) | No | Kode Pembayaran |
platformTradeNo | String(32) | No | Nomor order di platform Paylabs |
successTime | String(16) | No | yyyyMMddHHmmss |
expiredTime | String(16) | No | yyyyMMddHHmmss |
status | String(32) | No | 01 PENDING 09 FAILED 02 SUCCEEDED |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
transFeeRate | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
transFeeAmount | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
totalTransFee | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
vatFee | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
Example
Request:
POST /payment/v2.1/store/create
# 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":"0010001",
"merchantTradeNo":"100100011649755895582",
"requestId":"200100011649755895582",
"paymentType":"Indomaret",
"amount":"10000.00",
"productName":"Test",
"payer":"test"
}
Response:
POST /payment/v2.1/store/create
# 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
{
"amount":"10000.00",
"merchantTradeNo":"100100011649755895582",
"paymentCode":"xxxxxxxxxxxx",
"platformTradeNo":"2022041200000000025",
"expiredTime":"20220413163136",
"paymentType":"BTNVA",
"createTime":"20220412163136",
"merchantId":"0010001",
"errCode":"0",
"requestId":"200100011649755895582",
"productName":"Test",
"status":"01",
"transFeeRate":"0",
"transFeeAmount":"0",
"totalTransFee":"0",
"vatFee":"0"
}
Request URL
URL: ${ROOT_URL}/payment/v2.1/store/query
HTTPMethod: POST
EndpointUrl: /payment/v2.1/store/query
OTC Inquiry Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(10) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
paymentType | String(20) | Yes | Tipe pembayaran, cek Tipe Pembayaran |
OTC Inquiry Response Parameters
1.Server mengirim request POST dalam format JSON
Please check Asynchronous Notification
Request URL:
URL: ${ROOT_URL}/payment/v2.1/h5/createLink
HTTPMethod: POST
EndpointUrl: /payment/v2.1/h5/createLink
URL HTML5 adalah sebuah halaman pembayaran dari Paylabs. Keuntungan dari penggunaan URL HTML5 ini adalah menghilangkan kewajiban Merchant untuk mengembangkan halaman pembayaran sendiri. Paylabs menyediakan sebuah halaman pembayaran terintegrasi untuk membantu pelanggan Merchant dapat menyelesaikan pembayaran dengan mudah. Anda dapat memilih pembuatan order dengan cara HTML5 ataupun API. Untuk inquiry status, notifikasi pembayaran (notifyUrl) dan redirect pelanggan (redirectUrl), cara implementasinya tetap sama dengan yang cara API
HTML5 Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
amount | Decimal(12,2) | Yes | Dalam Rupiah, dengan dua angka belakang koma |
payer | String(60) | No | Nama orang yang melakukan pembayaran |
phoneNumber | String(20) | Yes | Nomor telepon pelanggan |
productName | String(100) | Yes | Nama layanan atau produk |
notifyUrl | String(200) | No | URL yang akan ditembak saat terjadi pembayaran. Untuk parameter-parameternya cek di bagian Inquiry Order |
redirectUrl | String(200) | Yes | Baik saat sukses ataupun gagal, akan diarahkan ke URL tersebut |
lang | String(10) | No | Jika dikosongkan maka akan menggunakan Bahasa Indonesia, jika ingin bahasa Inggris gunakan "en" |
paymentType | String(20) | No | Nama tipe pembayaran, cek tabel Tipe Pembayaran. If empty, it will show all available payment options to let customer choose the payment. |
feeType | String(3) | No | Jenis pengurangan biaya layanan:BEN、OUR Standarnya adalah BEN. Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order secara otomatis. |
HTML5 Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
errCode | String(32) | No | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi error |
requestId | String(64) | Yes | Kode unik untuk setiap request |
merchantId | String(20) | No | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
url | String(200) | No | Nama tipe pembayaran, cek tabel Tipe Pembayaran. If empty, it will show all available payment options to let customer choose the payment. |
Example
Request:
POST /payment/v2.1/h5/createLink
# 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":"0010001",
"merchantTradeNo":"11649757268000",
"requestId":"21649757268000",
"amount":"10200",
"phoneNumber":00000000,
"productName":"apple",
"redirectUrl":"https://www.google.com",
"lang":"en",
"payer":"test"
}
Response:
POST /payment/v2.1/h5/createLink
# 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":"0010001",
"requestId":"21649757268000",
"errCode":"0",
"url":"http://paylabs-dev.com/payer/en-home-index.html?k=c2b2da7c8ce8b00691a68c38d77e000e9f412199770e6b1adf72bbc6c2914ee808f93e627825ecb4679cd31eea1c5114"
}
Follow-Up
Pelanggan akan mendapatkan URL, buka di browser, masuk ke halaman pembayaran Paylabs. Halaman itu akan membimbing pelanggan untuk membayar hingga selesai. Jika pembayaran berhasil. maka Merchant akan mendapatkan notifikasi sukses melalui field "notifyUrl". Dan Customer akan diarahkan ke halaman "redirectUrl".
1.URL akan dibuatkan oleh Merchant
2.Paylabs akan kirim request POST berisi parameter-parameter dalam format JSON ke URL yang dibuatkan Merchant.
Please check Asynchronous Notification
Request URL:
URL: Adalah nilai dari field notifyUrl saat kirim request buat order
HTTPMethod: POST
EndpointUrl: adalah path dari URL, contohnya kita punya URL=https://merchant-domain.com/v2/qris/notify, berarti nilai dari Path=/v2/qris/notify
Asynchronous Notification Request Parameters (Paylabs Kirim Request)
Paylabs yang mengirim request ke Merchant
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | Merchant ID |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
platformTradeNo | String(32) | No | Nomor order di platform Paylabs |
createTime | String(16) | No | yyyyMMddHHmmss |
successTime | String(16) | No | yyyyMMddHHmmss |
status | String(32) | No | 01: PENDING, 09: FAILED, 02: SUCCEEDED |
productName | String(100) | No | Nama produk atau layanan |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「id | String(10) | Yes | Product ID |
「name | String(32) | Yes | Product Name |
「price | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
「type | String(20) | Yes | Product Type |
「url | String(200) | No | Product URL |
「quantity | Number(4) | Yes | Product Quantity |
+paymentMethodInfo | Object | No | Informasi tambahan terkait Payment channel |
transFeeRate | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
transFeeAmount | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
totalTransFee | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
vatFee | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
QRIS paymentMethodInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
nmid | String(32) | Yes | National Merchant ID |
rrn | String(32) | No | Kode pembayaran sukses |
tid | String(32) | No | Terminal ID (Hanya ada di QRIS) |
payer | String(60) | No | Nama pembayar |
phoneNumber | String(20) | No | Nomor telepon pembayar |
issuerId | String(20) | No | ID Aplikasi dari issuer |
VA paymentMethodInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
vaCode | String(32) | Yes | Nomor Virtual Account |
OTC paymentMethodInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
paymentCode | String(32) | Yes | Nomor kode pembayaran |
Asynchronous Notification Response Parameters (Merchant Beri Respon)
Merchant yang memberikan response atas request yang dikirim oleh Paylabs
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi error |
merchantId | String(20) | Yes | Merchant ID |
storeId | String(30) | No | Jika 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"
}
Request URL:
URL: Adalah nilai dari notifyUrl saat kirim request
HTTPMethod: POST
EndpointUrl: Path dari URL, misalnya nilai URL=https://merchant-domain.com/v2/qris/notify, maka nilai dari Path=/v2/qris/notify
Refund Notification Request Parameters (Paylabs Kirim Request)
Paylabs yang mengirim request ke Merchant
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi terkait error |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
paymentType | String(20) | Yes | Nama tipe pembayaran, cek tabel Tipe Pembayaran |
amount | Decimal(12,2) | Yes | Nominal dalam Rupiah Indonesia, with 2 decimal places |
merchantRefundNo | String(32) | Yes | Nomor Refund |
merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
platformTradeNo | String(32) | No | Nomor order di platform Paylabs |
createTime | String(16) | No | yyyyMMddHHmmss |
successTime | String(16) | No | yyyyMMddHHmmss |
status | String(2) | No | 02: Refund berhasil, 03: Refund dalam proses, 06: Refund gagal |
+paymentMethodInfo | Object | No | Informasi tambahan terkait Payment channel |
transFeeRate | Decimal(6,6) | No | Rate Transaksi, mendukung enam angka belakang koma |
transFeeAmount | Decimal(12,2) | No | Biaya, mendukung dua angka belakang koma |
totalTransFee | Decimal(12,2) | No | Total rate biaya layanan transaksi (tidak termasuk vatFee), mendukung dua angka belakang koma |
vatFee | Decimal(12,2) | No | Pajak, mendukung dua angka belakang koma |
Refund Notification Response Parameters (Merchant Response)
Merchant yang memberikan response atas request yang dikirim oleh Paylabs
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode unik untuk setiap request |
errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel Kode Error |
errCodeDes | String(128) | No | Deskripsi error |
merchantId | String(20) | Yes | Merchant ID |
storeId | String(30) | No | Jika 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"
}
Request URL
Akan dikirimkan via email
Download Reconciliation File Request Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek Cara Membuat Signature | Yes |
X-PARTNER-ID | String(20) | Merchant ID | Yes |
X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | ID unik merepresentasikan setiap request yang dikirim |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
transactionType | String(2) | Yes | 10 Pesanan pembayaran |
Download Reconciliation File Response Parameters
Header
Field Name | Type | Value | Required |
---|---|---|---|
Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | ID unik merepresentasikan setiap request yang dikirim |
errCode | String(32) | No | Untuk selengkapnya cek bagian Kode Error |
errCodeDes | String(128) | No | Detail error berdasarkan kode error |
merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
fileName | String(200) | No | File name |
fileUrl | String(200) | No | Alamat pengunduhan file(berlaku selama 24 jam) |
fileSize | Number | No | File size |
status | String(2) | No | 0 Awal,1 Sedang memproses 2,Bisa didownload 3,gagal |
fileUrl unduhan file
File ini dalam format arsip zip,ketika diekstrak,anda akan mendapatkan satu atau beberapa file csv,nama file merchantId_payDate_xxx_xxx.csv,di mana xxx pemformatan sebagai 1234 angka.
CSV File Format
delimiter = ','
quote = '"'
RecordSeparator = "\r\n"
The following is the content format:
MerchantNo,PaymentType,SettlementNo,SettlementType,SettlementStatus,RequestAmount,Amount,FeeType,TransFeeRate,TransFeeAmount,TotalTransFee,PaylabsOrderNo,MerchantOrderNo,RequestTime,PayTime,vatFee
Example
Request:
POST /xxx/xxx
# 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
{
"requestId":"PY9f05af9d-4275-49e2-b972-a2427232c268",
"merchantId":"0010001",
"transactionType":"10",
"payDate":"2022-08-01"
}
Response:
POST /xxx/xxx
# HTTP Header
Content-Type: application/json;charset=utf-8
# HTTP Body
{
"requestId":"PY9f05af9d-4275-49e2-b972-a2427232c268",
"merchantId":"0010001",
"errCode":"0",
"errCodeDes":null,
"fileName":null,
"fileUrl":null,
"fileSize":null,
"status":"1"
}
Kode Error | Remarks |
---|---|
noauth | Merchant Tidak Memiliki Hak Akses Ke API |
InvalidAmount | Jumlah Nominal Tidak Sesuai |
amountSetERROR | Format Amount Tidak Benar |
Conflict | Kode Request Duplikat / Tidak Benar |
h5orderpaid | Pesanan H5 Sudah Dibayar |
h5ordervalid | Pesanan H5 Sesuai |
merchantInvalid | Merchant Tidak Terdaftar |
merchantFreezing | Akun Merchant Dibekukan |
Rejected | Merchant Tidak Memberikan Izin Antarmuka Ini |
orderCheckOuted | Pesanan Sudah Diselesaikan |
orderExpired | Order Yang Tidak Terbayarkan Sudah Kadaluarsa |
orderInvalid | Pesanan Tidak Valid |
merchantRefundNoExit | Pengembalian Pesanan Merchant Tidak Tersedia |
merchantRefundNoUsed | Pengembalian Pesanan Merchant Diulang |
duplicateMerchantTradeNo | Nomor Order Merchant Duplikat |
paramInvalid | Parameters Yang Dikirim Tidak Benar |
paymentTypeIsError | PaymentType Tidak Benar |
channelError | Channel Bermasalah |
postDataEmpty | POST data kosong |
riskNotPass | Pemeriksaan Resiko Tidak Lolos |
signError | Signature tidak benar |
storeInvalid | Store Tidak Tersedia |
storeFreezing | Akun Store Dibekukan |
systemError | System Error |
systemTimeout | Waktu Eksekusi Habis |
timeIsnotnowDate | startTime endTime Tidak Dapat Berupa Tanggal Sekarang |
timeIsError | uploadDate Tidak Boleh Kosong |
Category | HTTP Code | Service Code | Case Code | Response Message | Description |
---|---|---|---|---|---|
Success | 200 | any | 00 | Successful | Successful |
Success | 202 | any | 00 | Request In Progress | Transaction still on process |
System | 400 | any | 00 | Bad Request | General request failed error, including message parsing failed. |
Message | 400 | any | 01 | Invalid Field Format {field name} | Invalid format |
Message | 400 | any | 02 | Invalid Mandatory Field {field name} | Missing or invalid format on mandatory field |
System | 401 | any | 00 | Unauthorized. [reason] | General unauthorized error (No Interface Def, API is Invalid, Oauth Failed, Verify Client Secret Fail, Client Forbidden Access API, Unknown Client, Key not Found) |
System | 401 | any | 01 | Invalid Token (B2B) | Token found in request is invalid (Access Token Not Exist, Access Token Expiry) |
System | 401 | any | 02 | Invalid Customer Token | Token found in request is invalid (Access Token Not Exist, Access Token Expiry) |
System | 401 | any | 03 | Token Not Found (B2B) | Token not found in the system. This occurs on any API that requires token as input parameter |
System | 401 | any | 04 | Customer Token Not Found | Token not found in the system. This occurs on any API that requires token as input parameter |
Business | 403 | any | 00 | Transaction Expired | Transaction expired |
System | 403 | any | 01 | Feature Not Allowed [Reason] | This merchant is not allowed to call Direct Debit APIs |
Business | 403 | any | 02 | Exceeds Transaction Amount Limit | Exceeds Transaction Amount Limit |
Business | 403 | any | 03 | Suspected Fraud | Suspected Fraud |
Business | 403 | any | 04 | Activity Count Limit Exceeded | Too many request, Exceeds Transaction Frequency Limit |
Business | 403 | any | 05 | Do Not Honor | Account or User status is abnormal |
System | 403 | any | 06 | Feature Not Allowed At This Time. [reason] | Cut off In Progress |
Business | 403 | any | 07 | Card Blocked | The payment card is blocked |
Business | 403 | any | 08 | Card Expired | The payment card is expired |
Business | 403 | any | 09 | Dormant Account | The account is dormant |
Business | 403 | any | 10 | Need To Set Token Limit | Need to set token limit |
System | 403 | any | 11 | OTP Blocked | OTP has been blocked |
System | 403 | any | 12 | OTP Lifetime Expired | OTP has been expired |
System | 403 | any | 13 | OTP Sent To Cardholer | initiates request OTP to the issuer |
Business | 403 | any | 14 | Insufficient Funds | Insufficient Funds |
Business | 403 | any | 15 | Transaction Not Permitted.[reason] | Transaction Not Permitted |
Business | 403 | any | 16 | Suspend Transaction | Suspend Transaction |
Business | 403 | any | 17 | Token Limit Exceeded | Purchase amount exceeds the token limit set prior |
Business | 403 | any | 18 | Inactive Card/Account/Customer | Indicates inactive account |
Business | 403 | any | 19 | Merchant Blacklisted | Merchant is suspended from calling any APIs |
Business | 403 | any | 20 | Merchant Limit Exceed | Merchant aggregated purchase amount on that day exceeds the agreed limit |
Business | 403 | any | 21 | Set Limit Not Allowed | Set limit not allowed on particular token |
Business | 403 | any | 22 | Token Limit Invalid | The token limit desired by the merchant is not within the agreed range between the merchant and the Issuer |
Business | 403 | any | 23 | Account Limit Exceed | Account aggregated purchase amount on that day exceeds the agreed limit |
Business | 404 | any | 00 | Invalid Transaction Status | Invalid transaction status |
Business | 404 | any | 01 | Transaction Not Found | Transaction not found |
System | 404 | any | 02 | Invalid Routing | Invalid Routing |
System | 404 | any | 03 | Bank Not Supported By Switch | Bank not supported by switch |
Business | 404 | any | 04 | Transaction Cancelled | Transaction is cancelled by customer |
Business | 404 | any | 05 | Merchant Is Not Registered For Card Registration Services | Merchant is not registered for Card Registration services |
System | 404 | any | 06 | Need To Request OTP | Need to request OTP |
System | 404 | any | 07 | Journey Not Found | The journeyID cannot be found in the system |
Business | 404 | any | 08 | Invalid Merchant | Merchant does not exist or status abnormal |
Business | 404 | any | 09 | No Issuer | No issuer |
System | 404 | any | 10 | Invalid API Transition | Invalid API transition within a journey |
Business | 404 | any | 11 | Invalid Card/Account/Customer [info]/Virtual Account | Card information may be invalid, or the card account may be blacklisted, or Virtual Account number maybe invalid. |
Business | 404 | any | 12 | Invalid Bill/Virtual Account [Reason] | The bill is blocked/ suspended/not found. Virtual account is suspend/not found. |
Business | 404 | any | 13 | Invalid Amount | The amount doesn't match with what supposed to |
Business | 404 | any | 14 | Paid Bill | The bill has been paid |
System | 404 | any | 15 | Invalid OTP | OTP is incorrect |
Business | 404 | any | 16 | Partner Not Found | Partner number can't be found |
Business | 404 | any | 17 | Invalid Terminal | Terminal does not exist in the system |
Business | 404 | any | 18 | Inconsistent Request | Inconsistent request parameter found for the same partner reference number/transaction id It can be considered as failed in transfer debit, but it should be considered as success in transfer credit. Considered as success: - Transfer credit = (i) Intrabank transfer; (ii) Interbank transfer; (iii) RTGS transfer; (iv) SKNBI transfer; - Virtual account = (i) Payment VA; (ii) Payment to VA; - Transfer debit = (i) Refund payment; (ii) Void; Considered as failed: - Transfer credit = (i) Transfer to OTC; - Transfer debit = (i) Direct debit payment; (ii) QR CPM payment; (iii) Auth payment; (iv) Capture; |
Business | 404 | any | 19 | Invalid Bill/Virtual Account | The bill is expired. Virtual account is expired. |
System | 405 | any | 00 | Requested Function Is Not Supported | Requested function is not supported |
Business | 405 | any | 01 | Requested Opearation Is Not Allowed | Requested operation to cancel/refund transaction Is not allowed at this time. |
System | 409 | any | 00 | Conflict | Cannot use same X-EXTERNAL-ID in same day |
System | 409 | any | 01 | Duplicate partnerReferenceNo | Transaction has previously been processed indicates the same partnerReferenceNo already success |
System | 429 | any | 00 | Too Many Requests | Maximum transaction limit exceeded |
System | 500 | any | 00 | General Error | General Error |
System | 500 | Any | 01 | Internal Server Error | Unknown Internal Server Failure, Please retry the process again |
System | 500 | Any | 02 | External Server Error | Backend system failure, etc |
System | 504 | any | 00 | Timeout | timeout from the issuer |