Debit-Payment
- Endpoint:
POST /v1.0/debit/payment - Tags: Indonesia SNAP
Parameters
| Field | In | Type | Required | Constraints | Description |
|---|---|---|---|---|---|
Content-Type | header | string | Yes | Content type, value always application/json | |
X-TIMESTAMP | header | string | Yes | Transaction date time, in format yyyy-MM-dd'T'HH:mm:ss.SSSXXX | |
X-SIGNATURE | header | string | Yes | Signature need to be generated with symmetricSignature or asymmetricSignature method | |
ORIGIN | header | string | No | Origin domain | |
X-PARTNER-ID | header | string | Yes | Unique identifier for partner was generated by payermax, or known as clientId | |
X-EXTERNAL-ID | header | string | Yes | Unique messaging reference identifier generated by merchant and should be unique within the same day | |
CHANNEL-ID | header | string | Yes | Device identification on which the API services is currently being accessed by the end user (customer) |
Parameter Examples
Content-Type:"application/json"X-TIMESTAMP:""X-SIGNATURE:""ORIGIN:""X-PARTNER-ID:""X-EXTERNAL-ID:""CHANNEL-ID:""
Request Body
Content-Type: application/json
| Field | Type | Required | Constraints | Description | Enum |
|---|---|---|---|---|---|
merchantId | string | Yes | maxLength: 64 | Merchant identifier that is unique per each merchant | |
partnerReferenceNo | string | Yes | maxLength: 64 | Unique transaction identifier on partner system which assigned to each transaction | |
amount | object | Yes | Transaction amount | ||
amount.value | string | Yes | The order amount is passed in by the merchant. The decimal point supported by the currency of each country. | ||
amount.currency | string | Yes | maxLength: 3 | Currency code, capital letter. | |
externalStoreId | string | No | maxLength: 64 | Store identifier to indicate to which store this payment belongs to | |
validUpTo | string | No | The time when the payment will be automatically expired, in format yyyy-MM-dd'T'HH:mm:ss.SSSXXX | ||
urlParams | array[object] | No | Notify URL that merchant must send the payment notification to | ||
urlParams[].url | string | Yes | maxLength: 512 | The URL | |
urlParams[].type | string | Yes | maxLength: 32 | URL Type:PAY_RETURN or PAY_NOTIFY | |
urlParams[].isDeeplink | string | Yes | maxLength: 1 | Whther the URL is a deeplink URL or not:Y or N | |
payOptionDetails | array[object] | Yes | Payment option that will be used for this payment, this filed only supports passing one item currently | ||
payOptionDetails[].payMethod | string | No | maxLength: 64 | Payment Method. e.g. CREDIT_CARD | |
payOptionDetails[].payOption | string | No | maxLength: 64 | Payment option which shows the provider of this payment e.g. CREDIT_CARD_VISA | |
payOptionDetails[].additionalInfo | object | No | |||
payOptionDetails[].additionalInfo.payAccountInfo | array[object] | No | Payment account info.Support collect payer’s account info on merchant side when specifying the payment method and target organization | ||
payOptionDetails[].additionalInfo.payAccountInfo[].accountNoType | string | No | maxLength: 32 | account type:EMAIL,PHONE,ACCOUNT. | |
payOptionDetails[].additionalInfo.payAccountInfo[].accountNo | string | No | maxLength: 32 | The payment account registered by the user in the target institution under this payment method. | |
payOptionDetails[].additionalInfo.cardInfo | object | No | Card information | ||
payOptionDetails[].additionalInfo.cardInfo.cardExpirationMonth | string | No | maxLength: 2 | Card Expiration Date - month, two digits. | |
payOptionDetails[].additionalInfo.cardInfo.cardExpirationYear | string | No | maxLength: 2 | Card Expiration Date - year, only the last two years are taken. | |
payOptionDetails[].additionalInfo.cardInfo.cardHolderFullName | string | No | maxLength: 64 | Cardholder’s Name. | |
payOptionDetails[].additionalInfo.cardInfo.cardIdentifierNo | string | No | maxLength: 19 | card ID, card number. | |
payOptionDetails[].additionalInfo.cardInfo.cvv | string | No | maxLength: 4 | Card cvv, three digits for Visa and Master, four digits for AMEX. | |
payOptionDetails[].additionalInfo.cardInfo.dynamic3DS | string | No | maxLength: 64 | ynamic 3ds (case insensitive) do3DS: Perform 3D Secure for this order. no3DS: Do not perform 3D Secure for this order. ext3DS: Use external 3DS results, suitable for merchants who have integrated 3DS services. The info3DSecure object is required when using this value. If no value is passed or other values are passed in, PayerMax will determine whether to initiate 3ds | |
payOptionDetails[].additionalInfo.cardInfo.cardOrg | string | No | maxLength: 32 | Card organization, required when paymentMethod is CARD and card information is not sent For details | |
payOptionDetails[].additionalInfo.paymentTokenID | string | No | maxLength: 64 | When paying with card token | |
payOptionDetails[].additionalInfo.buyerInfo | object | No | buyer information. when additionalInfo.integrate is Direct_Payment, this filed is Mandatory | ||
payOptionDetails[].additionalInfo.buyerInfo.firstName | string | No | maxLength: 64 | first name of the user. | |
payOptionDetails[].additionalInfo.buyerInfo.address | string | No | maxLength: 1024 | user’s address. | |
payOptionDetails[].additionalInfo.buyerInfo.city | string | No | maxLength: 64 | user’s city. | |
payOptionDetails[].additionalInfo.buyerInfo.idNo | string | No | maxLength: 64 | Id NO. | |
payOptionDetails[].additionalInfo.buyerInfo.idType | string | No | maxLength: 32 | Id type. | |
payOptionDetails[].additionalInfo.buyerInfo.region | string | No | maxLength: 64 | user’s region. | |
payOptionDetails[].additionalInfo.buyerInfo.taxNo | string | No | For tax number, please refer to 【Personal Identification】 Note:This field is required for the country of Brazil, which is the Brazilian ID number. | ||
payOptionDetails[].additionalInfo.buyerInfo.taxType | string | No | For tax types, please refer to 【Personal Identification】 Note:This field of Brazil country must be passed into CPF | ||
payOptionDetails[].additionalInfo.buyerInfo.zipCode | string | No | maxLength: 16 | post code. | |
payOptionDetails[].additionalInfo.buyerInfo.lastName | string | No | maxLength: 64 | last name of the user. | |
payOptionDetails[].additionalInfo.buyerInfo.phoneNo | string | No | maxLength: 32 | phone number of the user. | |
payOptionDetails[].additionalInfo.buyerInfo.email | string | No | maxLength: 255 | ||
payOptionDetails[].additionalInfo.buyerInfo.clientIp | string | Yes | user’s IP address. | ||
payOptionDetails[].additionalInfo.buyerInfo.userAgent | string | No | User browser information. | ||
additionalInfo | object | Yes | Additional information | ||
additionalInfo.version | string | Yes | maxLength: 8 | API version. Current value: 1.4 | |
additionalInfo.keyVersion | string | Yes | maxLength: 8 | Signature Algorithm Version, Current value: 1 | |
additionalInfo.integrate | string | Yes | maxLength: 16 | Hosted_Checkout or Direct_Payment | |
additionalInfo.terminalType | string | No | maxLength: 3 | Device terminal, the values is WEB, WAP, APP; when integrate is Direct_Payment, this value is required | |
additionalInfo.subject | string | Yes | maxLength: 256 | Order title or product information, avoid using pure numbers, such as using PayerMax_Hosted_Payment_Page, it will be displayed on the user payment page Note: Brazil Pix cannot exceed 43 digits | |
additionalInfo.country | string | Yes | maxLength: 2 | Country code, in uppercase letters. | |
additionalInfo.userId | string | Yes | maxLength: 64 | The user ID by the merchant, needs to ensure the uniqueness of each user.After the payment method is saved, the payment method will be recommended according to the userId. | |
additionalInfo.referralCode | string | Yes | maxLength: 32 | According to the needs of merchants, add recommended payment method dimensions, such as device ID, device fingerprint, etc., before using, please contact the docking staff. | |
additionalInfo.language | string | Yes | maxLength: 16 | Cashier page language | |
additionalInfo.reference | string | Yes | maxLength: 512 | Customized data for merchant, will be returned in Callback Notification and Inquiry. | |
additionalInfo.goodsDetails | array[object] | Yes | The goods that the user buys. A list can be submitted. Note:E-commerce industy needs to send.If the object is passed in, the inner required fields must be passed in | ||
additionalInfo.goodsDetails[].goodsId | string | Yes | maxLength: 64 | goods ID. | |
additionalInfo.goodsDetails[].goodsCategory | string | Yes | goods Category. Note:E-commerce industy needs to send. | ||
additionalInfo.goodsDetails[].goodsName | string | Yes | maxLength: 128 | goods name. | |
additionalInfo.goodsDetails[].quantity | string | Yes | maxLength: 16 | goods quantity | |
additionalInfo.goodsDetails[].price | string | Yes | maxLength: 20 | Price set by the merchant system. | |
additionalInfo.goodsDetails[].goodsCurrency | string | Yes | maxLength: 3 | goods currency, capital letters,see【Supported Country/Region and Currency】 | |
additionalInfo.goodsDetails[].showUrl | string | Yes | maxLength: 128 | goods URL. Note:E-commerce industy needs to send. | |
additionalInfo.shippingInfo | object | Yes | shipping info. Note:E-commerce industy needs to send.If the object is passed in, the inner required fields must be passed in | ||
additionalInfo.shippingInfo.firstName | string | Yes | maxLength: 64 | biller name. | |
additionalInfo.shippingInfo.middleName | string | Yes | maxLength: 64 | biller middle name. | |
additionalInfo.shippingInfo.lastName | string | Yes | maxLength: 64 | biller last name. | |
additionalInfo.shippingInfo.phoneNo | string | Yes | maxLength: 32 | biller phone no. | |
additionalInfo.shippingInfo.email | string | Yes | maxLength: 255 | biller email address. | |
additionalInfo.shippingInfo.address1 | string | Yes | maxLength: 1024 | Billing Address 1. | |
additionalInfo.shippingInfo.address2 | string | Yes | maxLength: 1024 | Billing Address 2. | |
additionalInfo.shippingInfo.city | string | Yes | maxLength: 64 | City of billing address. | |
additionalInfo.shippingInfo.region | string | Yes | maxLength: 64 | Region of billing address. | |
additionalInfo.shippingInfo.state | string | Yes | maxLength: 32 | State of billing address Shipping is required in Canada, USA, UK, Australia. | |
additionalInfo.shippingInfo.country | string | Yes | maxLength: 2 | Country of billing address. | |
additionalInfo.shippingInfo.zipCode | string | Yes | maxLength: 32 | Billing Address Zip Code. | |
additionalInfo.billingInfo | object | Yes | Billing Information.Note:If the object is passed in, the inner required fields must be passed in | ||
additionalInfo.billingInfo.firstName | string | Yes | maxLength: 64 | biller name. | |
additionalInfo.billingInfo.middleName | string | Yes | maxLength: 64 | biller middle name. | |
additionalInfo.billingInfo.lastName | string | Yes | maxLength: 64 | biller last name. | |
additionalInfo.billingInfo.email | string | Yes | maxLength: 255 | biller email address. | |
additionalInfo.billingInfo.phone | string | Yes | maxLength: 32 | biller phone no. | |
additionalInfo.billingInfo.address1 | string | Yes | maxLength: 255 | Billing Address 1. | |
additionalInfo.billingInfo.address2 | string | Yes | maxLength: 1024 | Billing Address 2. | |
additionalInfo.billingInfo.city | string | Yes | maxLength: 64 | City of billing address. | |
additionalInfo.billingInfo.region | string | Yes | maxLength: 64 | Region of billing address. | |
additionalInfo.billingInfo.state | string | Yes | maxLength: 32 | State of billing address Shipping is required in Canada, USA, UK, Australia. | |
additionalInfo.billingInfo.country | string | Yes | maxLength: 2 | Country of billing address. | |
additionalInfo.billingInfo.zipCode | string | Yes | maxLength: 16 | Billing Address Zip Code. | |
additionalInfo.riskParams | object | Yes | Risk control business data, see【Risk Information】 | ||
additionalInfo.riskParams.trustedUser | string | Yes | |||
additionalInfo.riskParams.isGuest | string | Yes | maxLength: 1 | ||
additionalInfo.riskParams.isAgent | string | Yes | maxLength: 1 | ||
additionalInfo.riskParams.registerNo | string | Yes | |||
additionalInfo.envInfo | object | Yes | environmental information | ||
additionalInfo.envInfo.deviceId | string | Yes | Merchant device unique identifier | ||
additionalInfo.envInfo.deviceLanguage | string | Yes | Device default language | ||
additionalInfo.envInfo.screenHeight | string | Yes | device height | ||
additionalInfo.envInfo.screenWidth | string | Yes | device width |
Example
json
{
"merchantId": "{{newMerchantNo}}",
"partnerReferenceNo": "{{$uuid}}",
"subMerchantId": "subMerchant.subMerchantNo",
"amount": {
"value": "100000.00",
"currency": "IDR"
},
"externalStoreId": "shopInfo.shopId",
"validUpTo": "2020-12-23T08:31:11+07:00",
"urlParams": [
{
"url": "https://www.payermax.com",
"type": "PAY_RETURN",
"isDeeplink": "N"
},
{
"url": "https://uft.shareitpay.in/fpx/request/snap",
"type": "PAY_NOTIFY",
"isDeeplink": "N"
}
],
"payOptionDetails": [
{
"payMethod": "",
"payOption": "",
"additionalInfo": {
"payAccountInfo": [
{
"accountNoType": "EMAIL",
"accountNo": "review@cybersource.com"
},
{
"accountNoType": "PHONE",
"accountNo": "081210855376"
}
],
"buyerInfo": {
"firstName": "John",
"lastName": "Smith",
"phoneNo": "903124360628",
"email": "review@cybersource.com",
"clientIp": "124.156.108.193",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"
}
}
}
],
"additionalInfo": {
"version": "1.4",
"keyVersion": "1",
"integrate": "Hosted_Checkout",
"terminalType": "APP",
"subject": "subject 40 Diamonds",
"country": "ID",
"userId": "victor003",
"referralCode": "referralCode",
"language": "en",
"reference": "reference",
"goodsDetails": [
{
"goodsId": "goodsId1",
"goodsName": "goodsName1 40 Diamonds",
"quantity": "1",
"price": "10000",
"goodsCurrency": "IDR",
"showUrl": "https://img-cdn.jollymax.com/shoplay365/prod/upload/picture/20221201031859549_Mobapay%20diskon.jpg"
},
{
"goodsId": "goodsId2",
"goodsName": "goodsName2 40 Diamonds",
"quantity": "1",
"price": "10000",
"goodsCurrency": "IDR",
"showUrl": "https://img-cdn.jollymax.com/shoplay365/prod/upload/picture/20221201031859549_Mobapay%20diskon.jpg"
}
],
"shippingInfo": {
"firstName": "Victor",
"middleName": "",
"lastName": "Yang",
"phoneNo": "081210855376",
"email": "review@cybersource.com",
"address1": "Heathcoat House, 20 Savile Row",
"address2": "",
"city": "London",
"region": "",
"state": "LND",
"country": "GB",
"zipCode": "W1S 3PR"
},
"billingInfo": {
"firstName": "wuji",
"middleName": "",
"lastName": "zhang",
"email": "review@cybersource.com",
"phone": "081210855376",
"address1": "7148 Pacific Blvd",
"address2": "",
"city": "Huntington Park",
"region": "",
"state": "CA",
"country": "US",
"zipCode": "90225"
},
"riskParams": {
"trustedUser": "Y",
"isGuest": "Y",
"isAgent": "Y",
"registerNo": "registerNo123456"
}
}
}Responses
200
| Field | Type | Required | Constraints | Description | Enum |
|---|---|---|---|---|---|
referenceNo | string | Yes | maxLength: 64 | Transaction identifier on payermax system | |
additionalInfo | object | Yes | Additional information | ||
additionalInfo.latestTransactionStatus | string | Yes | maxLength: 32 | Category code for the status of the transaction. The values include: 00 = Success, the order has been successfully in final state and paid 03 = Pending, the order is in process, not in final state, payment is success 05 = Cancelled, the order has been closed 06 = Failed, the order has been failed | |
webRedirectUrl | string | Yes | maxLength: 2048 | payermax checkout URL | |
partnerReferenceNo | string | Yes | maxLength: 64 | Unique transaction identifier on partner system which assigned to each transaction | |
responseMessage | string | Yes | maxLength: 150 | response msg | |
responseCode | string | Yes | maxLength: 7 | response code |
Response Example
json
{
"referenceNo": "T2024030612031450000064",
"additionalInfo": {
"latestTransactionStatus": "PENDING"
},
"webRedirectUrl": "https://cashier-n-ind-test.payermax.id/v2/index.html#/payments?merchantId=P05010114269706&merchantAppId=3d99d87a345c4c38aa23cfd7dde01592&country=ID&tradeToken=T2024030612031450000064&language=id&token=8673428cf610486a88c6720b191dc0a5&amount=100000¤cy=IDR&version=1.4&cashierId=T2024030612031450000064&frontCallbackUrl=https%3A%2F%2Fwww.payermax.com&pmaxLinkV=1",
"partnerReferenceNo": "9755fe22-aa4a-4bae-a064-c5b850156ef5",
"responseMessage": "Success.",
"responseCode": "2005400"
}