Indonesia Payment API
About 1557 wordsAbout 5 min
Warning
Before reading this API documentation, please make sure to check API Description Guide
Limits
Transaction Type | Limit (Unit: IDR) |
---|---|
Collection | See Payment Methods appendix |
Disbursement | Bank (BANK_ACCOUNT): 10,000 – 40,000,000 Wallet (EWALLET): 10,000 – 20,000,000 |
Collection API
Collection Apply
Description:
- Create a collection order
URL:/idr/collect/apply
Note: appId IDR, amount IDR, settlement IDR
URL:/usd/collect/apply
Note: appId USD, amount USD, settlement USD
Parameters:
Field | Required | Type | Description |
---|---|---|---|
appId | Yes | Long | Business ID (retrieved from the backend; must pass the corresponding ID for the currency in the URL) |
orderId | Yes | String | Merchant order ID (must be unique, max length 48) |
name | Yes | String | Payer's name (English or Bahasa Indonesia, spaces allowed, 1–30 characters) |
phone | Yes | String | Valid phone number (08xxxxxxxxxx), format reference Phone Format |
Yes | String | Valid email address | |
amount | Yes | String | Transaction amount (Unit: IDR) |
payType | Yes | String | Transaction type: QR, VA, EWALLET |
inBankCode | Yes | String | Payment Method |
callBackUrl | Yes | String | Redirect URL after successful payment |
callBackFailUrl | Yes | String | Redirect URL after failed payment |
notifyUrl | No | String | Callback notification URL |
currency | No | String | Currency (default: IDR) |
subject | No | String | Payment note (transaction title, product name, payment purpose) |
body | No | String | Detailed note |
partnerUserId | Yes | String | Unique user identifier (e.g., userId); must be valid |
sign | Yes | String | Signature |
request
{
"appId": 1054,
"orderId": "M233323000059",
"amount": "300",
"phone": "08230219312",
"email": "23423@qq.com",
"name": "test",
"inBankCode": "014",
"payType": "QR",
"partnerUserId": "149597870",
"sign": "af0gAHkUOyYHu9owQp8NJ4mPEeUW4vuJcjdxqLIzrVw8AvpLSjD1DXupReSG/CyuSkFRyiIvCp5u703AuGGmfgD2gKDH3Ywau41bAbG2jnHJ8mtjiSJ5iWUzanyd4Kr7d1+rETbzUl7/BkW3t0X8UUFdqpxwG8DPUjAwUKfplWDHV7koG51Ozexd80DCsmW6eWdouAZ1uNXGLYmV3ftE3BmfNRtuv1C5bfTJWrTEIOxbF6g2uYOFZTlIgrQgd7/2PsAYwQQXNz8Q8CYl4OxqCv4pXJxaLWPbR5tqZu9og5kn32C9aHW/NlU1y39vzz+4ef81yPAqUV9oHlSMSPrMmw=="
}
response
{
"status": "1",
"error": "00000000",
"msg": "",
"data": {
"orderId": "M233323000059",
"orderNo": "6023071013539074",
"payUrl": "https://a.api-uat.idr.com/1L9zQS2",
"bankCode": "014",
"qrCode": "00020101021228760011ph.ppmi.p2m0111OPDVPHM1XXX0315777148000000017041652948137245442930503001520460165303608540810000.vnd Of Mandalu62310010ph.allbank05062110000803***88310012ph.ppmi.qrph0111OPDVPHM1XXX63042763",
"sign": "YEoA8Y2JzQFGVzwJSqmemm1Kfv/bfyIfCqv2dp7RNzT5B72AQvdD+nt2nR4sL1HWscvmNHyVt5ovAi7MMhy3ziih/sMph+wPx4YjH3W1h5DyBvSlWvaKfKrK5ViomZ0pPYWydwRHnnRnicxToHK9S6qtSy7Q73O0hdz4hJ9p41Th3ycBl2Q9SeqSZYSY1ohcPDhdyRf2y0prb8rHgpBKzxZ5BKX/1bsE9OmsSEHAEYT8OGgko6aNe8XPAhr4G48cpWTftvnGQuzh0O65nuZRI/PF+Axt2zJCVbFHDDSREI9NlAT82ebDqhlVdxQzKE67D1nxgjb3dPmDUYHOBpmwxQ=="
}
}
Response Data Parameters
Field | Type | Description |
---|---|---|
orderId | String | Merchant order ID (must be unique) |
orderNo | String | Platform order ID |
payUrl | String | Returned payment address, or instructions/details in other scenarios |
bankNo | String | Collection account number (VA) |
bankCode | String | Collection bank code |
qrCode | String | QR code content (can be used to generate a QR code) |
sign | String | Signature |
Collection Query
Description:
- Query collection order
URL:/idr/collect/query
URL:/usd/collect/query
Parameters:
Field | Required | Type | Description |
---|---|---|---|
appId | Yes | Long | Business ID (retrieved from the backend; must pass the corresponding ID for the currency in the URL) |
orderId | Yes | String | Merchant order ID |
orderNo | No | String | Platform order ID (faster response) |
sign | Yes | String | Signature |
request
{
"appId": 1054,
"orderId": "M22222000028",
"sign": "EmyJGm3ELzG4FsOd0Krs9ncbSjo4oTGuXWML+7djYla3+VAwd9wS17z38p/7U2ZAjroO04XrE7YXcB1o76Dtyipj3h3bJzs7FYma1QNkMUdt9hh7m8U6hMsMQX7vIWHtXNwz4pbTSC75+kQWXaCew7KoE6LXECdJU8AISgNgeki2TK9R0pCfshr0Z2SZBPeuT6OvIH5LdmqgdZhuqnffGU2qnXk4KMkO848e6/WALLBR+LE1wyKHfPnYVcuKSMVYxkvKyyIL5JIPEgW0o5bh4RCbaUn3NZtyYwrU1uQ3ZDFRThm9j6XAQP+LBlmq3nOePqBtp/VDVarRaV+7FbQg3A=="
}
response
{
"status": "1",
"error": "00000000",
"msg": "",
"data": {
"orderId": "M22222000028",
"orderNo": "6023042811314347",
"amount": "50000.00",
"actualAmount": "0.00",
"fee": "0.00",
"status": 1,
"sign": "fP433ygWVDLVGxYkVnIJj7riGq0U3vyVX+MbBAImxfGLZkZcEAHVEoVYuULZSmXAAXKRSyd67WlDNm+24pougM54ofAoH4HMtCL2tfCoBReFyz3z02AGKkrKE2xWhSpWoqfQoBvzwuN5iGMMu0s9Q1YvqiwJ8WDVIENnmiIyD8qDJN7caHTW2US14/faG+69AvnuIgJ/nu7/jogOlgEYdZdVYU7gcRDE+d47KjlFGswQkJ/h/uzV7cWtUqrtOO7ZnZ3/z33Xx8awokX36QoYcPSWAU0h+Ij9O9402HNhm1eTbYcLU0uI/z8xCAtyAI/tTyiFijpiNlxUKQj+zKsILw=="
}
}
Response Data Parameters
Field | Type | Description |
---|---|---|
orderId | String | Merchant order ID (must be unique) |
orderNo | String | Platform order ID |
amount | String | Transaction amount |
actualAmount | String | Received amount |
fee | String | Fee |
status | Integer | Status (0 Not started, 1 Processing, 2 Success (final), 3 Failed (final), -1 Exception pending confirmation) |
payTime | String | Payment success time (available when status = 2, 4, 5) (Indonesia Time), format: yyyy-MM-dd HH:mm:ss |
errorMsg | String | Failure reason (available when status = 3) |
sign | String | Signature |
Payment Methods
IDR Orders
payType | inBankCode | Limit | Description |
---|---|---|---|
QR | dynamic | 10000-10000000 | QRIS |
EWALLET | DANA | 10000-20000000 | Dana Wallet |
EWALLET | SHOPEEPAY | 10000-20000000 | ShopeePay |
EWALLET | LINKAJA | 10000-20000000 | LinkAja |
CASHIER | OVO | 10000-20000000 | OVO Wallet |
VA | 002 | 10000-20000000 | BRI Bank |
VA | 009 | 10000-20000000 | BNI Bank |
VA | 013 | 10000-20000000 | PERMATA Bank |
VA | 022 | 10000-20000000 | CIMB Bank |
USD Orders
payType | inBankCode | Limit | Description |
---|---|---|---|
QR | ID_QRIS_USD | 0.99-500 | QRIS |
EWALLET | ID_DANA_USD | 0.99-1000 | Dana Wallet |
EWALLET | ID_SHOPEEPAY_USD | 0.99-1000 | ShopeePay |
EWALLET | ID_LINKAJA_USD | 0.99-1000 | LinkAja |
CASHIER | ID_OVO_USD | 0.99-1000 | OVO Wallet |
VA | ID_BRI_USD | 0.99-1000 | BRI Bank |
VA | ID_BNI_USD | 0.99-1000 | BNI Bank |
VA | ID_PERMATA_USD | 0.99-1000 | PERMATA Bank |
VA | ID_CIMB_USD | 0.99-1000 | CIMB Bank |
Disbursement API
Disbursement Application
Description:
- Create a disbursement order
URL:/idr/pay/apply
Parameters:
Field | Required | Type | Description |
---|---|---|---|
appId | Yes | Long | Business ID (retrieved from the backend; must pass the corresponding ID for the currency in the URL) |
orderId | Yes | String | Merchant order ID (must be unique, max length 48) |
amount | Yes | String | Transaction amount (unit: IDR) |
accountType | Yes | String | Account type: BANK_ACCOUNT, EWALLET |
bankCode | Yes | String | Bank Code |
accountNo | Yes | String | User bank account number |
name | Yes | String | Recipient name (format: English or Indonesian letters, case-insensitive, spaces allowed, 1-30 characters, "firstName middleName lastName" (middleName is optional), special characters allowed: '.-)) |
phone | Yes | String | Valid phone number (format reference: Phone number format) |
Yes | String | Valid email | |
notifyUrl | No | String | Callback URL |
subject | No | String | Payment remark (transaction title, product name, payment reason) |
body | No | String | Remark details |
partnerUserId | Yes | String | Unique user identifier (e.g., userId). Required for risk control system. Must be valid, otherwise transactions may be affected. Format: numbers, letters, or common symbols -~!@#$%&*()_. |
sign | Yes | String | Signature |
request(accountType为BANK_CARD类型时)
{
"appId": 1054,
"orderId": "M100000450012",
"amount": "500",
"accountType": "BANK_ACCOUNT",
"bankCode": "014",
"accountNo": "09876543210",
"name": "john doe",
"phone": "08276543210",
"email": "johndoe@cashfree.com",
"subject": "iphone13",
"body": "ProMotion technology with adaptive refresh rates up to 120Hz",
"partnerUserId": "149597870",
"sign": "I1PeK3eJOVsFFNowxVRqMXpeWm1lr/BcRpBi8WsW4wVo1+5CC3JsrFq/m/L2O69NzKHvtDWi4zia3DL3dPut0yMyUyqL91LNCSaeISbGsQPlhEsQpyTOryS/RKOfsrn2Xo37SCF/phAvndOk2jwwGwqM5xLz1ms9Ukl85wv27QFNrXIMxK2p18oe7MpMYrgf+xvEBE/VqCtKMtN9pO449wWwXzHWNPbZ76s4pAvKwRE9yXQDr7Iw14Dktcnl1FoLM4gWM/obkO+mz6SyAGDuXhVh/+OD/IGNiCyTCNq6ciQY28UnCFV6ZIP40gxsFhfBJKbK+Raw7y1Bh912ifYfug=="
}
response
{
"status": "1",
"error": "00000000",
"msg": "",
"data": {
"orderId": "M100000450013",
"orderNo": "3023062014149637",
"sign": "LmhUnkw5j0pMiimsG8rKwdNNZGvXH5MpSmD6mdHZwq1SQwuK5BohmdEoqKB/jkMk28o3da4Cxh6Q+tW97+yTCemRrF+dMaHA73rpOeUuujKQl/UcFvJuMhfLBa2tp09L71NzoBqpPD6aXf37mYAz8E1HmERwFPpac5FVxIYanHG8cqmMLJYsVmHTSxWavgWU03ys9UczBePkBiR8sl2FSOhFABB0wAP28lswrV/ABS68IsLKtyd1fyI3GBfSbIK5nDEEnlE+EdElFdLs9taAxJImeVF1x4eT47+bkPJ2qS8z3K8QGzKLF3W+8SiRZGfSwDTsLKH+2Vycvy5auRl+ag=="
}
}
Response Data Parameters
Field | Required | Type | Description |
---|---|---|---|
orderId | String | Merchant order ID (must be unique) | |
orderNo | String | Platform order ID | |
sign | String | Signature |
Disbursement Query
Description:
- Query a disbursement order
URL: /idr/pay/query
Parameters:
Name | Required | Type | Description |
---|---|---|---|
appId | Yes | Long | Business ID (retrieved from the backend; must pass the corresponding ID for the currency in the URL) |
orderId | Yes | String | Merchant order ID |
orderNo | No | String | Platform order ID (faster response) |
sign | Yes | String | Signature |
request
{
"appId": 1000,
"orderId": "M1234567111",
"orderNo": "3022111516571436",
"sign": "ZxkVZL+GAyv0VhvWn4IvuYahTzxgQuthkuV2ONWiqIfIDb2avvHlFOUJVzqZi1q8CPHXZm1ltanRTRVTxfsuftLvGeDioUHglWt46/RU6c1OPznpLGsZ35Q3n5tW2y1EnOsxPynXBFLuDQy+aZ3l9u6AQ30T0zQexMGT+IxuFkmUp02g/6juaHa5ZgNMv7lN67ixIp162wrM7OJuaOif872QijSceRdZhzaMGImAwB0D4MosRV4WMBOKkwgPdmS7GuZN66YUidXk3wTGqX3MYRw6M0kj4eNegSUwPXvp4q4p0KO8Y3xUMld54GY2ApX3WN3CBtC/vpJqEszjGBbbGg=="
}
response — Order Failed
{
"status": "1",
"error": "00000000",
"msg": "",
"data": {
"orderId": "M1234567111",
"orderNo": "3022111516571436",
"amount": "100000.00",
"fee": "0.00",
"status": 3,
"errorMsg": "Đơn hàng không tồn tại",
"sign": "KKuvCl0SuNANJs+l2ogDaJm8pmV+Hi+Xa7q27vJ6D1Ehs4aOp13kRbITfJAhczh3T81BE9qwHeJaYwf+r0EypKM9TL6pMwfG8Az4gRy1D57wiUaVjl2PWcvbEqrn1hL0b+btkjvAM9I+CcSv+wuOW3/uku17Ws3FhgJLj9sFsQUBAPjDO+758VnwBytCOLBmljLBXyKgNgpmFQ1/DNkqWl0UNzyLK45Zw3yf5NiwhEFbvW0jlOWlfu/ql4hluISUQG573jEoFCBEnQLb2tQoRZj1QYNRCXPf5lbej0vzqbEwvR9h+ZOf255t1MocJkdIe463DTV5U3KZdVT87HMagw=="
}
}
response — Order Successful
{
"status": "1",
"error": "00000000",
"msg": "",
"data": {
"orderId": "M1234567112",
"orderNo": "3022111517401574",
"amount": "100000.00",
"fee": "1003.00",
"status": 2,
"payTime": "2024-03-01 23:59:59",
"sign": "khPtOmGq+cpKX0HFAI/lbP0dx4oVyNAnL5oLsdmhDJdASlQm0yg5I3o+MhImYggEsL6c2bo5fP29t54OZFqSdQDfIuNDvGbAMAr4mRBxc0hoHLkBLyyagfVPBLyQA1JY8XV3ZL4ySzQ3ZQnMCfrh2K39ueUuz6HpZ03Hj0KYijVRCXAZaio/L5jfLBT12QXmvIfAHa8s/k9flhK05ENHPep3zjj/MZGOEaX7jkEJLfjK0duypDCa61BRQjM+oePOdVsgleIl1Yf98UAxMDZ/A3912KFHEb+/jvmdnulNbiJFyuT1fEe+j2teUgw3vFsZAtwNWAgxhC7UO+N0Q5z4EA=="
}
}
Response Data Parameters
Field | Type | Description |
---|---|---|
orderId | String | Merchant order ID (must be unique) |
orderNo | String | Platform order ID |
amount | String | Transaction amount |
fee | String | Transaction fee |
status | Integer | Order status (0: Not Started, 1: Processing, 2: Disbursement Successful (final), 3: Disbursement Failed (final), -1: Exception Pending Confirmation) |
payTime | String | Success time (value available when status=2) (Indonesia time), format: yyyy-MM-dd HH:mm:ss |
errorMsg | String | Failure reason (value available when status=3) |
sign | String | Signature |
Bank Codes
Bank Codes for BANK_ACCOUNT
bankCode | bankName |
---|---|
567 | ALLO BANK INDONESIA |
116 | BANK ACEH SYARIAH |
947 | BANK ALADIN SYARIAH |
037 | BANK ARTHA GRAHA INTERNASIONAL |
213 | BANK BTPN |
547 | BANK BTPN SYARIAH |
076 | BANK BUMI ARTA |
054 | BANK CAPITAL INDONESIA |
036 | BANK CHINA CONSTRUCTION |
949 | BANK CTBC |
011 | BANK DANAMON |
722 | BANK DANAMON SYARIAH |
111 | BANK DKI |
724 | BANK DKI SYARIAH |
945 | BANK IBK INDONESIA |
164 | BANK ICBC INDONESIA |
513 | BANK INA PERDANA |
555 | BANK INDEX SELINDO |
542 | BANK JAGO/SYARIAH |
472 | BANK JASA JAKARTA |
097 | BANK MAYAPADA |
553 | BANK MAYORA |
506 | BANK MEGA SYARIAH |
147 | BANK MUAMALAT |
548 | BANK MULTI ARTA SENTOSA |
033 | BANK OF AMERICA NA |
069 | BANK OF CHINA |
019 | BANK PAN INDONESIA |
110 | BANK PEMBANGUNAN DAERAH JAWA BARAT DAN BANTEN |
425 | BANK PEMBANGUNAN DAERAH JAWA BARAT DAN BANTEN SYARIAH |
167 | BANK QNB INDONESIA |
494 | BANK RAYA INDONESIA |
047 | BANK RESONA PERDANIA |
451 | BANK SYARIAH INDONESIA |
566 | BANK VICTORIA INTERNASIONAL |
014 | BCA |
501 | BCA Digital |
536 | BCA SYARIAH |
009 | BNI |
129 | BPD BALI |
137 | BPD BANTEN |
133 | BPD BENGKULU |
112 | BPD DIY |
736 | BPD DIY SYARIAH |
115 | BPD JAMBI/SYARIAH |
113 | BPD JAWA TENGAH |
725 | BPD JAWA TENGAH SYARIAH |
114 | BPD JAWA TIMUR/SYARIAH |
123 | BPD KALIMANTAN BARAT |
727 | BPD KALIMANTAN BARAT SYARIAH |
122 | BPD KALIMANTAN SELATAN |
728 | BPD KALIMANTAN SELATAN SYARIAH |
125 | BPD KALIMANTAN TENGAH |
124 | BPD KALIMANTAN TIMUR DAN KALIMANTAN UTARA |
729 | BPD KALIMANTAN TIMUR DAN KALIMANTAN UTARA SYARIAH |
131 | BPD MALUKU DAN MALUKU UTARA |
130 | BPD NTT |
128 | BPD NUSA TENGGARA BARAT SYARIAH |
119 | BPD RIAU KEPRI |
126 | BPD SULAWESI SELATAN DAN SULAWESI BARAT |
735 | BPD SULAWESI SELATAN DAN SULAWESI BARAT SYARIAH |
135 | BPD SULAWESI TENGGARA |
127 | BPD SULAWESI UTARA DAN GORONTALO |
118 | BPD SUMATERA BARAT/NAGARI SYARIAH |
120 | BPD SUMATERA SELATAN BANGKA BELITUNG/SYARIAH |
117 | BPD SUMATERA UTARA |
733 | BPD SUMATERA UTARA SYARIAH |
002 | BRI |
200 | BTN/SYARIAH |
022 | CIMB NIAGA/SYARIAH |
031 | CITIBANK NA |
046 | DBS |
161 | GANESHA |
008 | MANDIRI |
157 | MASPION |
016 | MAYBANK INDONESIA/SYARIAH |
426 | MEGA |
151 | MESTIKA DHARMA |
485 | MNC BANK |
042 | MUFG BANK |
490 | NEO COMMERCE |
503 | NATIONALNOBU |
028 | OCBC NISP/SYARIAH |
013 | PERMATA/SYARIAH |
484 | PT BANK KEB HANA INDONESIA |
564 | PT BANK MANDIRI TASPEN POS |
523 | PT BANK SAHABAT SAMPOERNA |
068 | PT BANK WOORI SAUDARA INDONESIA 1906 |
041 | PT. BANK HSBC INDONESIA |
132 | PT.BANK PEMBANGUNAN DAERAH PAPUA |
535 | SEABANK |
153 | SINARMAS |
734 | SINARMAS SYARIAH |
050 | STANDARD CHARTERED BANK |
023 | UOB INDONESIA |
Wallet Codes for EWALLET
bankCode | bankName |
---|---|
DANA | Dana eWallet |
OVO | OVO eWallet |
GOPAY | GoPay eWallet |
LINKAJA | LinkAja eWallet |
SHOPEEPAY | ShopeePay eWallet |