PSD2 parameters

Below, the parameters defined in the PSD2 for making a payment are detailed.



Values of the parameters MERCHANT_SCA_EXCEPTION and DS_MERCHANT_SCA_EXCEPTION

Value Concept
LWV Exception for low amounts. This exception includes payments of 30 EUR or less,
TRA Exception for low risk transactions by the buyer/business.
The PAYCOMET risk analysis system will evaluate whether the payment ultimately falls under this exception.
  • E-mail of the client (Email)
  • Information of the client´s account in the trade:
    • Account opening date in the trade (chAccDate field inside accInfo)
    • Account age in the trade (chAccAgeInd field inside accInfo)
    • Last modification of the account in the trade (chAccChangeInd field inside accInfo)
    • Last modification of the password in the trade (field chAccPwChange inside accInfo)
    • Date of first shipment (shipAddressUsage field inside accInfo)
  • Billing information:
  • Delivery information:
MIT Exception for transactions initiated by the business.
Must be used for all non-presential payments such as subscriptions, deferred payments, incremental payments, etc.
When this exception is selected, the MERCHANT_TRX_TYPE parameter must be indicated (see lower table) to specify the type of payment initiated by the business.
To be able to use this exception, the first payment from each client must be executed with SCA, that is, secure payment.
COR Exception for payments between businesses.
MOT Exception for MOTO payments


Values of the parameters MERCHANT_TRX_TYPE and DS_MERCHANT_TRX_TYPE

Value Concept
I Deferred payment. Always refers to an INDIVIDUAL purchase, the amount of the different transactions being set, and with a defined time period
R Recurring payment. The amount of the transactions may be set or variable, and with a defined time period
H Normally due to partial deliveries. Also, when the client extends the hotel stay / vehicle rental or when there is an estimated authorisation, the final amount is requested (“conclusion”)
E Original rejected due to “balance”; only for certain activity sectors (for greater detail review the brand requirements) and with a maximum number of days since the purchase. Relevant example: “Transport”
D Those which occur following the operation for services provided / used, unknown at the beginning. (Minibar, vehicle damage, fines, etc.)
M When additional services are incurred during the contract period
N When the business charges for services which the holder committed to, but then did not comply with the agreed terms. Relevant example: no-show hotel reservations without cancellation.
C Other


MERCHANT_DATA and DS_MERCHANT_DATA parameters will be JSON objects encoded in base 64 and then url encoded. Using pseudocode, it would be something like urlencode( base64_encode( JSON_Object ) ). JSON object format should be like this before encoding:


{
	"customer": {
		"id": "",
		"name": "",
		"surname": "",
		"email": "",
		"homePhone": {              
			"cc": "",
			"subscriber": ""
		},
		"mobilePhone": {            
			"cc": "",
			"subscriber": ""
		},
		"workPhone": {              
			"cc": "",
			"subscriber": ""
		},
		"firstBuy": ""
	},
	"shipping": {
		"shipAddrCity": "",         
		"shipAddrCountry": "",      
		"shipAddrLine1": "",        
		"shipAddrLine2": "",        
		"shipAddrLine3": "",
		"shipAddrPostCode": "",     
		"shipAddrState": ""         
	}, 
	"billing": {
		"billAddrCity": "",         
		"billAddrCountry": "",      
		"billAddrLine1": "",        
		"billAddrLine2": "",        
		"billAddrLine3": "",
		"billAddrPostCode": "",     
		"billAddrState": ""         
	},
	"acctID": "",
	"acctInfo": {
		"chAccAgeInd": "",
		"chAccChange": "",
		"chAccChangeInd": "",
		"chAccDate": "",
		"chAccPwChange": "",
		"chAccPwChangeInd": "",
		"nbPurchaseAccount": "",
		"provisionAttemptsDay": "",
		"txnActivityDay": "",
		"txnActivityYear": "",
		"paymentAccAge": "",
		"paymentAccInd": "",
		"shipAddressUsage": "",
		"shipAddressUsageInd": "",
		"shipNameIndicator": "",
		"suspiciousAccActivity": ""
	},
	"merchantRiskIndicator": {
		"deliveryEmailAddress": "",
		"deliveryTimeframe": "",
		"giftCardAmount": "",
		"giftCardCount": "",
		"giftCardCurr": "",
		"preOrderDate": "",
		"preOrderPurchaseInd": "",
		"reorderItemsInd ": "",
		"shipIndicator": ""
	},
	"threeDSRequestorAuthenticationInfo": {
		"threeDSReqAuthData": "",
		"threeDSReqAuthMethod": "",
		"threeDSReqAuthTimestamp": ""
	},
	"shoppingCart": [
		{
			"sku": "",
			"quantity": "",
			"unitPrice": "",
			"name": "",
			"category": "",
			"articleType": ""
		}
	],
	"addrMatch": "",
	"purchaseInstalData": "",
	"recurringExpiry": "",
	"recurringFrequency": "",	
	"marketplaceSeller": [
		{
			"merchantCustomerId": "",
			"amount": "",
			"currency": "",
			"deliveryTimeframe": ""
		}
	],
}
		
