---
title: "Complete a 3DS authorisation"
method: POST
path: "/authorise3d"
tags: ["Payments"]
---

# Complete a 3DS authorisation

`POST /authorise3d`

For an authenticated 3D Secure session, completes the payment authorisation. This endpoint must receive the `md` and `paResponse` parameters that you get from the card issuer after a shopper pays via 3D Secure.

> This endpoint is [inactive](https://docs.adyen.com/online-payments/upgrade-your-integration#checkout-api-lifecycle) and is no longer supported for new integrations.
> * If you are building a new integration, use the Checkout API [`/payments/details`](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments/details) endpoint instead.
> * If you have an existing integration using this endpoint, reach out to your Adyen contact and [migrate to the Checkout API](https://docs.adyen.com/online-payments/upgrade-your-integration/migrate-to-checkout-api).

> The Checkout API enables your [online payments](https://docs.adyen.com/online-payments) integration to accept all supported payment methods, use the latest features, and access more benefits.

## Request body

- PaymentRequest3d
  - `additionalAmount` Amount
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `additionalData` object — This field contains additional data, which may be required for a particular payment request. The `additionalData` object consists of entries, each of which includes the key and value.
  - `amount` Amount
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `billingAddress` Address
    - `city` string, required — The name of the city. Maximum length: 3000 characters.
    - `country` string, required — The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
    - `houseNumberOrName` string, required — The number or name of the house. Maximum length: 3000 characters.
    - `postalCode` string, required — A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
    - `stateOrProvince` string — The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
    - `street` string, required — The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
  - `browserInfo` BrowserInfo
    - `acceptHeader` string, required — The accept header value of the shopper's browser.
    - `userAgent` string, required — The user agent value of the shopper's browser.
  - `captureDelayHours` integer — The delay between the authorisation and scheduled auto-capture, specified in hours.
  - `dateOfBirth` string, date — The shopper's date of birth. Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD
  - `dccQuote` ForexQuote
    - `account` string — The account name.
    - `accountType` string — The account type.
    - `baseAmount` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `basePoints` integer, required — The base points.
    - `buy` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `interbank` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `reference` string — The reference assigned to the forex quote request.
    - `sell` Amount
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `signature` string — The signature to validate the integrity.
    - `source` string — The source of the forex quote.
    - `type` string — The type of forex.
    - `validTill` string, date-time, required — The date until which the forex quote is valid.
  - `deliveryAddress` Address
    - `city` string, required — The name of the city. Maximum length: 3000 characters.
    - `country` string, required — The two-character ISO-3166-1 alpha-2 country code. For example, **US**. > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
    - `houseNumberOrName` string, required — The number or name of the house. Maximum length: 3000 characters.
    - `postalCode` string, required — A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
    - `stateOrProvince` string — The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
    - `street` string, required — The name of the street. Maximum length: 3000 characters. > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
  - `deliveryDate` string, date-time — The date and time the purchased goods should be delivered. Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD Example: 2017-07-17T13:42:40.428+01:00
  - `deviceFingerprint` string — A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).
  - `fraudOffset` integer — An integer value that is added to the normal fraud score. The value can be either positive or negative.
  - `installments` Installments
    - `value` integer, required — Defines the number of installments. Usually, the maximum allowed number of installments is capped. For example, it may not be possible to split a payment in more than 24 installments. The acquirer sets this upper limit, so its value may vary. This value can be zero for Installments processed in Mexico.
  - `mcc` string — The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.
  - `md` string, required — The payment session identifier returned by the card issuer.
  - `merchantAccount` string, required — The merchant account identifier, with which you want to process the transaction.
  - `merchantOrderReference` string — This reference allows linking multiple transactions to each other for reporting purposes (i.e. order auth-rate). The reference should be unique per billing cycle. The same merchant order reference should never be reused after the first authorised attempt. If used, this field should be supplied for all incoming authorisations. > We strongly recommend you send the `merchantOrderReference` value to benefit from linking payment requests when authorisation retries take place. In addition, we recommend you provide `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values in `PaymentRequest.additionalData`.
  - `metadata` object — Metadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit". * Maximum 20 characters per key. * Maximum 80 characters per value.
  - `orderReference` string — When you are doing multiple partial (gift card) payments, this is the `pspReference` of the first payment. We use this to link the multiple payments to each other. As your own reference for linking multiple payments, use the `merchantOrderReference`instead.
  - `paResponse` string, required — Payment authorisation response returned by the card issuer. The `paResponse` field holds the PaRes value received from the card issuer.
  - `recurring` Recurring
    - `contract` 'ONECLICK' | 'ONECLICK,RECURRING' | 'RECURRING' | 'PAYOUT' | 'EXTERNAL' — The type of recurring contract to be used. Possible values: * `ONECLICK` – Payment details can be used to initiate a one-click payment, where the shopper enters the [card security code (CVC/CVV)](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid). * `RECURRING` – Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-not-present-cnp). * `ONECLICK,RECURRING` – Payment details can be used regardless of whether the shopper is on your site or not. * `PAYOUT` – Payment details can be used to [make a payout](https://docs.adyen.com/online-payments/online-payouts). * `EXTERNAL` - Use this when you store payment details and send the raw card number or network token directly in your API request.
    - `recurringDetailName` string — A descriptive name for this detail.
    - `tokenService` 'VISATOKENSERVICE' | 'MCTOKENSERVICE' | 'AMEXTOKENSERVICE' | 'TOKEN_SHARING' — The name of the token service.
  - `reference` string — The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement. If you need to provide multiple references for a transaction, separate them with hyphens ("-"). Maximum length: 80 characters.
  - `selectedBrand` string — Some payment methods require defining a value for this field to specify how to process the transaction. For the Bancontact payment method, it can be set to: * `maestro` (default), to be processed like a Maestro card, or * `bcmc`, to be processed like a Bancontact card.
  - `selectedRecurringDetailReference` string — The `recurringDetailReference` you want to use for this payment. The value `LATEST` can be used to select the most recently stored recurring detail.
  - `sessionId` string — A session ID used to identify a payment session.
  - `shopperEmail` string — The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks. > Required for Visa and JCB transactions that require 3D Secure 2 authentication if you did not include the `telephoneNumber`.
  - `shopperIP` string — The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > Required for Visa and JCB transactions that require 3D Secure 2 authentication for all web and mobile integrations, if you did not include the `shopperEmail`. For native mobile integrations, the field is required to support cases where authentication is routed to the redirect flow. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new).
  - `shopperInteraction` 'Ecommerce' | 'ContAuth' | 'Moto' | 'POS' — Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer. For the web service API, Adyen assumes Ecommerce shopper interaction by default. This field has the following possible values: * `Ecommerce` - Online transactions where the cardholder is present (online). For better authorisation rates, we recommend sending the card security code (CSC) along with the request. * `ContAuth` - Card on file and/or subscription transactions, where the cardholder is known to the merchant (returning customer). If the shopper is present (online), you can supply also the CSC to improve authorisation (one-click payment). * `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone. * `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.
  - `shopperLocale` string — The language for the payment. The value combines the two-letter [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) language code with the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) country code. For example, **nl-NL**. When using Drop-in/Components, the specified language appears if your front-end global configuration does not set the `locale`.
  - `shopperName` Name
    - `firstName` string, required — The first name.
    - `lastName` string, required — The last name.
  - `shopperReference` string — Required for recurring payments. Your reference to uniquely identify this shopper, for example user ID or account ID. The value is case-sensitive and must be at least three characters. > Your reference must not include personally identifiable information (PII) such as name or email address.
  - `shopperStatement` string — The text to be shown on the shopper's bank statement. We recommend sending a maximum of 22 characters, otherwise banks might truncate the string. Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , ' _ - ? + * /**.
  - `socialSecurityNumber` string — The shopper's social security number.
  - `store` string — Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment.
  - `telephoneNumber` string — The shopper's telephone number. The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`.
  - `totalsGroup` string — The reference value to aggregate sales totals in reporting. When not specified, the store field is used (if available).

## Response `200`

OK - the request has succeeded.

- PaymentResult
  - `additionalData` object — Contains additional information about the payment. Some data fields are included only if you select them first: Go to **Customer Area** > **Developers** > **Additional data**.
  - `authCode` string — Authorisation code: * When the payment is authorised successfully, this field holds the authorisation code for the payment. * When the payment is not authorised, this field is empty.
  - `dccAmount` Amount
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `dccSignature` string — Cryptographic signature used to verify `dccQuote`. > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new).
  - `fraudResult` FraudResult
    - `accountScore` integer, required — The total fraud score generated by the risk checks.
    - `results` FraudCheckResultWrapper[] — The result of the individual risk checks.
      - `FraudCheckResult` FraudCheckResult
        - `accountScore` integer, required — The fraud score generated by the risk check.
        - `checkId` integer, required — The ID of the risk check.
        - `name` string, required — The name of the risk check.
  - `issuerUrl` string — The URL to direct the shopper to. > In case of SecurePlus, do not redirect a shopper to this URL.
  - `md` string — The payment session.
  - `paRequest` string — The 3D request data for the issuer. If the value is **CUPSecurePlus-CollectSMSVerificationCode**, collect an SMS code from the shopper and pass it in the `/authorise3D` request. For more information, see [3D Secure](https://docs.adyen.com/classic-integration/3d-secure).
  - `pspReference` string — Adyen's 16-character reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request.
  - `refusalReason` string — If the payment's authorisation is refused or an error occurs during authorisation, this field holds Adyen's mapped reason for the refusal or a description of the error. When a transaction fails, the authorisation response includes `resultCode` and `refusalReason` values. For more information, see [Refusal reasons](https://docs.adyen.com/development-resources/refusal-reasons).
  - `resultCode` 'AuthenticationFinished' | 'AuthenticationNotRequired' | 'Authorised' | 'Cancelled' | 'ChallengeShopper' | 'Error' | 'IdentifyShopper' | 'PartiallyAuthorised' | 'Pending' | 'PresentToShopper' | 'Received' | 'RedirectShopper' | 'Refused' | 'Success' — The result of the payment. For more information, see [Result codes](https://docs.adyen.com/online-payments/payment-result-codes). Possible values: * **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions. * **AuthenticationNotRequired** – The transaction does not require 3D Secure authentication. Returned for [standalone authentication-only integrations](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only). * **Authorised** – The payment was successfully authorised. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state. * **Cancelled** – Indicates the payment has been cancelled (either by the shopper or the merchant) before processing was completed. This is a final state. * **ChallengeShopper** – The issuer requires further shopper interaction before the payment can be authenticated. Returned for 3D Secure 2 transactions. * **Error** – There was an error when the payment was being processed. The reason is given in the `refusalReason` field. This is a final state. * **IdentifyShopper** – The issuer requires the shopper's device fingerprint before the payment can be authenticated. Returned for 3D Secure 2 transactions. * **PartiallyAuthorised** – The payment has been authorised for a partial amount. This happens for card payments when the merchant supports Partial Authorisations and the cardholder has insufficient funds. * **Pending** – Indicates that it is not possible to obtain the final status of the payment. This can happen if the systems providing final status information for the payment are unavailable, or if the shopper needs to take further action to complete the payment. * **PresentToShopper** – Indicates that the response contains additional information that you need to present to a shopper, so that they can use it to complete a payment. * **Received** – Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments. * **RedirectShopper** – Indicates the shopper should be redirected to an external web page or app to complete the authorisation. * **Refused** – Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state.

## Other responses

- `400` — Bad Request - a problem reading or understanding the request.
- `401` — Unauthorized - authentication required.
- `403` — Forbidden - insufficient permissions to process the request.
- `422` — Unprocessable Entity - a request validation error.
- `500` — Internal Server Error - the server could not process the request.

## Changes

- **2025-09-24** (v25) `e00aa24758de` — 2 info
  - added the new `EXTERNAL` enum value to the request property `recurring/contract`
  - added the new `ONECLICK,RECURRING` enum value to the request property `recurring/contract`
- **2024-03-05** (v25) `218a5d52514c` — 2 warning
  - the `shopperName/firstName` request property's maxLength was set to `80`
  - the `shopperName/lastName` request property's maxLength was set to `80`
- **2023-10-30** (v25) `20a3cbd5c805` — 2 info
  - added the new `AMEXTOKENSERVICE` enum value to the request property `recurring/tokenService`
  - added the new `TOKEN_SHARING` enum value to the request property `recurring/tokenService`
- **2023-08-16** (v25) `c9a74d0baf5b` — 1 warning, 2 info
  - added the new `PartiallyAuthorised` enum value to the `resultCode` response property for the response status `200`
  - api tag `Payments` added
  - api tag `General` removed
- **2023-04-19** (v25) `ef74e7195bb4` — 4 breaking, 1 info
  - the `fraudResult/results/items/` response's property type/format changed from `object`/`` to ``/`` for status `200`
  - removed the required property `fraudResult/results/items/accountScore` from the response with the `200` status
  - removed the required property `fraudResult/results/items/checkId` from the response with the `200` status
  - removed the required property `fraudResult/results/items/name` from the response with the `200` status
  - …1 more

[Full history](https://skmtc.dev/adyen/apis/paymentservice/changes/authorise3d/post.md)

---

[API](https://skmtc.dev/adyen/apis/paymentservice.md) · [All operations](https://skmtc.dev/adyen/apis/paymentservice/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adyen/paymentservice/revisions/cb6e0a8d1685/schema)
