These docs are for v3.2.6. Click to read the latest docs for v4.3.0.

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 nameData type / LengthMandatoryDescription
1versionC 5MAPI version number.
Current latest version is 8.5
2merchant_idAN 15MMerchant ID at 2C2P PGW
3payment_descriptionAN 255MPayment detail description.
HTML Encode description if contain Symbols.
4order_idAN 20 / N 12MUnique merchant order number.
Example: 00000000010000091203

*Limited to 12 numerics when requesting for
APM payment for Myanmar.
5invoice_noAN 50OMerchant invoice number
6user_defined_1AN 150OFor merchant to submit merchant's specific
data.
7user_defined_2AN 150OFor merchant to submit merchant's specific
data.
8user_defined_3AN 150OFor merchant to submit merchant's specific
data.
9user_defined_4AN 150OFor merchant to submit merchant's specific
data.
10user_defined_5AN 150OFor merchant to submit merchant's specific
data.
11amountN 12MAmount 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
12currencyN 3OTransaction currency code in 3 numeric value as specified in ISO 4217.
if empty, default value will use merchant's base currency.
13promotionAN 50OPromotion Code for the payment.

Example: PromoMC for MasterCard payment only, PromoVC for Visa card payment only.
14customer_emailC 30OCustomer's email address to receive payment receipt from 2C2P PGW.
15result_url_1C 255OFrontend 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.
16result_url_2C 255OBackend 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.
17payment_optionAN 500OTo restrict customer payment methods / channels

Payment channels option code

By default, all available options will be shown

Supported multiple code with comma(,) separator
18ipp_interest_typeA 1OTo 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
19payment_expiryC 19OTo 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.
20default_langA 2OTo specify payment page localization

Language option code
21enable_store_cardA 1OTo enable tokenization feature

N - Disable tokenization option (default)
Y - Enable tokenization option
22stored_card_unique_idAN 20OTo make payment with tokenized card
23request_3dsA 1OTo enable / disable / Force 3DS authentication

Y - Do 3DS authentication (default)
N - No 3DS authentication
F - Force 3DS authentication (only ECI 02/05
are accepted)
24recurringA 1OTo 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
25order_prefixAN 15CRPP transaction will add 5 additional digit
behind order_prefix as invoice number.

Only required if RPP is enabled.
26recurring_amountN 12OThe 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.
27allow_accumulateA 1CTo allow accumulation of failed RPP transaction
amount.

N - Do not allow
Y - Allow

Only required if RPP is enabled.
28max_accumulate_amountN 12CRPP will be terminated if accumulated failed
RPP transaction amount is over
Max_accumulate_amount.

Only required if allow_accumulate is allowed
29recurring_intervalN 3CTo 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.
30recurring_countN 5CTo 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.
31charge_next_dateN 8CTo 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.
32charge_on_dateN 4CTo 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.
33statement_descriptorAN 20OTo set dynamic statement descriptor.
only alphanumeric in latin character is allowed.
34use_storedcard_onlyC 1OTo 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.
35tokenize_without_authorizationC 1OTo 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.
36product_codeC 50OIPP product code
37ipp_period_filterC 50OTo 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.
38sub_merchant_list-OBase64 encode Json array of sub merchants

Plain JSON:

[{merchant_id:"", order_id:"", amount:"",
payment_description:"" } ,{merchant_id:"", order_id:"", amount:"", payment_description:"" }]
38.1sub_merchant_list - merchant_idC 25MSub Merchant ID from 2C2P
38.2sub_merchant_list -
order_id
C 20MOrder ID for sub merchant id
38.3sub_merchant_list -
amount
C 12MLeading 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.4sub_merchant_list - payment_descriptionC 255OPayment detail description for sub transaction
39qr_typeC 2ORequesting QR Type for "Q" Type of payment Option

- EM – mVisa / MasterPass QR
- PP – ThaiQR
- PN – PayNow QR
40custom_route_idC 50OCustom Route ID
41airline_transactionC 1OIf the request submit airline data or not
42airline_passenger_list-OBase64 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.1airline_passenger_list -
last_name
C 50MPassenger's last name
42.2airline_passenger_list - first_nameC 50OPassenger's first name
42.3airline_passenger_list -middle_nameC 50OPassenger's middle name
42.4airline_passenger_list -
title
C 50OPassenger's title
42.5airline_passenger_list -
email
C 150OPassenger's email address
42.6airline_passenger_list -
phone
AN 15OPassenger's mobile phone with country code prefix
42.7airline_passenger_list -
type
C 32OType of passenger

- ADT: Adult
- CNN: Child
- INF: Infant
- YTH: Youth
- STU: Student
- SCR: Senior Citizen
- MIL: Military
42.8airline_passenger_list -purchaserC 1MIndicate whether this is passenger.
Maximum of 1 purchaser per ticket

