Payment API
Tips
- All requests are
Post
requests, and the data format isjson
Brief Description
- None
Request URL
/v1/paypro/payIn
Request Method
- POST
Header
Header | Required | Type | Description |
---|---|---|---|
merchantNo | Yes | string | - |
Body
Parameter Name | Required | Type | Description |
---|---|---|---|
sign | Yes | string | Except for the sign, concatenate the remaining fields in alphabetical order to form key1=value1key2=value2, then use the app secret as salt to perform MD5 encryption. The sign should be in lowercase letters. |
timestamp | Yes | long | Timestamp (e.g., 1715941383720) |
amount | Yes | string | Payment amount (amounts with decimals are not recommended) |
payType | Yes | string | Supported payment types: • E-wallet: GCash, GrabPay, Maya, QRPH • Modify QR: GCash QR, Maya QR, Gotyme QR • Bank: UnionBank, BPI, RCBC |
tradeNo | Yes | string | Transaction number (should be unique; suggested format: YYYYMMDDHHMMSS + random number) |
remark | No | string | Remarks; this field will be returned as is |
notifyUrl | Yes | string | Asynchronous callback URL (e.g., https://www.abc.com/); if not provided, the system will redirect to the default success page |
returnUrl | Yes | string | Redirect page after successful payment |
Request Parameter Example
{
"amount": "200",
"payType": "GrabPay",
"tradeNo": "99333213852",
"notifyUrl": "https://www.111.com/",
"returnUrl": "www.google.com",
"sign": "50f25c09a201e9df0fa9d4c67a53a092",
"timestamp": "1729945561186"
}
Response Result
Parameter Name | Required | Type | Description |
---|---|---|---|
msg | Yes | string | Request result (Returning "success" only indicates the request was successful; it should not be used for merchant-side logic) |
code | Yes | string | Request response code (Returning "0000" only indicates the request was successful; it should not be used for merchant-side logic) |
timestamp | Yes | string | Transaction time |
success | Yes | string | Transaction result |
data | Yes | Object | Response object |
data.tradeNo | Yes | string | Merchant transaction number returned |
data.platFormTradeNo | Yes | string | Unique paypro transaction number |
data.paymentInfo | Yes | string | Payment information, payment link, or QR code information |
data.status | Yes | string | Request result; merchants can use this for logical processing. "0000" indicates transaction success, "0015" indicates processing, and other codes are error codes that can be treated as failures. |
data.desc | Yes | string | Error description |
data.remark | Yes | string | Returned content of the request (returned as is) |
Successful Response Example
{
"msg": "success",
"code": "0000",
"timestamp": 1740633101343,
"success": true,
"data": {
"tradeNo": "1740633098275",
"platFormTradeNo": "71qcyhy29x7qh7yu",
"paymentInfo": "https://partner-api.grab.com/grabid/v1/oauth2/authorize?acr_values=consent_ctx%3AcountryCode%3DPH%2Ccurrency%3DPHP&client_id=2c073fe3c0f7420594448ad044b540bc&code_challenge=UyxW9R9Hwz5Fn2Obf2jIRmI0kxZOzCkB9XE-xpO0WCU&code_challenge_method=S256&code_verifier=N2Jrd2xtemlMcmthUmwzV0tHS1o3RGxXWGZ2NkdLcGdRcDUwREpibGFoenVnYk53NmVFQkpIcXRYaExNdFNhVGU&nonce=2SU22XKIa6jcHAZNw&redirect_uri=https%3A%2F%2Fapi.paymongo.com%2Fv1%2Fgrab_pay%2Fwebhook&request=eyJhbGciOiAibm9uZSJ9.eyJjbGFpbXMiOnsidHJhbnNhY3Rpb24iOnsidHhJRCI6IjQ4YTJiMmY4ZTQyOTRiNWViOTQwMjlhMDkxNTQ0Yzg0In19fQ.&response_type=code&scope=openid+payment.one_time_charge&state=TtreUTbt",
"status": "0015",
"desc": "Paying"
}
}