For the complete documentation index, see llms.txt. This page is also available as Markdown.

3D Secure payments

Card payments via the Checkout can also be used with 3D Secure authentications. 3D Secure 1 and 2 are supported, with automatic fallback in case the card is not enrolled for 3D Secure 2.

Customer requirements

To process 3D Secure authentications, it is required to add a customer to the Checkout creation call. Customer records can be created and managed via the Customer APIs. The table below details the required fields and their formats for creating a customer record to be compatible with 3D Secure.

You should make sure that all required fields are provided in their correct formats, else the page would result in a failure once the Customer tries to submit a payment with it. The field requirements below take priority over the API schema described in the Customer API reference.

R = Required, O = Optional, C = Conditional

Field name
Description
Status
Specification / Observation

billing.address_1

Customer's billing address information.

R

String (50)

billing.address_2

Customer's billing address information.

C

String (50) / Required if information is available.

billing.address_3

Customer's billing address information.

C

String (50) / Required if information is available.

billing.city

Customer's city on their billing address.

R

String (50)

billing.country_code

Customer's alpha 2-digit ISO 3166 country code. (e.g., United States = US)

R

String (2) / Customer's alpha 2-digit ISO 3166 country code.

billing.first_name

Customer's billing first name.

R

String (50)

billing.last_name

Customer's billing last name.

R

String (50)

billing.phone

Customer's phone number for billing address. This should be unformatted without hyphens. (e.g., 4422345678)

C

String (20) / Required if information is available. This should be un formatted without hyphens.

billing.postal_code

Customer's postal code of their billing address.

C

String (10)

billing.state

Customer's state or province of their billing address. Should be the country subdivision code defined in ISO 3166-2. If this field is not provided, the 3DS service will try to automatically populate it, based on the billing.countryCode and billing.postalCode values.

C

String (50) / Required if information is available.

company_name

Company name.

C

String (100) / If billing.firstName or billing.lastName are not provided.

company_registration_number

Unique identifier of the company, recognized by the government. Known as CoC (Chamber of Commerce) number in some countries.

O

String

date_of_birth

The date of birth of a person, 10 characters, ISO-8601 (YYYY-MM-DD).

O

String (10)

email_address

Customer's email address.

R

String (255)

entity_id

The entityId obtained from Verifone Central. The Entity ID can be found in Verifone Central under Administration → Organisations. The 'Organisation ID' listed is the Entity ID.

R

String

phone_number

Cardholder's mobile phone number.

C

Number (25)

shipping.address_1

Customer's shipping address information.

C

String (50) / Required if information is available.

shipping.address_2

Customer's shipping address information.

C

String (50) / Required if information is available.

shipping.address_3

Customer's shipping address information.

C

String (50) / Required if information is available.

shipping.city

Customer's city of their shipping address.

C

String (50) / Required if information is available.

shipping.first_name

Customer's shipping first name.

O

shipping.last_name

Customer's shipping first name.

O

shipping.country_code

Customer's alpha 2-digit ISO 3166 country code. (e.g., United States = US)

C

String (2) / Required if information is available.

shipping.postal_code

Customer's postal code of their shipping address.

C

String (10) / Required if information is available.

shipping.state

Customer's state or province of their shipping address. (e.g., Ohio = OH, Texas = TX) Should be the country subdivision code defined in ISO 3166-2. If this field is not provided, the 3DS service will try to automatically populate it, based on the shipping.countryCode and shipping.postalCode values.

C

String (3) / Required if information is available.

title

Mr or ms

O

String

work_phone

Customer's work phone number.

C

Number (25) / Required if information is available.

Here is an example request with the required fields for creating a customer for 3D Secure:

The response for creating the customer will look like this:

Required 3D Secure fields

To configure Checkout for accepting 3D Secure card payments, the following fields are required in addition to the fields required for a standard Card payment:

  • configurations.card.threed_secure.threeds_contract_id - This ID can be found in the portal or given to you by a Verifone employee. This object stores the credentials for connecting to the 3D Secure service.

  • configurations.card.threed_secure.enabled - Has to be set to true.

  • configurations.card.threed_secure.transaction_mode

The complete list of 3D Secure and other optional fields can be found in the Create Checkout API.

Example request:

Handling responses

Upon completion of a 3DS checkout, a redirection occurs including an additional query parameter authentication_id which can be used to retrieve the 3DS complete details from the 3DS service.

See Handling card responses for all possible Checkout outcomes.

Last updated

Was this helpful?