Skip to main content
Online Payments

3DS authentication

3D Secure (3DS) is an authentication protocol that allows you to request the card issuer to authenticate the cardholder prior to payment authorization or verification processing. A successful 3DS authentication (fully authenticated or attempted authentication) can:

  • Reduce fraudulent card transactions.
  • Shift the liability for certain fraud-related chargebacks to the card issuer.

How 3D Secure works

  1. Your consumer places an order on your website.
  2. You send the request to Checkout. For eligible merchants, Checkout will initiate a 3DS authentication request with the Payment Gateway.
  3. The 3DS server passes the authentication request through to the card network directory server, and then to the card issuer.
  4. The card issuer processes the authentication one of two ways:
    • Frictionless — The issuer completes the authentication using only information from the authentication API call and device information from the browser.
    • Challenge — The issuer prompts the cardholder to provide additional information to complete the authentication. In this case , the consumer is shown an authentication page of their bank’s website on the Checkout, where they’re prompted to enter a verification code sent to their phone or email and consumer completes the additional authentication step.
  5. The issuer returns the authentication result to Checkout.
  6. If authenticated successfully, Checkout will submit the payment authorization with the required 3DS authentication details to complete the order.

Orchestrated 3DS Authentication

Orchestrated 3DS leverages J.P. Morgan’s own 3DS authentication server to perform authentication as part of the payment authorization request.

Note

Checkout automatically initiates 3DS for EU merchants that are entitled to the 3DS feature even if the required field is omitted, as mandated by PSD2 regulation.

The following table shows the required and optional fields to perform orchestrated 3DS authentication.

Required and optional fields for Orchestrated 3DS authentication
Field name Parent object Description Required for 3DS? (Y/N)
paymentCardAuthenticationRequest     checkoutOptions The authentication request data which will be sent to 3DS provider if the Shopper is using a card as the payment method. This message is used by SetupCheckoutIntent API and must be populated if you want (or must) use SCA for card transactions. Y (for all Non-EU/UK merchants)
threeDSchallengeType     paymentCardAuthenticationRequest Indicates whether a challenge is requested for this transaction. Possible values are:
  • NO_PREFERENCE - This is the default value if no other value is specified. The issuer determines if the challenge will be presented or not.
  • NO_CHALLENGE - The merchant is requesting a frictionless flow. 
  • CHALLENGE_REQUESTED - The merchant is requesting for a challenge flow in the Authentication flow.
  • CHALLENGE_MANDATE - A challenge is required under regulations e.g., when adding a card on file or starting a new subscription. 
  • NO_CHALLENGE_TRA - The merchant is requesting a TRANSACTION_RISK_ANALYSIS(TRA) exemption in the Authentication flow.
  • NO_CHALLENGE_DATA – The merchant is requesting for data-based exemption in the Authentication flow.
  • NO_CHALLENGE_DA - the merchant has delegated authentication responsibility to a third-party wallet provider or to a merchant instead of 3DS and requesting for exemption.
  • NO_CHALLENGE_TRUSTED - the merchant is a trusted merchant with the cardholder.
 
cardholderAccountHistory paymentCardAuthenticationRequest Additional information about the Cardholder’s Account provided by the 3DS Requestor.  
accountCreateTimestamp cardholderAccountHistory Designates the hour, minute and second on a specific day when the record was created.  
accountUpdateTimestamp cardholderAccountHistory Designates the hour, minute, and second on a specific day when the record was last modified.  
cardFirstUsedDate cardholderAccountHistory Date that the payment account was enrolled in the Cardholder’s account with the 3DS Requestor. If this field is not set, then the Cardholder never used this card before and it' a guest checkout.  
consumerAccount24HoursAddCardCount cardholderAccountHistory Enumerates the merchant reported number of card addition attempts as a payment method by the consumer in their consumer profile during the last 24 hours.  
consumerAccountPasswordUpdateTimestamp                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    cardholderAccountHistory Designates the hour, minute, and second on a specific day when the record was last modified.  
last24HoursTransactionCount cardholderAccountHistory Enumerates the occurrences of any transaction within a given period.  
lastYearTransactionCount cardholderAccountHistory Enumerates the occurrences of any transaction within a given period.  
last6MonthsPurchaseCount cardholderAccountHistory The number of requested merchant-based purchase transactions for the cardholder over a specified time frame.  
consumerAccountSuspiciousActivityIndicator cardholderAccountHistory Indicates the merchant has experienced suspicious activity (including previous fraud) on the consumer account. This is used for the assessment of the level of fraud risk for the specific authentication for both the cardholder and the authentication being conducted.  
consumerAccountAddressIdenticalIndicator cardholderAccountHistory Indicates if the Cardholder billing address and shipping address are identical for this transaction.  
consumerShippingAddressFirstUsageDate cardholderAccountHistory Designates the year, month and day when the shipping address for this consumer profile was first used for the delivery of a purchased product.  
consumerShipToNameIdenticalIndicator cardholderAccountHistory Indicates the consumer's name on the account is identical to the shipping name used for this transaction.  
purchaseInfo           paymentCardAuthenticationRequest Purchase information.  
lastPurchaseDate purchaseInfo Designates the year, month and day of the most recent purchase which occurred on the Cardholder account.  
paymentFrequency purchaseInfo Minimum number of days between authorizations.  
merchantFraudRiskAssessment purchaseInfo Merchant's assessment of the level of fraud risk for the specific authentication for both the Cardholder and the authentication being conducted.  
shipmentType merchantFraudRiskAssessment Indicates shipping method chosen for the transaction.  
deliveryTimeframe merchantFraudRiskAssessment Codifies the shipment period of time chosen by the consumer in the purchase transaction from the merchant as defined by the Three Domain Secure (3-D Secure or 3DS) cardholder authentication process. This is used for the assessment of the level of fraud risk for the specific authentication for both the cardholder and the authentication being conducted.  
orderEmailAddress merchantFraudRiskAssessment A mail system that allows a party to send and receive messages electronically. An email address is composed of a local part and a domain part. The local part is unique to the individual while the domain or host name must meet specific standards required by the host that administers the email service.  
productRepurchase merchantFraudRiskAssessment Whether the Cardholder is reordering previously purchased merchandise.  
productPreorder merchantFraudRiskAssessment Whether Cardholder is placing an order for merchandise with a future availability or release date.  
preorderAvailabilityDate merchantFraudRiskAssessment For a pre-ordered purchase, the expected date that the merchandise will be available.  
requestorAuthenticationInfo paymentCardAuthenticationRequest Information about how the 3DS Requestor authenticated the Cardholder before or during the transaction.  
requestorAuthenticationMethod requestorAuthenticationInfo Codifies how the Three Domain Secure (3-D Secure or 3DS) Requestor (merchant) authenticated the cardholder before or during the transaction.  
threeDSAuthenticationTimestamp requestorAuthenticationInfo Designates the hour, minute and second in a specific day when the Three Domain Secure (3-D Secure or 3DS) Requestor (merchant) authenticated the cardholder before or during the transaction.  
threeDSAuthenticationData requestorAuthenticationInfo Data that documents and supports a specific authentication process.  
requestorPriorTransactionAuthenticationInfo                                                           paymentCardAuthenticationRequest Information about how the 3DS Requestor authenticated the cardholder as part of a previous 3DS transaction.  
acsTransactionId requestorPriorTransactionAuthenticationInfo A unique identifier for the Three Domain Secure (3-D Secure or 3DS) Requestor (merchant) authentication of the cardholder before or during the transaction.  
requestorAuthenticationMethod requestorPriorTransactionAuthenticationInfo Codifies how the Three Domain Secure (3-D Secure or 3DS) Requestor (merchant) authenticated the cardholder before or during the transaction.  
threeDSAuthenticationTimestamp        requestorPriorTransactionAuthenticationInfo Designates the hour, minute and second on a specific day when the Three Domain Secure (3-D Secure or 3DS) Requestor (merchant) authenticated the cardholder before or during the transaction.  
threeDSAuthenticationData requestorPriorTransactionAuthenticationInfo Data that documents and supports a specific authentication process.  
SCAExemptionReason paymentCardAuthenticationRequest Indicates the justification why a transaction does not have to meet Strong Customer Authentication (SCA) requirements.  
email consumer A mail system that allows a party to send and receive messages electronically. An email address is composed of a local part and a domain part. The local part is unique to the individual while the domain or host name must meet specific standards required by the host that administers the email service.  
authenticationType paymentCardAuthenticationRequest