• Y: Purchaser
• N: Not purchaser
42.9airline_passenger_list -ticket_issue_dateC 8MTicket issue date in local time
format: yyyyMMdd
42.10airline_passenger_list - ticket_noAN 13MAirline ticket no
42.11airline_passenger_list - customer_codeAN 17MCustomer code. E.g frequent flyer no
42.12airline_passenger_list - identification_noAN 50MCustomer's Passport No
42.13airline_passenger_list - issuing_carrier_codeC 2MTicket issuing airline.
42.14airline_passenger_list - issuing_carrier_nameC 50MTicket issuing airline name.
42.15airline_passenger_list -
issuer_address1
C 50MTicket issuing airline address1
42.16airline_passenger_list -
issuer_address2
C 50OTicket issuing airline address2
42.17airline_passenger_list -
issuer_address3
C 50OTicket issuing airline address3
42.18airline_passenger_list -
issuer_postal_code
N 10MTicket issuing airline postal code
42.19airline_passenger_list -
issuer_city
C 50MTicket issuing airline city
42.20airline_passenger_list -
issuer_state
C 50OTicket issuing airline state
42.21airline_passenger_list -
issuer_country
C 3MISO 3166: 3 digit country code

e.g

764 – Thailand
702 – Singapore
42.22airline_passenger_list - travel_agency_nameC 25MTravel agency name if the ticket is sold through agency
42.23airline_passenger_list - travel_agency_codeC 8MTravel agency code if the ticket is sold through agency
42.24airline_passenger_list - travel_agency_invoiceAN 50MTravel agency invoice if the ticket is sold through agency
42.25airline_passenger_list - travel_plan_nameC 50Mtravel agency plan name if the ticket is sold through agency
42.26airline_passenger_list - reservation_systemC 4MAirline ticket reservation system. It must be 4 character if it is present
42.27airline_passenger_list - document_typeC 3MPassenger's document type.
42.28.1airline_passenger_list - airline_legs -
leg_no
C 1MSequence of airline leg
42.28.2airline_passenger_list -airline_legs -
carrier_code
C 2M2 character airline carriercode
42.28.3airline_passenger_list - airline_legs -
flight_no
AN 5MFlight no
42.28.4airline_passenger_list - airline_legs -
origin
C 3MIndicates the Origin city’s airport code
42.28.5airline_passenger_list - airline_legs -
destination
C 3MIndicates the destination city’s airport code
42.28.6airline_passenger_list - airline_legs -
departure_time
C 19MDeparture time in local time yyyy-MM-dd HH:mm:ss
42.28.7airline_passenger_list -airline_legs -
arrival_time
C 19MArrival time in local time yyyy-MM-dd HH:mm:ss
42.28.8airline_passenger_list -airline_legs -
service_class
C 1MService class for airline
42.28.9airline_passenger_list -airline_legs -
stop_over_code
C 1MIndicate if stop allow or not
42.28.10airline_passenger_list - airline_legs -
fare_basis_code
C 6MAirline fare basis code
42.28.11airline_passenger_list - airline_legs -
flight_type
C 32MWhether flight is one-way or return
42.28.12airline_passenger_list - airline_legs -
endorcement_or_restriction
C 10-12MAny restriction applied on ticket. E.g RESTRICTED/NORESTRICTED
42.28.13airline_passenger_list -airline_legs -
fare
N 12MFare for the leg in payment currency
42.28.14airline_passenger_list - airline_legs -
taxes
N 12MTaxes for the leg in payment currency
42.28.15airline_passenger_list -airline_legs -
fee
N 12MFee for the leg in payment currency
42.28.16airline_passenger_list -airline_legs - departure_tax_currencyC 3MDeparture tax currency for leg
42.28.17airline_passenger_list - airline_legs -
departure_tax_amount
N 12MDeparture tax amount for the leg
43address_list-OBase64 encode Json array of address
[{

"address_type":"B",
"address1":"",
"address2":"",
"address3":"",
"postal_code":"",
"city ":"",
"state":"",
"country":""

}]
43.1address_list.
address_type
C 1Oaddress type:

B = Billing
S = Shipping
43.2address_list.
address1
C 255Oaddress line 1
43.3address_list.
address2
C 255Oaddress line 2
43.4address_list.
address3
C 255Oaddress line 3
43.5address_list.
postal_code
C 10Oaddress postal code
43.6address_list.
city
C 255Ocity
43.7address_list.
state
C 255Ostate
43.8address_list.
country
C 3Ocountry in N3 of

