Extremely fast access, get complete online collection function as fast as you want
Customize the payment style as you like giving you maximum free personalization
The price is reasonable, can do batch processing, convenient to use and arrive …
Provide professional data analysis reports to support business operation decisions and …
Use the same security protection system and fraud prevention monitoring system as Visa …
PL ChannelPL Channel
PRODUCTS
PAYMENT SOLUTIONS
INTEGRATION
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 customer service 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 |
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 , , , dari konten di dalam format JSON.
Jika nilai dari field adalah null maka tidak akan diikutsertakan dalam pembuatan signature.
Persiapkan string-stringnya:
stringContent: HTTPMethod:EndpointUrl:Lowercase(SHA256Hex(minify(body))):TimeStamp
HTTPMethod: POST
EndpointUrl: /payment/v2/va/create
TimeStamp: Request header's X-TIMESTAMP
Metode untuk signing:
X-SIGNATURE: Base64(SHA256withRSA(stringContent, privateKey))
Click to jump to:"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/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/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/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 Address
URL: ${ROOT_URL}/payment/v2/ewallet/create
HTTPMethod: POST
EndpointUrl: /payment/v2/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 |
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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 untuk setiap request | 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 |
amount | Decimal(12,2) | Yes | Nominal transaksi, dalam format Rupiah dengan dua angka belakang koma |
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. |
「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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
paymentActions
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
paymentActions Support
Channel | pcPayUrl | mobilePayUrl | appDeeplink | pushPay |
---|---|---|---|---|
Dana | Y | Y | N | N |
Shopee | Y | Y | Y | N |
Linkaja | Y | Y | N | N |
OVO | N | C | N | C |
GoPay | N | Y | N | N |
Example
Request:
POST /payment/v2/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/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"
}
Request URL
URL: ${ROOT_URL}/payment/v2/ewallet/query
HTTPMethod: POST
EndpointUrl: /payment/v2/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/ewallet/refund
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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 |
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 |
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 untuk setiap request | 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 tabe 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 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/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"
}
Response:
POST /payment/v2/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/ewallet/refundQuery
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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
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 | Merchant ID |
customerNo | M | String | 20 | No virtualAccount |
virtualAccountNo | M | String | 28 | No virtualAccount |
virtualAccountName | O | String | 255 | Nama Customer |
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 |
「currency | M | String | 3 | Mata Uang |
+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 |
「currency | M | String | 3 | Mata Uang |
+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 |
「currency | M | String | 3 | Mata Uang |
「expiredDate | O | String | 25 | waktu kadaluwarsa Virtual Account.ISO-8601 |
+additionalInfo | M | Object | - | Informasi tambahan |
「paymentType | M | String | 32 | Type Payment |
paymentType
Payment type | Encodings (channel -name) |
---|---|
PaymentType | BCAVA,StaticBCAVA,MandiriVA,StaticMandiriVA |
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 |
responseMessage | M | String | 150 | Pesan Response |
+virtualAccountData | O | Object | - | - |
「partnerServiceId | M | String | 8 | Merchant ID |
「customerNo | M | String | 20 | No virtualAccount |
「virtualAccountNo | M | String | 20 | No virtualAccount |
「virtualAccountName | O | String | 255 | Nama Customer |
「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 |
「currency | M | String | 3 | Mata Uang |
+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 |
「currency | M | String | 3 | Mata Uang |
+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 |
「currency | M | String | 3 | Mata Uang |
「expiredDate | O | String | 25 | waktu kadaluwarsa Virtual Account.ISO-8601 |
+additionalInfo | O | Object | - | Informasi tambahan untuk customer gunakan |
HTTPMethod: POST
URL: ${ROOT_URL}/v1.0/transfer-va/status
Service Code: 26
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 | Merchant ID |
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 | - | - |
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 |
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 | No virtualAccount |
「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 |
「currency | M | String | 3 | Mata Uang |
「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 |
「currency | M | String | 3 | Mata Uang |
「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 |
「currency | M | String | 3 | Mata Uang |
+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 | - | - |
HTTPMethod: POST
URL: ${ROOT_URL}/v1.0/transfer-va/payment
Service Code: 25
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 | Merchant Id |
customerNo | M | String | 20 | virtualAccountNo |
virtualAccountNo | M | String | 28 | virtualAccountNo |
virtualAccountName | O | String | 255 | Nama Customer |
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 |
+cumulativePaymentAmount | O | Object | ||
「Value | M | String (ISO4217) | 16,2 | Transaction Amount |
「Currency | M | String | 3 | Mata Uang |
「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 |
「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 |
+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 |
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 |
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 |
「customerNo | M | String | 20 | No unik |
「virtualAccountNo | M | String | 28 | No virtualAccount |
「virtualAccountName | M | String | 255 | Nama Customer |
「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 |
「paidBills | O | String | 6 | dari Payment Request |
+totalAmount | O | Object | ||
「Value | M | String (ISO4217) | 16,2 | Transaction Amount. |
「Currency | M | String | 3 | Mata Uang |
「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 |
+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 |
HTTPMethod: POST
URL: ${ROOT_URL}/v1.0/transfer-va/update-va
Service Code: 28
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 |
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. |
「Currency | String | M | 3 | Mata Uang |
+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. |
「Currency | String | M | 3 | Mata Uang |
「expiredDate | String | O | 25 | Tanggal kadaluwarsa Virtual Account. ISO-8601 |
+additionalInfo | Object | O | Informasi Tambahan untuk digunakan customer |
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 |
「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. |
「Currency | String | M | 3 | Mata Uang |
+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.. |
「Currency | String | M | 3 | Mata Uang |
「expiredDate | String | O | 25 | Tanggal kedaluwarsa 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 |
HTTPMethod: POST
URL: ${ROOT_URL}/v1.0/transfer-va/delete-va
Service Code: 31
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 |
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 |
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 |
Request URL
URL: ${ROOT_URL}/payment/v2/va/create
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 untuk setiap request | 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 tabe 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 |
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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
Example
Request:
POST /payment/v2/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/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"
}
Request
URL: ${ROOT_URL}/payment/v2/va/query
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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/staticva/create
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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 untuk setiap request | 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 tabe 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/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/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/cc/create
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
---|---|
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 untuk setiap request | 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 tabe 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. |
「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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
paymentActions
Parameter | Type | Required | Remarks |
---|---|---|---|
「payUrl | String(200) | No | Payment URL |
Example
Request:
POST /payment/v2/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/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"
}
Request URL
URL: ${ROOT_URL}/payment/v2/cc/query
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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/qris/create
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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 |
productName | String(100) | Yes | Nama layanan atau produk |
+productInfo | Array<Object>(30) | No | Informasi detil atas produk atau layanan dalam transaksi |
「expire | Number | No | Satuan adalah detik, tidak didukung, saluran yang berbeda memiliki nilai default yang berbeda |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 untuk setiap request | 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 tabe 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 |
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 | 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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
Example
Request:
POST /payment/v2/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":"SHOPEEQRIS",
"amount":"10000.00",
"productName":"Test"
}
Response:
POST /payment/v2/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":"SHOPEEQRIS",
"qrCode":"00020101021226610016ID.CO.SHOPEE.WWW01189360091800200340760208200340760303UMI520467895303360540810000.005802ID5918Paylabs Test Store6015KOTA JAKARTA BA6105111116223051920220412000000000266304741E",
"createTime":"20220412163504",
"merchantId":"0010001",
"errCode":"0",
"requestId":"200100011649756102739",
"productName":"Test",
"status":"01"
}
Request URL
URL: ${ROOT_URL}/payment/v2/qris/query
HTTPMethod: POST
EndpointUrl: /payment/v2/qris/query
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 untuk setiap request | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | Kode 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) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
paymentType | String(20) | Yes | Tipe pembayaran, cek Tipe Pembayaran |
QRIS Order Status Inquiry Response Parameters
Request URL
URL: ${ROOT_URL}/payment/v2/qris/cancel
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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 untuk setiap request | 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 tabe 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/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.SHOPEE.WWW01189360091800200340760208200340760303UMI520467895303360540810000.005802ID5918Paylabs Test Store6015KOTA JAKARTA BA6105111116223051920220412000000000266304741",
"productName":"Test"
}
Response:
POST /payment/v2/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.SHOPEE.WWW01189360091800200340760208200340760303UMI520467895303360540810000.005802ID5918Paylabs Test Store6015KOTA JAKARTA BA6105111116223051920220412000000000266304741E",
"createTime":"20220412163504",
"status":"01"
}
1.Server mengirim request POST dalam format JSON
Please check Asynchronous Notification
Request URL
URL: ${ROOT_URL}/payment/v2/dd/create
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
---|---|
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 untuk setiap request | 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 tabe 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. |
「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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
paymentActions
Parameter | Type | Required | Remarks |
---|---|---|---|
「payUrl | String(200) | No | Payment URL |
Example
Request:
POST /payment/v2/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/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"
}
Request URL
URL: ${ROOT_URL}/payment/v2/dd/query
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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 check Asynchronous Notification
Request URL:
URL: ${ROOT_URL}/payment/v2/store/create
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
---|---|
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 untuk setiap request | 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 tabe 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 |
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 |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
Example
Request:
POST /payment/v2/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/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"
}
Request URL
URL: ${ROOT_URL}/payment/v2/store/query
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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/h5/createLink
HTTPMethod: POST
EndpointUrl: /payment/v2/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 untuk setiap request | 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. |
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 untuk setiap request | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
errCode | String(32) | No | 0 adalah sukses, untuk lainnya bisa lihat tabe 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/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/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 is provided by Merchant
2.Paylabs will send POST request with JSON format parameters to the provided URL.
Please check Asynchronous Notification
Request URL:
URL: The notifyUrl field value when send request
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 untuk setiap request | 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 tabe 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 |
+paymentMethodInfo | Object | No | Informasi tambahan terkait Payment channel |
productInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
「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 |
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 |
payer | String(60) | No | Nama Pembayar |
phoneNumber | String(20) | No | Nomor telepon pembayar |
issuerId | String(20) | No | ID dari aplikasi Issuer |
VA paymentMethodInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
vaCode | String(32) | Yes | Virtual Account Number |
OTC paymentMethodInfo
Parameter | Type | Required | Remarks |
---|---|---|---|
paymentCode | String(32) | Yes | The payment's code number |
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 untuk setiap request | 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 tabe 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"
}
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 untuk setiap request | 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 tabe 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 |
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 untuk setiap request | 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 tabe 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"
}
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 untuk setiap request | Yes |
Body
Parameter | Type | Required | Remarks |
---|---|---|---|
requestId | String(64) | Yes | ID unik untuk setiap request |
merchantId | String(20) | Yes | Nomor unik yang dibuat oleh 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 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) | Yes | Nomor unik yang dibuat oleh 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,Amount,TransFeeRate,TransFeeAmount,TotalTransFee,PaylabsOrderNo,MerchantOrderNo,RequestTime,PayTime,PayCode
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"
}
Error Code | Remarks |
---|---|
noauth | Merchant tidak memiliki hak akses ke API |
paramInvalid | Parameters yang dikirim tidak benar |
duplicateMerchantTradeNo | Nomor order merchant duplikat |
signError | Signature tidak benar |
systemError | System error |
mchInvalid | Tidak ada nomor merchant ini |
postDataEmpty | POST data kosong |
paymentTypeIsError | Payment Type tidak benar |
amountSetERROR | Format Amount tidak benar |
merchantFreezing | Akun Merchant terblokir |
orderExpired | Order yang tidak terbayarkan sudah kadaluarsa |
conflict | Kode request duplikat |