Indicates the 3DS authentication type requested by the service provider when processing a payment for the service provided or goods sold. Possible values are the following, and their functional impact is covered in the SCA exemption options section.

  • AUTHENTICATION_TYPE_DEFAULT
  • AUTHENTICATION_TYPE_EXEMPTION
  • AUTHENTICATION_TYPE_AUTHENTICATION
 

Utilize orchestrated 3DS by performing a POST call to the /checkout/intent endpoint with the necessary required fields populated.

HTTP method: POST

Endpoint: /checkout/intent

Scenario: 3DS authentication request is sent by adding paymentCardAuthenticationRequest to the request body under the checkoutOptions object.

{
    "currencyCode": "USD",
    "merchantOrderNumber": "X1G5VZMxplIm1tRRcrC85o",
    "checkoutOptions": {
        "authorization": {
            "authorizationType": "AUTH_METHOD_CART_AMOUNT"
        },
        "capture": {
            "captureMethod": "CAPTURE_METHOD_NOW"
        },
        "paymentCardAuthenticationRequest": {
            "threeDSChallengeType": "CHALLENGE_TYPE_NO_CHALLENGE_REQUESTED",
            "cardholderAccountHistory": {
                "accountCreateTimestamp": "2023-06-04T11:55:20.021Z",
                "accountUpdateTimestamp": "2023-06-06T10:00:20.021Z",
                "cardFirstUsedDate": "2022-10-02T10:00:20.051Z",
                "consumerAccount24HoursAddCardCount": 1,
                "consumerAccountPasswordUpdateTimestamp": "2023-12-04T12:11:54.021Z",
                "last24HoursTransactionCount": 0,
                "lastYearTransactionCount": 10,
                "last6MonthsPurchaseCount": 5,
                "consumerAccountSuspiciousActivityIndicator": false,
                "consumerAccountAddressIdenticalIndicator": true,
                "consumerShippingAddressFirstUsageDate": "2023-12-06T12:11:54.021Z",
                "consumerShipToNameIdenticalIndicator": true
            },
            "purchaseInfo": {
                "lastPurchaseDate": "2023-12-06T12:11:54.021Z",
                "merchantFraudRiskAssessment": {
                    "shipmentType": "SHIPPING_METHOD_SHIP_TO_BILLING_ADDRESS",
                    "deliveryTimeframe": "DELIVERY_TYPE_SAME_DAY_SHIPPING",
                    "orderEmailAddress": "john.doe@gmail.com"
                }
            },
            "requestorAuthenticationInfo": {
                "requestorAuthenticationMethod": "REQUESTOR_AUTHENTICATION_METHOD_REQUESTOR_CRED",
                "threeDSAuthenticationTimestamp": "2023-12-06T16:31:54.021Z"
            },
            "requestorPriorTransactionAuthenticationInfo": {
                "requestorAuthenticationMethod": "PRIOR_AUTHENTICATION_METHOD_FRICTIONLESS_AUTHENTICATION_BY_ACS",
                "threeDSAuthenticationTimestamp": "2023-12-06T16:31:54.021Z"
            }
        }
    },
    "cart": {
        "totalTransactionAmount": 1000
    }
}

Response:

