---
title: "Authenticate a given payment method"
method: POST
path: "/sca/providers/{sca_provider_key}/authenticate"
tags: ["sca_authentication"]
---

# Authenticate a given payment method

`POST /sca/providers/{sca_provider_key}/authenticate`

Authenticate a given payment method and amount against provided SCA Provider Key (specified in the request URL)

Notable response elements can be found in the table below. All other response elements are used by our `Spreedly.ThreeDS.Lifecycle` helpers and exposed for debugging purposes. We recommend that our merchants not use any fields that are not listed in the table below.

## Request body

- Authenticate
  - `transaction` object
    - `payment_method_token` string, required — The token of the payment method to use
    - `currency_code` string — The currency of the funds, as [ISO 4217 alpha currency codes](https://en.wikipedia.org/wiki/ISO_4217#Active_codes), e.g., `USD` for US dollars.
    - `amount` integer — The amount to request, as an integer. E.g., `1000` for $10.00.
    - `test_scenario` object — Additional fields to indicate valid 3DS2 test flow options. Please refer to our [3DS2 Global Testing Guide](https://developer.spreedly.com/docs/testing-your-3ds2-global-integration) to learn more about testing your 3DS2 Global integration with out Test SCA Provider.
      - `scenario` string — The tested scenario.
    - `browser_info` string, required — Please refer to our [Spreedly 3DS2 Global Integration Guide for Web](https://developer.spreedly.com/docs/3ds-solutions), to learn how to include our `Lifecycle.js` library and gather the browser info data using `Spreedly.ThreeDS.serialize` method.
    - `force_daf` boolean — Boolean field that can be used to indicate if a transaction should use Visa’s DAF. For more information please refer to our [3DS2 Global DAF guide](https://developer.spreedly.com/docs/spreedly-3ds2-global-guide#visa-daf)
    - `exemption_type` string — Type of exemption request to reduce likelihood of a transaction being challenged. The two exemptions currently supported are `low_value` and `transaction_risk_analysis_exemption`. See our [exemption guide](https://developer.spreedly.com/docs/spreedly-3ds2-global-guide#requesting-exemptions) to learn more
    - `acquiring_bank_fraud_rate` string — Additional field required if requesting a `transaction_risk_analysis_exemption` that details threshold for bank fraud rate. See our [exemption guide](https://developer.spreedly.com/docs/spreedly-3ds2-global-guide#requesting-exemptions) to learn more
    - `three_ds_requestor_challenge_ind` string — Indicates whether a challenge is being requested for a 3DS2 Global transaction.

## Response `201`

Created

- AuthenticateResponse
  - `transaction` AuthenticateProperties
    - `token` string — The token uniquely identifying the transaction at Spreedly. This token can be passed into an `authorize` or `purchase` transaction via the `sca_authentication_token` field to automatically fill its `payment_method_token` and Third Party 3DS2 fields.
    - `succeeded` boolean — `true` if the transaction request was successfully executed, `false` otherwise
    - `state` string — The current state of the authentication. Valid values are `succeeded`, `failed`, and `pending`
    - `message` string — A human-readable string indicating the result of the transaction
    - `transaction_type` string — The type of transaction; contains “Sca::Authentication” for a Spreedly 3DS Global authentication
    - `gateway_transaction_key` string — The Spreedly transaction token of the parent gateway transaction
    - `sca_provider_key` string — The SCA Provider that was used to create the authentication
    - `acs_transaction_id` string — The unique ID of the transaction given by the ACS server (3DS2 only)
    - `three_ds_server_trans_id` string — The unique ID of the transaction given by the 3DS Server (3DS2 only)
    - `directory_server_transaction_id` string — The unique ID of the transaction given by the directory server (3DS2 only)
    - `xid` string — The transaction identifier given by the 3DS Server
    - `three_ds_version` string — The version of 3DS that was used to authenticate the transaction
    - `flow_performed` string — An enumerated field that denotes what flow was most recently performed. Valid values are `frictionless`, `device_fingerprint`, `challenge`, `app_challenge`, and `not_authenticated`.
    - `ecommerce_indicator` string — Contains the ecommerce indicator (ECI) returned by the 3DS Server
    - `directory_response_status` string — The transaction status given by the directory server in the initial response. This field’s value corresponds to the `transStatus` enumeration in the EMV 3-D Secure Protocol. Valid values can be `Y`, `N`, `U`, `A`, `C`, or `R`. Please see the EMV 3-D Secure Protocol spec for more information.
    - `authentication_response_status` string — The most recent transaction status given received by the 3DS Server. This field’s value corresponds to the `transStatus` enumeration in the EMV 3-D Secure Protocol. Valid values can be `Y`, `N`, `U`, `A`, `C`, or `R`. Please see the EMV 3-D Secure Protocol spec for more information.
    - `authentication_value` string — The authentication value returned by the 3DS Server for successful authentications
    - `trans_status_reason` string — Provides information on why the `authentication_response_status` field has the specific value. This field’s value corresponds to the `transStatusReason` enumeration in the EMV 3-D Secure Protocol. Please see EMV 3-D Secure Protocol spec for more information.
    - `daf` boolean — Boolean field to indicate if the authentication request utilized Visa’s Digital Authentication Framework.
    - `managed_order_token` string — The token value provided by the protection provider running the authentication.
    - `payment_method_key` string — The token of the payment method being authenticated. This is the same as the `payment_method_token` field in the `sca_authentication` transaction request.

## Other responses

- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity

---

[API](https://skmtc.dev/spreedly/apis/spreedly-api-v1.md) · [All operations](https://skmtc.dev/spreedly/apis/spreedly-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/spreedly/spreedly-api-v1/revisions/72ba4e23e65c/schema)
