Developer ZoneRecipesAPI ReferenceChangelog
Developer Zone
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 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:"" }][{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": ""\
	}][{
"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 -
email

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:"" }][{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.

Next: References