Element Content Description
customer JSON Mandatory. Node with store customer related information
customer.id [a-zA-Z0-9-] Mandatory. Store customer identifier
customer.name [A-Za-z0-9]{1,254} Mandatory. Name of holder
customer.surname [A-Za-z0-9]{1,254} Mandatory. Surname of holder
customer.email [A-Za-z0-9]{1,254} Conditional. Email address of holder. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
customer.homePhone JSON Conditional. Node with user home phone data. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
customer.homePhone.cc [0-9]{1,3} International dialling code of the holder’s home telephone number
customer.homePhone.subscriber [0-9]{1,15} Holder’s home telephone number
customer.mobilePhone JSON Conditional. Node with user mobile phone data. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
customer.mobilePhone.cc [0-9]{1,3} International dialling code of the holder’s mobile phone number
customer.mobilePhone.subscriber [0-9]{1,15} Holder’s mobile phone number
customer.workPhone JSON Conditional. Node with user work phone data. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
customer.workPhone.cc [0-9]{1,3} International dialling code of the holder’s work phone number
customer.workPhone.subscriber [0-9]{1,15} Holder’s work phone number
customer.firstBuy si|no Optional. Indicates whether the user's first purchase in this business
shipping JSON Optional. Node with shipping address related information. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
shipping.shipAddrCity [A-Za-z0-9]{1,50} Conditional. City of delivery address. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
shipping.shipAddrCountry [0-9]{3} Conditional. Numerical code (ISO 3166-1) of the country of the delivery address. Obligatory if sending shipAddrState. e.g: (for Spain): 724
All codes: ISO 3166-1
shipping.shipAddrLine1 [A-Za-z0-9]{1,50} Conditional. Delivery address, line 1. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
shipping.shipAddrLine2 [A-Za-z0-9]{1,50} Optional. Delivery address, line 2. Sending this is highly recommended
shipping.shipAddrLine3 [A-Za-z0-9]{1,50} Optional. Delivery address, line 3. Sending this is highly recommended
shipping.shipAddrPostCode [A-Za-z0-9]{1,16} Conditional. Post code of the delivery address. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
shipping.shipAddrState [A-Za-z0-9]{6} Conditional. State or province of the delivery address. Corresponds to the subdivision code ISO 3166-2. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested.
The subdivision refers to ISO 3166-2 but limiting it to a maximum of 3 characters, which are the ones that follow the separate "-" in the following list. e.g: MD
All codes: ISO 3166-2:ES
billing JSON Optional. Node with billing address related information
billing.billAddrCity [A-Za-z0-9]{1,50} Conditional. City of the invoice address. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
billing.billAddrCountry [0-9]{3} Conditional. Numerical code (ISO 3166-1) of the country of the invoice address. Obligatory if sending shipAddrState. e.g: (for Spain): 724
All codes: ISO 3166-1
billing.billAddrLine1 [A-Za-z0-9]{1,50} Conditional. Invoice address, line 1. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
billing.billAddrLine2 [A-Za-z0-9]{1,50} Optional. Invoice address, line 2. Sending this is highly recommended
billing.billAddrLine3 [A-Za-z0-9]{1,50} Optional. Invoice address, line 3. Sending this is highly recommended
billing.billAddrPostCode [A-Za-z0-9]{1,16} Conditional. Post code of the invoice address. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested
billing.billAddrState [A-Za-z0-9]{6} Conditional. State or province of the invoice address. Corresponds to the subdivisión code ISO 3166-2. Defined as Conditional by the EMV 3DS standard, it may be required depending on the card issuer. Highly recommended to allow authentication based on risk analysis (Risk Based Analisys) and to facilitate a frictionless shopping experience. Equally recommended if the application of SCA exemptions (PSD2) is requested.
The subdivision refers to ISO 3166-2 but limiting it to a maximum of 3 characters, which are the ones that follow the separate "-" in the following list. e.g: MD
All codes: ISO 3166-2:ES
acctID [A-Za-z0-9]{1,64} Optional. Additional information you want to send to identify the account
acctInfo JSON Optional. Node with additional information on the user account at the store. Sending this is highly recommended
acctInfo.chAccAgeInd [A-Za-z0-9]{2} Optional. Period of time that the card holder has had the account at the business. Possible values:
01 = No account (checkout as guest)
02 = Created in this transaction
03 = Under 30 days
04 = Between 30 and 60 days
05 = Over 60 days
acctInfo.chAccChange [0-9]{8} Optional. Date on which the card holder’s account with the business was last modified, including the invoice or delivery address, the new payment account or new added users. Date format: YYYYMMDD
acctInfo.chAccChangeInd [0-9]{2} Optional. Period of time passed since the card holder’s account with the business was last modified, including the invoice or delivery address, the new payment account or new added users. Accepted values:
01 = Modified in this transaction
02 = Under 30 days
03 = 30-60 days
04 = Over 60 days
acctInfo.chAccDate [0-9]{8} Optional. Date on which the card holder opened the account with the business. Date format: YYYYMMDD
acctInfo.chAccPwChange [0-9]{8} Optional. Date on which the card holder changed the password of their account with the business, or reset their account. Date format: YYYYMMDD
acctInfo.chAccPwChangeInd [A-Za-z0-9]{2} Optional. Indicates the period of time since the card holder’s account with the business changed its password or was reset. Accepted values:
01 = No changes
02 = Changed during this transaction
03 = Under 30 days
04 = Between 30 and 60 days
05 = Over 60 days
acctInfo.nbPurchaseAccount [0-9]{1,4} Optional. Number of purchases with this account during the last six months
acctInfo.provisionAttemptsDay [0-9]{1,3} Optional. Number of attempts to add a card in the last 24 hours
acctInfo.txnActivityDay [0-9]{1,3} Optional. Number of transactions (successful and abandoned) for this account of the card holder with the business in all payment accounts in the last 24 hours
acctInfo.txnActivityYear [0-9]{1,3} Optional. Number of transactions (successful and abandoned) for this account of the card holder with the business in all payment accounts of the last year
acctInfo.paymentAccAge [0-9]{8} Optional. Date on which the payment account was registered on the card holder’s account with the business. Date format: YYYYMMDD
acctInfo.paymentAccInd [A-Za-z0-9]{2} Optional. Indicates the period of time which the payment account was registered on the card holder’s account with the business. Accepted values:
01 = No account (checkout as guest)
02 = During this transaction
03 = Under 30 days
04 = Between 30 and 60 days
05 = Over 60 days
acctInfo.shipAddressUsage [0-9]{8} Optional. Date on which the delivery address used for this transaction was used for the first time with the business. Date format: YYYYMMDD
acctInfo.shipAddressUsageInd [A-Za-z0-9]{2} Optional. Indicates when the delivery address used for this transaction was used for the first time with the business. Accepted values:
01 = This transaction
02 = Under 30 days
03 = Between 30 and 60 days
04 = Over 60 days
acctInfo.shipNameIndicator [A-Za-z0-9]{2} Optional. Indicates whether the name of the card holder on the account is identical to the delivery name used for this transaction. Accepted values:
01 = Name on the account identical to the delivery name
02 = Name on the account different from the delivery name
acctInfo.suspiciousAccActivity [A-Za-z0-9]{2} Optional. Indicates whether the business has experienced suspicious activity (including previous fraud) on the card holder’s account. Accepted values:
01 = No record of suspicious activity
02 = Record of suspicious activity
merchantRiskIndicator JSON Optional. Node with additional information of the business representing the evaluation of the level of risk of fraud for authentication. The delivery of this information is highly recommended
merchantRiskIndicator.deliveryEmailAddress [A-Za-z0-9]{1,254} Optional. For electronic delivery, the email address to which the goods were delivered
merchantRiskIndicator.deliveryTimeframe [A-Za-z0-9]{2} Optional. Indicates the delivery period of the goods. Accepted values:
01 = Electronic delivery
02 = Delivery on the same day
03 = 24 hour delivery
04 = Delivery in 2 days or more
merchantRiskIndicator.giftCardAmount [A-Za-z0-9]{1,15} Optional. For purchases from prepaid cards or gift cards, the total amount of the purchase in major units (for example, USD 123.45 is 123)
merchantRiskIndicator.giftCardCount [0-9]{2} Optional. For purchases from prepaid cards or gift cards, total count of prepaid cards or gift cards/gift codes purchased
merchantRiskIndicator.giftCardCurr [0-9]{3} Optional. For the purchase of prepaid/gift cards, code ISO-4217 of currency of the card
merchantRiskIndicator.preOrderDate [0-9]{8} Optional. For a pre-ordered purchase, the forecast availability date of the goods. Date format: YYYYMMDD
merchantRiskIndicator.preOrderPurchaseInd [A-Za-z0-9]{2} Optional. Indicates whether the card holder makes an order with availability or future launch date. Accepted values:
01 = Goods available
02 = Future availability
merchantRiskIndicator.reorderItemsInd [A-Za-z0-9]{2} Optional. Indicates whether the card is reordering previously purchased goods. Accepted values:
01 = First time purchased
02 = Previously purchased
merchantRiskIndicator.shipIndicator [A-Za-z0-9]{2} Optional. Indicates the delivery method selected for the transaction. Businesses must select the delivery indicator code which more precisely describes the specific transaction of the card holder, not their general commercial activity. If one or more items are included in the sale, use the delivery Indicator code for physical goods, or if all products are digital, use the delivery Indicator code which describes the most expensive item.
Accepted values:
01 = Delivery to the invoice address of the holder
02 = Delivery to another verified address of the client
03 = Delivery to an address other than that of the holder’s invoice address
04 = Delivery to the store or collection at premises (the address of the store will be stored in the delivery address fields)
05 = Digital goods (includes online services, electronic gift cards and discount coupons)
06 = Tickets for events and trips, without delivery
07 = Other (for example, games, digital services without delivery, subscriptions to online services, etc.)
threeDSRequestorAuthenticationInfo JSON Optional. Node with additional information on how the client was authenticated at the start of the session in the business account
threeDSRequestorAuthenticationInfo.threeDSReqAuthData [A-Za-z0-9]{1,2048} Optional. Data which documents and supports a specific authentication process. The content of the current version of the protocol is not specified
threeDSRequestorAuthenticationInfo.threeDSReqAuthMethod [A-Za-z0-9]{2} Optional. Mechanism used by the holder to authenticate themselves in the business. Accepted values:
01 = Without 3DS authentication (for example, holder identified as guest)
02 = Logged onto the account on the ACS using the credentials of the ACS
03 = Logged onto the account on the ACS using an affiliate identifier
04 = Logged onto the account on the ACS using the credentials of the issuer
05 = Logged onto the account on the ACS using a third party authentication
06 = Logged onto the account on the ACS using a FIDO authenticator
07–79 = Reserved
80–99 = Reserved
threeDSRequestorAuthenticationInfo.threeDSReqAuthTimestamp [0-9]{12} Optional. Date and time UTC of the authentication. Date format: YYYYMMDDHHMM
shoppingCart Array JSON Optional. Node with the list of items purchased in the store
shoppingCart[].sku [A-Za-z0-9]{1,15} Optional. Product identifier
shoppingCart[].quantity [0-9]{5} Optional. Units of product purchased
shoppingCart[].unitPrice [0-9]{1,8} Optional. Unit amount of each product in integer format. 1.00 EURO = 100, 4.50 EUROS = 450, etc.
shoppingCart[].name [A-Za-z0-9]{1,254} Optional. Product name
shoppingCart[].category [A-Za-z0-9]{1,50} Optional. Product category
shoppingCart[].articleType [0-9]{1,2} Conditional. Mandatory in some methods. Article type of shopping cart element (4 = Discount, 5 = Physical, 6 = Shipping_fee, 7 = Sales_tax, 8 = Digital, 9 = Gift_card, 10 = Store_credit, 11 = Surcharge).
addrMatch [A-Za-z]{1} Optional. Indicates whether the delivery address is the same as the invoice address
Y = The delivery address is the same as the invoicing address
N = The delivery and invoice addresses are different
purchaseInstalData [0-9]{1,3} Conditional. Mandatory for Instalment operations (MERCHANT_TRX_TYPE = I). Indicates the maximum number of deferred payment authorisations
Accepted values: The value must be greater than 1
recurringExpiry [0-9]{8} Conditional. Mandatory for Recurring and Instalment operations (MERCHANT_TRX_TYPE = I or R). The date from which there will be no more authorisations. Accepted format: YYYYMMDD
recurringFrequency [A-Za-z0-9]{1,4} Conditional. Mandatory for Recurring and Instalment operations (MERCHANT_TRX_TYPE = I or R). Indicates the minimum number of days between authorisations
aft Array JSON
aft.firstName [A-Za-z0-9]{1,30} Mandatory. Name of holder
aft.lastName [A-Za-z0-9]{1,30} Mandatory. Surname of holder
aft.country [A-Za-z0-9]{3} Mandatory. Receiver's country. (ISO 3166-1) ^[a-zA-Z]{3}$
aft.address [A-Za-z0-9]{1,35} Mandatory. Receiver address .^[a-zA-Z0-9\s]{1,35}$
aft.city [A-Za-z0-9]{1,25} Mandatory. Receiver's city ^[a-zA-Z]{1,25}$
aft.accountNumber [A-Za-z0-9]{1,4} Mandatory. Receiver card number
aft.accountNumberType [0-9]{2} Mandatory. Account number type. 00 (Other) | 01 (Card) | 02 (Account) | 03 (Cash)
aft.utr [A-Za-z0-9]{19} Mandatory. Unique Transaction Reference. Should be formatted as 0 + ICA (n-6) Fix value given by acquirer + Year (n-1) last digit of current year + Julian date (n-3) day of the year + hour (n-6) hhmmss + sequence number (n-2) from 00 to 99. example: 012345638712121200 (read as 0 123456 3 87 121212 00)
aft.bai [A-Za-z0-9]{1,4} Mandatory. Business Application Identifier. AA|BI
aft.senderName [A-Za-z0-9]{1,30} Mandatory. Sender name
marketplaceSeller Array JSON Optional. Node with the list of Sellers associated with the operation
marketplaceSeller[].merchantCustomerId [A-Za-z0-9]{1,100} Optional. Unique seller identifier provided by the supplier.
marketplaceSeller[].amount [0-9]{1,8} Optional. Total amount associated with the seller in integer format . 1,00 EURO = 100, 4,50 EUROS = 450...
marketplaceSeller[].currency [0-9]{1,8} Mandatory. Reference original operation.
marketplaceSeller[].deliveryTimeframe [0-9]{8} Optional. Estimated delivery date (the longest if there are several). Date format: YYYYMMDD