{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/api-evangelist/verifone/refs/heads/main/json-schema/checkout-api-threedsdata.json", "title": "ThreeDSData", "description": "Used for 3D-Secure payments", "required": [ "threeds_contract_id", "transaction_mode" ], "type": "object", "properties": { "account_age_indicator": { "type": "string", "description": "Length of time cardholder has had account.
Possible Values:
* 01 - No account
* 02 - Created during transaction
* 03 - Less than 30 days
* 04 - 30-60 days
* 05 - More than 60 days
", "enum": [ "01", "02", "03", "04", "05" ] }, "account_create_date": { "type": "string", "description": "Date the cardholder opened the account. `Format: YYYYMMDD`", "format": "date" }, "account_change_indicator": { "type": "string", "description": "Length of time since the last change to the cardholder account. This includes shipping address,
new payment account or new user added. Possible Values:
* 01 - Changed during transaction
* 02 - Less than 30 days
* 03 - 30-60 days
* 04 - More than 60 days
", "enum": [ "01", "02", "03", "04" ] }, "account_change_date": { "type": "string", "description": "Date the cardholder's account was last changed. This includes changes to the billing or shipping address, new payment accounts or new users added.` Format: YYYYMMDD`
", "format": "date" }, "account_pwd_change_indicator": { "type": "string", "description": "Length of time since the cardholder changed or reset the password on the account.
Possible Values:
* 01 - No change
* 02 - Changed during transaction
* 03 - Less than 30 days
* 04 - 30-60 days
* 05 - More than 60 days
", "enum": [ "01", "02", "03", "04", "05" ] }, "account_pwd_change_date": { "type": "string", "description": "Date the cardholder last changed or reset password on account. `Format: YYYYMMDD`", "format": "date" }, "account_id": { "maxLength": 64, "type": "string", "description": "Additional cardholder account information." }, "account_purchases": { "maximum": 9999, "type": "integer", "description": "Number of purchases with this cardholder account during the previous six months." }, "acs_window_size": { "type": "string", "description": "An override field that a merchant can pass in to set the challenge window size to display to the end
cardholder.The ACS will reply with content that is formatted appropriately to this window size to allow
for the best user experience. The sizes are width x height in pixels of the window displayed in
the cardholder browser window. Possible values:
* 01 - 250x400
* 02 - 390x400
* 03 - 500x600
* 04 - 600x400
* 05 - Full page
", "enum": [ "01", "02", "03", "04", "05" ] }, "add_card_attempts": { "maximum": 999, "type": "integer", "description": "Number of add card attempts in the last 24 hours." }, "address_match": { "type": "string", "description": "Indicates whether cardholder billing and shipping addresses match.
Possible Values:
* Y - Shipping address matches billing address
* N - Shipping address does not match billing address
", "enum": [ "Y", "N" ] }, "alternate_authentication_method": { "type": "string", "description": "Mechanism used by the cardholder to authenticate to the 3DS requester.
Possible Values:
* 01 - No authentication occurred (e.g. Guest Checkout)
* 02 - Login to the cardholder account at the Merchant system using Merchant system credentials
* 03 - Login to the cardholder account at the Merchant system using a Federated ID
* 04 - Login to the cardholder account at the Merchant system using Issuer credentials
* 05 - Login to the cardholder account at the Merchant system using third-party authentication
* 06 - Login to the cardholder account at the Merchant system using FIDO Authenticator
", "enum": [ "01", "02", "03", "04", "05", "06" ] }, "alternate_authentication_date": { "type": "string", "description": "Date and time in UTC of the cardholder authentication. ` Format: YYYYMMDDHHMM`", "format": "date" }, "alternate_authentication_data": { "maxLength": 2048, "type": "string", "description": "Data that documents and supports a specific authentication
process that was sent in the AlternateAuthenticationMethod field.
" }, "threeds_contract_id": { "maxLength": 36, "type": "string", "description": "The ID of the threeDSContract used." }, "authentication_indicator": { "type": "string", "description": "Indicates the type of Authentication request. 01 - Payment transaction
02 - Recurring transaction
03 - Installment transaction
04 - Add card
05 - Maintain card
06 - Cardholder verification as part of EMV token ID&V
", "enum": [ "01", "02", "03", "04", "05", "06" ] }, "category_code": { "maximum": 9999, "type": "integer", "description": "Merchant category code (MCC) NOTE: This field is required by Mastercard and VISA Brazil extensions.
" }, "challenge_indicator": { "type": "string", "description": "NOTE: This is a 2.0 required field, Cardinal will default to 01 on Merchant Configuration
- can be overridden by the merchant. Possible Values:
* 01 - No preference
* 02 - No challenge requested
* 03 - Challenge requested (3DS Requestor Preference)
* 04 - Challenge requested (Mandate)
* 90 - CB specific value
", "default": "01", "enum": [ "01", "02", "03", "04", "90" ] }, "delivery_email": { "maxLength": 255, "type": "string", "description": "For electronic delivery, email address to which the merchandise was delivered." }, "delivery_time_frame": { "type": "string", "description": "Indicates the delivery timeframe.
Possible Values:
* 01 - Electronic delivery
* 02 - Same day shipping
* 03 - Overnight shipping
* 04 - Two or more day shipping
", "enum": [ "01", "02", "03", "04" ] }, "enabled": { "type": "boolean", "description": "Whether 3DS should be used.", "default": true }, "fraud_activity": { "type": "string", "description": "Indicates whether the merchant experienced suspicious activity (including previous fraud) on the account.
Possible Values:
* 01 - No suspicious activity
* 02 - Suspicious activity observed
", "enum": [ "01", "02" ] }, "gift_card_amount": { "maximum": 999999999999999, "type": "integer", "description": "The purchase amount total for prepaid gift cards in major units.
Example: $123.45 USD = 12345
" }, "gift_card_currency_code": { "maxLength": 3, "minLength": 3, "type": "string", "description": "ISO 4217 currency code for the gift card purchased." }, "gift_card_count": { "maximum": 99, "type": "integer", "description": "Total count of individual prepaid gift cards purchased." }, "installment": { "maximum": 999, "minimum": 2, "type": "number", "description": "Indicates the maximum number of authorizations for installment payments. An integer value greater than 1 indicating the maximum number of permitted authorizations for installment payments. ** Required for Recurring and Installment transactions, when authenticationIndicator=\"02\" & \"03\" **" }, "message_category": { "type": "string", "description": "Category of the message for a specific use case.
Possible Values:
* 01 - PA (payment)
* 02 - NPA (non payment)
NOTE: Default is payment (01). Configured on Merchant account, or can be overridden on transaction.
", "enum": [ "01", "02" ] }, "payment_use_case": { "type": "string", "description": "Indicates the type of payment.The value from this field will be mapped to the data field on the CB-USECASE extension
Possible Values:
* 01 - Single Payment
* 02 - Fixed Amount and Term Subscription
* 03 - Payment By Instalments
* 04 - Payment By Shipment
* 05 - Other Recurring Payments
NOTE: Required for CB transactions (Required if message_category = 01, or message_category = 02 and authentication_indicator = 02 or 03
", "default": "01", "enum": [ "01", "02", "03", "04", "05" ] }, "payment_account_indicator": { "type": "string", "description": "Indicates the length of time that the payment account was enrolled in the merchant account.
Possible Values:
* 01 - No account (guest checkout)
* 02 - During the transaction
* 03 - Less than 30 days
* 04 - 30-60 days
* 05 - More than 60 days
", "enum": [ "01", "02", "03", "04", "05" ] }, "payment_account_age": { "type": "string", "description": "Date the payment account was added to the cardholder account. ` Format: YYYYMMDD`", "format": "date" }, "pre_order_indicator": { "type": "string", "description": "Indicates whether cardholder is placing an order with a future availability or release date.
Possible Values:
* 01 - Merchandise available
* 02 - Future availability
", "enum": [ "01", "02" ] }, "pre_order_date": { "type": "string", "description": "Expected date that a pre-ordered purchase will be available. `Format: YYYYMMDD`", "format": "date" }, "prior_authentication_data": { "maxLength": 2048, "type": "string", "description": "This field carry data that the ACS can use to verify the authentication process" }, "prior_authentication_method": { "type": "string", "description": "Mechanism used by the Cardholder to previously authenticate to the 3DS Requestor.
* 01 - Frictionless authentication occurred by ACS
* 02 - Cardholder challenge occurred by ACS
* 03 - AVS verified
* 04 - Other issuer methods
", "enum": [ "01", "02", "03", "04" ] }, "prior_authentication_time": { "type": "string", "description": "Date and time in UTC of the prior cardholder authentication. ` Format: YYYYMMDDHHMM`", "format": "date" }, "prior_authentication_ref": { "maxLength": 36, "type": "string", "description": "This data element contains a ACS Transaction ID for a prior authenticated transaction.
For example, the first recurring transaction that was authenticated with the cardholder
" }, "product_code": { "type": "string", "description": "Merchant product code.
Possible Values:
* PHY - Goods/Service Purchase
* CHA - Check Acceptance
* ACF - Account Funding
* QCT - Quasi-Cash Transaction
* PAL - Prepaid Activation and Load
NOTE: This value defaults to PHY. This field can be used to override that value if applicable.
", "enum": [ "PHY", "CHA", "ACF", "QCT", "PAL" ] }, "recurring_end": { "type": "string", "description": "The date after which no further recurring authorizations should be performed. `Format: YYYYMMDD` ** Required for Recurring and Installment transactions, when authenticationIndicator=\"02\" & \"03\" **", "format": "date" }, "recurring_frequency": { "maximum": 9999, "type": "number", "description": "Conditional: Integer value indicating the minimum number of days between recurring authorizations. A frequency of monthly is indicated by the value 28. Multiple of 28 days will be used to indicate months. Example: 6 months = 168 ** Required for Recurring and Installment transactions, when authenticationIndicator=\"02\" & \"03\" **" }, "reorder_indicator": { "type": "string", "description": "Indicates whether cardholder is placing an order with a future availability or release date.
Possible Values:
* 01 - Merchandise available
* 02 - Future availability
", "enum": [ "01", "02" ] }, "requestor_id": { "maxLength": 35, "type": "string", "description": "This value is a Directory Server assigned 3DS Requestor Name value, each DS may provide a unique ID.
NOTE: This is a 2.0 value only and if passed will override the Requestor Name value that is,
configured on the Merchant's profile." }, "requestor_name": { "maxLength": 40, "type": "string", "description": "This value is a Directory Server assigned 3DS Requestor Name value, each DS may provide a unique ID.
NOTE: This is a 2.0 value only and if passed will override the Requestor Name value that is configured
on the Merchant's profile." }, "shipping_address_usage_indicator": { "type": "string", "description": "Indicates when the shipping address used for transaction was first used.
Possible Values:
* 01 - This transaction
* 02 - Less than 30 days
* 03 - 30-60 days
* 04 - More than 60 days
", "enum": [ "01", "02", "03", "04" ] }, "shipping_address_usage_date": { "type": "string", "description": "Date when the shipping address used for this transaction was first used.
`Format: YYYYMMDD`
", "format": "date" }, "shipping_method_indicator": { "type": "string", "description": "Indicates shipping method chosen for the transaction.
Possible Values:
* 01 - Ship to cardholder billing address
* 02 - Ship to another verified address on file with merchant
* 03 - Ship to address that is different than billing address
* 04 - Ship to store (store address should be populated on request)
* 05 - Digital goods
* 06 - Travel and event tickets, not shipped
* 07 - Other
", "enum": [ "01", "02", "03", "04", "05", "06", "07" ] }, "shipping_name_indicator": { "type": "string", "description": "Indicates if the cardholder name on the account is identical to the
shipping name used for the transaction. Possible Values:
* 01 - Account and shipping name identical
* 02 - Account and shipping name differ
", "enum": [ "01", "02" ] }, "total_items": { "pattern": "^[0-9]{2}$", "type": "string", "description": "Total items in the shopping cart of the shopper" }, "merchant_score": { "maxLength": 20, "type": "string", "description": "Merchant score" }, "transaction_count_day": { "maximum": 999, "type": "integer", "description": "Number of transactions (successful or abandoned) for this cardholder account within the last 24 hours.
" }, "transaction_count_year": { "maximum": 999, "type": "integer", "description": "Number of transactions (successful or abandoned) for this cardholder account within the last year.
" }, "transaction_mode": { "type": "string", "description": "Transaction mode identifier. Identifies the channel the transaction originates from. Available Options:
M - Moto (Mail Order Telephone Order)
P - Mobile Device
R - Retail (Physical Store)
S - Computer Device
T - Tablet Device
", "enum": [ "M", "P", "R", "S", "T" ] }, "version": { "type": "string", "description": "This field contains the 3DS version that can be leveraged to force a transaction down the 1.0 rails.", "enum": [ "1.0.2", "2.1.0", "2.2.0" ], "deprecated": true } } }