Checkout v2

3-D Secure 2

schedule 5 min read

Authenticating the cardholder.

Edit "3-D Secure 2" on GitHub

3-D Secure 2

When dealing with card payments, 3-D Secure authentication of the cardholder is an essential topic. 3-D Secure 2 is an improved version of the old protocol, now allowing frictionless payments where transactions can be completed without input from the cardholder. To increase the chances of this, there are certain fields that should be included in your request when implementing 3-D Secure 2.

Payer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    "payer": {
        "email": "olivia.nyhuus@payex.com",
        "msisdn": "+4798765432",
        "workPhoneNumber" : "+4787654321",
        "homePhoneNumber" : "+4776543210",
        "shippingAddress": {
            "addressee": "Olivia Nyhuus",
            "streetAddress": "Saltnestoppen 43",
            "coAddress": "",
            "city": "Saltnes",
            "zipCode": "1642",
            "countryCode": "NO"
            }
}
Field Type Description
└➔ payer object The payer object.
└➔ email string Payer’s registered email address.
└➔ msisdn string Payer’s registered mobile phone number.
└➔ homePhoneNumber string Payer’s registered home phone number.
└➔ workPhoneNumber string Payer’s registered work phone number.
└➔ shippingAddress object The shipping address object related to the payer.
└─➔ addressee string The name of the addressee – the receiver of the shipped goods.
└─➔ coAddress string Payer’ s c/o address, if applicable.
└─➔ streetAddress string Payer’s street address. Maximum 50 characters long.
└─➔ zipCode string Payer’s zip code.
└─➔ city string Payer’s city of residence.
└─➔ countryCode string Country Code for the country of residence.

Risk Indicator

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
    "riskIndicator": {
        "deliveryEmailAddress": "olivia.nyhuus@payex.com",
        "deliveryTimeFrameIndicator": "01",
        "preOrderDate": "19801231",
        "preOrderPurchaseIndicator": "01",
        "shipIndicator": "01",
        "giftCardPurchase": false,
        "reOrderPurchaseIndicator": "01"
        "pickUpAddress" : {
            "name": "Company Megashop Sarpsborg",
            "streetAddress": "Hundskinnveien 92",
            "coAddress": "",
            "city": "Sarpsborg",
            "zipCode": "1711",
            "countryCode": "NO"
        }
    }
}
Field Type Description
└➔ riskIndicator object This object consist of information that helps verifying the payer. Providing these fields decreases the likelihood of having to prompt for a 3-D Secure authentication of the payer when they are authenticating the purchase.
└─➔ deliveryEmailAdress string For electronic delivery, the email address to which the merchandise was delivered.
└─➔ deliveryTimeFrameIndicator string Indicates the merchandise delivery timeframe.
01 (Electronic Delivery)
02 (Same day shipping)
03 (Overnight shipping)
04 (Two-day or more shipping).
└─➔ preOrderDate string For a pre-ordered purchase. The expected date that the merchandise will be available. Format: YYYYMMDD.
└─➔ preOrderPurchaseIndicator string Indicates whether the payer is placing an order for merchandise with a future availability or release date.
01 (Merchandise available)
02 (Future availability).
└─➔ shipIndicator string Indicates shipping method chosen for the transaction.
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 cardholder’s billing address)
04 (Ship to Store / Pick-up at local store. Store address shall be populated in the riskIndicator.pickUpAddress and payer.shippingAddress fields)
05 (Digital goods, includes online services, electronic giftcards and redemption codes)
06 (Travel and Event tickets, not shipped)
07 (Other, e.g. gaming, digital service).
└─➔ giftCardPurchase bool true if this is a purchase of a gift card.
└─➔ reOrderPurchaseIndicator string Indicates if the cardholder is reordering previously purchased merchandise.
01 (First time ordered)
02 (Reordered).
└➔ pickUpAddress object If the shipIndicator is set to 04, you can prefill these fields with the payer’s pickUpAddress of the purchase to decrease the risk factor of the purchase.
└─➔ name string If the shipIndicator is set to 04, prefill this with the payer’s name.
└─➔ streetAddress string If the shipIndicator is set to 04, prefill this with the payer’s streetAddress. Maximum 50 characters long.
└─➔ coAddress string If the shipIndicator is set to 04, prefill this with the payer’s coAddress.
└─➔ city string If the shipIndicator is set to 04, prefill this with the payer’s city.
└─➔ zipCode string If the shipIndicator is set to 04, prefill this with the payer’s zipCode.
└─➔ countryCode string If the shipIndicator is set to 04, prefill this with the payer’s countryCode.