{
    "checkoutSessionToken": "eyJraWQiOiJlYmRhNTZhOS1hZjMxLTQ3YzItYjE4OS01MWFjNmFiNWEwYjQiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJrc2kiOiJmYTBkOTI3OThlNTk1MmRkYWYxZTc0MjM2ZjNkM2M5NSIsIlJvbGUiOlsiVFJBTlNBQ1RJT05BTF9DSEVDS09VVF9TSE9QUEVSIl0sIm1vciI6IjEwMDI2ODExMzUiLCJvZCI6ImUwZTdjZTgwMmI2NWE1ZjIwYWNkZjZhYzhkNmUwZWNhY2FiMWE2MjBjY2M0NzY0M2UyNzRkN2FiNTMyODA5MGFhMjI5ZTdkOTBjNDRjZGQ4M2JmNjM5MzMxN2M3ODk0MGNjOGQ3OWQ4OWI1ZjY2NGQ1OTNmODcxYzJhMjBhMTEwIiwiaXNzIjoiY2hlY2tvdXQiLCJtaWQiOiJjZTBjMDY1Ny1lOTFiLTQ1ZDAtOWVmNS02ODU2NTM5NDIyMjg6NDUxMjA3Iiwib2lkIjoiMjNjODMyODItZTVjMi00M2VhLTk2MGItZjdiOGRiMDM2ODliIiwiZXhwIjoxNjgwMTMyMDYwLCJtc3IiOiIiLCJzcGkiOiJkYTk0MmIzZC0wNTgyLTQ1MTEtOTBkZS04ZDE5YWUzZWQxZjciLCJpYXQiOjE2ODAxMjQ4NjB9.YtcZK2o2_CAN7j3JjHhgyjZGxD_wcC7L0CI22mm_qfzH7HlBboMX7qahqOYauda5_P-4pPJuvoda46aqmEzUgTr2tScRwHo6lsD8_L-in5-7BD53LnxvsB_NS97zT6CjBSk4flsy-Cgw_PvvQMaTnl-E64nvmaBI7DK_1qzaqBNQxfZwot83Dk66m3I3E5M-8INBe-WyzVfr4ywyE03Db2IPN-_Vk2WWFoys46hNEuX2qIazki3-jFCnqD5DLejEtLJ2bpzrXK_O76_DOaF3i_pRvytyPmfs9C1tI5tsTAr4W6YFMlSaDaFvVg-sd9SqAbZddMRkSp2jrTR2J4d4HA",
    "redirectUrl": ""
}

SCA exemption

You choose to request the payment to be exempted from Strong Customer Authentication (SCA). Alternatively, we manage this on your behalf if you are enrolled in the J.P. Morgan-managed SCA exemption service. The cardholder’s bank will receive the authorization request requesting for an exemption, assess the risk level of the transaction, and ultimately decide whether to approve the exemption or if authentication is still necessary. 

SCA exemption options

The following table describes the behavior for the J.P. Morgan-managed and merchant-managed SCA exemption options if authenticationType value is optionally provided in Checkout intent.

SCA exemption behavior for checkout intent authenticationType field
Value                                                                          Behavior (J.P. Morgan-managed SCA exemption) Behavior (Merchant-managed SCA exemption)

No value

or 

AUTHENTICATION_TYPE_DEFAULT

J.P. Morgan-managed SCA exemption applies all eligible exemptions to the transaction. If the issuer responds with a soft decline, Checkout initiates 3DS authentication.

Initiates 3DS directly.

If you provide an SCA exemption, we attempt to authorize the transaction using that exemption. If the issuer responds with a soft decline, we initiate 3DS authentication.

AUTHENTICATION_TYPE_AUTHENTICATION Use this option to force SCA (3DS authentication) when you want the transaction authenticated and are not requesting an SCA exemption. Use this option to force SCA (3DS authentication) when you want the transaction authenticated and are not requesting an SCA exemption.
AUTHENTICATION_TYPE_EXEMPTION

J.P. Morgan-managed SCA exemption only attempts to apply authorized SCA exemptions to the transaction. If no exemptions apply, the payment is declined and and soft decline codes are returned in the response. No 3DS soft decline is initiated.

Note: You must set up for the J.P. Morgan-managed SCA exemption service.

We decline the transaction, since you are not enabled for the Managed SCA exemption service.

J.P. Morgan-managed SCA exemption (value-added service)

To opt into this service, work with your relationship manager for the required setup. For entitled merchants, we determine and apply the most appropriate SCA exemption for each transaction. We manage the exemption process, including handling soft declines and triggering authentication as needed. This increases the likelihood of successful authorization while maintaining compliance with regulatory requirements.

Merchant-managed SCA exemption

You request SCA exemptions by specifying the applicable exemption type in the transaction request. The cardholder’s bank assesses the risk and determines whether to approve the exemption or require authentication.

Step 1: Send the request to Checkout 

Send the payment to Checkout with the field SCAExemptionReason populated with the applicable exemption type. Allowed values are:

SCA exemption types and the card brands they apply to
SCA exemption type Description Eligible card brands
SCA_EXEMPTION_LOW_VALUE_PAYMENT                                                                                                                                           Transactions are eligible for SCA exemption when the transaction amount is below the limit established by PSD2/RTS. Visa, MasterCard , International Maestro
SCA_EXEMPTION_TRUSTED_MERCHANT Transactions are eligible for SCA exemption when a merchant is allow listed by the cardholder. Visa
SCA_EXEMPTION_TRANSACTION_RISK_ANALYSIS Transactions are eligible for SCA exemption if transaction fraud rates are below established thresholds defined by Payment Services Directive (PSD2)/Regulatory Technical Standards (RTS). Visa, MasterCard , International Maestro
SCA_EXEMPTION_SECURE_CORPORATE_PAYMENT Secure corporate or business-to-business (B2B) payments over dedicated payment processes and protocols are exempted from SCA. Visa, MasterCard , International Maestro , American Express
SCA_EXEMPTION_MERCHANT_INITIATED_TRANSACTION                                                                                                            Transactions processed within the merchant-initiated transaction (MIT) framework are exempt from SCA. The initial transaction must meet SCA requirements. MasterCard , International Maestro
SCA_EXEMPTION_RECURRING_PAYMENT Recurring transaction is eligible for SCA exemption. The initial transaction must meet SCA requirements. MasterCard , International Maestro
SCA_EXEMPTION_DELEGATION Transactions are eligible for SCA exemptions when an issuer has delegated authentication responsibility to a third-party wallet provider or to a merchant. Visa, MasterCard , International Maestro

Step 2: Checkout processes the payment with the exemption

Checkout processes and sends the payment to the card issuers with the exemption details as requested by you. The following scenarios can occur after this:

  • Issuer approves the payment with the SCA exemption: Payment authorization is approved.
  • Issuer soft declines the payment requesting for Authentication. In this scenario, Checkout will authenticate the transaction and resubmit the transaction for authorization.

Retrieve additional details in the payment notification

