Create Paydesk Order
API EndPoint
POST baseUrl + /api/payDesk
Request Parameters
| Parameter | Required | Type | Description | Example |
|---|---|---|---|---|
currency | Y | string(32) | Currency code | USD |
amount | Y | decimal(20,2) | Amount | [1,500] |
reusableStatus | N | boolean | Multiple payments | Currently it can only be false |
mchOrderNo | Y | string(32) | Merchant order number | Must not be duplicate |
expireTime | N | long | Expire time | Default 7 days if not provided (unit: seconds) |
notifyUrl | Y | string(250) | Webhooks url | |
nonceStr | Y | string(32) | Random string | |
realName | Y | string(64) | User Name | No special characters allowed |
phone | Y | string(32) | User phone number | Must be valid format, provide real number |
email | Y | string(64) | User email | Must be valid format, provide real email |
idType | Y | string(32) | Payer ID Type | Payer ID Type |
idCard | Y | string(32) | Payer ID Number | Invalid ID may cause some transactions to fail |
returnUrl | N | string(250) | Jump Url | User will be redirected here after successful payment |
remark | N | string(32) | Remark | Please use English characters or unaccented Spanish |
TIP
User information will be sent to the bank for verification, and true and valid information must be filled in.
Request Example
curl -L 'baseUrl/api/payDesk' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"nonceStr":"1733129817080","currency":"PEN","amount":1064800,"reusableStatus":false,"mchOrderNo":"1313066365288624128","expireTime":28982,"notifyUrl":"https://merchant.com/payIn/callback","remark":"payin order","realName":"HAMZAN WADI ","phone":"87761734941","idType":"1","idCard":"5203092009900005"}'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 | | payUrl | string(250) | Payment Url | | expireTime | date | ExpireTime | |
Response Example
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "1002001",
"mchOrderNo": "1313066365288624128",
"orderNo": "PAYDESK38318551848652059590656",
"payUrl": "https://paydesk.testpage.com/PAYDESK38318551848652059590656",
"amount": "100000",
"expireTime": "2022-12-06 17:48:40"
}
}PayDesk Order Query
API EndPoint
POST baseUrl + /api/payDeskQuery
Request Parameters
| Parameter | Required | Type | Example | Description |
|---|---|---|---|---|
mchOrderNo | N | string(32) | 1386556787811426305 | Merchant order number |
orderNo | N | string(32) | PAYIN8551844049125523456 | Platform order number |
nonceStr | Y | string(32) | 1863484722378907648 | 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/payDeskQuery' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d ' {"mchOrderNo":"202411301909131862936942783582208","nonceStr":"1138688daof9gnay3dt9j4wktxt1z99ww"}'Response Parameters
| Parameter | Type | Description |
|---|---|---|
merchantId | int | Merchant id |
mchOrderNo | string(32) | Merchant order number |
orderNo | string(32) | Platform order number |
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 |
payCode | string(32) | Payment account VA |
payUrl | string(250) | Payment QR code, some ways have QR code ,like QRIS |
payDeskUrl | string(250) | Payment Url |
Response Example
{
"msg": "SUCCESS",
"code": 200,
"data": {
"merchantId": "3002112",
"mchOrderNo": "202411301909131862936942783582208",
"orderNo": "PAYDESK39568551277959484616704",
"payUrl": "https://idpaydesk2.brcashypro.com/index.html?PAYDESK39568551277959484616704",
"amount": "1000000",
"fee": "0",
"orderStatus": "PAYING",
"completionTime": null,
"nonceStr": null
}
}Async Webhook Notification
The webhooks url is provided by the merchant
POST Merchant NotifyUrl
Webhook Request Parameters
| Parameter | Type | Description |
|---|---|---|
mchOrderNo | string(32) | Merchant order number |
orderNo | string(32) | Platform order number |
amount | decimal(20,2) | Amount |
fee | decimal(20,4) | Fee |
payUrl | string(250) | Payment QR code, some ways have QR code ,like QRIS |
orderStatus | string(32) | Payin Order Status Enum |
completionTime | yyyy-MM-dd HH:mm:ss | Completion time |
nonceStr | string(32) | Random string |
Webhook Request Example
curl -L 'merchant.com/webhooks/paydesk' \
-H 'MerchantId: 1002001' \
-H 'Sign: A6FC73F7D22EC8B4A064C8FFCC592CBF' \
-H 'Content-Type: application/json' \
-d '{"amount":358320.00,"completionTime":"2024-12-02 12:07:06","fee":2500.0000,"mchOrderNo":"1313068703462109184","merchantId":"1002001","nonceStr":"1733116026894","orderNo":"PAYDESK27618551850988355260416","orderStatus":"SUCCESS","payCode":"OR.GPNQR..INOPROID_BS","payType":"41","payUrl":"https://payurl.com"}'{
"amount": 358320.0,
"completionTime": "2024-12-02 16:08:32",
"fee": 9083.0,
"mchOrderNo": "1313068703462109184",
"merchantId": "1002001",
"nonceStr": "1733130512894",
"orderNo": "PAYDESK27618551850988355260416",
"orderStatus": "SUCCESS",
"payUrl": "https://idpaydesk2.brcashypro.com/index.html?PAYDESK27618551850988355260416"
}{
"amount": 358320.0,
"completionTime": "2024-12-02 16:08:32",
"fee": 9083.0,
"mchOrderNo": "1313068703462109184",
"merchantId": "1002001",
"nonceStr": "1733130512894",
"orderNo": "PAYDESK27618551850988355260416",
"orderStatus": "FAIL",
"payUrl": "https://idpaydesk2.brcashypro.com/index.html?PAYDESK27618551850988355260416"
}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,3,7,11,16,22,29,37,46,56 minutes, and the webhooks will be retried 10 times in total