Create Payin Order
API EndPoint
POST baseUrl
+ /api/payIn
Request Parameters
Parameter | Required | Type | Description | Example |
---|---|---|---|---|
currency | Y | string(32) | Currency code | IDR |
payType | Y | int | Pay product type | Payin PayType Enum |
amount | Y | decimal(20,0) | Amount | Min Amount 10000 |
reusableStatus | Y | boolean | Multiple payments | Currently it can only be false |
mchOrderNo | Y | string(32) | Merchant order number | |
expireTime | Y | long | Expiration time | Expiration time, Some payment products support |
notifyUrl | Y | string(250) | Webhooks url | |
nonceStr | Y | string(32) | Random string | |
remark | Y | string(32) | Remark | Please use English characters or unaccented Spanish |
realName | Y | string(64) | User Name | |
phone | N | string(32) | User phone number | |
email | N | string(64) | User email |
TIP
Please note that when you choose to use the e-wallet payment method, we will return to the payment landing page of the channel. The channel may choose to display the QR code or directly launch the APP payment based on the user's device environment. If you use the APP embedded webview technology solution to render the page, please pay attention to the compatible processing URL SCHEME to launch the logic of the App payment.
Request Example
curl -L 'baseUrl/api/payIn' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"realName":"Reza Wijaya","amount":"20000.00","reusableStatus":false,"payType":"43","expireTime":3600,"mchOrderNo":"1386556787811426305","notifyUrl":"https://merchant.com/webhooks/payin","currency":"IDR","remark":"Electronic Cigarettes","nonceStr":"16a5a70f43384134bfae33acc77132e0"}'
2
3
4
5
Response Parameters
Parameter | Type | Description |
---|---|---|
merchantId | long | Merchant id |
mchOrderNo | string(32) | Merchant order number |
orderNo | string(32) | Platform order number |
amount | decimal(20,0) | Amount |
orderFee | decimal(20,0) | Fee |
payCode | string(32) | Payment account VA/QRIS original QR code text/QIRS QR code network image/QRIS Base64 format QR code |
payUrl | string(250) | Payment url |
payDeskUrl | string(250) | Paydesk url |
TIP
If you use QRIS (payType=41) as your payment product and choose to generate your own QRIS image, please use the payCode field first. This field is subject to upstream channel restrictions and may have three return values:
- QRIS original QR code text
00020101021226670016COM.XXXXBANK.COM01189360050300000908970214557141290981760303UKE51370014ID.CO.QRIS.WWW0215ID2024357755824520473795303360540820000.005802ID5911Artha Tekno6015JAKARTA SELATAN61051271062270108M7KZZ27Q0703A010804POSP6304F72B
- QRIS network image address
https://xxxxx.qris.com/abc.png
- QIRS QR code in Base64 image format
data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQAQAAAACoxAthAAAEfUlEQVR4Xu2XQZKcMAxFxYpjcFMwN+1jeIXz35e7pzNJJcUulZaLYtziPy0+kszEuL3ie+Dvq5C7q5C7q5C7q5C7659GemgtuVkfxxhnD9+3K7ZrHU2P8x5bIUbYSICyb03xHrtZ4kObx75qM5WFDMvykWRyVXgGh3+myUq4FPKOyOTBErsHJi/KINszUsiviJWx6g6exl75czpfyBei24nJlKX1yPRz4Wn6zJXKQkYeFh1v/3Bh+7fz5RfNpyCvpbgH3dExuVGWhDPyUhVik+UhMig5+fxEoXldnHQ0VyFp8mPpkqn2GH0HM5CPt+b9geHcB25zL2QQwUzpY6Ua9ehCr40K0qOPbIO3UIiRpYeMPTvGwroyFWkeiQb9FgpJpGNp8DQFgEHPEoxMwhjE9kJsMj/30Icum8VtOwVZk79p5A9HeNqCOiTuQ+GibZ+sK9O2swoZ2Mi6PPRAQspxRRydsgw2iv/0Xj4beWRcymE/dxWnB500WO1XQLk6cyGJ7BwWWKr42fkgsdj6afj2zeTPRTgjEO8rvASjgx8cuxtiKnbihSQSuCeEoBxWZM+27XR0e1WscxZisbylMhEITIeHq/EpsM+FTJMzgsmIoZZpqfJ46E23t0ISOahGjJUgbGbDXkai2JOOBpTthRjRoPsqSMUvlO/ehuLav5n82cg0M6jAjKN8BAuNTFbFhju9kER2unhMnwcTbydJsml+ul3IRBZOWMsoRW0oRSLx1dfBRx2rkEEEPxVptnq4nSWTeGQ2C95M/nDkEf4fQYLT7SyTT2fQXUn8FhDs7AuxpR0PtZXDJ5Gpv/CZoXdYcL1M/nBkMOvkM34iftC/4RbGc+LNgcXiQobN3BVn9MlnIZjcgs690CMIBwuxye5Ts4P5Jpw6PGlwjM1H2emF2GQ38pgOK37K9lX6l/mq2xkpJBHioc6Vn4BEYva1Uu3Oo/rMVcjwZ9thYxc7PF41qSBWU6tOWEiajJ+nWxhkzNE3cvqRx53ud1FImhyxUX4eeuifhl+hcaens0oVLySRxdV4+jhAb5NPvKUyEQ96uZG5kEQ83zqfbbL0sMkY7qE30u1OnkJALBAVUGpnTM7IYtksSL+CQtJkjHUdQs3RNzNcq6pRDsfOZivEiMTW80jtzDVcq1JytyBlhbgsdRZgY/jI0J/F467Z6mMWqlgXZyEgCk59CqRXNWo1H7gHHU3Og1ghIBaDhSfeQUQHRI67GWnvjfzxyEk1MuXYd8DD9XkM1vmbRv5wRA83/+ILZCHyLM5s6shFsBAQL/schwUCkVCH3DGZtNPzQubiJNXEU0FyKEiWlmo1l+uw86MQi4Pyk4eP8OiLFar5yGj5z4KSOE8hRjbdznnJZAts8sm37iNcrsNJCklkPvV50Wxpk+1y23VIHr+IA6KQL4SI76IW7NVvG577Dl7IG6L/BbgwmRk4z9bU62lbqdtCEtENxI9GHhnT7UzIngyFTCTCflKTnaFnajSC+UEi2zlByFCIBbdWIXdXIXdXIXdXIXfX/4T8ABVEc+uFDSKpAAAAAElFTkSuQmCC
Response Example
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556787811426305",
"orderNo": "PAYIN8551844049125523456",
"payCode": "",
"payUrl": "https://m.dana.id/link/pay?bizNo=20241202111212800110166154827",
"payDeskUrl": "https://m.dana.id/link/pay?bizNo=20241202111212800110166154827",
"amount": "20000",
"orderFee": "1700"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556787811426305",
"orderNo": "PAYIN8551844049125523456",
"payCode": "00020101021226670016COM.XXXXBANK.COM01189360050300000908970214557141290981760303UKE51370014ID.CO.QRIS.WWW0215ID2024357755824520473795303360540820000.005802ID5911Artha Tekno6015JAKARTA SELATAN61051271062270108M7KZZ27Q0703A010804POSP6304F72B",
"payUrl": "",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551844049125523456",
"amount": "20000",
"orderFee": "1700"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556787811426305",
"orderNo": "PAYIN8551844049125523456",
"payCode": "https://m.qris.id/link/pay?bizNo=20241202111212800110166154827.jpg",
"payUrl": "https://m.qris.id/link/pay?bizNo=20241202111212800110166154827.jpg",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551844049125523456",
"amount": "20000",
"orderFee": "1700"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556787811426305",
"orderNo": "PAYIN8551844049125523456",
"payCode": "data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQAQAAAACoxAthAAAEfUlEQVR4Xu2XQZKcMAxFxYpjcFMwN+1jeIXz35e7pzNJJcUulZaLYtziPy0+kszEuL3ie+Dvq5C7q5C7q5C7q5C7659GemgtuVkfxxhnD9+3K7ZrHU2P8x5bIUbYSICyb03xHrtZ4kObx75qM5WFDMvykWRyVXgGh3+myUq4FPKOyOTBErsHJi/KINszUsiviJWx6g6exl75czpfyBei24nJlKX1yPRz4Wn6zJXKQkYeFh1v/3Bh+7fz5RfNpyCvpbgH3dExuVGWhDPyUhVik+UhMig5+fxEoXldnHQ0VyFp8mPpkqn2GH0HM5CPt+b9geHcB25zL2QQwUzpY6Ua9ehCr40K0qOPbIO3UIiRpYeMPTvGwroyFWkeiQb9FgpJpGNp8DQFgEHPEoxMwhjE9kJsMj/30Icum8VtOwVZk79p5A9HeNqCOiTuQ+GibZ+sK9O2swoZ2Mi6PPRAQspxRRydsgw2iv/0Xj4beWRcymE/dxWnB500WO1XQLk6cyGJ7BwWWKr42fkgsdj6afj2zeTPRTgjEO8rvASjgx8cuxtiKnbihSQSuCeEoBxWZM+27XR0e1WscxZisbylMhEITIeHq/EpsM+FTJMzgsmIoZZpqfJ46E23t0ISOahGjJUgbGbDXkai2JOOBpTthRjRoPsqSMUvlO/ehuLav5n82cg0M6jAjKN8BAuNTFbFhju9kER2unhMnwcTbydJsml+ul3IRBZOWMsoRW0oRSLx1dfBRx2rkEEEPxVptnq4nSWTeGQ2C95M/nDkEf4fQYLT7SyTT2fQXUn8FhDs7AuxpR0PtZXDJ5Gpv/CZoXdYcL1M/nBkMOvkM34iftC/4RbGc+LNgcXiQobN3BVn9MlnIZjcgs690CMIBwuxye5Ts4P5Jpw6PGlwjM1H2emF2GQ38pgOK37K9lX6l/mq2xkpJBHioc6Vn4BEYva1Uu3Oo/rMVcjwZ9thYxc7PF41qSBWU6tOWEiajJ+nWxhkzNE3cvqRx53ud1FImhyxUX4eeuifhl+hcaens0oVLySRxdV4+jhAb5NPvKUyEQ96uZG5kEQ83zqfbbL0sMkY7qE30u1OnkJALBAVUGpnTM7IYtksSL+CQtJkjHUdQs3RNzNcq6pRDsfOZivEiMTW80jtzDVcq1JytyBlhbgsdRZgY/jI0J/F467Z6mMWqlgXZyEgCk59CqRXNWo1H7gHHU3Og1ghIBaDhSfeQUQHRI67GWnvjfzxyEk1MuXYd8DD9XkM1vmbRv5wRA83/+ILZCHyLM5s6shFsBAQL/schwUCkVCH3DGZtNPzQubiJNXEU0FyKEiWlmo1l+uw86MQi4Pyk4eP8OiLFar5yGj5z4KSOE8hRjbdznnJZAts8sm37iNcrsNJCklkPvV50Wxpk+1y23VIHr+IA6KQL4SI76IW7NVvG577Dl7IG6L/BbgwmRk4z9bU62lbqdtCEtENxI9GHhnT7UzIngyFTCTCflKTnaFnajSC+UEi2zlByFCIBbdWIXdXIXdXIXdXIXfX/4T8ABVEc+uFDSKpAAAAAElFTkSuQmCC",
"payUrl": "data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQAQAAAACoxAthAAAEfUlEQVR4Xu2XQZKcMAxFxYpjcFMwN+1jeIXz35e7pzNJJcUulZaLYtziPy0+kszEuL3ie+Dvq5C7q5C7q5C7q5C7659GemgtuVkfxxhnD9+3K7ZrHU2P8x5bIUbYSICyb03xHrtZ4kObx75qM5WFDMvykWRyVXgGh3+myUq4FPKOyOTBErsHJi/KINszUsiviJWx6g6exl75czpfyBei24nJlKX1yPRz4Wn6zJXKQkYeFh1v/3Bh+7fz5RfNpyCvpbgH3dExuVGWhDPyUhVik+UhMig5+fxEoXldnHQ0VyFp8mPpkqn2GH0HM5CPt+b9geHcB25zL2QQwUzpY6Ua9ehCr40K0qOPbIO3UIiRpYeMPTvGwroyFWkeiQb9FgpJpGNp8DQFgEHPEoxMwhjE9kJsMj/30Icum8VtOwVZk79p5A9HeNqCOiTuQ+GibZ+sK9O2swoZ2Mi6PPRAQspxRRydsgw2iv/0Xj4beWRcymE/dxWnB500WO1XQLk6cyGJ7BwWWKr42fkgsdj6afj2zeTPRTgjEO8rvASjgx8cuxtiKnbihSQSuCeEoBxWZM+27XR0e1WscxZisbylMhEITIeHq/EpsM+FTJMzgsmIoZZpqfJ46E23t0ISOahGjJUgbGbDXkai2JOOBpTthRjRoPsqSMUvlO/ehuLav5n82cg0M6jAjKN8BAuNTFbFhju9kER2unhMnwcTbydJsml+ul3IRBZOWMsoRW0oRSLx1dfBRx2rkEEEPxVptnq4nSWTeGQ2C95M/nDkEf4fQYLT7SyTT2fQXUn8FhDs7AuxpR0PtZXDJ5Gpv/CZoXdYcL1M/nBkMOvkM34iftC/4RbGc+LNgcXiQobN3BVn9MlnIZjcgs690CMIBwuxye5Ts4P5Jpw6PGlwjM1H2emF2GQ38pgOK37K9lX6l/mq2xkpJBHioc6Vn4BEYva1Uu3Oo/rMVcjwZ9thYxc7PF41qSBWU6tOWEiajJ+nWxhkzNE3cvqRx53ud1FImhyxUX4eeuifhl+hcaens0oVLySRxdV4+jhAb5NPvKUyEQ96uZG5kEQ83zqfbbL0sMkY7qE30u1OnkJALBAVUGpnTM7IYtksSL+CQtJkjHUdQs3RNzNcq6pRDsfOZivEiMTW80jtzDVcq1JytyBlhbgsdRZgY/jI0J/F467Z6mMWqlgXZyEgCk59CqRXNWo1H7gHHU3Og1ghIBaDhSfeQUQHRI67GWnvjfzxyEk1MuXYd8DD9XkM1vmbRv5wRA83/+ILZCHyLM5s6shFsBAQL/schwUCkVCH3DGZtNPzQubiJNXEU0FyKEiWlmo1l+uw86MQi4Pyk4eP8OiLFar5yGj5z4KSOE8hRjbdznnJZAts8sm37iNcrsNJCklkPvV50Wxpk+1y23VIHr+IA6KQL4SI76IW7NVvG577Dl7IG6L/BbgwmRk4z9bU62lbqdtCEtENxI9GHhnT7UzIngyFTCTCflKTnaFnajSC+UEi2zlByFCIBbdWIXdXIXdXIXdXIXfX/4T8ABVEc+uFDSKpAAAAAElFTkSuQmCC",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551844049125523456",
"amount": "20000",
"orderFee": "1700"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"msg": "Payin_Order_Error",
"code": 500
}
2
3
4
Query Payin Order
API EndPoint
POST baseUrl
+ /api/payInQuery
Request Parameters
Parameter | Required | Type | Example | Description |
---|---|---|---|---|
mchOrderNo | N | string(32) | 1386556575370063873 | Merchant order number |
orderNo | N | string(32) | PAYIN8551843837024997376 | Platform order number |
nonceStr | Y | string(32) | 9459931608 | Random string |
TIP
We recommend using orderNo (platform order number) first. At least one of the platform order number and the merchant order number must be passed.
Request Example
curl -L 'baseUrl/api/payInQuery' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"mchOrderNo":"1386556575370063873","nonceStr":"9459931608","orderNo":"PAYIN8551843837024997376"}'
2
3
4
5
Response Parameters
Parameter | Type | Description |
---|---|---|
merchantId | int | Merchant id |
mchOrderNo | string(32) | Merchant order number |
orderNo | string(32) | Platform order number |
channelOrderNo | string(32) | Channel order number |
payType | string(32) | Payin PayType Enum |
payCode | string(32) | Payment Code |
payUrl | string(250) | Payment url |
amount | decimal(20,0) | Amount |
fee | decimal(20,4) | Fee |
orderStatus | string(32) | Payin Order Status Enum |
completionTime | yyyy-MM-dd HH:mm:ss | Completion time |
Response Example
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556575370063873",
"orderNo": "PAYIN8551843837024997376",
"payType": "43",
"payCode": "",
"payUrl": "https://m.dana.id/link/pay?bizNo=202412021112128001101660361270",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551843837024997376",
"amount": "20000",
"fee": "1700",
"orderStatus": "PAYING",
"completionTime": null,
"nonceStr": null
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1386556575370063873",
"orderNo": "PAYIN8551843837024997376",
"payType": "43",
"payCode": "",
"payUrl": "https://m.dana.id/link/pay?bizNo=202412021112128001101660361270",
"payDeskUrl": "https://idpaydesk2.brcashypro.com/views/pay.html?PAYIN8551843837024997376",
"amount": "20000",
"fee": "1700",
"orderStatus": "SUCCESS",
"completionTime": "2024-12-02 15:40:50",
"nonceStr": null
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Async Webhook Notification
The webhooks url is provided by the merchant
POST Merchant NotifyUrl
Webhook Request Parameters
Parameter | Type | Description |
---|---|---|
merchantId | int | Merchant id |
mchOrderNo | string(32) | Merchant order number |
orderNo | string(32) | Platform order number |
amount | decimal(20,2) | Amount |
fee | decimal(20,4) | Fee |
orderStatus | string(32) | Order status |
payUrl | string(32) | Payment url |
payCode | string(32) | Payment VA/QRCODE |
payType | string(32) | Pay product type |
completionTime | yyyy-MM-dd HH:mm:ss | Completion time |
nonceStr | string(32) | Random string |
Webhook Request Example
curl -L 'merchant.com/webhooks/payin' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"amount":20000.00,"completionTime":"2024-12-02 12:07:06","fee":2500.0000,"mchOrderNo":"1386503284355244033","merchantId":"1002001","nonceStr":"1733116026894","orderNo":"PAYIN8551790545658687488","orderStatus":"SUCCESS","payCode":"OR.GPNQR..INOPROID_BS","payType":"41","payUrl":"https://payurl.com"}'
2
3
4
5
{
"amount": 20000.0,
"completionTime": "2024-12-02 12:07:06",
"fee": 2500.0,
"mchOrderNo": "1386503284355244033",
"merchantId": "1002001",
"nonceStr": "1733116026894",
"orderNo": "PAYIN8551790545658687488",
"orderStatus": "SUCCESS",
"payCode": "OR.GPNQR..INOPROID_BS",
"payType": "41",
"payUrl": "https://payurl.com"
}
2
3
4
5
6
7
8
9
10
11
12
13
{
"amount": 20000.0,
"completionTime": "2024-12-02 12:07:06",
"fee": 2500.0,
"mchOrderNo": "1386503284355244033",
"merchantId": "1002001",
"nonceStr": "1733116026894",
"orderNo": "PAYIN8551790545658687488",
"orderStatus": "FAIL",
"payCode": "OR.GPNQR..INOPROID_BS",
"payType": "41",
"payUrl": "https://payurl.com"
}
2
3
4
5
6
7
8
9
10
11
12
13
TIP
When the webhooks response HTTP status code is 200, 301 or 302, we believe that the merchant has successfully received and processed the callback. For other statuses, we believe that the merchant has failed to process the callback.
After the webhooks fails, it will be retried in 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 minutes
, and the webhooks will be retried 10 times in total