Get additional details associated with the payment by performing a GET call to the /checkout/notifications endpoint. The 3DS details are available in the orderNotification object. 

The following table lists the details of the fields and possible values of a 3DS notifications response: 

3DS notification's response fields, valid values, and their descriptions
Field name Description
threeDSTransactionStatus 

The status of the 3DS transaction.

  • - Authentication was successful.
  • N - Authentication was not successful. Transaction was denied.
  • - Authentication could not be performed due to technical or other problems.
  • - A challenge is required to authenticate the cardholder.
  • - Authentication was rejected.
  • - An attempt to process the authentication was made but it was not successful. A proof of attempted authentication.
  • - Decoupled authentication. A challenge is required to authenticate.
  • I - Informational Only. The 3DS requestor's challenge preference was acknowledged.
authenticationStatusReasonText A long explanation of the authentication status.
challengeAuthenticationMethod

Information about how the 3DS requestor authenticated the cardholder for the challenge request.

  • STATIC_PASSCODE
  • SMS_OTP
  • KEY_FOB
  • APP_OPT
  • OPT_OTHER
  • KBA
  • OOB_BIOMETRICS
  • OOB_LOGIN
  • OOB_OTHER
  • OTHER
  • PUSH_CONFIRMATION
challengeAuthenticationType

The category of authentication request the issuer will use to challenge the cardholder in the 3DS authentication process.

  • STATIC
  • DYNAMIC
  • OOB
  • DECOUPLED
authenticationExemptionReason European Economic Area (EEA)/UK Supported SCA exemptions.
authenticationStatusReasonText Long explanation of the authentication status.
authentication.SCAExemptionReason Indicates the justification why a transaction does not have to meet Strong Customer Authentication (SCA) requirements.

Example SCA exemption scenarios

Method: POST

Endpoint: /checkout/intent

Scenario: J.P. Morgan-managed SCA exemption (default)

{
  "currencyCode": "EUR",
  "cart": {
    "lineItems": [
      {
        "id": "2",
        "quantity": 1,
        "unitPrice": 177599,
        "product": {
          "productId": "2",
          "name": "Laptop",
          "productDescription": "Laptop with great speed, style and configuration. It stand out on HD video call, immersive audio, and significantly longer batter life.",
          "imageUrl": "https://checkout-dev.jpmchase.com/merchant-simulator/images/laptop.jpg"
        }
      }
    ],
    "totalTransactionAmount": 189010,
    "subtotalAmount": {
      "currencyCode": "EUR",
      "amount": 177599
    },
    "totalTax": {
      "currencyCode": "EUR",
      "amount": 11411
    },
    "totalShippingCost": {
      "currencyCode": "EUR",
      "amount": 0
    },
    "shippingAddress": {
      "recipientFullName": "Brenda Holloway",
      "line1": "4210 Maple Crescent",
      "line2": "Apt 12B",
      "city": "Windermere",
      "state": "TX",
      "country": "AQ",
      "postalCode": "83201"
    },
    "shippingMethods": [
      {
        "name": {
          "translation": [
            {
              "text": "Priority shipping",
              "languageCode": "en-US"
            }
          ]
        },
        "description": {
          "translation": [
            {
              "text": "1-3 days",
              "languageCode": "en-US"
            }
          ]
        },
        "cost": 0,
        "estimatedDeliveryDate": "2026-03-13T15:30:17.361Z"
      }
    ]
  },
  "consumer": {
    "consumerProfileId": "",
    "email": "brenda.holloway@example.com",
    "phone": "91284053716",
    "billingAddress": {
      "recipientFullName": "Brenda Holloway",
      "line1": "4210 Maple Crescent",
      "line2": "Apt 12B",
      "city": "Windermere",
      "state": "TX",
      "country": "AQ",
      "postalCode": "83201"
    }
  },
  "merchantId": "999959695028-3ds-hpp",
  "checkoutOptions": {
    "authorization": {
      "authorizationType": "AUTH_METHOD_CART_AMOUNT"
    },
    "capture": {
      "captureMethod": "CAPTURE_METHOD_NOW"
    },
    "consumerProfileOptions": {
      "isSaveConsumerProfile": "false"
    },
    "cookiePolicy": 1,
    "paymentCardAuthenticationRequest": {
      "threeDSChallengeType": "CHALLENGE_TYPE_NO_PREFERENCE",
      "cardholderAccountHistory": {
        "accountCreateTimestamp": {
          "seconds": 1773156617
        },
        "accountUpdateTimestamp": {
          "seconds": 1773156617
        },
        "cardFirstUsedDate": {
          "seconds": 10
        },
        "consumerAccount24HoursAddCardCount": 1,
        "consumerAccountPasswordUpdateTimestamp": {
          "seconds": 10
        },
        "lastYearTransactionCount": 10,
        "last6MonthsPurchaseCount": 5,
        "consumerAccountAddressIdenticalIndicator": true,
        "consumerShippingAddressFirstUsageDate": {
          "seconds": 1699922241
        },
        "consumerShipToNameIdenticalIndicator": true
      },
      "purchaseInfo": {
        "lastPurchaseDate": {
          "seconds": 1699922241
        },
        "merchantFraudRiskAssessment": {
          "shipmentType": "SHIPPING_METHOD_SHIP_TO_BILLING_ADDRESS",
          "deliveryTimeframe": "DELIVERY_TYPE_SAME_DAY_SHIPPING",
          "orderEmailAddress": "carlos.menendez@example.com"
        }
      },
      "requestorAuthenticationInfo": {
        "requestorAuthenticationMethod": "REQUESTOR_AUTHENTICATION_METHOD_REQUESTOR_CRED",
        "threeDSAuthenticationTimestamp": {
          "seconds": 1699922241
        }
      },
      "requestorPriorTransactionAuthenticationInfo": {
        "requestorAuthenticationMethod": "PRIOR_AUTHENTICATION_METHOD_FRICTIONLESS_AUTHENTICATION_BY_ACS",
        "threeDSAuthenticationTimestamp": {
          "seconds": 1699922241
        }
      },
      "authenticationType": "AUTHENTICATION_TYPE_DEFAULT"
    }
  },
  "merchantOrderNumber": "7381924056"
}

Notification:

Method: GET