ISO3166 format
44threeDs2Parameters-O3DS 2 Parameters Objects
44.1threeDs2Parameters.
customerContact
-O{
"customerContact": {
"homePhone": {
"cc": "+65",
"subscriber": "123456789"
},
"mobilePhone": {
"cc": "+65",
"subscriber": "123456789"
},
"workPhone": {
"cc": "+65",
"subscriber": "123456789"
}
}
}
44.1.1threeDs2Parameters.
customerContact.homePhone
-O{
"homePhone": {
"cc": "+65",
"subscriber": "123456789"
}
}
44.1.1.1threeDs2Parameters.
customerContact.homePhone.cc
C 3OHome phone country code.
44.1.1.2threeDs2Parameters.
customerContact.homePhone.subscriber
C 15OHome phone subscriber number.
44.1.2threeDs2Parameters.
customerContact.mobilePhone
O{
"mobilePhone": {
"cc": "+65",
"subscriber": "123456789"
}
}
44.1.2.1threeDs2Parameters.
customerContact.mobilePhone.cc
C 3OMobile phone country code.
44.1.2.2threeDs2Parameters.
customerContact.mobilePhone.subscriber
C 15OMobile phone subscriber number.
44.1.3threeDs2Parameters.
customerContact.workPhone
O{
"workPhone": {
"cc": "+65",
"subscriber": "123456789"
}
}
44.1.3.1threeDs2Parameters.
customerContact.workPhone.cc
C 3OWork phone country code.
44.1.3.2threeDs2Parameters.
customerContact.workPhone.subscriber
C 15OWork phone subscriber number.
44.2threeDs2Parameters.
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.1threeDs2Parameters.
cardholderAccountInfo.
accountAgeIndicator
C 2OaccountAgeIndicator

• 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.2threeDs2Parameters.
cardholderAccountInfo.
accountChangeDate
C 8OLength: 8 Chars.
Format: YYYYMMDD
44.2.3threeDs2Parameters.
cardholderAccountInfo.
accountChangeIndicator
C 2OaccountChangeIndicator

• 01 = Changed during this transaction
• 02 = Less than 30 days
• 03 = 30-60 days
• 04 = More than 60 days
44.2.4threeDs2Parameters.
cardholderAccountInfo.
accountDate
C 8OLength: 8 Chars.
Format: YYYYMMDD
44.2.5threeDs2Parameters.
cardholderAccountInfo.
accountPasswordDate
C 8OLength: 8 Chars.
Format: YYYYMMDD
44.2.6threeDs2Parameters.
cardholderAccountInfo.
accountPasswordChangeIndicator
C 2OaccountPasswordChangeIndicator

• 01 = No change
• 02 = Changed during this transaction
• 03 = Less than 30 days
• 04 = 30-60 days
• 05 = More than 60 days
44.2.7threeDs2Parameters.
cardholderAccountInfo.
nbPurchase
C 4ONumber of purchases with this cardholder account during the previous six months.

maximum 9999
44.2.8threeDs2Parameters.
cardholderAccountInfo.
nbProvisionAttemptDay
C 3ONumber of Add Card attempts in the last 24 hours.
44.2.9threeDs2Parameters.
cardholderAccountInfo.
nbTransactionDay
C 3ONumber of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous 24 hours.
44.2.10threeDs2Parameters.
cardholderAccountInfo.
nbTransactionYear
C 3ONumber of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous year.
44.2.11threeDs2Parameters.
cardholderAccountInfo.
paymentAccountAge
C 8OLength: 8 Chars.
Format: YYYYMMDD
44.2.12threeDs2Parameters.
cardholderAccountInfo.
paymentAccountAgeIndicator
C 2OpaymentAccountAgeIndicator

• 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.13threeDs2Parameters.
cardholderAccountInfo.
shipAddrUsageDate
C 8ODate when the shipping address used for this transaction was first used with the 3DS Requestor.

Length: 8 Chars.
Format: YYYYMMDD
44.2.14threeDs2Parameters.
cardholderAccountInfo.
shipAddrUsageIndicator
C 2Ondicates 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.15threeDs2Parameters.
cardholderAccountInfo.
shipNameIndicator
C 2OIndicates 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.16threeDs2Parameters.
cardholderAccountInfo.
suspiciousAccountActivity
-OIndicates 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.3threeDs2Parameters.
merchantRiskInfo
-O"merchantRiskInfo":
{
"deliveryEmailAddress": "[email protected]",
"deliveryTimeframe": "04",
"giftCardAmount": null,
"giftCardCount": null,
"giftCardCurrency": null,
"preOrderDate": null,
"preorderPurchaseIndicator": null,
"reorderItemsIndicator": null,
"shippingIndicator": null
}
44.3.1threeDs2Parameters.
merchantRiskInfo.
deliveryEmailAddress
C 254OEmail address
44.3.2threeDs2Parameters.
merchantRiskInfo.
deliveryTimeframe
C 2OdeliveryTimeFrame

