openapi: 3.1.0
info:
version: '6'
x-publicVersion: true
title: Adyen Account acceptDispute Authorise3ds2 API
description: "This API is used for the classic integration. If you are just starting your implementation, refer to our [new integration guide](https://docs.adyen.com/marketplaces-and-platforms) instead.\n\nThe Account API provides endpoints for managing account-related entities on your platform. These related entities include account holders, accounts, bank accounts, shareholders, and verification-related documents. The management operations include actions such as creation, retrieval, updating, and deletion of them.\n\nFor more information, refer to our [documentation](https://docs.adyen.com/marketplaces-and-platforms/classic).\n## Authentication\nYour Adyen contact will provide your API credential and an API key. To connect to the API, add an `X-API-Key` header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication. For example:\n\n```\ncurl\n-U \"ws@MarketPlace.YOUR_PLATFORM_ACCOUNT\":\"YOUR_WS_PASSWORD\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\nWhen going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).\n\n## Versioning\nThe Account API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://cal-test.adyen.com/cal/services/Account/v6/createAccountHolder\n```"
x-timestamp: '2023-05-30T15:27:20Z'
termsOfService: https://www.adyen.com/legal/terms-and-conditions
contact:
name: Adyen Developer Experience team
url: https://github.com/Adyen/adyen-openapi
servers:
- url: https://cal-test.adyen.com/cal/services/Account/v6
tags:
- name: Authorise3ds2
paths:
/authorise3ds2:
post:
tags:
- Authorise3ds2
summary: Adyen Complete a 3DS2 Authorisation
description: 'For an authenticated 3D Secure 2 session, completes the payment authorisation. This endpoint must receive the `threeDS2Token` and `threeDS2Result` parameters.
> This endpoint is part of our [classic API integration](https://docs.adyen.com/online-payments/classic-integrations/api-integration-ecommerce/3d-secure). If using a [newer integration](https://docs.adyen.com/online-payments), use the [`/payments/details`](https://docs.adyen.com/api-explorer/#/CheckoutService/payments/details) endpoint under Checkout API instead.'
x-addedInVersion: '37'
operationId: post-authorise3ds2
x-sortIndex: 3
x-methodName: authorise3ds2
security:
- BasicAuth: []
- ApiKeyAuth: []
requestBody:
content:
application/json:
examples:
authorise3ds2:
$ref: '#/components/examples/post-authorise3ds2-authorise3ds2'
schema:
$ref: '#/components/schemas/PaymentRequest3ds2'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentResult'
examples:
post-authorise3ds2200Example:
summary: Default post-authorise3ds2 200 response
x-microcks-default: true
value:
additionalData: {}
authCode: CODE123
dccAmount: 1000
dccSignature: example_value
fraudResult: example_value
issuerUrl: https://example.com/resource
md: example_value
paRequest: example_value
pspReference: REF-001
refusalReason: REF-001
resultCode: AuthenticationFinished
description: OK - the request has succeeded.
'400':
content:
application/json:
examples:
generic:
$ref: '#/components/examples/generic-400'
schema:
$ref: '#/components/schemas/ServiceError'
description: Bad Request - a problem reading or understanding the request.
'401':
content:
application/json:
examples:
generic:
$ref: '#/components/examples/generic-401'
schema:
$ref: '#/components/schemas/ServiceError'
description: Unauthorized - authentication required.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
examples:
post-authorise3ds2403Example:
summary: Default post-authorise3ds2 403 response
x-microcks-default: true
value:
additionalData: {}
errorCode: CODE123
errorType: standard
message: example_value
pspReference: REF-001
status: 500
description: Forbidden - insufficient permissions to process the request.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
examples:
post-authorise3ds2422Example:
summary: Default post-authorise3ds2 422 response
x-microcks-default: true
value:
additionalData: {}
errorCode: CODE123
errorType: standard
message: example_value
pspReference: REF-001
status: 500
description: Unprocessable Entity - a request validation error.
'500':
content:
application/json:
examples:
generic:
$ref: '#/components/examples/generic-500'
schema:
$ref: '#/components/schemas/ServiceError'
description: Internal Server Error - the server could not process the request.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
ThreeDSRequestorAuthenticationInfo:
properties:
threeDSReqAuthData:
description: 'Data that documents and supports a specific authentication process. Maximum length: 2048 bytes.'
type: string
threeDSReqAuthMethod:
description: 'Mechanism used by the Cardholder to authenticate to the 3DS Requestor. Allowed values:
* **01** — No 3DS Requestor authentication occurred (for example, cardholder “logged in” as guest).
* **02** — Login to the cardholder account at the 3DS Requestor system using 3DS Requestor’s own credentials.
* **03** — Login to the cardholder account at the 3DS Requestor system using federated ID.
* **04** — Login to the cardholder account at the 3DS Requestor system using issuer credentials.
* **05** — Login to the cardholder account at the 3DS Requestor system using third-party authentication.
* **06** — Login to the cardholder account at the 3DS Requestor system using FIDO Authenticator.'
enum:
- '01'
- '02'
- '03'
- '04'
- '05'
- '06'
maxLength: 2
minLength: 2
type: string
threeDSReqAuthTimestamp:
description: 'Date and time in UTC of the cardholder authentication. Format: YYYYMMDDHHMM'
maxLength: 12
minLength: 12
type: string
type: object
ThreeDSRequestorPriorAuthenticationInfo:
properties:
threeDSReqPriorAuthData:
description: 'Data that documents and supports a specific authentication process. Maximum length: 2048 bytes.'
type: string
threeDSReqPriorAuthMethod:
description: 'Mechanism used by the Cardholder to previously authenticate to the 3DS Requestor. Allowed values:
* **01** — Frictionless authentication occurred by ACS.
* **02** — Cardholder challenge occurred by ACS.
* **03** — AVS verified.
* **04** — Other issuer methods.'
enum:
- '01'
- '02'
- '03'
- '04'
maxLength: 2
minLength: 2
type: string
threeDSReqPriorAuthTimestamp:
description: 'Date and time in UTC of the prior cardholder authentication. Format: YYYYMMDDHHMM'
maxLength: 12
minLength: 12
type: string
threeDSReqPriorRef:
description: 'This data element provides additional information to the ACS to determine the best approach for handing a request. This data element contains an ACS Transaction ID for a prior authenticated transaction. For example, the first recurring transaction that was authenticated with the cardholder. Length: 30 characters.'
maxLength: 36
minLength: 36
type: string
type: object
PaymentRequest3ds2:
properties:
accountInfo:
x-addedInVersion: '40'
description: 'Shopper account information for 3D Secure 2.
> For 3D Secure 2 transactions, we recommend that you include this object to increase the chances of achieving a frictionless flow.'
$ref: '#/components/schemas/AccountInfo'
additionalAmount:
description: 'If you want a [BIN or card verification](https://docs.adyen.com/payment-methods/cards/bin-data-and-card-verification) request to use a non-zero value, assign this value to `additionalAmount` (while the amount must be still set to 0 to trigger BIN or card verification).
Required to be in the same currency as the `amount`. '
$ref: '#/components/schemas/Amount'
additionalData:
additionalProperties:
type: string
x-anyOf:
- $ref: '#/components/schemas/AdditionalData3DSecure'
- $ref: '#/components/schemas/AdditionalDataAirline'
- $ref: '#/components/schemas/AdditionalDataCarRental'
- $ref: '#/components/schemas/AdditionalDataCommon'
- $ref: '#/components/schemas/AdditionalDataLevel23'
- $ref: '#/components/schemas/AdditionalDataLodging'
- $ref: '#/components/schemas/AdditionalDataOpenInvoice'
- $ref: '#/components/schemas/AdditionalDataOpi'
- $ref: '#/components/schemas/AdditionalDataRatepay'
- $ref: '#/components/schemas/AdditionalDataRetry'
- $ref: '#/components/schemas/AdditionalDataRisk'
- $ref: '#/components/schemas/AdditionalDataRiskStandalone'
- $ref: '#/components/schemas/AdditionalDataSubMerchant'
- $ref: '#/components/schemas/AdditionalDataTemporaryServices'
- $ref: '#/components/schemas/AdditionalDataWallets'
description: '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.'
type: object
amount:
description: The amount information for the transaction (in [minor units](https://docs.adyen.com/development-resources/currency-codes)). For [BIN or card verification](https://docs.adyen.com/payment-methods/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).
$ref: '#/components/schemas/Amount'
applicationInfo:
x-addedInVersion: '40'
description: Information about your application. For more details, see [Building Adyen solutions](https://docs.adyen.com/development-resources/building-adyen-solutions).
$ref: '#/components/schemas/ApplicationInfo'
billingAddress:
x-addedInVersion: '4'
description: 'The address where to send the invoice.
> The `billingAddress` object is required in the following scenarios. Include all of the fields within this object.
>* For 3D Secure 2 transactions in all browser-based and mobile implementations.
>* For cross-border payouts to and from Canada.'
$ref: '#/components/schemas/Address'
browserInfo:
description: 'The shopper''s browser information.
> For 3D Secure, the full object is required for web integrations. For mobile app integrations, include the `userAgent` and `acceptHeader` fields to indicate that your integration can support a redirect in case a payment is routed to 3D Secure 1.'
$ref: '#/components/schemas/BrowserInfo'
captureDelayHours:
x-addedInVersion: '2'
description: The delay between the authorisation and scheduled auto-capture, specified in hours.
format: int32
type: integer
dateOfBirth:
x-addedInVersion: '7'
description: 'The shopper''s date of birth.
Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD'
format: date
type: string
dccQuote:
description: The forex quote as returned in the response of the forex service.
$ref: '#/components/schemas/ForexQuote'
deliveryAddress:
description: The address where the purchased goods should be delivered.
$ref: '#/components/schemas/Address'
deliveryDate:
x-addedInVersion: '8'
description: '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'
format: date-time
type: string
deviceFingerprint:
x-addedInVersion: '2'
description: A string containing the shopper's device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).
maxLength: 5000
type: string
fraudOffset:
description: An integer value that is added to the normal fraud score. The value can be either positive or negative.
format: int32
type: integer
installments:
x-addedInVersion: '4'
description: Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/payment-methods/cards/credit-card-installments).
$ref: '#/components/schemas/Installments'
localizedShopperStatement:
x-addedInVersion: '68'
additionalProperties:
type: string
description: "The `localizedShopperStatement` field lets you use dynamic values for your shopper statement in a local character set.\nIf not supplied, left empty, or for cross-border transactions, **shopperStatement** is used.\n\nAdyen currently supports the ja-Kana character set for Visa and Mastercard payments in Japan using Japanese cards. This character set supports:\n\n* UTF-8 based Katakana, capital letters, numbers and special characters. \n* Half-width or full-width characters."
type: object
mcc:
x-addedInVersion: '12'
description: 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.
type: string
merchantAccount:
description: The merchant account identifier, with which you want to process the transaction.
type: string
merchantOrderReference:
x-addedInVersion: '9'
description: '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`.'
type: string
merchantRiskIndicator:
x-addedInVersion: '40'
description: 'Additional risk fields for 3D Secure 2.
> For 3D Secure 2 transactions, we recommend that you include this object to increase the chances of achieving a frictionless flow.'
$ref: '#/components/schemas/MerchantRiskIndicator'
metadata:
x-addedInVersion: '17'
additionalProperties:
type: string
description: '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. '
type: object
orderReference:
description: 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.
type: string
recurring:
description: The recurring settings for the payment. Use this property when you want to enable [recurring payments](https://docs.adyen.com/classic-integration/recurring-payments).
$ref: '#/components/schemas/Recurring'
recurringProcessingModel:
x-addedInVersion: '30'
description: 'Defines a recurring payment type. Required when creating a token to store payment details or using stored payment details.
Allowed values:
* `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule.
* `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction.
* `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder''s balance drops below a certain amount.
'
enum:
- CardOnFile
- Subscription
- UnscheduledCardOnFile
type: string
reference:
description: '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.'
type: string
selectedBrand:
description: '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.'
type: string
selectedRecurringDetailReference:
description: The `recurringDetailReference` you want to use for this payment. The value `LATEST` can be used to select the most recently stored recurring detail.
type: string
sessionId:
description: A session ID used to identify a payment session.
type: string
shopperEmail:
description: 'The shopper''s email address. We recommend that you provide this data, as it is used in velocity fraud checks.
> For 3D Secure 2 transactions, schemes require `shopperEmail` for all browser-based and mobile implementations.'
type: string
shopperIP:
description: 'The shopper''s IP address. In general, 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).
> For 3D Secure 2 transactions, schemes require `shopperIP` for all browser-based implementations.
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).'
type: string
shopperInteraction:
description: '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.'
enum:
- Ecommerce
- ContAuth
- Moto
- POS
type: string
shopperLocale:
x-addedInVersion: '7'
description: The combination of a language code and a country code to specify the language to be used in the payment.
type: string
shopperName:
x-addedInVersion: '7'
description: The shopper's full name.
$ref: '#/components/schemas/Name'
shopperReference:
description: "Required for recurring payments. \nYour reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters.\n> Your reference must not include personally identifiable information (PII), for example name or email address."
type: string
shopperStatement:
description: "The text to be shown on the shopper's bank statement.\n We recommend sending a maximum of 22 characters, otherwise banks might truncate the string.\n Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , ' _ - ? + * /**."
type: string
socialSecurityNumber:
x-addedInVersion: '4'
description: The shopper's social security number.
type: string
splits:
x-addedInVersion: '37'
description: An array of objects specifying how the payment should be split when using [Adyen for Platforms](https://docs.adyen.com/marketplaces-and-platforms/processing-payments#providing-split-information) or [Issuing](https://docs.adyen.com/issuing/add-manage-funds#split).
items:
$ref: '#/components/schemas/Split'
type: array
store:
x-addedInVersion: '23'
description: 'The ecommerce or point-of-sale store that is processing the payment. Used in:
* [Partner platform integrations](https://docs.adyen.com/marketplaces-and-platforms/classic/platforms-for-partners#route-payments) for the [Classic Platforms integration](https://docs.adyen.com/marketplaces-and-platforms/classic).
* [Platform setup integrations](https://docs.adyen.com/marketplaces-and-platforms/additional-for-platform-setup/route-payment-to-store) for the [Balance Platform](https://docs.adyen.com/marketplaces-and-platforms).'
maxLength: 16
minLength: 1
type: string
telephoneNumber:
x-addedInVersion: '7'
description: The shopper's telephone number.
type: string
threeDS2RequestData:
x-addedInVersion: '40'
description: Request fields for 3D Secure 2. To check if any of the following fields are required for your integration, refer to [Online payments](https://docs.adyen.com/online-payments) or [Classic integration](https://docs.adyen.com/classic-integration) documentation.
$ref: '#/components/schemas/ThreeDS2RequestData'
threeDS2Result:
description: Thre ThreeDS2Result that was returned in the final CRes.
$ref: '#/components/schemas/ThreeDS2Result'
threeDS2Token:
description: The ThreeDS2Token that was returned in the /authorise call.
type: string
threeDSAuthenticationOnly:
x-addedInVersion: '50'
default: false
description: If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation.
type: boolean
totalsGroup:
x-addedInVersion: '23'
description: The reference value to aggregate sales totals in reporting. When not specified, the store field is used (if available).
maxLength: 16
minLength: 1
type: string
trustedShopper:
x-addedInVersion: '37'
description: Set to true if the payment should be routed to a trusted MID.
type: boolean
required:
- merchantAccount
- reference
- amount
type: object
Phone:
properties:
cc:
description: 'Country code. Length: 1–3 characters.'
maxLength: 3
minLength: 1
type: string
subscriber:
description: 'Subscriber number. Maximum length: 15 characters.'
maxLength: 15
type: string
type: object
ForexQuote:
properties:
account:
description: The account name.
type: string
accountType:
description: The account type.
type: string
baseAmount:
description: The base amount.
$ref: '#/components/schemas/Amount'
basePoints:
description: The base points.
format: int32
type: integer
buy:
description: The buy rate.
$ref: '#/components/schemas/Amount'
interbank:
description: The interbank amount.
$ref: '#/components/schemas/Amount'
reference:
description: The reference assigned to the forex quote request.
type: string
sell:
description: The sell rate.
$ref: '#/components/schemas/Amount'
signature:
description: The signature to validate the integrity.
type: string
source:
description: The source of the forex quote.
type: string
type:
description: The type of forex.
type: string
validTill:
description: The date until which the forex quote is valid.
format: date-time
type: string
required:
- validTill
- basePoints
type: object
Installments:
properties:
plan:
x-addedInVersion: '64'
description: 'The installment plan, used for [card installments in Japan](https://docs.adyen.com/payment-methods/cards/credit-card-installments#make-a-payment-japan). By default, this is set to **regular**. Possible values:
* **regular**
* **revolving**
'
enum:
- regular
- revolving
type: string
value:
description: 'Defines the number of installments. Its value needs to be greater than zero.
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.'
format: int32
type: integer
required:
- value
type: object
ResponseAdditionalDataNetworkTokens:
properties:
networkToken.available:
description: Indicates whether a network token is available for the specified card.
type: string
networkToken.bin:
description: The Bank Identification Number of a tokenized card, which is the first six digits of a card number.
type: string
networkToken.tokenSummary:
description: The last four digits of a network token.
type: string
type: object
AdditionalDataRiskStandalone:
properties:
PayPal.CountryCode:
description: Shopper's country of residence in the form of ISO standard 3166 2-character country codes.
type: string
PayPal.EmailId:
description: Shopper's email.
type: string
PayPal.FirstName:
description: Shopper's first name.
type: string
PayPal.LastName:
description: Shopper's last name.
type: string
PayPal.PayerId:
description: 'Unique PayPal Customer Account identification number. Character length and limitations: 13 single-byte alphanumeric characters.'
type: string
PayPal.Phone:
description: Shopper's phone number.
type: string
PayPal.ProtectionEligibility:
description: 'Allowed values:
* **Eligible** — Merchant is protected by PayPal''s Seller Protection Policy for Unauthorized Payments and Item Not Received.
* **PartiallyEligible** — Merchant is protected by PayPal''s Seller Protection Policy for Item Not Received.
* **Ineligible** — Merchant is not protected under the Seller Protection Policy.'
type: string
PayPal.TransactionId:
description: Unique transaction ID of the payment.
type: string
avsResultRaw:
description: 'Raw AVS result received from the acquirer, where available. Example: D'
type: string
bin:
description: The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/risk-management/standalone-risk#tokenised-pan-request).
type: string
cvcResultRaw:
description: 'Raw CVC result received from the acquirer, where available. Example: 1'
type: string
riskToken:
description: Unique identifier or token for the shopper's card details.
type: string
threeDAuthenticated:
description: 'A Boolean value indicating whether 3DS authentication was completed on this payment. Example: true'
type: string
threeDOffered:
description: 'A Boolean value indicating whether 3DS was offered for this payment. Example: true'
type: string
tokenDataType:
description: 'Required for PayPal payments only. The only supported value is: **paypal**.'
type: string
type: object
AdditionalDataLodging:
properties:
lodging.checkInDate:
description: 'The arrival date.
* Date format: **yyyyMmDd**. For example, for 2023 April 22, **20230422**.'
type: string
lodging.checkOutDate:
description: 'The departure date.
* Date format: **yyyyMmDd**. For example, for 2023 April 22, **20230422**.'
type: string
lodging.customerServiceTollFreeNumber:
description: 'The toll-free phone number for the lodging.
* Format: numeric
* Max length: 17 characters.
* For US and CA numbers must be 10 characters in length
* Must not start wit
# --- truncated at 32 KB (155 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adyen/refs/heads/main/openapi/adyen-authorise3ds2-api-openapi.yml