Endpoint: /checkout/notifications

{
  "orderNotification": {
    "checkoutIntent": "CHECKOUT_INTENT_AUTH_AND_CAPTURE",
    "status": "STATUS_SUCCESS",
    "transactionReference": "a3f29c4e-81b2-4a67-bf53-d8923e47a610",
    "mitTransactionReference": "028493751083042",
    "checkoutReference": "7381924056",
    "totalAmount": {
      "amount": "189010",
      "currencyCode": "EUR",
      "decimalCount": 2
    },
    "transactionTimestamp": "2026-03-12T22:46:19.329Z",
    "fraudCheckStatus": "FRAUD_CHECK_STATUS_APPROVED",
    "cardTypeIndicators": {
      "durbinRegulated": false,
      "level3Eligible": false,
      "issuanceCountry": "",
      "cardTypeCategory": "",
      "cardIssuerName": "",
      "cardProductName": "",
      "cardProductType": []
    },
    "last4OfCardPan": "7391",
    "responseCode": "APPROVED",
    "responseMessage": "Transaction approved by Issuer",
    "mandateAcknowledgement": [
      {
        "mandates": [
          {
            "mandateRef": "Mandate Ref",
            "acknowledgementType": "ACKNOWLEDGEMENT_TYPE_EXPLICIT",
            "acceptedFlag": "ACCEPTED_FLAG_Y",
            "mandateVerbiage": "English Verbiage",
            "mandateType": "MANDATE_TYPE_PLACE_ORDER"
          },
          {
            "mandateRef": "",
            "acknowledgementType": "ACKNOWLEDGEMENT_TYPE_EXPLICIT",
            "acceptedFlag": "ACCEPTED_FLAG_Y",
            "mandateVerbiage": "",
            "mandateType": "MANDATE_TYPE_CARD"
          }
        ],
        "device": {
          "deviceIp": "203.47.218.95",
          "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36"
        },
        "acceptedTimestamp": "2026-03-12T22:46:19.972Z",
        "consents": [
          {
            "acknowledgementType": "ACKNOWLEDGEMENT_TYPE_EXPLICIT",
            "acceptedFlag": "ACCEPTED_FLAG_N",
            "consentVerbiage": "",
            "consentType": "CONSENT_TYPE_PROFILE_CONSENT"
          }
        ]
      }
    ],
    "merchantOrderNumber": "7381924056",
    "paymentMethod": {
      "card": {
        "cardTypeIndicators": {
          "durbinRegulated": false,
          "level3Eligible": false,
          "issuanceCountry": "",
          "cardTypeCategory": "",
          "cardIssuerName": "",
          "cardProductName": "",
          "cardProductType": []
        },
        "last4CardNumber": "7391",
        "expiry": {
          "month": 4,
          "year": 2030
        },
        "cardType": "VI",
        "cardTypeName": "VISA",
        "networkResponse": {
          "addressVerificationResult": "NO_MATCH_MAY_BE_INTERNATIONAL",
          "addressVerificationResultCode": "N2",
          "cardVerificationResult": "MATCH",
          "cardVerificationResultCode": "M"
        }
      },
      "paymentMethodType": "PAYMENT_METHOD_TYPE_CODE_CARD",
      "maskedAccountNumber": "XXXXXXXXXXXX7391",
      "approvalCode": "tst882"
    },
    "requestId": "3c7bf91a04e28d5fa1094e",
    "accountHolder": {
      "billingAddress": {
        "recipientFullName": "Brenda Holloway",
        "line1": "4210 Maple Crescent",
        "line2": "Apt 12B",
        "line3": "",
        "city": "Windermere",
        "state": "TX",
        "country": "AQ",
        "postalCode": "83201",
        "email": "brenda.holloway@example.com",
        "phone": "91284053716"
      }
    },
    "shopperEmailId": "brenda.holloway@example.com",
    "threeDomainSecureTransaction": {
      "threeDSTransactionStatus": "",
      "challengeAuthenticationMethod": "",
      "challengeAuthenticationType": "",
      "authenticationStatusReasonText": "",
      "authenticationType": "AUTHENTICATION_TYPE_DEFAULT",
      "threeDSVersion": "",
      "threeDSAuthenticationTimestamp": "2026-03-12T22:46:19.329Z",
      "threeDSAuthenticationAmount": "189010",
      "threeDSDirectoryServerTransactionId": "",
      "threeDomainSecureAuthenticationMethodCode": "",
      "threeDSChallengeType": "CHALLENGE_TYPE_NO_PREFERENCE",
      "issuerAssignedAuthenticationFraudScore": "",
      "threeDomainSecureExemption": {
        "authenticationExemptionReason": "TRANSACTION_RISK_ANALYSIS",
        "authenticationStatusReasonText": "TRANSACTION_RISK_ANALYSIS eligible"
      },
      "authentication": {
        "SCAExemptionReason": "TRANSACTION_RISK_ANALYSIS"
      }
    },
    "fraudCheckResult": {
      "fraudCheckStatus": "FRAUD_CHECK_STATUS_APPROVED",
      "deviceDataUsed": true
    },
    "consumerAcknowledgement": [
      {
        "mandates": [
          {
            "referenceNumber": "Mandate Ref",
            "mandateType": "MANDATE_TYPE_PLACE_ORDER",
            "contractSigned": true,
            "agreementDescription": "English Verbiage",
            "presentationMode": "PRESENTATION_MODE_EXPLICIT"
          },
          {
            "referenceNumber": "",
            "mandateType": "MANDATE_TYPE_CARD",
            "contractSigned": true,
            "agreementDescription": "",
            "presentationMode": "PRESENTATION_MODE_EXPLICIT"
          }
        ],
        "consents": [
          {
            "consentType": "CONSENT_TYPE_PROFILE_CONSENT",
            "contractSigned": false,
            "agreementDescription": "",
            "presentationMode": "PRESENTATION_MODE_EXPLICIT"
          }
        ]
      }
    ],
    "currentPaymentAttemptCount": "1",
    "maximumPaymentAttemptCount": "7",
    "totalTransactionAmount": "189010",
    "partialAuthorizationSupport": "",
    "partialAuthorization": false,
    "requestedAuthorizationAmount": "189010",
    "totalAuthorizedAmount": "189010",
    "currencyCode": "EUR"
  }
}

