Complete the 3D Secure authentication process by providing detailed transaction and browser data.
Use this request to initiates the browser-based authentication phase of a standalone 3D Secure authentication request. The response will indicate whether additional customer challenges are required or if the authentication is complete.
The more data points are submitted, the better chances the cardholder has for a frictionless authentication.
curl -i -X PUT \
'https://api-services.pxp.io/api/v1/threedsecure/standalone/authentications/550e8400-e29b-41d4-a716-446655440000/browser-authentication' \
-H 'Content-Type: application/json' \
-d '{
"fingerprintNotification": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS8zZHMtbm90aWZpY2F0aW9uIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiIxMjM0NTY3OC05YWJjIn0=",
"merchantCategoryCode": "5411",
"merchantCountryNumericCode": "840",
"merchantLegalName": "ACME Ltd",
"acquirerMerchantId": "ACME_MERCHANT_001",
"challengeWindowSize": 3,
"requestorChallengeIndicator": "01",
"challengeCallbackUrl": "https://example-merchant.com/3ds-challenge-callback",
"recurring": {
"expirationDate": "2024-12-31T23:59:59Z",
"frequencyInDays": 30
},
"billingAddress": {
"city": "San Francisco",
"countryNumericCode": "840",
"line1": "123 Market St",
"line2": "Apt 456",
"line3": "Building B",
"postalCode": "94105",
"stateCode": "CA"
},
"shippingAddress": {
"city": "San Francisco",
"countryNumericCode": "840",
"line1": "123 Market St",
"line2": "Apt 456",
"line3": "Building B",
"postalCode": "94105",
"stateCode": "CA"
},
"browserData": {
"acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"colorDepth": 24,
"ipAddress": "192.168.1.1",
"javaEnabled": true,
"javaScriptEnabled": true,
"language": "en-US",
"screenHeight": 1080,
"screenWidth": 1920,
"timeZoneOffsetInMinutes": -420,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
},
"shopper": {
"email": "johndoe@example.com",
"homePhoneNumber": "+1234567890",
"mobilePhoneNumber": "+0987654321",
"workPhoneNumber": "+1123456789"
}
}'| Parameter | Description |
|---|---|
authenticationIdstring required | The authentication ID from the pre-initiation step. |
| Parameter | Description |
|---|---|
fingerprintNotificationstring | URL for notifying the fingerprinting result. Base64 encoded string containing threeDSMethodNotificationURL and threeDSServerTransID. |
merchantCategoryCodestring (4 characters) | The four-digit Merchant Category Code (MCC) assigned to the merchant. |
merchantCountryNumericCodestring (3 characters) required | The three-digit country code of the merchant, in ISO 3166-1 format. |
merchantLegalNamestring (≤ 40 characters) required | The legal name of the merchant. |
acquirerMerchantIdstring (≤ 35 characters) required | The acquirer merchant ID. |
challengeWindowSizeinteger required | The desired size of the challenge window. Possible values:
|
requestorChallengeIndicatorstring required | Indicator of whether a challenge is requested. Possible values:
|
challengeCallbackUrlstring (≤ 256 characters) required | The fully qualified URL that receives the CRes message or Error Message. |
recurringobject | Details related to recurring transactions. |
recurring.expirationDatestring | The expiration date of the recurring transaction plan, in ISO 8601 format. |
recurring.frequencyInDaysinteger | The frequency of the recurring transactions in days. |
billingAddressobject | Billing address details. |
billingAddress.citystring (≤ 50 characters) | The city of the address. |
billingAddress.countryNumericCodestring (3 characters) | The numeric country code following ISO 3166-1 numeric standard. |
billingAddress.line1string (≤ 50 characters) | The first line of the address, typically street address or PO Box. |
billingAddress.line2string (≤ 50 characters) | The second line of the address for additional information. |
billingAddress.line3string (≤ 50 characters) | The third line of the address for additional information. |
billingAddress.postalCodestring (≤ 16 characters) | The postal code of the address. |
billingAddress.stateCodestring (≤ 3 characters) | The state or province of the address. |
shippingAddressobject | Shipping address details. |
shippingAddress.citystring (≤ 50 characters) | The city of the address. |
shippingAddress.countryNumericCodestring (3 characters) | The numeric country code following ISO 3166-1 numeric standard. |
shippingAddress.line1string (≤ 50 characters) | The first line of the address, typically street address or PO Box. |
shippingAddress.line2string (≤ 50 characters) | The second line of the address for additional information. |
shippingAddress.line3string (≤ 50 characters) | The third line of the address for additional information. |
shippingAddress.postalCodestring (≤ 16 characters) | The postal code of the address. |
shippingAddress.stateCodestring (≤ 3 characters) | The state or province of the address. |
browserDataobject required | Information about the browser used in the authentication process. |
browserData.acceptHeaderstring (≤ 2048 characters) required | The Accept HTTP header field from the browser. |
browserData.colorDepthinteger required | The color depth of the browser's screen, measured in bits per pixel. |
browserData.ipAddressstring (≤ 45 characters) | The IP address of the device running the browser. |
browserData.javaEnabledboolean required | Indicates whether the browser has Java enabled. |
browserData.javaScriptEnabledboolean required | Indicates whether the browser has JavaScript enabled. |
browserData.languagestring (≤ 8 characters) required | IETF BCP 47 language tag. |
browserData.screenHeightinteger required | The height of the browser's screen in pixels. |
browserData.screenWidthinteger required | The width of the browser's screen in pixels. |
browserData.timeZoneOffsetInMinutesinteger required | The difference, in minutes, between UTC and the local time of the browser. |
browserData.userAgentstring (≤ 2048 characters) required | The User-Agent string of the browser. |
shopperobject required | Details about the shopper involved in the authentication. |
shopper.emailstring (≤ 254 characters) | The email address of the shopper. |
shopper.homePhoneNumberstring | The home phone number of the shopper. |
shopper.mobilePhoneNumberstring | The mobile phone number of the shopper. |
shopper.workPhoneNumberstring | The work phone number of the shopper. |
If your request is successful, you'll receive a 200 response.
{
"state": "AuthenticationSuccessful",
"transactionStatus": "Y",
"electronicCommerceIndicator": "05",
"cardholderAuthenticationVerificationValue": "CAVV1234567890",
"exemptionGranted": false,
"exemptionGrantedByIssuer": "",
"acsUrl": "https://acs.issuerbank.com/challenge",
"challengeData": "eyJjaGFsbGVuZ2VEYXRhIjoiQUJDIn0=",
"stateData": {
"code": "01",
"reason": "Authentication completed successfully"
},
"cardholderInfo": "Authentication successful - no additional verification required"
}| Parameter | Description |
|---|---|
statestring | The current state of the authentication request. Possible values:
|
transactionStatusstring | The status of the transaction. Possible values:
|
electronicCommerceIndicatorstring | The indicator used to signify the level of security used in the authentication, often used in electronic commerce transactions. |
cardholderAuthenticationVerificationValuestring | A value generated during the authentication process to verify the cardholder's identity (CAVV). |
exemptionGrantedboolean | Whether an exemption from Strong Customer Authentication (SCA) was granted. |
exemptionGrantedByIssuerstring | Specifies if the exemption was granted by the issuer. Possible values:
|
acsUrlstring | The URL of the Access Control Server (ACS) where the cardholder is redirected for challenge authentication. |
challengeDatastring | Data required for the challenge authentication process, typically a base64 encoded string. |
stateDataobject | Details about the state. |
stateData.codestring | The state code. Possible values include numbers from 01 to 30. |
stateData.reasonstring | The state reason. |
cardholderInfostring | The text provided by the ACS/issuer to the cardholder during a transaction. |