API parameters
Payment request parameters
Data types
A - Alphabet
N - Numeric
AN - AlphaNumeric
C - Characters (AlphaNumeric and symbols)
Mandatory types
M - Mandatory
C - Conditional (Mandatory for some features only)
O - Optional
{
"version": "8.5",
"merchant_id": "JT01",
"hash_value": "5bbb200c84fks8gfe45546ef45fd74f7740e90ebfa7c53152e41e205c1fd0fe",
"payment_description": "item 1 ",
"order_id": "ord12345",
"invoice_no": "inv12345",
"user_defined_1": "",
"user_defined_2": "",
"user_defined_3": "",
"user_defined_4": "",
"user_defined_5": "",
"currency": "702",
"amount": "000000000100",
"promotion": "",
"customer_email": "[email protected]",
"result_url_1": "https://merchantwebsite/payment/frontend",
"result_url_2": "https://merchantwebsite/payment/backend",
"payment_option": "CC",
"ipp_interest_type": null,
"payment_expiry": null,
"default_lang": "en",
"enable_store_card": null,
"stored_card_unique_id": null,
"request_3ds": "Y",
"recurring": null,
"order_prefix": null,
"recurring_amount": null,
"allow_accumulate": null,
"max_accumulate_amount": null,
"recurring_interval": null,
"recurring_count": null,
"charge_next_date": null,
"charge_on_date": null,
"statement_descriptor": null,
"use_storedcard_only": null,
"tokenize_without_authorization": null,
"product_code": null,
"ipp_period_filter": null,
"sub_merchant_list": [{
"merchant_id": "JT_sub01",
"order_id": "ordsub0001",
"amount": "00000000050",
"payment_description": "sub item 1"
}, {
"merchant_id": "JT_sub01",
"order_id": "ordsub0002",
"amount": "00000000050",
"payment_description": "sub item 2"
}],
"qr_type": null,
"custom_route_id": null,
"airline_transaction": null,
"airline_passenger_list": null,
"address_list": [{
"addressType": "billing",
"address1": "30 Raffles Pl",
"address2": "#32-01",
"address3": "",
"postalCode": "048622",
"city ": "Singapore",
"state": "Singapore",
"country": "Singapore"
},
{
"addressType": "shipping",
"address1": "30 Raffles Pl",
"address2": "#32-01",
"address3": "",
"postalCode": "048622",
"city ": "Singapore",
"state": "Singapore",
"country": "Singapore"
}
],
"threeDs2Parameters": {
"customerContact": {
"homePhone": {
"cc": "+65",
"subscriber": "123456789"
},
"mobilePhone": {
"cc": "+65",
"subscriber": "123456789"
},
"workPhone": {
"cc": "+65",
"subscriber": "123456789"
}
},
"cardholderAccountInfo": {
"accountAgeIndicator": "01",
"accountChangeDate": "20210915",
"accountChangeIndicator": "01",
"accountCreateDate": "20210915",
"accountPasswordChangeDate": "20210915",
"accountPasswordChangeIndicator": "04",
"purchaseCountLast6Months": "120",
"provisionAttemptCountLast24Hours": "5",
"transactionCountLast24Hours": "10",
"transactionCountLastYear": "120",
"paymentAccountCreateDate": "20210915",
"paymentAccountAgeIndicator": "05",
"shippingAddressCreateDate": "20210915",
"shippingAddressAgeIndicator": "03",
"shippingNameIndicator": "01",
"suspiciousAccountActivity": "01"
},
"merchantRiskInfo": {
"deliveryEmailAddress": "[email protected]",
"deliveryTimeframe": "04",
"giftCardAmount": "200",
"giftCardCount": 10,
"giftCardCurrencyCode": "702",
"preOrderDate": "20210915",
"preOrderPurchaseIndicator": "01",
"reorderItemsIndicator": "01",
"shippingIndicator": "03"
}
}
}
# | Parameter name | Data type / Length | Mandatory | Description |
---|---|---|---|---|
1 | version | C 5 | M | API version number. Current latest version is 8.5 |
2 | merchant_id | AN 15 | M | Merchant ID at 2C2P PGW |
3 | payment_description | AN 255 | M | Payment detail description. HTML Encode description if contain Symbols. |
4 | order_id | AN 20 / N 12 | M | Unique merchant order number. Example: 00000000010000091203 *Limited to 12 numerics when requesting for APM payment for Myanmar. |
5 | invoice_no | AN 50 | O | Merchant invoice number |
6 | user_defined_1 | AN 150 | O | For merchant to submit merchant's specific data. |
7 | user_defined_2 | AN 150 | O | For merchant to submit merchant's specific data. |
8 | user_defined_3 | AN 150 | O | For merchant to submit merchant's specific data. |
9 | user_defined_4 | AN 150 | O | For merchant to submit merchant's specific data. |
10 | user_defined_5 | AN 150 | O | For merchant to submit merchant's specific data. |
11 | amount | N 12 | M | Amount formatted into 12 digit format with leading zero. Minor unit appended to the last digit depending on number of Minor unit specified in ISO 4217. example: Currency: 702 (SGD) Minor unit: 2 Transaction amount: 15.00 SGD 12 digit formatted amount: 000000001500 Currency: 392 (JPY) Minor unit: 0 Transaction amount: 100 JPY 12 digit formatted amount: 000000000100 |
12 | currency | N 3 | O | Transaction currency code in 3 numeric value as specified in ISO 4217. if empty, default value will use merchant's base currency. |
13 | promotion | AN 50 | O | Promotion Code for the payment. Example: PromoMC for MasterCard payment only, PromoVC for Visa card payment only. |
14 | customer_email | C 30 | O | Customer's email address to receive payment receipt from 2C2P PGW. |
15 | result_url_1 | C 255 | O | Frontend return url for 2C2P PGW to redirect customer back to merchant after completing the payment. Use "https" to ensure secure communication returned back to merchant. |
16 | result_url_2 | C 255 | O | Backend return url for 2C2P PGW to notify payment result to merchant after payment completed. This URL will also be used to notify merchant when offline payment (such as CASH payments) is completed. Use "https" to ensure secure communication returned back to merchant. |
17 | payment_option | AN 500 | O | To restrict customer payment methods / channels Payment channels option code By default, all available options will be shown Supported multiple code with comma(,) separator |
18 | ipp_interest_type | A 1 | O | To specify IPP Interest Type. A – All available options C – Customer Pay Interest Option ONLY M – Merchant Pay Interest Option ONLY By default, all available options will be shown |
19 | payment_expiry | C 19 | O | To specify payment expiry date/time for APM payments.format: yyyy-MM-dd HH:mm:ss By default, will use expiry date/time configured on merchant profile. there is no limit on the expiry date. |
20 | default_lang | A 2 | O | To specify payment page localization Language option code |
21 | enable_store_card | A 1 | O | To enable tokenization feature N - Disable tokenization option (default) Y - Enable tokenization option |
22 | stored_card_unique_id | AN 20 | O | To make payment with tokenized card |
23 | request_3ds | A 1 | O | To enable / disable / Force 3DS authentication Y - Do 3DS authentication (default) N - No 3DS authentication F - Force 3DS authentication (only ECI 02/05 are accepted) |
24 | recurring | A 1 | O | To enable RPP (Recurring Payment Plan) transaction feature. recurring unique ID will be returned on response message if this option is enabled. N - Disable RPP feature (default) Y - Enable RPP feature |
25 | order_prefix | AN 15 | C | RPP transaction will add 5 additional digit behind order_prefix as invoice number. Only required if RPP is enabled. |
26 | recurring_amount | N 12 | O | The amount to be charged on RPP process. If not set, recurring amount will use Transaction Amount. Amount formatted into 12 digit format with leading zero. Minor unit appended to the last digit depending on number of Minor unit specified in ISO 4217. example: Currency: 702 (SGD) Minor unit: 2 Transaction amount: 15.00 SGD 12 digit formatted amount: 000000001500 Currency: 392 (JPY) Minor unit: 0 Transaction amount: 100 JPY 12 digit formatted amount: 000000000100 Only required if RPP is enabled. |
27 | allow_accumulate | A 1 | C | To allow accumulation of failed RPP transaction amount. N - Do not allow Y - Allow Only required if RPP is enabled. |
28 | max_accumulate_amount | N 12 | C | RPP will be terminated if accumulated failed RPP transaction amount is over Max_accumulate_amount. Only required if allow_accumulate is allowed |
29 | recurring_interval | N 3 | C | To indicate the frequency of RPP by days. minimum is every 1 day. maximum is every 365 days (1 year). Only required if RPP is enabled and charge_on_date is not used. |
30 | recurring_count | N 5 | C | To indicate how many times to charge the customer with RPP. set to '0' to charge indefinitely until terminated manually. Only required if RPP is enabled. |
31 | charge_next_date | N 8 | C | To indicate the next RPP charge date. format: ddMMyyyy. Only required if RPP with recurring_interval is set. if RPP is with charge_on_date then charge_next_Date is optional. if charge_next_date is not set, charge_on_date Date and Month will be used. |
32 | charge_on_date | N 4 | C | To charge RPP on specific date every month. format: ddMM the MM is only used if charge_next_date is not set. otherwise the dd will be used for every month. Only required if RPP is enabled and recurring_interval is not used. |
33 | statement_descriptor | AN 20 | O | To set dynamic statement descriptor. only alphanumeric in latin character is allowed. |
34 | use_storedcard_only | C 1 | O | To force payment to be made only with the tokenized card. customer will not be allowed to change to other card when making payment. N - Card holder may change card (default). Y - Force card holder to use the passed token. |
35 | tokenize_without_authorization | C 1 | O | To tokenize customer's credit card without charging anything to the card. N - request will do Authorization to the card (default). Y - request will not do Authorization to the card. |
36 | product_code | C 50 | O | IPP product code |
37 | ipp_period_filter | C 50 | O | To filter IPP period available for customer to pay. comma separated period value. example: say, available IPP period was 3,6,12,24 months. but merchant would like to restrict customer to only pay with 3 and 6 month ipp period. request value: 3,6 will restrict customer to choose 3 months and 6 months options only. |
38 | sub_merchant_list | - | O | Base64 encode Json array of sub merchants Plain JSON: [{merchant_id:"", order_id:"", amount:"", payment_description:"" } ,{merchant_id:"", order_id:"", amount:"", payment_description:"" }] |
38.1 | sub_merchant_list - merchant_id | C 25 | M | Sub Merchant ID from 2C2P |
38.2 | sub_merchant_list - order_id | C 20 | M | Order ID for sub merchant id |
38.3 | sub_merchant_list - amount | C 12 | M | Leading zero amount (000000000100) without any decimal. Decimal place depends on the payment currency minor unit. Example: THB (764) 000000199900 represent 1,999.00 Example: JPY (392) 000000199900 represent 199,9900 |
38.4 | sub_merchant_list - payment_description | C 255 | O | Payment detail description for sub transaction |
39 | qr_type | C 2 | O | Requesting QR Type for "Q" Type of payment Option - EM – mVisa / MasterPass QR - PP – ThaiQR - PN – PayNow QR |
40 | custom_route_id | C 50 | O | Custom Route ID |
41 | airline_transaction | C 1 | O | If the request submit airline data or not |
42 | airline_passenger_list | - | O | Base64 encode Json array of airline passengers Maximum of 9 Passengers and maximum of 4 legs per passenger Plain JSON: [{ "last_name": "", "first_name": "", "middle_name": "", "title": "", "email": "", "phone": "", "type": "", "purchaser": "", "ticket_issue_date": "", "ticket_no": "", "issuing_carrier_code": "", "customer_code": "", "travel_agency_name": "", "travel_agency_code": "", "travel_agency_invoice": "", "travel_plan_name": "", "reservation_system": "", "document_type": "", "airline_legs": [{ "leg_no": "", "carrier_code": "", "flight_no": "", "origin": "", "destination": "", "departure_time": "", "arrival_time": "", "service_class": "", "stop_over_code": "", "fare_basis_code": "", "flight_type": "", "endorcement_or_restriction": "", "fare": "", "taxes": "", "fee": "", "departure_tax_currency": "", "departure_tax_amount": "" }] }] |
42.1 | airline_passenger_list - last_name | C 50 | M | Passenger's last name |
42.2 | airline_passenger_list - first_name | C 50 | O | Passenger's first name |
42.3 | airline_passenger_list -middle_name | C 50 | O | Passenger's middle name |
42.4 | airline_passenger_list - title | C 50 | O | Passenger's title |
42.5 | airline_passenger_list - | C 150 | O | Passenger's email address |
42.6 | airline_passenger_list - phone | AN 15 | O | Passenger's mobile phone with country code prefix |
42.7 | airline_passenger_list - type | C 32 | O | Type of passenger - ADT: Adult - CNN: Child - INF: Infant - YTH: Youth - STU: Student - SCR: Senior Citizen - MIL: Military |
42.8 | airline_passenger_list -purchaser | C 1 | M | Indicate whether this is passenger. Maximum of 1 purchaser per ticket • Y: Purchaser • N: Not purchaser |
42.9 | airline_passenger_list -ticket_issue_date | C 8 | M | Ticket issue date in local time format: yyyyMMdd |
42.10 | airline_passenger_list - ticket_no | AN 13 | M | Airline ticket no |
42.11 | airline_passenger_list - customer_code | AN 17 | M | Customer code. E.g frequent flyer no |
42.12 | airline_passenger_list - identification_no | AN 50 | M | Customer's Passport No |
42.13 | airline_passenger_list - issuing_carrier_code | C 2 | M | Ticket issuing airline. |
42.14 | airline_passenger_list - issuing_carrier_name | C 50 | M | Ticket issuing airline name. |
42.15 | airline_passenger_list - issuer_address1 | C 50 | M | Ticket issuing airline address1 |
42.16 | airline_passenger_list - issuer_address2 | C 50 | O | Ticket issuing airline address2 |
42.17 | airline_passenger_list - issuer_address3 | C 50 | O | Ticket issuing airline address3 |
42.18 | airline_passenger_list - issuer_postal_code | N 10 | M | Ticket issuing airline postal code |
42.19 | airline_passenger_list - issuer_city | C 50 | M | Ticket issuing airline city |
42.20 | airline_passenger_list - issuer_state | C 50 | O | Ticket issuing airline state |
42.21 | airline_passenger_list - issuer_country | C 3 | M | ISO 3166: 3 digit country code e.g 764 – Thailand 702 – Singapore |
42.22 | airline_passenger_list - travel_agency_name | C 25 | M | Travel agency name if the ticket is sold through agency |
42.23 | airline_passenger_list - travel_agency_code | C 8 | M | Travel agency code if the ticket is sold through agency |
42.24 | airline_passenger_list - travel_agency_invoice | AN 50 | M | Travel agency invoice if the ticket is sold through agency |
42.25 | airline_passenger_list - travel_plan_name | C 50 | M | travel agency plan name if the ticket is sold through agency |
42.26 | airline_passenger_list - reservation_system | C 4 | M | Airline ticket reservation system. It must be 4 character if it is present |
42.27 | airline_passenger_list - document_type | C 3 | M | Passenger's document type. |
42.28.1 | airline_passenger_list - airline_legs - leg_no | C 1 | M | Sequence of airline leg |
42.28.2 | airline_passenger_list -airline_legs - carrier_code | C 2 | M | 2 character airline carriercode |
42.28.3 | airline_passenger_list - airline_legs - flight_no | AN 5 | M | Flight no |
42.28.4 | airline_passenger_list - airline_legs - origin | C 3 | M | Indicates the Origin city’s airport code |
42.28.5 | airline_passenger_list - airline_legs - destination | C 3 | M | Indicates the destination city’s airport code |
42.28.6 | airline_passenger_list - airline_legs - departure_time | C 19 | M | Departure time in local time yyyy-MM-dd HH:mm:ss |
42.28.7 | airline_passenger_list -airline_legs - arrival_time | C 19 | M | Arrival time in local time yyyy-MM-dd HH:mm:ss |
42.28.8 | airline_passenger_list -airline_legs - service_class | C 1 | M | Service class for airline |
42.28.9 | airline_passenger_list -airline_legs - stop_over_code | C 1 | M | Indicate if stop allow or not |
42.28.10 | airline_passenger_list - airline_legs - fare_basis_code | C 6 | M | Airline fare basis code |
42.28.11 | airline_passenger_list - airline_legs - flight_type | C 32 | M | Whether flight is one-way or return |
42.28.12 | airline_passenger_list - airline_legs - endorcement_or_restriction | C 10-12 | M | Any restriction applied on ticket. E.g RESTRICTED/NORESTRICTED |
42.28.13 | airline_passenger_list -airline_legs - fare | N 12 | M | Fare for the leg in payment currency |
42.28.14 | airline_passenger_list - airline_legs - taxes | N 12 | M | Taxes for the leg in payment currency |
42.28.15 | airline_passenger_list -airline_legs - fee | N 12 | M | Fee for the leg in payment currency |
42.28.16 | airline_passenger_list -airline_legs - departure_tax_currency | C 3 | M | Departure tax currency for leg |
42.28.17 | airline_passenger_list - airline_legs - departure_tax_amount | N 12 | M | Departure tax amount for the leg |
43 | address_list | - | O | Base64 encode Json array of address [{ "address_type":"B", "address1":"", "address2":"", "address3":"", "postal_code":"", "city ":"", "state":"", "country":"" }] |
43.1 | address_list. address_type | C 1 | O | address type: B = Billing S = Shipping |
43.2 | address_list. address1 | C 255 | O | address line 1 |
43.3 | address_list. address2 | C 255 | O | address line 2 |
43.4 | address_list. address3 | C 255 | O | address line 3 |
43.5 | address_list. postal_code | C 10 | O | address postal code |
43.6 | address_list. city | C 255 | O | city |
43.7 | address_list. state | C 255 | O | state |
43.8 | address_list. country | C 3 | O | country in N3 of ISO3166 format |
44 | threeDs2Parameters | - | O | 3DS 2 Parameters Objects |
44.1 | threeDs2Parameters. customerContact | - | O | { "customerContact": { "homePhone": { "cc": "+65", "subscriber": "123456789" }, "mobilePhone": { "cc": "+65", "subscriber": "123456789" }, "workPhone": { "cc": "+65", "subscriber": "123456789" } } } |
44.1.1 | threeDs2Parameters. customerContact.homePhone | - | O | { "homePhone": { "cc": "+65", "subscriber": "123456789" } } |
44.1.1.1 | threeDs2Parameters. customerContact.homePhone.cc | C 3 | O | Home phone country code. |
44.1.1.2 | threeDs2Parameters. customerContact.homePhone.subscriber | C 15 | O | Home phone subscriber number. |
44.1.2 | threeDs2Parameters. customerContact.mobilePhone | O | { "mobilePhone": { "cc": "+65", "subscriber": "123456789" } } | |
44.1.2.1 | threeDs2Parameters. customerContact.mobilePhone.cc | C 3 | O | Mobile phone country code. |
44.1.2.2 | threeDs2Parameters. customerContact.mobilePhone.subscriber | C 15 | O | Mobile phone subscriber number. |
44.1.3 | threeDs2Parameters. customerContact.workPhone | O | { "workPhone": { "cc": "+65", "subscriber": "123456789" } } | |
44.1.3.1 | threeDs2Parameters. customerContact.workPhone.cc | C 3 | O | Work phone country code. |
44.1.3.2 | threeDs2Parameters. customerContact.workPhone.subscriber | C 15 | O | Work phone subscriber number. |
44.2 | threeDs2Parameters. cardholderAccountInfo | - | O | "cardholderAccountInfo": { "accountAgeIndicator": null, "accountChangeDate": null, "accountChangeIndicator": null, "accountDate": null, "accountPasswordDate": null, "accountPasswordChangeIndicator": null, "nbPurchase": null, "nbProvisionAttemptDay": null, "nbTransactionDay": null, "nbTransactionYear": null, "paymentAccountAge": null, "paymentAccountAgeIndicator": null, "shipAddrUsageDate": null, "shipAddrUsageIndicator": null, "shipNameIndicator": null, "suspiciousAccountActivity": null } |
44.2.1 | threeDs2Parameters. cardholderAccountInfo. accountAgeIndicator | C 2 | O | accountAgeIndicator • 01 = No account (guest check-out) • 02 = Created during this transaction • 03 = Less than 30 days • 04 = 30-60 days • 05 = More than 60 days |
44.2.2 | threeDs2Parameters. cardholderAccountInfo. accountChangeDate | C 8 | O | Length: 8 Chars. Format: YYYYMMDD |
44.2.3 | threeDs2Parameters. cardholderAccountInfo. accountChangeIndicator | C 2 | O | accountChangeIndicator • 01 = Changed during this transaction • 02 = Less than 30 days • 03 = 30-60 days • 04 = More than 60 days |
44.2.4 | threeDs2Parameters. cardholderAccountInfo. accountDate | C 8 | O | Length: 8 Chars. Format: YYYYMMDD |
44.2.5 | threeDs2Parameters. cardholderAccountInfo. accountPasswordDate | C 8 | O | Length: 8 Chars. Format: YYYYMMDD |
44.2.6 | threeDs2Parameters. cardholderAccountInfo. accountPasswordChangeIndicator | C 2 | O | accountPasswordChangeIndicator • 01 = No change • 02 = Changed during this transaction • 03 = Less than 30 days • 04 = 30-60 days • 05 = More than 60 days |
44.2.7 | threeDs2Parameters. cardholderAccountInfo. nbPurchase | C 4 | O | Number of purchases with this cardholder account during the previous six months. maximum 9999 |
44.2.8 | threeDs2Parameters. cardholderAccountInfo. nbProvisionAttemptDay | C 3 | O | Number of Add Card attempts in the last 24 hours. |
44.2.9 | threeDs2Parameters. cardholderAccountInfo. nbTransactionDay | C 3 | O | Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous 24 hours. |
44.2.10 | threeDs2Parameters. cardholderAccountInfo. nbTransactionYear | C 3 | O | Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous year. |
44.2.11 | threeDs2Parameters. cardholderAccountInfo. paymentAccountAge | C 8 | O | Length: 8 Chars. Format: YYYYMMDD |
44.2.12 | threeDs2Parameters. cardholderAccountInfo. paymentAccountAgeIndicator | C 2 | O | paymentAccountAgeIndicator • 01 = No account (guest check-out) • 02 = During this transaction • 03 = Less than 30 days • 04 = 30-60 days • 05 = More than 60 days |
44.2.13 | threeDs2Parameters. cardholderAccountInfo. shipAddrUsageDate | C 8 | O | Date when the shipping address used for this transaction was first used with the 3DS Requestor. Length: 8 Chars. Format: YYYYMMDD |
44.2.14 | threeDs2Parameters. cardholderAccountInfo. shipAddrUsageIndicator | C 2 | O | ndicates when the shipping address used for this transaction was first used with the 3DS Requestor. JSON Data Type: String Values accepted: • 01 = This transaction • 02 = Less than 30 days • 03 = 30-60 days • 04 = More than 60 days |
44.2.15 | threeDs2Parameters. cardholderAccountInfo. shipNameIndicator | C 2 | O | Indicates if the Cardholder Name on the account is identical to the shipping Name used for this transaction. • 01 = Account Name identical to shipping Name • 02 = Account Name different than shipping Name |
44.2.16 | threeDs2Parameters. cardholderAccountInfo. suspiciousAccountActivity | - | O | Indicates whether the 3DS Requestor has experienced suspicious activity (including previous fraud) on the cardholder account. • 01 = No suspicious activity has been observed • 02 = Suspicious activity has been observed |
44.3 | threeDs2Parameters. merchantRiskInfo | - | O | "merchantRiskInfo": { "deliveryEmailAddress": "[email protected]", "deliveryTimeframe": "04", "giftCardAmount": null, "giftCardCount": null, "giftCardCurrency": null, "preOrderDate": null, "preorderPurchaseIndicator": null, "reorderItemsIndicator": null, "shippingIndicator": null } |
44.3.1 | threeDs2Parameters. merchantRiskInfo. deliveryEmailAddress | C 254 | O | Email address |
44.3.2 | threeDs2Parameters. merchantRiskInfo. deliveryTimeframe | C 2 | O | deliveryTimeFrame • 01 = Electronic Delivery • 02 = Same day shipping • 03 = Overnight shipping • 04 = Two-day or more shipping |
44.3.3 | threeDs2Parameters. merchantRiskInfo. giftCardAmount | C 15 | O | For prepaid or gift card purchase, the purchase amount total of prepaid or gift card(s) in major units (for example, USD 123.45 is 123). |
44.3.4 | threeDs2Parameters. merchantRiskInfo. giftCardCount | C 2 | O | giftCardCount valid values 00-99 |
44.3.5 | threeDs2Parameters. merchantRiskInfo. giftCardCurrency | C 3 | O | giftCardCurrency ISO4217.N3 Format |
44.3.6 | threeDs2Parameters. merchantRiskInfo. preOrderDate | C 8 | O | Length: 8 Chars. Format: YYYYMMDD |
44.3.7 | threeDs2Parameters. merchantRiskInfo. preorderPurchaseIndicator | C 2 | O | preorderPurchaseIndicator • 01 = Merchandise available • 02 = Future availability |
44.3.8 | threeDs2Parameters. merchantRiskInfo. reorderItemsIndicator | C 2 | O | reorderItemsIndicator • 01 = First time ordered • 02 = Reordered |
44.3.9 | threeDs2Parameters. merchantRiskInfo. shippingIndicator | C 2 | O | shippingIndicator • 01 = Ship to cardholder’s billing address • 02 = Ship to another verified address on file with merchant • 03 = Ship to address that is different than the cardholder’s billing address • 04 = “Ship to Store” / Pick-up at local store (Store address shall be populated in shipping address fields) • 05 = Digital goods (includes online services, electronic gift cards and redemption codes) • 06 = Travel and Event tickets, not shipped • 07 = Other (for example, Gaming, digital services not shipped, emedia subscriptions, etc.) |
45 | hash_value | C 40 | M | For 8.5, HMACSHA256 cryptographic hash value of: version + merchant_id + payment_description + order_id + invoice_no currency + amount + customer_email + promotion + user_defined_1 + user_defined_2 + user_defined_3 + user_defined_4 + user_defined_5 + result_url_1 + result_url_2 + enable_store_card + stored_card_unique_id + request_3ds + recurring + order_prefix + recurring_amount + allow_accumulate + max_accumulate_amount + recurring_interval + recurring_count + charge_next_date+ charge_on_date + payment_option + ipp_interest_type + payment_expiry + default_lang + statement_descriptor + use_storedcard_only + tokenize_without_authorization + product + ipp_period_filter + sub_merchant_list + qr_type + custom_route_id + airline_transaction + airline_passenger_list + address_list and use the secret_key provided by 2C2P as salt. |
Payment response parameters
{
"version": "8.5",
"request_timestamp": "2021-07-16 13:43:14",
"merchant_id": "JT01",
"order_id": "ord12345",
"invoice_no": "inv12345",
"currency": "702",
"amount": "000000000100",
"transaction_ref": "2201845639",
"approval_code": "12345",
"eci": "02",
"transaction_datetime": "2021-07-16 13:43:14",
"payment_channel": "002",
"payment_status": "001",
"channel_response_code": "000",
"channel_response_desc": "success",
"masked_pan": "411111XXXXXX1111",
"stored_card_unique_id": "124536456346",
"backend_invoice": "BEI12345",
"paid_channel": "WEBPAY",
"paid_agent": "123Service",
"recurring_unique_id": "",
"user_defined_1": "",
"user_defined_2": "",
"user_defined_3": "",
"user_defined_4": "",
"user_defined_5": "",
"browser_info": "",
"ippPeriod": "",
"ippInterestType": "",
"ippInterestRate": "",
"ippMerchantAbsorbRate": "",
"payment_scheme": "AP",
"process_by": "AP",
"hash_value": "E876579E014C8A2FE3C29D53F7753CA342ADC744"
}
# | Parameter name | Data type / Length | Mandatory | Description |
---|---|---|---|---|
1 | version | C 5 | M | API version number. Current latest version is 8.5 |
2 | request_timestamp | C 22 | M | Timestamp of the time when message is sent Format: yyyy-MM-dd HH:mm:ss |
3 | merchant_id | AN 25 | M | Merchant ID at 2C2P PGW |
4 | order_id | AN 20 / N 12 | M | Unique merchant order number. Example: 00000000010000091203 *Limited to 12 numerics when requesting for APM payment for Indonesia and Myanmar. |
5 | invoice_no | AN 50 | O | merchant invoice number |
6 | payment_channel | N 3 | M | Payment channel response code |
7 | payment_status | N 3 | M | Payment status response code |
8 | channel_response_code | N 4 | O | Channel response code |
9 | channel_response_desc | AN 255 | O | Channel response description |
10 | approval_code | AN 6 | O | Authorization code from issuing bank. Only applicable when customer pay with credit or debit card. |
11 | eci | N 2 | O | ECI value. Only applicable when customer pay with credit or debit card |
12 | transaction_datetime | C 22 | M | Transaction processed date time value in format yyyy-MM-dd HH:mm:ss |
13 | transaction_ref | AN 15 | O | Channel transaction reference number |
14 | masked_pan | C 19 | O | Only applicable when customer pay with credit or debit card. Masked card format based on merchant profile setting. • First 6 Last 4 (411111XXXXXX1111) • Last 4 (XXXXXXXXXXXX1111) |
15 | paid_agent | AN 30 | O | Only applicable to 123 Cash Payment Channel and IPP transaction channel. 123: APM agent code that customer made payment with. IPP: IPP bank’s name. |
16 | paid_channel | AN 30 | O | APM channel code Only applicable to 123 Cash Payment Channel. |
17 | amount | N 12 | M | Amount formatted into 12 digit format with leading zero. Minor unit appended to the last digit depending on number of Minor unit specified in ISO 4217. example: Currency: 702 (SGD) Minor unit: 2 Transaction amount: 15.00 SGD 12 digit formatted amount: 000000001500 Currency: 392 (JPY) Minor unit: 0 Transaction amount: 100 JPY 12 digit formatted amount: 000000000100 |
18 | currency | N 3 | M | Transaction currency code in 3 numeric value as specified in ISO 4217. |
19 | user_defined_1 | AN 150 | O | For merchant to submit merchant's specific data. |
20 | user_defined_2 | AN 150 | O | For merchant to submit merchant's specific data. |
21 | user_defined_3 | AN 150 | O | For merchant to submit merchant's specific data. |
22 | user_defined_4 | AN 150 | O | For merchant to submit merchant's specific data. |
23 | user_defined_5 | AN 150 | O | For merchant to submit merchant's specific data. |
24 | browser_info | C 50 | M | Client Browser information. Eg. Type=Firefox28,Name=Firefox,Ver=28.0 |
25 | stored_card_unique_id | AN 20 | O | Tokenized credit card number. |
26 | backend_invoice | C 12 | O | backend invoice number |
27 | recurring_unique_id | N 20 | O | recurring unique id |
28 | ippPeriod | N 2 | O | IPP tenor |
29 | ippInterestType | A 1 | O | IPP Interest Type. M – Merchant Pay Interest Option ONLY C – Customer Pay Interest Option ONLY A – All available options |
30 | ippInterestRate | C 5 | O | IPP interest rate |
31 | ippMerchantAbsorbRate | C 5 | O | IPP merchant absorb rate |
32 | payment_scheme | C 2 | O | Payment scheme code |
33 | process_by | C 2 | O | Payment scheme code which process the transaction. Payment scheme list |
34 | card_type | C 20 | O | Card Type |
35 | issuer_country | A 3 | O | Card Issuer Country |
36 | issuer_bank | C 200 | O | Card Issuer Bank |
37 | sub_merchant_list | - | M | Base64 encode Json array of sub merchants Plain JSON: [{merchant_id:"", order_id:"", amount:"", payment_description:"" } ,{merchant_id:"", order_id:"", amount:"", payment_description:"" }] |
37.1 | sub_merchant_list - merchant_id | C 25 | M | Sub Merchant ID from 2C2P |
37.2 | sub_merchant_list - order_id | C 20 | M | Order ID for sub merchant id |
37.3 | sub_merchant_list - amount | N 12 | M | Leading zero amount (000000000100) without any decimal. Decimal place depends on the payment currency minor unit. Example: THB (764) 000000199900 represent 1,999.00 Example: JPY (392) 000000199900 represent 199,9900 |
38 | hash_value | C 40 | M | For 8.5, HMACSHA256 cryptographic hash value of version + request_timestamp + merchant_id + order_id + invoice_no + currency + amount + transaction_ref + approval_code + eci + transaction_datetime + payment_channel + payment_status + channel_response_code + channel_response_desc + masked_pan + stored_card_unique_id + backend_invoice + paid_channel + paid_agent + recurring_unique_id + user_defined_1 + user_defined_2 + user_defined_3 + user_defined_4 + user_defined_5 + browser_info + ippPeriod + ippInterestType + ippInterestRate + ippMerchantAbsorbRate + payment_scheme + process_by + sub_merchant_list and use the secret_key provided by 2C2P as salt. |
Updated over 3 years ago