Method: POST

Endpoint: /checkout/intent

Scenario: Merchant-managed SCA exemption

{
  "currencyCode": "EUR",
  "cart": {
    "lineItems": [
      {
        "id": "3",
        "quantity": 1,
        "unitPrice": 100,
        "product": {
          "productId": "3",
          "name": "Headphones",
          "productDescription": "A light weight, powerful noise cancelling headphones with astonishing sound, and comes with premium design and comfort .",
          "imageUrl": "https://checkout-dev.jpmchase.com/merchant-simulator/images/headphones.jpg"
        }
      }
    ],
    "totalTransactionAmount": 106,
    "subtotalAmount": {
      "currencyCode": "EUR",
      "amount": 100
    },
    "totalTax": {
      "currencyCode": "EUR",
      "amount": 6
    },
    "totalShippingCost": {
      "currencyCode": "EUR",
      "amount": 0
    },
    "shippingAddress": {
      "recipientFullName": "Tamara Nguyen",
      "line1": "1527 Birchwood Lane",
      "line2": "Unit 3C",
      "city": "Haverford",
      "state": "PA",
      "country": "AQ",
      "postalCode": "19041"
    },
    "shippingMethods": [
      {
        "name": {
          "translation": [
            {
              "text": "Priority shipping",
              "languageCode": "en-US"
            }
          ]
        },
        "description": {
          "translation": [
            {
              "text": "1-3 days",
              "languageCode": "en-US"
            }
          ]
        },
        "cost": 0,
        "estimatedDeliveryDate": "2026-03-13T17:42:28.231Z"
      }
    ]
  },
  "consumer": {
    "consumerProfileId": "",
    "email": "tamara.nguyen@example.com",
    "phone": "48201637592",
    "billingAddress": {
      "recipientFullName": "Tamara Nguyen",
      "line1": "1527 Birchwood Lane",
      "line2": "Unit 3C",
      "city": "Haverford",
      "state": "PA",
      "country": "AQ",
      "postalCode": "19041"
    }
  },
  "merchantId": "999959695028-3ds-hpp",
  "checkoutOptions": {
    "authorization": {
      "authorizationType": "AUTH_METHOD_CART_AMOUNT"
    },
    "capture": {
      "captureMethod": "CAPTURE_METHOD_NOW"
    },
    "consumerProfileOptions": {
      "isSaveConsumerProfile": "false"
    },
    "cookiePolicy": 1,
    "paymentCardAuthenticationRequest": {
      "threeDSChallengeType": "CHALLENGE_TYPE_NO_PREFERENCE",
      "cardholderAccountHistory": {
        "accountCreateTimestamp": {
          "seconds": 1773164548
        },
        "accountUpdateTimestamp": {
          "seconds": 1773164548
        },
        "cardFirstUsedDate": {
          "seconds": 10
        },
        "consumerAccount24HoursAddCardCount": 1,
        "consumerAccountPasswordUpdateTimestamp": {
          "seconds": 10
        },
        "lastYearTransactionCount": 10,
        "last6MonthsPurchaseCount": 5,
        "consumerAccountAddressIdenticalIndicator": true,
        "consumerShippingAddressFirstUsageDate": {
          "seconds": 1699922241
        },
        "consumerShipToNameIdenticalIndicator": true
      },
      "purchaseInfo": {
        "lastPurchaseDate": {
          "seconds": 1699922241
        },
        "merchantFraudRiskAssessment": {
          "shipmentType": "SHIPPING_METHOD_SHIP_TO_BILLING_ADDRESS",
          "deliveryTimeframe": "DELIVERY_TYPE_SAME_DAY_SHIPPING",
          "orderEmailAddress": "rafael.dominguez@example.com"
        }
      },
      "requestorAuthenticationInfo": {
        "requestorAuthenticationMethod": "REQUESTOR_AUTHENTICATION_METHOD_REQUESTOR_CRED",
        "threeDSAuthenticationTimestamp": {
          "seconds": 1699922241
        }
      },
      "requestorPriorTransactionAuthenticationInfo": {
        "requestorAuthenticationMethod": "PRIOR_AUTHENTICATION_METHOD_FRICTIONLESS_AUTHENTICATION_BY_ACS",
        "threeDSAuthenticationTimestamp": {
          "seconds": 1699922241
        }
      },
      "SCAExemptionReason": "SCA_EXEMPTION_LOW_VALUE_PAYMENT"
    }
  },
  "merchantOrderNumber": "5190384726"
}

Notification:

Method: GET

Endpoint: /checkout/notifications