• 01 = Electronic Delivery
• 02 = Same day shipping
• 03 = Overnight shipping
• 04 = Two-day or more shipping
44.3.3threeDs2Parameters.
merchantRiskInfo.
giftCardAmount
C 15OFor 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.4threeDs2Parameters.
merchantRiskInfo.
giftCardCount
C 2OgiftCardCount

valid values 00-99
44.3.5threeDs2Parameters.
merchantRiskInfo.
giftCardCurrency
C 3OgiftCardCurrency

ISO4217.N3 Format
44.3.6threeDs2Parameters.
merchantRiskInfo.
preOrderDate
C 8OLength: 8 Chars.
Format: YYYYMMDD
44.3.7threeDs2Parameters.
merchantRiskInfo.
preorderPurchaseIndicator
C 2OpreorderPurchaseIndicator

• 01 = Merchandise available
• 02 = Future availability
44.3.8threeDs2Parameters.
merchantRiskInfo.
reorderItemsIndicator
C 2OreorderItemsIndicator

• 01 = First time ordered
• 02 = Reordered
44.3.9threeDs2Parameters.
merchantRiskInfo.
shippingIndicator
C 2OshippingIndicator

• 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.)
45hash_valueC 40MFor 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 nameData type / LengthMandatoryDescription
1versionC 5MAPI version number.
Current latest version is 8.5
2request_timestampC 22MTimestamp of the time when message is
sent
Format: yyyy-MM-dd HH:mm:ss
3merchant_idAN 25MMerchant ID at 2C2P PGW
4order_idAN 20 / N 12MUnique merchant order number.
Example: 00000000010000091203

*Limited to 12 numerics when requesting for APM payment for Indonesia and Myanmar.
5invoice_noAN 50Omerchant invoice number
6payment_channelN 3MPayment channel response code
7payment_statusN 3MPayment status response code
8channel_response_codeN 4OChannel response code
9channel_response_descAN 255OChannel response description
10approval_codeAN 6OAuthorization code from issuing bank. Only applicable when customer pay with credit or debit card.
11eciN 2OECI value. Only applicable when customer pay with credit or debit card
12transaction_datetimeC 22MTransaction processed date time value in format yyyy-MM-dd HH:mm:ss
13transaction_refAN 15OChannel transaction reference number
14masked_panC 19OOnly 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)
15paid_agentAN 30OOnly applicable to 123 Cash Payment Channel and IPP transaction channel.

123: APM agent code that customer made payment with.

IPP: IPP bank’s name.
16paid_channelAN 30OAPM channel code
Only applicable to 123 Cash Payment Channel.
17amountN 12MAmount 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
18currencyN 3MTransaction currency code in 3 numeric value as specified in ISO 4217.
19user_defined_1AN 150OFor merchant to submit merchant's specific data.
20user_defined_2AN 150OFor merchant to submit merchant's specific data.
21user_defined_3AN 150OFor merchant to submit merchant's specific data.
22user_defined_4AN 150OFor merchant to submit merchant's specific data.
23user_defined_5AN 150OFor merchant to submit merchant's specific data.
24browser_infoC 50MClient Browser information. Eg. Type=Firefox28,Name=Firefox,Ver=28.0
25stored_card_unique_idAN 20OTokenized credit card number.
26backend_invoiceC 12Obackend invoice number
27recurring_unique_idN 20Orecurring unique id
28ippPeriodN 2OIPP tenor
29ippInterestTypeA 1OIPP Interest Type.
M – Merchant Pay Interest Option ONLY
C – Customer Pay Interest Option ONLY
A – All available options
30ippInterestRateC 5OIPP interest rate
31ippMerchantAbsorbRateC 5OIPP merchant absorb rate
32payment_schemeC 2OPayment scheme code
33process_byC 2OPayment scheme code which process the transaction.

Payment scheme list
34card_typeC 20OCard Type
35issuer_countryA 3OCard Issuer Country
36issuer_bankC 200OCard Issuer Bank
37sub_merchant_list-MBase64 encode Json array of sub merchants

Plain JSON:

[{merchant_id:"", order_id:"", amount:"", payment_description:"" } ,{merchant_id:"", order_id:"", amount:"", payment_description:"" }]
37.1sub_merchant_list - merchant_idC 25MSub Merchant ID from 2C2P
37.2sub_merchant_list -
order_id
C 20MOrder ID for sub merchant id
37.3sub_merchant_list -
amount
N 12MLeading 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
38hash_valueC 40MFor 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.

Next: References