{
  "orderNotification": {
    "checkoutIntent": "CHECKOUT_INTENT_AUTH_AND_CAPTURE",
    "status": "STATUS_SUCCESS",
    "transactionReference": "e7a41d93-2f85-4c09-b3e1-7d6f0a52c894",
    "mitTransactionReference": "049182637504213",
    "checkoutReference": "5190384726",
    "totalAmount": {
      "amount": "106",
      "currencyCode": "EUR",
      "decimalCount": 2
    },
    "transactionTimestamp": "2026-03-12T22:55:01.775Z",
    "fraudCheckStatus": "FRAUD_CHECK_STATUS_APPROVED",
    "cardTypeIndicators": {
      "durbinRegulated": false,
      "level3Eligible": false,
      "issuanceCountry": "",
      "cardTypeCategory": "",
      "cardIssuerName": "",
      "cardProductName": "",
      "cardProductType": []
    },
    "last4OfCardPan": "5618",
    "responseCode": "APPROVED",
    "responseMessage": "Transaction approved by Issuer",
    "mandateAcknowledgement": [
      {
        "mandates": [],
        "device": {
          "deviceIp": "172.58.91.203",
          "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36"
        },
        "acceptedTimestamp": "2026-03-12T22:55:01.988Z",
        "consents": [
          {
            "acknowledgementType": "ACKNOWLEDGEMENT_TYPE_EXPLICIT",
            "acceptedFlag": "ACCEPTED_FLAG_N",
            "consentVerbiage": "",
            "consentType": "CONSENT_TYPE_PROFILE_CONSENT"
          }
        ]
      }
    ],
    "merchantOrderNumber": "5190384726",
    "paymentMethod": {
      "card": {
        "cardTypeIndicators": {
          "durbinRegulated": false,
          "level3Eligible": false,
          "issuanceCountry": "",
          "cardTypeCategory": "",
          "cardIssuerName": "",
          "cardProductName": "",
          "cardProductType": []
        },
        "last4CardNumber": "5618",
        "expiry": {
          "month": 7,
          "year": 2029
        },
        "cardType": "VI",
        "cardTypeName": "VISA",
        "networkResponse": {
          "addressVerificationResult": "NO_MATCH_MAY_BE_INTERNATIONAL",
          "addressVerificationResultCode": "N2",
          "cardVerificationResult": "MATCH",
          "cardVerificationResultCode": "M"
        }
      },
      "paymentMethodType": "PAYMENT_METHOD_TYPE_CODE_CARD",
      "maskedAccountNumber": "XXXXXXXXXXXX5618",
      "approvalCode": "tst903"
    },
    "requestId": "7a2c4e91b03f58d6e20847",
    "accountHolder": {
      "billingAddress": {
        "recipientFullName": "Tamara Nguyen",
        "line1": "1527 Birchwood Lane",
        "line2": "Unit 3C",
        "line3": "",
        "city": "Haverford",
        "state": "PA",
        "country": "AQ",
        "postalCode": "19041",
        "email": "tamara.nguyen@example.com",
        "phone": "48201637592"
      }
    },
    "shopperEmailId": "tamara.nguyen@example.com",
    "threeDomainSecureTransaction": {
      "threeDSTransactionStatus": "",
      "challengeAuthenticationMethod": "",
      "challengeAuthenticationType": "",
      "authenticationStatusReasonText": "",
      "authenticationType": "",
      "threeDSVersion": "",
      "threeDSAuthenticationTimestamp": "2026-03-12T22:55:01.775Z",
      "threeDSAuthenticationAmount": "106",
      "threeDSDirectoryServerTransactionId": "",
      "threeDomainSecureAuthenticationMethodCode": "",
      "threeDSChallengeType": "CHALLENGE_TYPE_NO_PREFERENCE",
      "issuerAssignedAuthenticationFraudScore": "",
      "authentication": {
        "SCAExemptionReason": "LOW_VALUE_PAYMENT"
      }
    },
    "fraudCheckResult": {
      "fraudCheckStatus": "FRAUD_CHECK_STATUS_APPROVED",
      "deviceDataUsed": true
    },
    "consumerAcknowledgement": [
      {
        "mandates": [],
        "consents": [
          {
            "consentType": "CONSENT_TYPE_PROFILE_CONSENT",
            "contractSigned": false,
            "agreementDescription": "",
            "presentationMode": "PRESENTATION_MODE_EXPLICIT"
          }
        ]
      }
    ],
    "currentPaymentAttemptCount": "1",
    "maximumPaymentAttemptCount": "3",
    "totalTransactionAmount": "106",
    "partialAuthorizationSupport": "",
    "partialAuthorization": false,
    "requestedAuthorizationAmount": "106",
    "totalAuthorizedAmount": "106",
    "currencyCode": "EUR"
  }
}

Method: POST

Endpoint: /checkout/intent

Scenario: No SCA exemption requested

{
  "currencyCode": "EUR",
  "cart": {
    "lineItems": [
      {
        "id": "3",
        "quantity": 1,
        "unitPrice": 100,
        "product": {
          "productId": "3",
          "name": "Headphones",
          "productDescription": "A light weight, powerful noise cancelling headphones with astonishing sound, and comes with premium design and comfort .",
          "imageUrl": "https://checkout-dev.jpmchase.com/merchant-simulator/images/headphones.jpg"
        }
      }
    ],
    "totalTransactionAmount": 106,
    "subtotalAmount": {
      "currencyCode": "EUR",
      "amount": 100
    },
    "totalTax": {
      "currencyCode": "EUR",
      "amount": 6
    },
    "totalShippingCost": {
      "currencyCode": "EUR",
      "amount": 0
    },
    "shippingAddress": {
      "recipientFullName": "Marcus Whitfield",
      "line1": "920 Cedarbrook Drive",
      "line2": "Floor 2",
      "city": "Glendale",
      "state": "AZ",
      "country": "AQ",
      "postalCode": "85301"
    },
    "shippingMethods": [
      {
        "name": {
          "translation": [
            {
              "text": "Priority shipping",
              "languageCode": "en-US"
            }
          ]
        },
        "description": {
          "translation": [
            {
              "text": "1-3 days",
              "languageCode": "en-US"
            }
          ]
        },
        "cost": 0,
        "estimatedDeliveryDate": "2026-03-13T17:44:50.014Z"
      }
    ]
  },
  "consumer": {
    "consumerProfileId": "",
    "email": "marcus.whitfield@example.com",
    "phone": "62039481750",
    "billingAddress": {
      "recipientFullName": "Marcus Whitfield",
      "line1": "920 Cedarbrook Drive",
      "line2": "Floor 2",
      "city": "Glendale",
      "state": "AZ",
      "country": "AQ",
      "postalCode": "85301"
    }
  },
  "merchantId": "999959695028-3ds-hpp",
  "segmentId": "",
  "checkoutOptions": {
    "authorization": {
      "authorizationType": "AUTH_METHOD_CART_AMOUNT"
    },
    "capture": {
      "captureMethod": "CAPTURE_METHOD_NOW"
    },
    "consumerProfileOptions": {
      "isSaveConsumerProfile": "false"
    },
    "cookiePolicy": 1,
    "paymentCardAuthenticationRequest": {
      "threeDSChallengeType": "CHALLENGE_TYPE_NO_PREFERENCE",
      "cardholderAccountHistory": {
        "accountCreateTimestamp": {
          "seconds": 1773164690
        },
        "accountUpdateTimestamp": {
          "seconds": 1773164690
        },
        "cardFirstUsedDate": {
          "seconds": 10
        },
        "consumerAccount24HoursAddCardCount": 1,
        "consumerAccountPasswordUpdateTimestamp": {
          "seconds": 10
        },
        "lastYearTransactionCount": 10,
        "last6MonthsPurchaseCount": 5,
        "consumerAccountAddressIdenticalIndicator": true,
        "consumerShippingAddressFirstUsageDate": {
          "seconds": 1699922241
        },
        "consumerShipToNameIdenticalIndicator": true
      },
      "purchaseInfo": {
        "lastPurchaseDate": {
          "seconds": 1699922241
        },
        "merchantFraudRiskAssessment": {
          "shipmentType": "SHIPPING_METHOD_SHIP_TO_BILLING_ADDRESS",
          "deliveryTimeframe": "DELIVERY_TYPE_SAME_DAY_SHIPPING",
          "orderEmailAddress": "elena.kowalski@example.com"
        }
      },
      "requestorAuthenticationInfo": {
        "requestorAuthenticationMethod": "REQUESTOR_AUTHENTICATION_METHOD_REQUESTOR_CRED",
        "threeDSAuthenticationTimestamp": {
          "seconds": 1699922241
        }
      },
      "requestorPriorTransactionAuthenticationInfo": {
        "requestorAuthenticationMethod": "PRIOR_AUTHENTICATION_METHOD_FRICTIONLESS_AUTHENTICATION_BY_ACS",
        "threeDSAuthenticationTimestamp": {
          "seconds": 1699922241
        }
      }
    }
  },
  "merchantOrderNumber": "8304617295"
}

Notification:

Method: GET

Endpoint: /checkout/notifications

{
  "orderNotification": {
    "checkoutIntent": "CHECKOUT_INTENT_AUTH_AND_CAPTURE",
    "status": "STATUS_SUCCESS",
    "transactionReference": "f492c7b1-3a08-4d5e-91cf-84b2e6039d17",
    "mitTransactionReference": "073519284063157",
    "checkoutReference": "8304617295",
    "totalAmount": {
      "amount": "106",
      "currencyCode": "EUR",
      "decimalCount": 2
    },
    "transactionTimestamp": "2026-03-12T23:06:15.621Z",
    "fraudCheckStatus": "FRAUD_CHECK_STATUS_APPROVED",
    "cardTypeIndicators": {
      "durbinRegulated": false,
      "level3Eligible": false,
      "issuanceCountry": "",
      "cardTypeCategory": "",
      "cardIssuerName": "",
      "cardProductName": "",
      "cardProductType": []
    },
    "last4OfCardPan": "8274",
    "responseCode": "APPROVED",
    "responseMessage": "Transaction approved by Issuer",
    "mandateAcknowledgement": [
      {
        "mandates": [],
        "device": {
          "deviceIp": "98.214.63.147",
          "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36"
        },
        "acceptedTimestamp": "2026-03-12T23:06:17.683Z",
        "consents": [
          {
            "acknowledgementType": "ACKNOWLEDGEMENT_TYPE_EXPLICIT",
            "acceptedFlag": "ACCEPTED_FLAG_N",
            "consentVerbiage": "",
            "consentType": "CONSENT_TYPE_PROFILE_CONSENT"
          }
        ]
      }
    ],
    "merchantOrderNumber": "8304617295",
    "paymentMethod": {
      "card": {
        "cardTypeIndicators": {
          "durbinRegulated": false,
          "level3Eligible": false,
          "issuanceCountry": "",
          "cardTypeCategory": "",
          "cardIssuerName": "",
          "cardProductName": "",
          "cardProductType": []
        },
        "last4CardNumber": "8274",
        "expiry": {
          "month": 3,
          "year": 2030
        },
        "cardType": "VI",
        "cardTypeName": "VISA",
        "networkResponse": {
          "addressVerificationResult": "NO_MATCH_MAY_BE_INTERNATIONAL",
          "addressVerificationResultCode": "N2",
          "cardVerificationResult": "MATCH",
          "cardVerificationResultCode": "M"
        }
      },
      "paymentMethodType": "PAYMENT_METHOD_TYPE_CODE_CARD",
      "maskedAccountNumber": "XXXXXXXXXXXX8274",
      "approvalCode": "tst950"
    },
    "requestId": "4b8e21f7a09c63d5f10293",
    "accountHolder": {
      "billingAddress": {
        "recipientFullName": "Marcus Whitfield",
        "line1": "920 Cedarbrook Drive",
        "line2": "Floor 2",
        "line3": "",
        "city": "Glendale",
        "state": "AZ",
        "country": "AQ",
        "postalCode": "85301",
        "email": "marcus.whitfield@example.com",
        "phone": "62039481750"
      }
    },
    "shopperEmailId": "marcus.whitfield@example.com",
    "threeDomainSecureTransaction": {
      "threeDSTransactionStatus": "Y",
      "challengeAuthenticationMethod": "",
      "challengeAuthenticationType": "",
      "authenticationStatusReasonText": "Authentication Successful",
      "authenticationType": "",
      "threeDSVersion": "2.2.0",
      "threeDSAuthenticationTimestamp": "2026-03-12T23:06:15.621Z",
      "threeDSAuthenticationAmount": "106",
      "threeDSDirectoryServerTransactionId": "c751420b-9504-5e52-bbeb-e9dfb34613e4",
      "threeDomainSecureAuthenticationMethodCode": "FRICTIONLESS",
      "threeDSChallengeType": "NO_PREFERENCE",
      "issuerAssignedAuthenticationFraudScore": "",
      "threeDomainSecureExemption": {
        "authenticationExemptionReason": "",
        "authenticationStatusReasonText": ""
      }
    },
    "fraudCheckResult": {
      "fraudCheckStatus": "FRAUD_CHECK_STATUS_APPROVED",
      "deviceDataUsed": true
    },
    "consumerAcknowledgement": [
      {
        "mandates": [],
        "consents": [
          {
            "consentType": "CONSENT_TYPE_PROFILE_CONSENT",
            "contractSigned": false,
            "agreementDescription": "",
            "presentationMode": "PRESENTATION_MODE_EXPLICIT"
          }
        ]
      }
    ],
    "currentPaymentAttemptCount": "1",
    "maximumPaymentAttemptCount": "3",
    "totalTransactionAmount": "106",
    "partialAuthorizationSupport": "",
    "partialAuthorization": false,
    "requestedAuthorizationAmount": "106",
    "totalAuthorizedAmount": "106",
    "currencyCode": "EUR"
  }
}