From e2dd2fc086e68a26544e4e620d47e04e55332ab9 Mon Sep 17 00:00:00 2001 From: aleksei Date: Wed, 20 Nov 2019 09:58:35 +0100 Subject: [PATCH] yaml files --- specs/yaml/PayoutService-v30.yaml | 134 +- specs/yaml/PayoutService-v40.yaml | 1695 +++++++++++++++++++++++++ specs/yaml/PayoutService-v46.yaml | 1698 +++++++++++++++++++++++++ specs/yaml/PayoutService-v49.yaml | 1715 +++++++++++++++++++++++++ specs/yaml/PayoutService-v50.yaml | 1739 +++++++++++++++++++++++++ specs/yaml/PayoutService-v51.yaml | 1743 ++++++++++++++++++++++++++ specs/yaml/RecurringService-v18.yaml | 216 +++- specs/yaml/RecurringService-v25.yaml | 130 +- specs/yaml/RecurringService-v30.yaml | 493 ++++++++ specs/yaml/RecurringService-v40.yaml | 500 ++++++++ specs/yaml/RecurringService-v49.yaml | 500 ++++++++ specs/yaml/TestCardService-v1.yaml | 217 ++++ 12 files changed, 10614 insertions(+), 166 deletions(-) create mode 100644 specs/yaml/PayoutService-v40.yaml create mode 100644 specs/yaml/PayoutService-v46.yaml create mode 100644 specs/yaml/PayoutService-v49.yaml create mode 100644 specs/yaml/PayoutService-v50.yaml create mode 100644 specs/yaml/PayoutService-v51.yaml create mode 100644 specs/yaml/RecurringService-v30.yaml create mode 100644 specs/yaml/RecurringService-v40.yaml create mode 100644 specs/yaml/RecurringService-v49.yaml create mode 100644 specs/yaml/TestCardService-v1.yaml diff --git a/specs/yaml/PayoutService-v30.yaml b/specs/yaml/PayoutService-v30.yaml index ad5d60bc..0cabcf81 100644 --- a/specs/yaml/PayoutService-v30.yaml +++ b/specs/yaml/PayoutService-v30.yaml @@ -3,11 +3,11 @@ servers: - url: 'https://pal-test.adyen.com/pal/servlet/Payout/v30' info: version: '30' - title: Adyen Payout Service + title: Adyen Payout API description: |- A set of API endpoints that allow you to store payout details, confirm, or decline a payout. - For more information, refer to [Third-party payouts](https://docs.adyen.com/developers/features/third-party-payouts). + For more information, refer to [Online payouts](https://docs.adyen.com/checkout/online-payouts). termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' contact: name: Adyen Support @@ -203,42 +203,39 @@ components: Address: properties: city: - description: |- - The name of the city. - >Required if either houseNumberOrName, street, postalCode, or stateOrProvince are provided. + description: The name of the city. type: string country: description: |- - The two-character country code of the address - >The permitted country codes are defined in ISO-3166-1 alpha-2 (e.g. 'NL'). + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. type: string houseNumberOrName: description: The number or name of the house. type: string postalCode: - description: |- - The postal code. - >A maximum of five (5) digits for an address in the USA, or a maximum of ten (10) characters for an address in all other countries. - >Required if either houseNumberOrName, street, city, or stateOrProvince are provided. + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' type: string stateOrProvince: description: |- - The abbreviation of the state or province. - >Two (2) characters for an address in the USA or Canada, or a maximum of three (3) characters for an address in all other countries. - >Required for an address in the USA or Canada if either houseNumberOrName, street, city, or postalCode are provided. + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. type: string street: description: |- The name of the street. - >The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. - >Required if either houseNumberOrName, city, postalCode, or stateOrProvince are provided. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. type: string required: + - street + - houseNumberOrName + - city + - postalCode - country Amount: properties: currency: - description: 'The three-character [ISO currency code](https://docs.adyen.com/developers/development-resources/currency-codes).' + description: 'The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).' maxLength: 3 minLength: 3 type: string @@ -246,7 +243,7 @@ components: description: |- The payable amount that can be charged for the transaction. - The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/developers/development-resources/currency-codes). + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). format: int64 type: integer required: @@ -314,11 +311,11 @@ components: properties: cvc: description: |- - The [card verification code](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid) (1-20 characters). Depending on the card brand, it is known also as: + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: * CVV2/CVC2 – length: 3 digits * CID – length: 4 digits - > If you are using [Client-Side Encryption](https://docs.adyen.com/developers/features/client-side-encryption), the CVC code is present in the encrypted data. You must never post the card details to the server. - > This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/classic-integration/recurring-payments). + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). > When this value is returned in a response, it is always empty because it is not stored. maxLength: 20 minLength: 1 @@ -538,17 +535,17 @@ components: properties: additionalAmount: description: |- - If you want a [BIN or card verification](https://docs.adyen.com/developers/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). + 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: 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. For more information on possible key-value pairs, refer to the [additionalData section](https://docs.adyen.com/developers/api-reference/payments-api#paymentrequestadditionaldata). + The `additionalData` object consists of entries, each of which includes the key and value. For more information on possible key-value pairs, refer to the [additionalData section](https://docs.adyen.com/api-reference/payments-api/paymentrequest/paymentrequest-additionaldata). type: object amount: - description: 'The amount information for the transaction. For [BIN or card verification](https://docs.adyen.com/developers/payment-methods/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).' + description: 'The amount information for the transaction. 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' bankAccount: description: |- @@ -556,10 +553,14 @@ components: > Either `bankAccount` or `card` field must be provided in a payment request. $ref: '#/components/schemas/BankAccount' billingAddress: - description: The address where to send the invoice. + description: |- + The address where to send the invoice. + > For 3D Secure 2 transactions, schemes require the `billingAddress` for both `deviceChannel` **browser** and **app**. Include all of the fields within this object. $ref: '#/components/schemas/Address' browserInfo: - description: The shopper's browser information. + description: |- + The shopper's browser information. + > For 3D Secure 2 transactions, `browserInfo` is required for `channel` **web** (or `deviceChannel` **browser**). $ref: '#/components/schemas/BrowserInfo' captureDelayHours: description: 'The delay between the authorisation and scheduled auto-capture, specified in hours.' @@ -593,7 +594,7 @@ components: format: date-time type: string deviceFingerprint: - description: 'A string containing the shopper''s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/developers/risk-management/device-fingerprinting).' + description: 'A string containing the shopper''s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).' type: string entityType: description: The type of the entity the payment is processed for. @@ -609,7 +610,7 @@ components: description: The person or entity funding the money. $ref: '#/components/schemas/FundSource' installments: - description: 'Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/developers/payment-methods/installment-payments).' + description: 'Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/payment-methods/installment-payments).' $ref: '#/components/schemas/Installments' mcc: 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.' @@ -619,13 +620,14 @@ components: type: string merchantOrderReference: description: |- - This reference allows linking multiple transactions to each other. + 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 metadata: description: |- Metadata consists of entries, each of which includes a key and a value. - Limitations: Error "177", "Metadata size exceeds limit" + Limitations: Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit". type: object mpiData: description: Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa). @@ -635,20 +637,22 @@ components: maxLength: 2 type: string orderReference: - description: The order reference to link multiple partial payments. + 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/developers/features/recurring-payments).' + 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: - description: |- + description: | Defines a recurring payment type. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – 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` – 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: |- @@ -671,12 +675,14 @@ components: 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.' + 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 the `shopperEmail` for both `deviceChannel` **browser** and **app**. type: string shopperIP: description: |- - 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). - > This field is mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + 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). + > Required for 3D Secure 2 transactions. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). type: string shopperInteraction: description: |- @@ -764,7 +770,7 @@ components: description: |- 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/developers/risk-management/3d-secure). + 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). type: string pspReference: description: |- @@ -782,21 +788,29 @@ components: description: |- The result of the payment. Possible values: - * **Authorised** – Indicates the payment authorisation was successfully completed. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state. - * **Refused** – Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state. - * **RedirectShopper** – Indicates the shopper should be redirected to an external web page or app to complete the authorisation. - * **Received** – Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments. + * **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions. + * **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. - * **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. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/developers/development-resources/payments-with-pending-status). - * **Error** – Indicates an error occurred during processing of the payment. The reason is given in the `refusalReason` field. 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. + * **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. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/development-resources/payments-with-pending-status). + * **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. enum: + - AuthenticationFinished - Authorised - - PartiallyAuthorised - - Refused - - Error - Cancelled + - ChallengeShopper + - Error + - IdentifyShopper + - Pending + - PresentToShopper - Received - RedirectShopper + - Refused type: string Recurring: properties: @@ -804,10 +818,10 @@ components: description: |- 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/developers/payment-glossary#cardsecuritycodecvccvvcid). - * `RECURRING` – Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/developers/payment-glossary#cardnotpresentcnp). + * `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/developers/features/third-party-payouts). + * `PAYOUT` – Payment details can be used to [make a payout](https://docs.adyen.com/checkout/online-payouts). enum: - ONECLICK - RECURRING @@ -1146,7 +1160,10 @@ components: ThreeDSecureData: properties: authenticationResponse: - description: The authentication response if the shopper was redirected. + description: |- + In 3D Secure 1, the authentication response if the shopper was redirected. + + In 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, set this value to **Y**. enum: - 'Y' - 'N' @@ -1158,20 +1175,27 @@ components: format: byte type: string cavvAlgorithm: - description: The CAVV algorithm used. + description: The CAVV algorithm used. Include this only for 3D Secure 1. type: string directoryResponse: - description: The enrollment response from the 3D directory server. + description: |- + In 3D Secure 1, this is the enrollment response from the 3D directory server. + + In 3D Secure 2, this is the `transStatus` from the `ARes`. The possible values are **A** or **Y** for a frictionless flow, or **C** for a challenge flow. enum: - - 'Y' + - A + - C + - D + - I - 'N' + - R - U - - E + - 'Y' type: string eci: description: The electronic commerce indicator. type: string xid: - description: 'The transaction identifier (base64 encoded, 20 bytes in a decoded form).' + description: 'Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).' format: byte type: string diff --git a/specs/yaml/PayoutService-v40.yaml b/specs/yaml/PayoutService-v40.yaml new file mode 100644 index 00000000..16e3f729 --- /dev/null +++ b/specs/yaml/PayoutService-v40.yaml @@ -0,0 +1,1695 @@ +openapi: 3.0.0 +servers: + - url: 'https://pal-test.adyen.com/pal/servlet/Payout/v40' +info: + version: '40' + title: Adyen Payout API + description: |- + A set of API endpoints that allow you to store payout details, confirm, or decline a payout. + + For more information, refer to [Online payouts](https://docs.adyen.com/checkout/online-payouts). + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +x-groups: + - Initialization + - Reviewing + - Instant payouts +paths: + /confirmThirdParty: + post: + summary: Confirms a payout. + description: |- + Confirms a previously submitted payout. + + To cancel a payout, use the `/declineThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /declineThirdParty: + post: + summary: Cancels a payout. + description: |- + Cancels a previously submitted payout. + + To confirm and send a payout, use the `/confirmThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /payout: + post: + summary: Pay out directly. + description: 'With this call, you can pay out to your customers, and funds will be made available within 30 minutes on the cardholder''s bank account (this is dependent on whether the issuer supports this functionality). Instant card payouts are only supported for Visa and Mastercard cards.' + x-groupName: Instant payouts + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetail: + post: + summary: Stores payout details. + description: Stores payment details under the `PAYOUT` recurring contract. These payment details can be used later to submit a payout via the `/submitThirdParty` call. + x-groupName: Initialization + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetailAndSubmitThirdParty: + post: + summary: Stores details and submits a payout. + description: |- + Submits a payout and stores its details for subsequent payouts. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /submitThirdParty: + post: + summary: Submits a payout. + description: |- + Submits a payout using the previously stored payment details. To store payment details, use the `/storeDetail` API call. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +components: + schemas: + AccountInfo: + properties: + accountAgeIndicator: + description: |- + Indicator for the length of time since this shopper account was created in the merchant's environment. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountChangeDate: + description: Date when the shopper's account was last changed. + format: date-time + type: string + accountChangeIndicator: + description: |- + Indicator for the length of time since the shopper's account was last updated. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountCreationDate: + description: Date when the shopper's account was created. + format: date-time + type: string + addCardAttemptsDay: + description: Number of attempts the shopper tried to add a card to their account in the last day. + format: int32 + type: integer + deliveryAddressUsageDate: + description: Date the selected delivery address was first used. + format: date-time + type: string + deliveryAddressUsageIndicator: + description: |- + Indicator for the length of time since this delivery address was first used. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + homePhone: + description: Shopper's home phone number (including the country code). + type: string + mobilePhone: + description: Shopper's mobile phone number (including the country code). + type: string + passwordChangeDate: + description: Date when the shopper last changed their password. + format: date-time + type: string + passwordChangeIndicator: + description: |- + Indicator when the shopper has changed their password. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + pastTransactionsDay: + description: Number of all transactions (successful and abandoned) from this shopper in the past 24 hours. + format: int32 + type: integer + pastTransactionsYear: + description: Number of all transactions (successful and abandoned) from this shopper in the past year. + format: int32 + type: integer + paymentAccountAge: + description: Date this payment method was added to the shopper's account. + format: date-time + type: string + paymentAccountIndicator: + description: |- + Indicator for the length of time since this payment method was added to this shopper's account. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + purchasesLast6Months: + description: Number of successful purchases in the last six months. + format: int32 + type: integer + suspiciousActivity: + description: Whether suspicious activity was recorded on this account. + type: boolean + workPhone: + description: Shopper's work phone number (including the country code). + type: string + Address: + properties: + city: + description: The name of the city. + type: string + country: + description: |- + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. + type: string + houseNumberOrName: + description: The number or name of the house. + type: string + postalCode: + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' + type: string + stateOrProvince: + description: |- + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. + type: string + street: + description: |- + The name of the street. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. + type: string + required: + - street + - houseNumberOrName + - city + - postalCode + - country + Amount: + properties: + currency: + description: 'The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).' + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + - currency + ApplicationInfo: + properties: + adyenLibrary: + description: 'Adyen-developed software, such as libraries and plugins, used to interact with the Adyen API. For example, Magento plugin, Java API library, etc.' + $ref: '#/components/schemas/CommonField' + adyenPaymentSource: + description: 'Adyen-developed software to get payment details. For example, Checkout SDK, Secured Fields SDK, etc.' + $ref: '#/components/schemas/CommonField' + externalPlatform: + description: 'Third-party developed platform used to initiate payment requests. For example, Magento, Zuora, etc.' + $ref: '#/components/schemas/ExternalPlatform' + merchantApplication: + description: 'Merchant developed software, such as cashier application, used to interact with the Adyen API.' + $ref: '#/components/schemas/CommonField' + merchantDevice: + description: Merchant device information. + $ref: '#/components/schemas/MerchantDevice' + shopperInteractionDevice: + description: 'Shopper interaction device, such as terminal, mobile device or web browser, to initiate payment requests.' + $ref: '#/components/schemas/ShopperInteractionDevice' + BankAccount: + properties: + bankAccountNumber: + description: The bank account number (without separators). + type: string + bankCity: + description: The bank city. + type: string + bankLocationId: + description: The location id of the bank. The field value is `nil` in most cases. + type: string + bankName: + description: The name of the bank. + type: string + bic: + description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.' + type: string + countryCode: + description: |- + Country code where the bank is located. + + A valid value is an ISO two-character country code (e.g. 'NL'). + type: string + iban: + description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).' + type: string + ownerName: + description: |- + The name of the bank account holder. + If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: + * χ12 is converted to ch12. + * üA is converted to euA. + * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. + After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: + * John17 - allowed. + * J17 - allowed. + * 171 - not allowed. + * John-7 - allowed. + > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'. + type: string + taxId: + description: The bank account holder's tax ID. + type: string + BrowserInfo: + properties: + acceptHeader: + description: The accept header value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + colorDepth: + description: 'The color depth of the shopper''s browser in bits per pixel. This should be obtained by using the browser''s `screen.colorDepth` property. Accepted values: 1, 4, 8, 15, 16, 24, 32 or 48 bit color depth.' + format: int32 + type: integer + javaEnabled: + description: Boolean value indicating if the shopper's browser is able to execute Java. + type: boolean + javaScriptEnabled: + description: Boolean value indicating if the shopper's browser is able to execute JavaScript. A default 'true' value is assumed if the field is not present. + type: boolean + language: + description: The `navigator.language` value of the shopper's browser (as defined in IETF BCP 47). + type: string + screenHeight: + description: The total height of the shopper's device screen in pixels. + format: int32 + type: integer + screenWidth: + description: The total width of the shopper's device screen in pixels. + format: int32 + type: integer + timeZoneOffset: + description: 'Time difference between UTC time and the shopper''s browser local time, in minutes.' + format: int32 + type: integer + userAgent: + description: The user agent value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + required: + - userAgent + - acceptHeader + - javaEnabled + - colorDepth + - screenHeight + - screenWidth + - timeZoneOffset + - language + Card: + properties: + cvc: + description: |- + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: + * CVV2/CVC2 – length: 3 digits + * CID – length: 4 digits + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). + > When this value is returned in a response, it is always empty because it is not stored. + maxLength: 20 + minLength: 1 + type: string + expiryMonth: + description: |- + The card expiry month. + Format: 2 digits, zero-padded for single digits. For example: + * 03 = March + * 11 = November + maxLength: 2 + minLength: 1 + type: string + expiryYear: + description: |- + The card expiry year. + Format: 4 digits. For example: 2020 + maxLength: 4 + minLength: 4 + type: string + holderName: + description: 'The name of the cardholder, as printed on the card.' + maxLength: 50 + minLength: 1 + type: string + issueNumber: + description: The issue number of the card (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + number: + description: |- + The card number (4-19 characters). Do not use any separators. + When this value is returned in a response, only the last 4 digits of the card number are returned. + maxLength: 19 + minLength: 4 + type: string + startMonth: + description: The month component of the start date (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + startYear: + description: The year component of the start date (for some UK debit cards only). + maxLength: 4 + minLength: 4 + type: string + required: + - number + - expiryMonth + - expiryYear + - holderName + CommonField: + properties: + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + DeviceRenderOptions: + properties: + sdkInterface: + description: |- + Supported SDK interface types. + Allowed values: + * Native + * Html + * both + enum: + - Html + - Native + - both + type: string + sdkUiType: + description: |- + UI types supported for displaying specific challenges. + Allowed values: + * text + * singleSelect + * outOfBand + * otherHtml + * multiSelect + items: + enum: + - multiSelect + - otherHtml + - outOfBand + - singleSelect + - text + type: string + type: array + ExternalPlatform: + properties: + integrator: + description: External platform integrator. + type: string + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + 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 + FraudCheckResult: + properties: + accountScore: + description: The fraud score generated by the risk check. + format: int32 + type: integer + checkId: + description: The ID of the risk check. + format: int32 + type: integer + name: + description: The name of the risk check. + type: string + required: + - checkId + - name + - accountScore + FraudResult: + properties: + accountScore: + description: The total fraud score generated by the risk checks. + format: int32 + type: integer + results: + description: The result of the individual risk checks. + items: + $ref: '#/components/schemas/FraudCheckResult' + type: array + required: + - accountScore + FundSource: + properties: + additionalData: + description: a map of name/value pairs for passing in additional/industry-specific data + type: object + billingAddress: + description: the address where to send the invoice + $ref: '#/components/schemas/Address' + card: + description: a representation of a (credit or debit) card + $ref: '#/components/schemas/Card' + shopperEmail: + description: the email address of the person + type: string + shopperName: + description: the name of the person + $ref: '#/components/schemas/Name' + telephoneNumber: + description: the telephone number of the person + type: string + Installments: + properties: + 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 + MerchantDevice: + properties: + os: + description: Operating system running on the merchant device. + type: string + osVersion: + description: Version of the operating system on the merchant device. + type: string + reference: + description: Merchant device reference. + type: string + MerchantRiskIndicator: + properties: + addressMatch: + description: Whether the chosen delivery address is identical to the billing address. + type: boolean + deliveryAddressIndicator: + description: |- + Indicator regarding the delivery address. + Allowed values: + * `shipToBillingAddress` + * `shipToVerifiedAddress` + * `shipToNewAddress` + * `shipToStore` + * `digitalGoods` + * `goodsNotShipped` + * `other` + enum: + - shipToBillingAddress + - shipToVerifiedAddress + - shipToNewAddress + - shipToStore + - digitalGoods + - goodsNotShipped + - other + type: string + deliveryEmail: + description: The delivery email address (for digital goods). + type: string + deliveryTimeframe: + description: |- + The estimated delivery time for the shopper to receive the goods. + Allowed values: + * `electronicDelivery` + * `sameDayShipping` + * `overnightShipping` + * `twoOrMoreDaysShipping` + enum: + - electronicDelivery + - sameDayShipping + - overnightShipping + - twoOrMoreDaysShipping + type: string + giftCardAmount: + description: The amount of prepaid or gift cards used for this purchase. + $ref: '#/components/schemas/Amount' + giftCardCount: + description: Number of individual prepaid or gift cards used for this purchase. + format: int32 + type: integer + preOrderDate: + description: 'For pre-order purchases, the expected date this product will be available to the shopper.' + format: date-time + type: string + preOrderPurchase: + description: Indicator for whether this transaction is for pre-ordering a product. + type: boolean + reorderItems: + description: Indicator for whether the shopper has already purchased the same items in the past. + type: boolean + ModifyRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular payout request.' + type: object + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + originalReference: + description: The PSP reference received in the `/submitThirdParty` response. + type: string + required: + - merchantAccount + - originalReference + ModifyResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: Adyen's 16-character string reference associated with the transaction. This value is globally unique; quote it when communicating with us about this response. + type: string + response: + description: |- + The response: + * In case of success, it is either `payout-confirm-received` or `payout-decline-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - response + Name: + properties: + firstName: + description: The first name. + type: string + gender: + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. + enum: + - MALE + - FEMALE + - UNKNOWN + maxLength: 1 + minLength: 1 + type: string + infix: + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + - gender + PayoutRequest: + properties: + accountInfo: + 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: + 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. For more information on possible key-value pairs, refer to the [additionalData section](https://docs.adyen.com/api-reference/payments-api/paymentrequest/paymentrequest-additionaldata). + type: object + amount: + description: 'The amount information for the transaction. 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: + 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' + bankAccount: + description: |- + The details of the bank account, from which the payment should be made. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: |- + The address where to send the invoice. + > For 3D Secure 2 transactions, schemes require the `billingAddress` for both `deviceChannel` **browser** and **app**. Include all of the fields within this object. + $ref: '#/components/schemas/Address' + browserInfo: + description: |- + The shopper's browser information. + > For 3D Secure 2 transactions, `browserInfo` is required for `channel` **web** (or `deviceChannel` **browser**). + $ref: '#/components/schemas/BrowserInfo' + captureDelayHours: + description: 'The delay between the authorisation and scheduled auto-capture, specified in hours.' + format: int32 + type: integer + card: + description: |- + A container for card data. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The shopper's date of birth. + + Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD + format: date-time + 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: + 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: + description: 'A string containing the shopper''s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).' + type: string + entityType: + description: The type of the entity the payment is processed for. + enum: + - NaturalPerson + - CompanyName + 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 + fundSource: + description: The person or entity funding the money. + $ref: '#/components/schemas/FundSource' + installments: + description: 'Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/payment-methods/installment-payments).' + $ref: '#/components/schemas/Installments' + mcc: + 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: + 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: + 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: + description: |- + Metadata consists of entries, each of which includes a key and a value. + Limitations: Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit". + type: object + mpiData: + description: Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa). + $ref: '#/components/schemas/ThreeDSecureData' + nationality: + description: The two-character country code of the shopper's nationality. + maxLength: 2 + type: string + 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: + description: | + Defines a recurring payment type. + Allowed values: + * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. + * `CardOnFile` – 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` – 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 the `shopperEmail` for both `deviceChannel` **browser** and **app**. + 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). + > Required for 3D Secure 2 transactions. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/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: + description: The combination of a language code and a country code to specify the language to be used in the payment. + type: string + shopperName: + description: The shopper's full name and gender (if specified). + $ref: '#/components/schemas/Name' + shopperReference: + description: |- + The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID). + > This field is required for recurring payments. + type: string + shopperStatement: + description: The text to appear on the shopper's bank statement. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + splits: + description: The details of how the payment should be split when distributing a payment to a MarketPay Marketplace and its Accounts. + items: + $ref: '#/components/schemas/Split' + type: array + store: + description: 'The physical store, for which this payment is processed.' + maxLength: 16 + minLength: 1 + type: string + telephoneNumber: + description: The shopper's telephone number. + type: string + threeDS2RequestData: + description: Request fields for 3D Secure 2. + $ref: '#/components/schemas/ThreeDS2RequestData' + totalsGroup: + 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: + description: Set to true if the payment should be routed to a trusted MID. + type: boolean + required: + - merchantAccount + - reference + - amount + PayoutResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Account** > **API URLs**.' + type: object + authCode: + description: |- + 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. + type: string + dccAmount: + description: |- + Includes the currency of the conversion and the value of the transaction. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + $ref: '#/components/schemas/Amount' + dccSignature: + description: |- + Cryptographic signature used to verify `dccQuote`. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + type: string + fraudResult: + description: The fraud result properties of the payment. + $ref: '#/components/schemas/FraudResult' + issuerUrl: + description: |- + The URL to direct the shopper to. + > In case of SecurePlus, do not redirect a shopper to this URL. + type: string + md: + description: The payment session. + type: string + paRequest: + description: |- + 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). + type: string + pspReference: + description: |- + Adyen's 16-character string reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request. + + > `pspReference` is returned only for non-redirect payment methods. + type: string + refusalReason: + description: |- + 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. + type: string + resultCode: + description: |- + The result of the payment. Possible values: + + * **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions. + * **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. + * **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. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/development-resources/payments-with-pending-status). + * **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. + enum: + - AuthenticationFinished + - Authorised + - Cancelled + - ChallengeShopper + - Error + - IdentifyShopper + - Pending + - PresentToShopper + - Received + - RedirectShopper + - Refused + type: string + Recurring: + properties: + contract: + description: |- + 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/checkout/online-payouts). + enum: + - ONECLICK + - RECURRING + - PAYOUT + type: string + recurringDetailName: + description: A descriptive name for this detail. + type: string + recurringExpiry: + description: Date after which no further authorisations shall be performed. Only for 3D Secure 2. + format: date-time + type: string + recurringFrequency: + description: Minimum number of days between authorisations. Only for 3D Secure 2. + type: string + tokenService: + description: The name of the token service. + enum: + - VISATOKENSERVICE + - MCTOKENSERVICE + type: string + SDKEphemPubKey: + properties: + crv: + description: The `crv` value as received from the 3D Secure 2 SDK. + type: string + kty: + description: The `kty` value as received from the 3D Secure 2 SDK. + type: string + x: + description: The `x` value as received from the 3D Secure 2 SDK. + type: string + 'y': + description: The `y` value as received from the 3D Secure 2 SDK. + type: string + ShopperInteractionDevice: + properties: + locale: + description: Locale on the shopper interaction device. + type: string + os: + description: Operating system running on the shopper interaction device. + type: string + osVersion: + description: Version of the operating system on the shopper interaction device. + type: string + Split: + properties: + account: + description: |- + The account to which this split applies. + + >Required if the type is `MarketPlace`. + type: string + amount: + description: The amount of this split. + $ref: '#/components/schemas/SplitAmount' + description: + description: A description of this split. + type: string + reference: + description: |- + The reference of this split. Used to link other operations (e.g. captures and refunds) to this split. + + >Required if the type is `MarketPlace`. + type: string + type: + description: |- + The type of this split. + + >Permitted values: `Default`, `PaymentFee`, `VAT`, `Commission`, `MarketPlace`, `Verification`. + enum: + - Commission + - Default + - MarketPlace + - PaymentFee + - VAT + - Verification + type: string + required: + - amount + - type + SplitAmount: + properties: + currency: + description: |- + The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). + + If this value is not provided, the currency in which the payment is made will be used. + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + StoreDetailAndSubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payment. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + - reference + - amount + StoreDetailAndSubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + + * In case of success is payout-submit-received. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + StoreDetailRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + StoreDetailResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + recurringDetailReference: + description: The token which you can use later on for submitting the payout. + type: string + resultCode: + description: The result code of the transaction. `Success` indicates that the details were stored successfully. + type: string + required: + - pspReference + - recurringDetailReference + - resultCode + SubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + dateOfBirth: + description: |- + The date of birth. + Format: ISO-8601; example: YYYY-MM-DD + + For Paysafecard it must be the same as used when registering the Paysafecard account. + + > This field is mandatory for natural persons. + > This field is required to update the existing `dateOfBirth` that is associated with this recurring contract. + format: date-time + type: string + entityType: + description: |- + The type of the entity the payout is processed for. + + Allowed values: + * NaturalPerson + * Company + > This field is required to update the existing `entityType` that is associated with this recurring contract. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: The merchant account identifier you want to process the transaction request with. + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + + > This field is required to update the existing nationality that is associated with this recurring contract. + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The `recurring.contract` must be set to "PAYOUT". + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payout. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedRecurringDetailReference: + description: |- + This is the `recurringDetailReference` you want to use for this payout. + + You can use the value LATEST to select the most recently used recurring detail. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + In case the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + + > This field is required to update the existing `shopperName` associated with a recurring contract. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payout transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - reference + - amount + - shopperEmail + - shopperReference + - recurring + - selectedRecurringDetailReference + SubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + * In case of success, it is `payout-submit-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + ThreeDS2RequestData: + properties: + authenticationOnly: + description: 'If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only), and not the payment authorisation.' + type: boolean + challengeIndicator: + description: | + Possibility to specify a preference for receiving a challenge from the issuer. + Allowed values: + * `noPreference` + * `requestNoChallenge` + * `requestChallenge` + * `requestChallengeAsMandate` + enum: + - noPreference + - requestNoChallenge + - requestChallenge + - requestChallengeAsMandate + type: string + deviceChannel: + description: |- + The environment of the shopper. + Allowed values: + * `app` + * `browser` + type: string + deviceRenderOptions: + description: |- + Display options for the 3D Secure 2 SDK. + Optional and only for `deviceChannel` **app**. + $ref: '#/components/schemas/DeviceRenderOptions' + messageVersion: + description: The `messageVersion` value indicating the 3D Secure 2 protocol version. + type: string + notificationURL: + description: URL to where the issuer should send the `CRes`. Required if you are not using components for `channel` **Web** or if you are using classic integration `deviceChannel` **browser**. + type: string + sdkAppID: + description: |- + The `sdkAppID` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEncData: + description: |- + The `sdkEncData` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEphemPubKey: + description: |- + The `sdkEphemPubKey` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + $ref: '#/components/schemas/SDKEphemPubKey' + sdkMaxTimeout: + description: |- + The maximum amount of time in minutes for the 3D Secure 2 authentication process. + Optional and only for `deviceChannel` set to **app**. Defaults to **60** minutes. + format: int32 + type: integer + sdkReferenceNumber: + description: |- + The `sdkReferenceNumber` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + sdkTransID: + description: |- + The `sdkTransID` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + threeDSCompInd: + description: Completion indicator for the device fingerprinting. + type: string + threeDSRequestorID: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor identifier assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorName: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor name assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorURL: + description: URL of the (customer service) website that will be shown to the shopper in case of technical errors during the 3D Secure 2 process. + type: string + required: + - deviceChannel + ThreeDSecureData: + properties: + authenticationResponse: + description: |- + In 3D Secure 1, the authentication response if the shopper was redirected. + + In 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, set this value to **Y**. + enum: + - 'Y' + - 'N' + - U + - A + type: string + cavv: + description: 'The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).' + format: byte + type: string + cavvAlgorithm: + description: The CAVV algorithm used. Include this only for 3D Secure 1. + type: string + directoryResponse: + description: |- + In 3D Secure 1, this is the enrollment response from the 3D directory server. + + In 3D Secure 2, this is the `transStatus` from the `ARes`. The possible values are **A** or **Y** for a frictionless flow, or **C** for a challenge flow. + enum: + - A + - C + - D + - I + - 'N' + - R + - U + - 'Y' + type: string + eci: + description: The electronic commerce indicator. + type: string + threeDSVersion: + description: The version of the 3D Secure protocol. + type: string + xid: + description: 'Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).' + format: byte + type: string diff --git a/specs/yaml/PayoutService-v46.yaml b/specs/yaml/PayoutService-v46.yaml new file mode 100644 index 00000000..734a43a7 --- /dev/null +++ b/specs/yaml/PayoutService-v46.yaml @@ -0,0 +1,1698 @@ +openapi: 3.0.0 +servers: + - url: 'https://pal-test.adyen.com/pal/servlet/Payout/v46' +info: + version: '46' + title: Adyen Payout API + description: |- + A set of API endpoints that allow you to store payout details, confirm, or decline a payout. + + For more information, refer to [Online payouts](https://docs.adyen.com/checkout/online-payouts). + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +x-groups: + - Initialization + - Reviewing + - Instant payouts +paths: + /confirmThirdParty: + post: + summary: Confirms a payout. + description: |- + Confirms a previously submitted payout. + + To cancel a payout, use the `/declineThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /declineThirdParty: + post: + summary: Cancels a payout. + description: |- + Cancels a previously submitted payout. + + To confirm and send a payout, use the `/confirmThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /payout: + post: + summary: Pay out directly. + description: 'With this call, you can pay out to your customers, and funds will be made available within 30 minutes on the cardholder''s bank account (this is dependent on whether the issuer supports this functionality). Instant card payouts are only supported for Visa and Mastercard cards.' + x-groupName: Instant payouts + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetail: + post: + summary: Stores payout details. + description: Stores payment details under the `PAYOUT` recurring contract. These payment details can be used later to submit a payout via the `/submitThirdParty` call. + x-groupName: Initialization + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetailAndSubmitThirdParty: + post: + summary: Stores details and submits a payout. + description: |- + Submits a payout and stores its details for subsequent payouts. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /submitThirdParty: + post: + summary: Submits a payout. + description: |- + Submits a payout using the previously stored payment details. To store payment details, use the `/storeDetail` API call. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +components: + schemas: + AccountInfo: + properties: + accountAgeIndicator: + description: |- + Indicator for the length of time since this shopper account was created in the merchant's environment. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountChangeDate: + description: Date when the shopper's account was last changed. + format: date-time + type: string + accountChangeIndicator: + description: |- + Indicator for the length of time since the shopper's account was last updated. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountCreationDate: + description: Date when the shopper's account was created. + format: date-time + type: string + addCardAttemptsDay: + description: Number of attempts the shopper tried to add a card to their account in the last day. + format: int32 + type: integer + deliveryAddressUsageDate: + description: Date the selected delivery address was first used. + format: date-time + type: string + deliveryAddressUsageIndicator: + description: |- + Indicator for the length of time since this delivery address was first used. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + homePhone: + description: Shopper's home phone number (including the country code). + type: string + mobilePhone: + description: Shopper's mobile phone number (including the country code). + type: string + passwordChangeDate: + description: Date when the shopper last changed their password. + format: date-time + type: string + passwordChangeIndicator: + description: |- + Indicator when the shopper has changed their password. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + pastTransactionsDay: + description: Number of all transactions (successful and abandoned) from this shopper in the past 24 hours. + format: int32 + type: integer + pastTransactionsYear: + description: Number of all transactions (successful and abandoned) from this shopper in the past year. + format: int32 + type: integer + paymentAccountAge: + description: Date this payment method was added to the shopper's account. + format: date-time + type: string + paymentAccountIndicator: + description: |- + Indicator for the length of time since this payment method was added to this shopper's account. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + purchasesLast6Months: + description: Number of successful purchases in the last six months. + format: int32 + type: integer + suspiciousActivity: + description: Whether suspicious activity was recorded on this account. + type: boolean + workPhone: + description: Shopper's work phone number (including the country code). + type: string + Address: + properties: + city: + description: The name of the city. + type: string + country: + description: |- + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. + type: string + houseNumberOrName: + description: The number or name of the house. + type: string + postalCode: + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' + type: string + stateOrProvince: + description: |- + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. + type: string + street: + description: |- + The name of the street. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. + type: string + required: + - street + - houseNumberOrName + - city + - postalCode + - country + Amount: + properties: + currency: + description: 'The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).' + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + - currency + ApplicationInfo: + properties: + adyenLibrary: + description: 'Adyen-developed software, such as libraries and plugins, used to interact with the Adyen API. For example, Magento plugin, Java API library, etc.' + $ref: '#/components/schemas/CommonField' + adyenPaymentSource: + description: 'Adyen-developed software to get payment details. For example, Checkout SDK, Secured Fields SDK, etc.' + $ref: '#/components/schemas/CommonField' + externalPlatform: + description: 'Third-party developed platform used to initiate payment requests. For example, Magento, Zuora, etc.' + $ref: '#/components/schemas/ExternalPlatform' + merchantApplication: + description: 'Merchant developed software, such as cashier application, used to interact with the Adyen API.' + $ref: '#/components/schemas/CommonField' + merchantDevice: + description: Merchant device information. + $ref: '#/components/schemas/MerchantDevice' + shopperInteractionDevice: + description: 'Shopper interaction device, such as terminal, mobile device or web browser, to initiate payment requests.' + $ref: '#/components/schemas/ShopperInteractionDevice' + BankAccount: + properties: + bankAccountNumber: + description: The bank account number (without separators). + type: string + bankCity: + description: The bank city. + type: string + bankLocationId: + description: The location id of the bank. The field value is `nil` in most cases. + type: string + bankName: + description: The name of the bank. + type: string + bic: + description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.' + type: string + countryCode: + description: |- + Country code where the bank is located. + + A valid value is an ISO two-character country code (e.g. 'NL'). + type: string + iban: + description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).' + type: string + ownerName: + description: |- + The name of the bank account holder. + If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: + * χ12 is converted to ch12. + * üA is converted to euA. + * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. + After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: + * John17 - allowed. + * J17 - allowed. + * 171 - not allowed. + * John-7 - allowed. + > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'. + type: string + taxId: + description: The bank account holder's tax ID. + type: string + BrowserInfo: + properties: + acceptHeader: + description: The accept header value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + colorDepth: + description: 'The color depth of the shopper''s browser in bits per pixel. This should be obtained by using the browser''s `screen.colorDepth` property. Accepted values: 1, 4, 8, 15, 16, 24, 32 or 48 bit color depth.' + format: int32 + type: integer + javaEnabled: + description: Boolean value indicating if the shopper's browser is able to execute Java. + type: boolean + javaScriptEnabled: + description: Boolean value indicating if the shopper's browser is able to execute JavaScript. A default 'true' value is assumed if the field is not present. + type: boolean + language: + description: The `navigator.language` value of the shopper's browser (as defined in IETF BCP 47). + type: string + screenHeight: + description: The total height of the shopper's device screen in pixels. + format: int32 + type: integer + screenWidth: + description: The total width of the shopper's device screen in pixels. + format: int32 + type: integer + timeZoneOffset: + description: 'Time difference between UTC time and the shopper''s browser local time, in minutes.' + format: int32 + type: integer + userAgent: + description: The user agent value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + required: + - userAgent + - acceptHeader + - javaEnabled + - colorDepth + - screenHeight + - screenWidth + - timeZoneOffset + - language + Card: + properties: + cvc: + description: |- + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: + * CVV2/CVC2 – length: 3 digits + * CID – length: 4 digits + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). + > When this value is returned in a response, it is always empty because it is not stored. + maxLength: 20 + minLength: 1 + type: string + expiryMonth: + description: |- + The card expiry month. + Format: 2 digits, zero-padded for single digits. For example: + * 03 = March + * 11 = November + maxLength: 2 + minLength: 1 + type: string + expiryYear: + description: |- + The card expiry year. + Format: 4 digits. For example: 2020 + maxLength: 4 + minLength: 4 + type: string + holderName: + description: 'The name of the cardholder, as printed on the card.' + maxLength: 50 + minLength: 1 + type: string + issueNumber: + description: The issue number of the card (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + number: + description: |- + The card number (4-19 characters). Do not use any separators. + When this value is returned in a response, only the last 4 digits of the card number are returned. + maxLength: 19 + minLength: 4 + type: string + startMonth: + description: The month component of the start date (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + startYear: + description: The year component of the start date (for some UK debit cards only). + maxLength: 4 + minLength: 4 + type: string + required: + - number + - expiryMonth + - expiryYear + - holderName + CommonField: + properties: + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + DeviceRenderOptions: + properties: + sdkInterface: + description: |- + Supported SDK interface types. + Allowed values: + * Native + * Html + * both + enum: + - Html + - Native + - both + type: string + sdkUiType: + description: |- + UI types supported for displaying specific challenges. + Allowed values: + * text + * singleSelect + * outOfBand + * otherHtml + * multiSelect + items: + enum: + - multiSelect + - otherHtml + - outOfBand + - singleSelect + - text + type: string + type: array + ExternalPlatform: + properties: + integrator: + description: External platform integrator. + type: string + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + 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 + FraudCheckResult: + properties: + accountScore: + description: The fraud score generated by the risk check. + format: int32 + type: integer + checkId: + description: The ID of the risk check. + format: int32 + type: integer + name: + description: The name of the risk check. + type: string + required: + - checkId + - name + - accountScore + FraudResult: + properties: + accountScore: + description: The total fraud score generated by the risk checks. + format: int32 + type: integer + results: + description: The result of the individual risk checks. + items: + $ref: '#/components/schemas/FraudCheckResult' + type: array + required: + - accountScore + FundSource: + properties: + additionalData: + description: a map of name/value pairs for passing in additional/industry-specific data + type: object + billingAddress: + description: the address where to send the invoice + $ref: '#/components/schemas/Address' + card: + description: a representation of a (credit or debit) card + $ref: '#/components/schemas/Card' + shopperEmail: + description: the email address of the person + type: string + shopperName: + description: the name of the person + $ref: '#/components/schemas/Name' + telephoneNumber: + description: the telephone number of the person + type: string + Installments: + properties: + 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 + MerchantDevice: + properties: + os: + description: Operating system running on the merchant device. + type: string + osVersion: + description: Version of the operating system on the merchant device. + type: string + reference: + description: Merchant device reference. + type: string + MerchantRiskIndicator: + properties: + addressMatch: + description: Whether the chosen delivery address is identical to the billing address. + type: boolean + deliveryAddressIndicator: + description: |- + Indicator regarding the delivery address. + Allowed values: + * `shipToBillingAddress` + * `shipToVerifiedAddress` + * `shipToNewAddress` + * `shipToStore` + * `digitalGoods` + * `goodsNotShipped` + * `other` + enum: + - shipToBillingAddress + - shipToVerifiedAddress + - shipToNewAddress + - shipToStore + - digitalGoods + - goodsNotShipped + - other + type: string + deliveryEmail: + description: The delivery email address (for digital goods). + type: string + deliveryTimeframe: + description: |- + The estimated delivery time for the shopper to receive the goods. + Allowed values: + * `electronicDelivery` + * `sameDayShipping` + * `overnightShipping` + * `twoOrMoreDaysShipping` + enum: + - electronicDelivery + - sameDayShipping + - overnightShipping + - twoOrMoreDaysShipping + type: string + giftCardAmount: + description: The amount of prepaid or gift cards used for this purchase. + $ref: '#/components/schemas/Amount' + giftCardCount: + description: Number of individual prepaid or gift cards used for this purchase. + format: int32 + type: integer + preOrderDate: + description: 'For pre-order purchases, the expected date this product will be available to the shopper.' + format: date-time + type: string + preOrderPurchase: + description: Indicator for whether this transaction is for pre-ordering a product. + type: boolean + reorderItems: + description: Indicator for whether the shopper has already purchased the same items in the past. + type: boolean + ModifyRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular payout request.' + type: object + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + originalReference: + description: The PSP reference received in the `/submitThirdParty` response. + type: string + required: + - merchantAccount + - originalReference + ModifyResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: Adyen's 16-character string reference associated with the transaction. This value is globally unique; quote it when communicating with us about this response. + type: string + response: + description: |- + The response: + * In case of success, it is either `payout-confirm-received` or `payout-decline-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - response + Name: + properties: + firstName: + description: The first name. + type: string + gender: + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. + enum: + - MALE + - FEMALE + - UNKNOWN + maxLength: 1 + minLength: 1 + type: string + infix: + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + - gender + PayoutRequest: + properties: + accountInfo: + 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: + 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. For more information on possible key-value pairs, refer to the [additionalData section](https://docs.adyen.com/api-reference/payments-api/paymentrequest/paymentrequest-additionaldata). + type: object + amount: + description: 'The amount information for the transaction. 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: + 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' + bankAccount: + description: |- + The details of the bank account, from which the payment should be made. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: |- + The address where to send the invoice. + > For 3D Secure 2 transactions, schemes require the `billingAddress` for both `deviceChannel` **browser** and **app**. Include all of the fields within this object. + $ref: '#/components/schemas/Address' + browserInfo: + description: |- + The shopper's browser information. + > For 3D Secure 2 transactions, `browserInfo` is required for `channel` **web** (or `deviceChannel` **browser**). + $ref: '#/components/schemas/BrowserInfo' + captureDelayHours: + description: 'The delay between the authorisation and scheduled auto-capture, specified in hours.' + format: int32 + type: integer + card: + description: |- + A container for card data. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The shopper's date of birth. + + Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD + format: date-time + 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: + 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: + description: 'A string containing the shopper''s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).' + type: string + entityType: + description: The type of the entity the payment is processed for. + enum: + - NaturalPerson + - CompanyName + 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 + fundSource: + description: The person or entity funding the money. + $ref: '#/components/schemas/FundSource' + installments: + description: 'Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/payment-methods/installment-payments).' + $ref: '#/components/schemas/Installments' + mcc: + 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: + 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: + 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: + description: |- + Metadata consists of entries, each of which includes a key and a value. + Limitations: Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit". + type: object + mpiData: + description: Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa). + $ref: '#/components/schemas/ThreeDSecureData' + nationality: + description: The two-character country code of the shopper's nationality. + maxLength: 2 + type: string + 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: + description: | + Defines a recurring payment type. + Allowed values: + * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. + * `CardOnFile` – 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` – 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 the `shopperEmail` for both `deviceChannel` **browser** and **app**. + 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). + > Required for 3D Secure 2 transactions. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/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: + description: The combination of a language code and a country code to specify the language to be used in the payment. + type: string + shopperName: + description: The shopper's full name and gender (if specified). + $ref: '#/components/schemas/Name' + shopperReference: + description: |- + The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID). + > This field is required for recurring payments. + type: string + shopperStatement: + description: The text to appear on the shopper's bank statement. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + splits: + description: The details of how the payment should be split when distributing a payment to a MarketPay Marketplace and its Accounts. + items: + $ref: '#/components/schemas/Split' + type: array + store: + description: 'The physical store, for which this payment is processed.' + maxLength: 16 + minLength: 1 + type: string + telephoneNumber: + description: The shopper's telephone number. + type: string + threeDS2RequestData: + description: Request fields for 3D Secure 2. + $ref: '#/components/schemas/ThreeDS2RequestData' + totalsGroup: + 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: + description: Set to true if the payment should be routed to a trusted MID. + type: boolean + required: + - merchantAccount + - reference + - amount + PayoutResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Account** > **API URLs**.' + type: object + authCode: + description: |- + 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. + type: string + dccAmount: + description: |- + Includes the currency of the conversion and the value of the transaction. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + $ref: '#/components/schemas/Amount' + dccSignature: + description: |- + Cryptographic signature used to verify `dccQuote`. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + type: string + fraudResult: + description: The fraud result properties of the payment. + $ref: '#/components/schemas/FraudResult' + issuerUrl: + description: |- + The URL to direct the shopper to. + > In case of SecurePlus, do not redirect a shopper to this URL. + type: string + md: + description: The payment session. + type: string + paRequest: + description: |- + 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). + type: string + pspReference: + description: |- + Adyen's 16-character string reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request. + + > `pspReference` is returned only for non-redirect payment methods. + type: string + refusalReason: + description: |- + 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. + type: string + resultCode: + description: |- + The result of the payment. Possible values: + + * **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions. + * **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. + * **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. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/development-resources/payments-with-pending-status). + * **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. + enum: + - AuthenticationFinished + - Authorised + - Cancelled + - ChallengeShopper + - Error + - IdentifyShopper + - Pending + - PresentToShopper + - Received + - RedirectShopper + - Refused + type: string + Recurring: + properties: + contract: + description: |- + 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/checkout/online-payouts). + enum: + - ONECLICK + - RECURRING + - PAYOUT + type: string + recurringDetailName: + description: A descriptive name for this detail. + type: string + recurringExpiry: + description: Date after which no further authorisations shall be performed. Only for 3D Secure 2. + format: date-time + type: string + recurringFrequency: + description: Minimum number of days between authorisations. Only for 3D Secure 2. + type: string + tokenService: + description: The name of the token service. + enum: + - VISATOKENSERVICE + - MCTOKENSERVICE + type: string + SDKEphemPubKey: + properties: + crv: + description: The `crv` value as received from the 3D Secure 2 SDK. + type: string + kty: + description: The `kty` value as received from the 3D Secure 2 SDK. + type: string + x: + description: The `x` value as received from the 3D Secure 2 SDK. + type: string + 'y': + description: The `y` value as received from the 3D Secure 2 SDK. + type: string + ShopperInteractionDevice: + properties: + locale: + description: Locale on the shopper interaction device. + type: string + os: + description: Operating system running on the shopper interaction device. + type: string + osVersion: + description: Version of the operating system on the shopper interaction device. + type: string + Split: + properties: + account: + description: |- + The account to which this split applies. + + >Required if the type is `MarketPlace`. + type: string + amount: + description: The amount of this split. + $ref: '#/components/schemas/SplitAmount' + description: + description: A description of this split. + type: string + reference: + description: |- + The reference of this split. Used to link other operations (e.g. captures and refunds) to this split. + + >Required if the type is `MarketPlace`. + type: string + type: + description: |- + The type of this split. + + >Permitted values: `Default`, `PaymentFee`, `VAT`, `Commission`, `MarketPlace`, `Verification`. + enum: + - Commission + - Default + - MarketPlace + - PaymentFee + - VAT + - Verification + type: string + required: + - amount + - type + SplitAmount: + properties: + currency: + description: |- + The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). + + If this value is not provided, the currency in which the payment is made will be used. + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + StoreDetailAndSubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payment. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + - reference + - amount + StoreDetailAndSubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + + * In case of success is payout-submit-received. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + StoreDetailRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + StoreDetailResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + recurringDetailReference: + description: The token which you can use later on for submitting the payout. + type: string + resultCode: + description: The result code of the transaction. `Success` indicates that the details were stored successfully. + type: string + required: + - pspReference + - recurringDetailReference + - resultCode + SubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + dateOfBirth: + description: |- + The date of birth. + Format: ISO-8601; example: YYYY-MM-DD + + For Paysafecard it must be the same as used when registering the Paysafecard account. + + > This field is mandatory for natural persons. + > This field is required to update the existing `dateOfBirth` that is associated with this recurring contract. + format: date-time + type: string + entityType: + description: |- + The type of the entity the payout is processed for. + + Allowed values: + * NaturalPerson + * Company + > This field is required to update the existing `entityType` that is associated with this recurring contract. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: The merchant account identifier you want to process the transaction request with. + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + + > This field is required to update the existing nationality that is associated with this recurring contract. + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The `recurring.contract` must be set to "PAYOUT". + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payout. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedRecurringDetailReference: + description: |- + This is the `recurringDetailReference` you want to use for this payout. + + You can use the value LATEST to select the most recently used recurring detail. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + In case the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + + > This field is required to update the existing `shopperName` associated with a recurring contract. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payout transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - reference + - amount + - shopperEmail + - shopperReference + - recurring + - selectedRecurringDetailReference + SubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + * In case of success, it is `payout-submit-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + ThreeDS2RequestData: + properties: + authenticationOnly: + description: 'If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only), and not the payment authorisation.' + type: boolean + challengeIndicator: + description: | + Possibility to specify a preference for receiving a challenge from the issuer. + Allowed values: + * `noPreference` + * `requestNoChallenge` + * `requestChallenge` + * `requestChallengeAsMandate` + enum: + - noPreference + - requestNoChallenge + - requestChallenge + - requestChallengeAsMandate + type: string + deviceChannel: + description: |- + The environment of the shopper. + Allowed values: + * `app` + * `browser` + type: string + deviceRenderOptions: + description: |- + Display options for the 3D Secure 2 SDK. + Optional and only for `deviceChannel` **app**. + $ref: '#/components/schemas/DeviceRenderOptions' + messageVersion: + description: The `messageVersion` value indicating the 3D Secure 2 protocol version. + type: string + notificationURL: + description: URL to where the issuer should send the `CRes`. Required if you are not using components for `channel` **Web** or if you are using classic integration `deviceChannel` **browser**. + type: string + sdkAppID: + description: |- + The `sdkAppID` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEncData: + description: |- + The `sdkEncData` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEphemPubKey: + description: |- + The `sdkEphemPubKey` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + $ref: '#/components/schemas/SDKEphemPubKey' + sdkMaxTimeout: + description: |- + The maximum amount of time in minutes for the 3D Secure 2 authentication process. + Optional and only for `deviceChannel` set to **app**. Defaults to **60** minutes. + format: int32 + type: integer + sdkReferenceNumber: + description: |- + The `sdkReferenceNumber` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + sdkTransID: + description: |- + The `sdkTransID` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + threeDSCompInd: + description: Completion indicator for the device fingerprinting. + type: string + threeDSRequestorID: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor identifier assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorName: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor name assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorURL: + description: URL of the (customer service) website that will be shown to the shopper in case of technical errors during the 3D Secure 2 process. + type: string + required: + - deviceChannel + ThreeDSecureData: + properties: + authenticationResponse: + description: |- + In 3D Secure 1, the authentication response if the shopper was redirected. + + In 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, set this value to **Y**. + enum: + - 'Y' + - 'N' + - U + - A + type: string + cavv: + description: 'The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).' + format: byte + type: string + cavvAlgorithm: + description: The CAVV algorithm used. Include this only for 3D Secure 1. + type: string + directoryResponse: + description: |- + In 3D Secure 1, this is the enrollment response from the 3D directory server. + + In 3D Secure 2, this is the `transStatus` from the `ARes`. The possible values are **A** or **Y** for a frictionless flow, or **C** for a challenge flow. + enum: + - A + - C + - D + - I + - 'N' + - R + - U + - 'Y' + type: string + dsTransID: + description: Supported for 3D Secure 2. The unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction. + type: string + eci: + description: The electronic commerce indicator. + type: string + threeDSVersion: + description: The version of the 3D Secure protocol. + type: string + xid: + description: 'Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).' + format: byte + type: string diff --git a/specs/yaml/PayoutService-v49.yaml b/specs/yaml/PayoutService-v49.yaml new file mode 100644 index 00000000..1c01975d --- /dev/null +++ b/specs/yaml/PayoutService-v49.yaml @@ -0,0 +1,1715 @@ +openapi: 3.0.0 +servers: + - url: 'https://pal-test.adyen.com/pal/servlet/Payout/v49' +info: + version: '49' + title: Adyen Payout API + description: |- + A set of API endpoints that allow you to store payout details, confirm, or decline a payout. + + For more information, refer to [Online payouts](https://docs.adyen.com/checkout/online-payouts). + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +x-groups: + - Initialization + - Reviewing + - Instant payouts +paths: + /confirmThirdParty: + post: + summary: Confirms a payout. + description: |- + Confirms a previously submitted payout. + + To cancel a payout, use the `/declineThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /declineThirdParty: + post: + summary: Cancels a payout. + description: |- + Cancels a previously submitted payout. + + To confirm and send a payout, use the `/confirmThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /payout: + post: + summary: Pay out directly. + description: 'With this call, you can pay out to your customers, and funds will be made available within 30 minutes on the cardholder''s bank account (this is dependent on whether the issuer supports this functionality). Instant card payouts are only supported for Visa and Mastercard cards.' + x-groupName: Instant payouts + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetail: + post: + summary: Stores payout details. + description: Stores payment details under the `PAYOUT` recurring contract. These payment details can be used later to submit a payout via the `/submitThirdParty` call. + x-groupName: Initialization + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetailAndSubmitThirdParty: + post: + summary: Stores details and submits a payout. + description: |- + Submits a payout and stores its details for subsequent payouts. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /submitThirdParty: + post: + summary: Submits a payout. + description: |- + Submits a payout using the previously stored payment details. To store payment details, use the `/storeDetail` API call. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +components: + schemas: + AccountInfo: + properties: + accountAgeIndicator: + description: |- + Indicator for the length of time since this shopper account was created in the merchant's environment. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountChangeDate: + description: Date when the shopper's account was last changed. + format: date-time + type: string + accountChangeIndicator: + description: |- + Indicator for the length of time since the shopper's account was last updated. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountCreationDate: + description: Date when the shopper's account was created. + format: date-time + type: string + addCardAttemptsDay: + description: Number of attempts the shopper tried to add a card to their account in the last day. + format: int32 + type: integer + deliveryAddressUsageDate: + description: Date the selected delivery address was first used. + format: date-time + type: string + deliveryAddressUsageIndicator: + description: |- + Indicator for the length of time since this delivery address was first used. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + homePhone: + description: Shopper's home phone number (including the country code). + type: string + mobilePhone: + description: Shopper's mobile phone number (including the country code). + type: string + passwordChangeDate: + description: Date when the shopper last changed their password. + format: date-time + type: string + passwordChangeIndicator: + description: |- + Indicator when the shopper has changed their password. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + pastTransactionsDay: + description: Number of all transactions (successful and abandoned) from this shopper in the past 24 hours. + format: int32 + type: integer + pastTransactionsYear: + description: Number of all transactions (successful and abandoned) from this shopper in the past year. + format: int32 + type: integer + paymentAccountAge: + description: Date this payment method was added to the shopper's account. + format: date-time + type: string + paymentAccountIndicator: + description: |- + Indicator for the length of time since this payment method was added to this shopper's account. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + purchasesLast6Months: + description: Number of successful purchases in the last six months. + format: int32 + type: integer + suspiciousActivity: + description: Whether suspicious activity was recorded on this account. + type: boolean + workPhone: + description: Shopper's work phone number (including the country code). + type: string + Address: + properties: + city: + description: The name of the city. + type: string + country: + description: |- + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. + type: string + houseNumberOrName: + description: The number or name of the house. + type: string + postalCode: + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' + type: string + stateOrProvince: + description: |- + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. + type: string + street: + description: |- + The name of the street. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. + type: string + required: + - street + - houseNumberOrName + - city + - postalCode + - country + Amount: + properties: + currency: + description: 'The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).' + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + - currency + ApplicationInfo: + properties: + adyenLibrary: + description: 'Adyen-developed software, such as libraries and plugins, used to interact with the Adyen API. For example, Magento plugin, Java API library, etc.' + $ref: '#/components/schemas/CommonField' + adyenPaymentSource: + description: 'Adyen-developed software to get payment details. For example, Checkout SDK, Secured Fields SDK, etc.' + $ref: '#/components/schemas/CommonField' + externalPlatform: + description: 'Third-party developed platform used to initiate payment requests. For example, Magento, Zuora, etc.' + $ref: '#/components/schemas/ExternalPlatform' + merchantApplication: + description: 'Merchant developed software, such as cashier application, used to interact with the Adyen API.' + $ref: '#/components/schemas/CommonField' + merchantDevice: + description: Merchant device information. + $ref: '#/components/schemas/MerchantDevice' + shopperInteractionDevice: + description: 'Shopper interaction device, such as terminal, mobile device or web browser, to initiate payment requests.' + $ref: '#/components/schemas/ShopperInteractionDevice' + BankAccount: + properties: + bankAccountNumber: + description: The bank account number (without separators). + type: string + bankCity: + description: The bank city. + type: string + bankLocationId: + description: The location id of the bank. The field value is `nil` in most cases. + type: string + bankName: + description: The name of the bank. + type: string + bic: + description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.' + type: string + countryCode: + description: |- + Country code where the bank is located. + + A valid value is an ISO two-character country code (e.g. 'NL'). + type: string + iban: + description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).' + type: string + ownerName: + description: |- + The name of the bank account holder. + If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: + * χ12 is converted to ch12. + * üA is converted to euA. + * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. + After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: + * John17 - allowed. + * J17 - allowed. + * 171 - not allowed. + * John-7 - allowed. + > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'. + type: string + taxId: + description: The bank account holder's tax ID. + type: string + BrowserInfo: + properties: + acceptHeader: + description: The accept header value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + colorDepth: + description: 'The color depth of the shopper''s browser in bits per pixel. This should be obtained by using the browser''s `screen.colorDepth` property. Accepted values: 1, 4, 8, 15, 16, 24, 32 or 48 bit color depth.' + format: int32 + type: integer + javaEnabled: + description: Boolean value indicating if the shopper's browser is able to execute Java. + type: boolean + javaScriptEnabled: + description: Boolean value indicating if the shopper's browser is able to execute JavaScript. A default 'true' value is assumed if the field is not present. + type: boolean + language: + description: The `navigator.language` value of the shopper's browser (as defined in IETF BCP 47). + type: string + screenHeight: + description: The total height of the shopper's device screen in pixels. + format: int32 + type: integer + screenWidth: + description: The total width of the shopper's device screen in pixels. + format: int32 + type: integer + timeZoneOffset: + description: 'Time difference between UTC time and the shopper''s browser local time, in minutes.' + format: int32 + type: integer + userAgent: + description: The user agent value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + required: + - userAgent + - acceptHeader + - javaEnabled + - colorDepth + - screenHeight + - screenWidth + - timeZoneOffset + - language + Card: + properties: + cvc: + description: |- + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: + * CVV2/CVC2 – length: 3 digits + * CID – length: 4 digits + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). + > When this value is returned in a response, it is always empty because it is not stored. + maxLength: 20 + minLength: 1 + type: string + expiryMonth: + description: |- + The card expiry month. + Format: 2 digits, zero-padded for single digits. For example: + * 03 = March + * 11 = November + maxLength: 2 + minLength: 1 + type: string + expiryYear: + description: |- + The card expiry year. + Format: 4 digits. For example: 2020 + maxLength: 4 + minLength: 4 + type: string + holderName: + description: 'The name of the cardholder, as printed on the card.' + maxLength: 50 + minLength: 1 + type: string + issueNumber: + description: The issue number of the card (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + number: + description: |- + The card number (4-19 characters). Do not use any separators. + When this value is returned in a response, only the last 4 digits of the card number are returned. + maxLength: 19 + minLength: 4 + type: string + startMonth: + description: The month component of the start date (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + startYear: + description: The year component of the start date (for some UK debit cards only). + maxLength: 4 + minLength: 4 + type: string + required: + - number + - expiryMonth + - expiryYear + - holderName + CommonField: + properties: + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + DeviceRenderOptions: + properties: + sdkInterface: + description: |- + Supported SDK interface types. + Allowed values: + * Native + * Html + * both + enum: + - Html + - Native + - both + type: string + sdkUiType: + description: |- + UI types supported for displaying specific challenges. + Allowed values: + * text + * singleSelect + * outOfBand + * otherHtml + * multiSelect + items: + enum: + - multiSelect + - otherHtml + - outOfBand + - singleSelect + - text + type: string + type: array + ExternalPlatform: + properties: + integrator: + description: External platform integrator. + type: string + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + 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 + FraudCheckResult: + properties: + accountScore: + description: The fraud score generated by the risk check. + format: int32 + type: integer + checkId: + description: The ID of the risk check. + format: int32 + type: integer + name: + description: The name of the risk check. + type: string + required: + - checkId + - name + - accountScore + FraudResult: + properties: + accountScore: + description: The total fraud score generated by the risk checks. + format: int32 + type: integer + results: + description: The result of the individual risk checks. + items: + $ref: '#/components/schemas/FraudCheckResult' + type: array + required: + - accountScore + FundSource: + properties: + additionalData: + description: a map of name/value pairs for passing in additional/industry-specific data + type: object + billingAddress: + description: the address where to send the invoice + $ref: '#/components/schemas/Address' + card: + description: a representation of a (credit or debit) card + $ref: '#/components/schemas/Card' + shopperEmail: + description: the email address of the person + type: string + shopperName: + description: the name of the person + $ref: '#/components/schemas/Name' + telephoneNumber: + description: the telephone number of the person + type: string + Installments: + properties: + 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 + MerchantDevice: + properties: + os: + description: Operating system running on the merchant device. + type: string + osVersion: + description: Version of the operating system on the merchant device. + type: string + reference: + description: Merchant device reference. + type: string + MerchantRiskIndicator: + properties: + addressMatch: + description: Whether the chosen delivery address is identical to the billing address. + type: boolean + deliveryAddressIndicator: + description: |- + Indicator regarding the delivery address. + Allowed values: + * `shipToBillingAddress` + * `shipToVerifiedAddress` + * `shipToNewAddress` + * `shipToStore` + * `digitalGoods` + * `goodsNotShipped` + * `other` + enum: + - shipToBillingAddress + - shipToVerifiedAddress + - shipToNewAddress + - shipToStore + - digitalGoods + - goodsNotShipped + - other + type: string + deliveryEmail: + description: The delivery email address (for digital goods). + type: string + deliveryTimeframe: + description: |- + The estimated delivery time for the shopper to receive the goods. + Allowed values: + * `electronicDelivery` + * `sameDayShipping` + * `overnightShipping` + * `twoOrMoreDaysShipping` + enum: + - electronicDelivery + - sameDayShipping + - overnightShipping + - twoOrMoreDaysShipping + type: string + giftCardAmount: + description: The amount of prepaid or gift cards used for this purchase. + $ref: '#/components/schemas/Amount' + giftCardCount: + description: Number of individual prepaid or gift cards used for this purchase. + format: int32 + type: integer + preOrderDate: + description: 'For pre-order purchases, the expected date this product will be available to the shopper.' + format: date-time + type: string + preOrderPurchase: + description: Indicator for whether this transaction is for pre-ordering a product. + type: boolean + reorderItems: + description: Indicator for whether the shopper has already purchased the same items in the past. + type: boolean + ModifyRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular payout request.' + type: object + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + originalReference: + description: The PSP reference received in the `/submitThirdParty` response. + type: string + required: + - merchantAccount + - originalReference + ModifyResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: Adyen's 16-character string reference associated with the transaction. This value is globally unique; quote it when communicating with us about this response. + type: string + response: + description: |- + The response: + * In case of success, it is either `payout-confirm-received` or `payout-decline-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - response + Name: + properties: + firstName: + description: The first name. + type: string + gender: + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. + enum: + - MALE + - FEMALE + - UNKNOWN + maxLength: 1 + minLength: 1 + type: string + infix: + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + - gender + PayoutRequest: + properties: + accountInfo: + 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: + 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. For more information on possible key-value pairs, refer to the [additionalData section](https://docs.adyen.com/api-reference/payments-api/paymentrequest/paymentrequest-additionaldata). + type: object + amount: + description: 'The amount information for the transaction. 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: + 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' + bankAccount: + description: |- + The details of the bank account, from which the payment should be made. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: |- + The address where to send the invoice. + > For 3D Secure 2 transactions, schemes require the `billingAddress` for both `deviceChannel` **browser** and **app**. Include all of the fields within this object. + $ref: '#/components/schemas/Address' + browserInfo: + description: |- + The shopper's browser information. + > For 3D Secure 2 transactions, `browserInfo` is required for `channel` **web** (or `deviceChannel` **browser**). + $ref: '#/components/schemas/BrowserInfo' + captureDelayHours: + description: 'The delay between the authorisation and scheduled auto-capture, specified in hours.' + format: int32 + type: integer + card: + description: |- + A container for card data. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The shopper's date of birth. + + Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD + format: date-time + 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: + 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: + description: 'A string containing the shopper''s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).' + type: string + entityType: + description: The type of the entity the payment is processed for. + enum: + - NaturalPerson + - CompanyName + 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 + fundSource: + description: The person or entity funding the money. + $ref: '#/components/schemas/FundSource' + installments: + description: 'Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/payment-methods/installment-payments).' + $ref: '#/components/schemas/Installments' + mcc: + 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: + 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: + 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: + description: |- + Metadata consists of entries, each of which includes a key and a value. + Limitations: Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit". + type: object + mpiData: + description: Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa). + $ref: '#/components/schemas/ThreeDSecureData' + nationality: + description: The two-character country code of the shopper's nationality. + maxLength: 2 + type: string + 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: + description: | + Defines a recurring payment type. + Allowed values: + * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. + * `CardOnFile` – 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` – 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 the `shopperEmail` for both `deviceChannel` **browser** and **app**. + 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). + > Required for 3D Secure 2 transactions. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/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: + description: The combination of a language code and a country code to specify the language to be used in the payment. + type: string + shopperName: + description: The shopper's full name and gender (if specified). + $ref: '#/components/schemas/Name' + shopperReference: + description: |- + The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID). + > This field is required for recurring payments. + type: string + shopperStatement: + description: The text to appear on the shopper's bank statement. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + splits: + description: The details of how the payment should be split when distributing a payment to a MarketPay Marketplace and its Accounts. + items: + $ref: '#/components/schemas/Split' + type: array + store: + description: 'The physical store, for which this payment is processed.' + maxLength: 16 + minLength: 1 + type: string + telephoneNumber: + description: The shopper's telephone number. + type: string + threeDS2RequestData: + description: Request fields for 3D Secure 2. + $ref: '#/components/schemas/ThreeDS2RequestData' + totalsGroup: + 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: + description: Set to true if the payment should be routed to a trusted MID. + type: boolean + required: + - merchantAccount + - reference + - amount + PayoutResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Account** > **API URLs**.' + type: object + authCode: + description: |- + 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. + type: string + dccAmount: + description: |- + Includes the currency of the conversion and the value of the transaction. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + $ref: '#/components/schemas/Amount' + dccSignature: + description: |- + Cryptographic signature used to verify `dccQuote`. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + type: string + fraudResult: + description: The fraud result properties of the payment. + $ref: '#/components/schemas/FraudResult' + issuerUrl: + description: |- + The URL to direct the shopper to. + > In case of SecurePlus, do not redirect a shopper to this URL. + type: string + md: + description: The payment session. + type: string + paRequest: + description: |- + 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). + type: string + pspReference: + description: |- + Adyen's 16-character string reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request. + + > `pspReference` is returned only for non-redirect payment methods. + type: string + refusalReason: + description: |- + 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. + type: string + resultCode: + description: |- + The result of the payment. Possible values: + + * **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions. + * **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. + * **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. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/development-resources/payments-with-pending-status). + * **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. + enum: + - AuthenticationFinished + - Authorised + - Cancelled + - ChallengeShopper + - Error + - IdentifyShopper + - Pending + - PresentToShopper + - Received + - RedirectShopper + - Refused + type: string + Recurring: + properties: + contract: + description: |- + 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/checkout/online-payouts). + enum: + - ONECLICK + - RECURRING + - PAYOUT + type: string + recurringDetailName: + description: A descriptive name for this detail. + type: string + recurringExpiry: + description: Date after which no further authorisations shall be performed. Only for 3D Secure 2. + format: date-time + type: string + recurringFrequency: + description: Minimum number of days between authorisations. Only for 3D Secure 2. + type: string + tokenService: + description: The name of the token service. + enum: + - VISATOKENSERVICE + - MCTOKENSERVICE + type: string + SDKEphemPubKey: + properties: + crv: + description: The `crv` value as received from the 3D Secure 2 SDK. + type: string + kty: + description: The `kty` value as received from the 3D Secure 2 SDK. + type: string + x: + description: The `x` value as received from the 3D Secure 2 SDK. + type: string + 'y': + description: The `y` value as received from the 3D Secure 2 SDK. + type: string + ShopperInteractionDevice: + properties: + locale: + description: Locale on the shopper interaction device. + type: string + os: + description: Operating system running on the shopper interaction device. + type: string + osVersion: + description: Version of the operating system on the shopper interaction device. + type: string + Split: + properties: + account: + description: |- + The account to which this split applies. + + >Required if the type is `MarketPlace`. + type: string + amount: + description: The amount of this split. + $ref: '#/components/schemas/SplitAmount' + description: + description: A description of this split. + type: string + reference: + description: |- + The reference of this split. Used to link other operations (e.g. captures and refunds) to this split. + + >Required if the type is `MarketPlace`. + type: string + type: + description: |- + The type of this split. + + >Permitted values: `Default`, `PaymentFee`, `VAT`, `Commission`, `MarketPlace`, `Verification`. + enum: + - Commission + - Default + - MarketPlace + - PaymentFee + - VAT + - Verification + type: string + required: + - amount + - type + SplitAmount: + properties: + currency: + description: |- + The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). + + If this value is not provided, the currency in which the payment is made will be used. + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + StoreDetailAndSubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payment. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + - reference + - amount + StoreDetailAndSubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + + * In case of success is payout-submit-received. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + StoreDetailRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + StoreDetailResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + recurringDetailReference: + description: The token which you can use later on for submitting the payout. + type: string + resultCode: + description: The result code of the transaction. `Success` indicates that the details were stored successfully. + type: string + required: + - pspReference + - recurringDetailReference + - resultCode + SubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + dateOfBirth: + description: |- + The date of birth. + Format: ISO-8601; example: YYYY-MM-DD + + For Paysafecard it must be the same as used when registering the Paysafecard account. + + > This field is mandatory for natural persons. + > This field is required to update the existing `dateOfBirth` that is associated with this recurring contract. + format: date-time + type: string + entityType: + description: |- + The type of the entity the payout is processed for. + + Allowed values: + * NaturalPerson + * Company + > This field is required to update the existing `entityType` that is associated with this recurring contract. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: The merchant account identifier you want to process the transaction request with. + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + + > This field is required to update the existing nationality that is associated with this recurring contract. + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The `recurring.contract` must be set to "PAYOUT". + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payout. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedRecurringDetailReference: + description: |- + This is the `recurringDetailReference` you want to use for this payout. + + You can use the value LATEST to select the most recently used recurring detail. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + In case the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + + > This field is required to update the existing `shopperName` associated with a recurring contract. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payout transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - reference + - amount + - shopperEmail + - shopperReference + - recurring + - selectedRecurringDetailReference + SubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + * In case of success, it is `payout-submit-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + ThreeDS2RequestData: + properties: + acquirerBIN: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The acquiring BIN enrolled for 3D Secure 2. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform.' + type: string + acquirerMerchantID: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The merchantId that is enrolled for 3D Secure 2 by the merchant''s acquirer. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform.' + type: string + authenticationOnly: + description: 'If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only), and not the payment authorisation.' + type: boolean + challengeIndicator: + description: | + Possibility to specify a preference for receiving a challenge from the issuer. + Allowed values: + * `noPreference` + * `requestNoChallenge` + * `requestChallenge` + * `requestChallengeAsMandate` + enum: + - noPreference + - requestNoChallenge + - requestChallenge + - requestChallengeAsMandate + type: string + deviceChannel: + description: |- + The environment of the shopper. + Allowed values: + * `app` + * `browser` + type: string + deviceRenderOptions: + description: |- + Display options for the 3D Secure 2 SDK. + Optional and only for `deviceChannel` **app**. + $ref: '#/components/schemas/DeviceRenderOptions' + mcc: + description: 'Required for merchants that have been enrolled for 3D Secure 2 by another party than Adyen, mostly [authentication-only integrations](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The `mcc` is a four-digit code with which the previously given `acquirerMerchantID` is registered at the scheme.' + type: string + merchantName: + description: |- + Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The merchant name that the issuer presents to the shopper if they get a challenge. We recommend to use the same value that you will use in the authorization. Maximum length is 40 characters. + > Optional for a [full 3D Secure 2 integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/api-integration). Use this field if you are enrolled for 3D Secure 2 with us and want to override the merchant name already configured on your account. + type: string + messageVersion: + description: The `messageVersion` value indicating the 3D Secure 2 protocol version. + type: string + notificationURL: + description: URL to where the issuer should send the `CRes`. Required if you are not using components for `channel` **Web** or if you are using classic integration `deviceChannel` **browser**. + type: string + sdkAppID: + description: |- + The `sdkAppID` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEncData: + description: |- + The `sdkEncData` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEphemPubKey: + description: |- + The `sdkEphemPubKey` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + $ref: '#/components/schemas/SDKEphemPubKey' + sdkMaxTimeout: + description: |- + The maximum amount of time in minutes for the 3D Secure 2 authentication process. + Optional and only for `deviceChannel` set to **app**. Defaults to **60** minutes. + format: int32 + type: integer + sdkReferenceNumber: + description: |- + The `sdkReferenceNumber` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + sdkTransID: + description: |- + The `sdkTransID` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + threeDSCompInd: + description: Completion indicator for the device fingerprinting. + type: string + threeDSRequestorID: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor identifier assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorName: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor name assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorURL: + description: URL of the (customer service) website that will be shown to the shopper in case of technical errors during the 3D Secure 2 process. + type: string + whiteListStatus: + description: 'The `whiteListStatus` value returned from a previous 3D Secure 2 transaction, only applicable for 3D Secure 2 protocol version 2.2.0.' + type: string + required: + - deviceChannel + ThreeDSecureData: + properties: + authenticationResponse: + description: |- + In 3D Secure 1, the authentication response if the shopper was redirected. + + In 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, set this value to **Y**. + enum: + - 'Y' + - 'N' + - U + - A + type: string + cavv: + description: 'The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).' + format: byte + type: string + cavvAlgorithm: + description: The CAVV algorithm used. Include this only for 3D Secure 1. + type: string + directoryResponse: + description: |- + In 3D Secure 1, this is the enrollment response from the 3D directory server. + + In 3D Secure 2, this is the `transStatus` from the `ARes`. The possible values are **A** or **Y** for a frictionless flow, or **C** for a challenge flow. + enum: + - A + - C + - D + - I + - 'N' + - R + - U + - 'Y' + type: string + dsTransID: + description: Supported for 3D Secure 2. The unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction. + type: string + eci: + description: The electronic commerce indicator. + type: string + threeDSVersion: + description: The version of the 3D Secure protocol. + type: string + xid: + description: 'Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).' + format: byte + type: string diff --git a/specs/yaml/PayoutService-v50.yaml b/specs/yaml/PayoutService-v50.yaml new file mode 100644 index 00000000..c5669463 --- /dev/null +++ b/specs/yaml/PayoutService-v50.yaml @@ -0,0 +1,1739 @@ +openapi: 3.0.0 +servers: + - url: 'https://pal-test.adyen.com/pal/servlet/Payout/v50' +info: + version: '50' + title: Adyen Payout API + description: |- + A set of API endpoints that allow you to store payout details, confirm, or decline a payout. + + For more information, refer to [Online payouts](https://docs.adyen.com/checkout/online-payouts). + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +x-groups: + - Initialization + - Reviewing + - Instant payouts +paths: + /confirmThirdParty: + post: + summary: Confirms a payout. + description: |- + Confirms a previously submitted payout. + + To cancel a payout, use the `/declineThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /declineThirdParty: + post: + summary: Cancels a payout. + description: |- + Cancels a previously submitted payout. + + To confirm and send a payout, use the `/confirmThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /payout: + post: + summary: Pay out directly. + description: 'With this call, you can pay out to your customers, and funds will be made available within 30 minutes on the cardholder''s bank account (this is dependent on whether the issuer supports this functionality). Instant card payouts are only supported for Visa and Mastercard cards.' + x-groupName: Instant payouts + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetail: + post: + summary: Stores payout details. + description: Stores payment details under the `PAYOUT` recurring contract. These payment details can be used later to submit a payout via the `/submitThirdParty` call. + x-groupName: Initialization + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetailAndSubmitThirdParty: + post: + summary: Stores details and submits a payout. + description: |- + Submits a payout and stores its details for subsequent payouts. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /submitThirdParty: + post: + summary: Submits a payout. + description: |- + Submits a payout using the previously stored payment details. To store payment details, use the `/storeDetail` API call. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +components: + schemas: + AccountInfo: + properties: + accountAgeIndicator: + description: |- + Indicator for the length of time since this shopper account was created in the merchant's environment. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountChangeDate: + description: Date when the shopper's account was last changed. + format: date-time + type: string + accountChangeIndicator: + description: |- + Indicator for the length of time since the shopper's account was last updated. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountCreationDate: + description: Date when the shopper's account was created. + format: date-time + type: string + accountType: + description: |- + Indicates the type of account. For example, for a multi-account card product. + Allowed values: + * notApplicable + * credit + * debit + enum: + - notApplicable + - credit + - debit + type: string + addCardAttemptsDay: + description: Number of attempts the shopper tried to add a card to their account in the last day. + format: int32 + type: integer + deliveryAddressUsageDate: + description: Date the selected delivery address was first used. + format: date-time + type: string + deliveryAddressUsageIndicator: + description: |- + Indicator for the length of time since this delivery address was first used. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + homePhone: + description: Shopper's home phone number (including the country code). + type: string + mobilePhone: + description: Shopper's mobile phone number (including the country code). + type: string + passwordChangeDate: + description: Date when the shopper last changed their password. + format: date-time + type: string + passwordChangeIndicator: + description: |- + Indicator when the shopper has changed their password. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + pastTransactionsDay: + description: Number of all transactions (successful and abandoned) from this shopper in the past 24 hours. + format: int32 + type: integer + pastTransactionsYear: + description: Number of all transactions (successful and abandoned) from this shopper in the past year. + format: int32 + type: integer + paymentAccountAge: + description: Date this payment method was added to the shopper's account. + format: date-time + type: string + paymentAccountIndicator: + description: |- + Indicator for the length of time since this payment method was added to this shopper's account. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + purchasesLast6Months: + description: Number of successful purchases in the last six months. + format: int32 + type: integer + suspiciousActivity: + description: Whether suspicious activity was recorded on this account. + type: boolean + workPhone: + description: Shopper's work phone number (including the country code). + type: string + Address: + properties: + city: + description: The name of the city. + type: string + country: + description: |- + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. + type: string + houseNumberOrName: + description: The number or name of the house. + type: string + postalCode: + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' + type: string + stateOrProvince: + description: |- + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. + type: string + street: + description: |- + The name of the street. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. + type: string + required: + - street + - houseNumberOrName + - city + - postalCode + - country + Amount: + properties: + currency: + description: 'The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).' + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + - currency + ApplicationInfo: + properties: + adyenLibrary: + description: 'Adyen-developed software, such as libraries and plugins, used to interact with the Adyen API. For example, Magento plugin, Java API library, etc.' + $ref: '#/components/schemas/CommonField' + adyenPaymentSource: + description: 'Adyen-developed software to get payment details. For example, Checkout SDK, Secured Fields SDK, etc.' + $ref: '#/components/schemas/CommonField' + externalPlatform: + description: 'Third-party developed platform used to initiate payment requests. For example, Magento, Zuora, etc.' + $ref: '#/components/schemas/ExternalPlatform' + merchantApplication: + description: 'Merchant developed software, such as cashier application, used to interact with the Adyen API.' + $ref: '#/components/schemas/CommonField' + merchantDevice: + description: Merchant device information. + $ref: '#/components/schemas/MerchantDevice' + shopperInteractionDevice: + description: 'Shopper interaction device, such as terminal, mobile device or web browser, to initiate payment requests.' + $ref: '#/components/schemas/ShopperInteractionDevice' + BankAccount: + properties: + bankAccountNumber: + description: The bank account number (without separators). + type: string + bankCity: + description: The bank city. + type: string + bankLocationId: + description: The location id of the bank. The field value is `nil` in most cases. + type: string + bankName: + description: The name of the bank. + type: string + bic: + description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.' + type: string + countryCode: + description: |- + Country code where the bank is located. + + A valid value is an ISO two-character country code (e.g. 'NL'). + type: string + iban: + description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).' + type: string + ownerName: + description: |- + The name of the bank account holder. + If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: + * χ12 is converted to ch12. + * üA is converted to euA. + * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. + After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: + * John17 - allowed. + * J17 - allowed. + * 171 - not allowed. + * John-7 - allowed. + > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'. + type: string + taxId: + description: The bank account holder's tax ID. + type: string + BrowserInfo: + properties: + acceptHeader: + description: The accept header value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + colorDepth: + description: 'The color depth of the shopper''s browser in bits per pixel. This should be obtained by using the browser''s `screen.colorDepth` property. Accepted values: 1, 4, 8, 15, 16, 24, 32 or 48 bit color depth.' + format: int32 + type: integer + javaEnabled: + description: Boolean value indicating if the shopper's browser is able to execute Java. + type: boolean + javaScriptEnabled: + description: Boolean value indicating if the shopper's browser is able to execute JavaScript. A default 'true' value is assumed if the field is not present. + type: boolean + language: + description: The `navigator.language` value of the shopper's browser (as defined in IETF BCP 47). + type: string + screenHeight: + description: The total height of the shopper's device screen in pixels. + format: int32 + type: integer + screenWidth: + description: The total width of the shopper's device screen in pixels. + format: int32 + type: integer + timeZoneOffset: + description: 'Time difference between UTC time and the shopper''s browser local time, in minutes.' + format: int32 + type: integer + userAgent: + description: The user agent value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + required: + - userAgent + - acceptHeader + - javaEnabled + - colorDepth + - screenHeight + - screenWidth + - timeZoneOffset + - language + Card: + properties: + cvc: + description: |- + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: + * CVV2/CVC2 – length: 3 digits + * CID – length: 4 digits + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). + > When this value is returned in a response, it is always empty because it is not stored. + maxLength: 20 + minLength: 1 + type: string + expiryMonth: + description: |- + The card expiry month. + Format: 2 digits, zero-padded for single digits. For example: + * 03 = March + * 11 = November + maxLength: 2 + minLength: 1 + type: string + expiryYear: + description: |- + The card expiry year. + Format: 4 digits. For example: 2020 + maxLength: 4 + minLength: 4 + type: string + holderName: + description: 'The name of the cardholder, as printed on the card.' + maxLength: 50 + minLength: 1 + type: string + issueNumber: + description: The issue number of the card (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + number: + description: |- + The card number (4-19 characters). Do not use any separators. + When this value is returned in a response, only the last 4 digits of the card number are returned. + maxLength: 19 + minLength: 4 + type: string + startMonth: + description: The month component of the start date (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + startYear: + description: The year component of the start date (for some UK debit cards only). + maxLength: 4 + minLength: 4 + type: string + required: + - number + - expiryMonth + - expiryYear + - holderName + CommonField: + properties: + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + DeviceRenderOptions: + properties: + sdkInterface: + description: |- + Supported SDK interface types. + Allowed values: + * Native + * Html + * both + enum: + - Html + - Native + - both + type: string + sdkUiType: + description: |- + UI types supported for displaying specific challenges. + Allowed values: + * text + * singleSelect + * outOfBand + * otherHtml + * multiSelect + items: + enum: + - multiSelect + - otherHtml + - outOfBand + - singleSelect + - text + type: string + type: array + ExternalPlatform: + properties: + integrator: + description: External platform integrator. + type: string + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + 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 + FraudCheckResult: + properties: + accountScore: + description: The fraud score generated by the risk check. + format: int32 + type: integer + checkId: + description: The ID of the risk check. + format: int32 + type: integer + name: + description: The name of the risk check. + type: string + required: + - checkId + - name + - accountScore + FraudResult: + properties: + accountScore: + description: The total fraud score generated by the risk checks. + format: int32 + type: integer + results: + description: The result of the individual risk checks. + items: + $ref: '#/components/schemas/FraudCheckResult' + type: array + required: + - accountScore + FundSource: + properties: + additionalData: + description: a map of name/value pairs for passing in additional/industry-specific data + type: object + billingAddress: + description: the address where to send the invoice + $ref: '#/components/schemas/Address' + card: + description: a representation of a (credit or debit) card + $ref: '#/components/schemas/Card' + shopperEmail: + description: the email address of the person + type: string + shopperName: + description: the name of the person + $ref: '#/components/schemas/Name' + telephoneNumber: + description: the telephone number of the person + type: string + Installments: + properties: + 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 + MerchantDevice: + properties: + os: + description: Operating system running on the merchant device. + type: string + osVersion: + description: Version of the operating system on the merchant device. + type: string + reference: + description: Merchant device reference. + type: string + MerchantRiskIndicator: + properties: + addressMatch: + description: Whether the chosen delivery address is identical to the billing address. + type: boolean + deliveryAddressIndicator: + description: |- + Indicator regarding the delivery address. + Allowed values: + * `shipToBillingAddress` + * `shipToVerifiedAddress` + * `shipToNewAddress` + * `shipToStore` + * `digitalGoods` + * `goodsNotShipped` + * `other` + enum: + - shipToBillingAddress + - shipToVerifiedAddress + - shipToNewAddress + - shipToStore + - digitalGoods + - goodsNotShipped + - other + type: string + deliveryEmail: + description: The delivery email address (for digital goods). + type: string + deliveryTimeframe: + description: |- + The estimated delivery time for the shopper to receive the goods. + Allowed values: + * `electronicDelivery` + * `sameDayShipping` + * `overnightShipping` + * `twoOrMoreDaysShipping` + enum: + - electronicDelivery + - sameDayShipping + - overnightShipping + - twoOrMoreDaysShipping + type: string + giftCardAmount: + description: The amount of prepaid or gift cards used for this purchase. + $ref: '#/components/schemas/Amount' + giftCardCount: + description: Number of individual prepaid or gift cards used for this purchase. + format: int32 + type: integer + preOrderDate: + description: 'For pre-order purchases, the expected date this product will be available to the shopper.' + format: date-time + type: string + preOrderPurchase: + description: Indicator for whether this transaction is for pre-ordering a product. + type: boolean + reorderItems: + description: Indicator for whether the shopper has already purchased the same items in the past. + type: boolean + ModifyRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular payout request.' + type: object + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + originalReference: + description: The PSP reference received in the `/submitThirdParty` response. + type: string + required: + - merchantAccount + - originalReference + ModifyResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: Adyen's 16-character string reference associated with the transaction. This value is globally unique; quote it when communicating with us about this response. + type: string + response: + description: |- + The response: + * In case of success, it is either `payout-confirm-received` or `payout-decline-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - response + Name: + properties: + firstName: + description: The first name. + type: string + gender: + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. + enum: + - MALE + - FEMALE + - UNKNOWN + maxLength: 1 + minLength: 1 + type: string + infix: + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + - gender + PayoutRequest: + properties: + accountInfo: + 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: + 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. For more information on possible key-value pairs, refer to the [additionalData section](https://docs.adyen.com/api-reference/payments-api/paymentrequest/paymentrequest-additionaldata). + type: object + amount: + description: 'The amount information for the transaction. 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: + 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' + bankAccount: + description: |- + The details of the bank account, from which the payment should be made. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: |- + The address where to send the invoice. + > For 3D Secure 2 transactions, schemes require the `billingAddress` for both `deviceChannel` **browser** and **app**. Include all of the fields within this object. + $ref: '#/components/schemas/Address' + browserInfo: + description: |- + The shopper's browser information. + > For 3D Secure 2 transactions, `browserInfo` is required for `channel` **web** (or `deviceChannel` **browser**). + $ref: '#/components/schemas/BrowserInfo' + captureDelayHours: + description: 'The delay between the authorisation and scheduled auto-capture, specified in hours.' + format: int32 + type: integer + card: + description: |- + A container for card data. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The shopper's date of birth. + + Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD + format: date-time + 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: + 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: + description: 'A string containing the shopper''s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).' + type: string + entityType: + description: The type of the entity the payment is processed for. + enum: + - NaturalPerson + - CompanyName + 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 + fundSource: + description: The person or entity funding the money. + $ref: '#/components/schemas/FundSource' + installments: + description: 'Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/payment-methods/installment-payments).' + $ref: '#/components/schemas/Installments' + mcc: + 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: + 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: + 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: + description: |- + Metadata consists of entries, each of which includes a key and a value. + Limitations: Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit". + type: object + mpiData: + description: Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa). + $ref: '#/components/schemas/ThreeDSecureData' + nationality: + description: The two-character country code of the shopper's nationality. + maxLength: 2 + type: string + 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: + description: | + Defines a recurring payment type. + Allowed values: + * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. + * `CardOnFile` – 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` – 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 the `shopperEmail` for both `deviceChannel` **browser** and **app**. + 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). + > Required for 3D Secure 2 transactions. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/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: + description: The combination of a language code and a country code to specify the language to be used in the payment. + type: string + shopperName: + description: The shopper's full name and gender (if specified). + $ref: '#/components/schemas/Name' + shopperReference: + description: |- + The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID). + > This field is required for recurring payments. + type: string + shopperStatement: + description: The text to appear on the shopper's bank statement. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + splits: + description: The details of how the payment should be split when distributing a payment to a MarketPay Marketplace and its Accounts. + items: + $ref: '#/components/schemas/Split' + type: array + store: + description: 'The physical store, for which this payment is processed.' + maxLength: 16 + minLength: 1 + type: string + telephoneNumber: + description: The shopper's telephone number. + type: string + threeDS2RequestData: + description: Request fields for 3D Secure 2. + $ref: '#/components/schemas/ThreeDS2RequestData' + threeDSAuthenticationOnly: + description: 'If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only), and not the payment authorisation.' + type: boolean + totalsGroup: + 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: + description: Set to true if the payment should be routed to a trusted MID. + type: boolean + required: + - merchantAccount + - reference + - amount + PayoutResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Account** > **API URLs**.' + type: object + authCode: + description: |- + 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. + type: string + dccAmount: + description: |- + Includes the currency of the conversion and the value of the transaction. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + $ref: '#/components/schemas/Amount' + dccSignature: + description: |- + Cryptographic signature used to verify `dccQuote`. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + type: string + fraudResult: + description: The fraud result properties of the payment. + $ref: '#/components/schemas/FraudResult' + issuerUrl: + description: |- + The URL to direct the shopper to. + > In case of SecurePlus, do not redirect a shopper to this URL. + type: string + md: + description: The payment session. + type: string + paRequest: + description: |- + 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). + type: string + pspReference: + description: |- + Adyen's 16-character string reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request. + + > `pspReference` is returned only for non-redirect payment methods. + type: string + refusalReason: + description: |- + 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. + type: string + resultCode: + description: |- + The result of the payment. Possible values: + + * **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions. + * **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. + * **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. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/development-resources/payments-with-pending-status). + * **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. + enum: + - AuthenticationFinished + - Authorised + - Cancelled + - ChallengeShopper + - Error + - IdentifyShopper + - Pending + - PresentToShopper + - Received + - RedirectShopper + - Refused + type: string + Recurring: + properties: + contract: + description: |- + 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/checkout/online-payouts). + enum: + - ONECLICK + - RECURRING + - PAYOUT + type: string + recurringDetailName: + description: A descriptive name for this detail. + type: string + recurringExpiry: + description: Date after which no further authorisations shall be performed. Only for 3D Secure 2. + format: date-time + type: string + recurringFrequency: + description: Minimum number of days between authorisations. Only for 3D Secure 2. + type: string + tokenService: + description: The name of the token service. + enum: + - VISATOKENSERVICE + - MCTOKENSERVICE + type: string + SDKEphemPubKey: + properties: + crv: + description: The `crv` value as received from the 3D Secure 2 SDK. + type: string + kty: + description: The `kty` value as received from the 3D Secure 2 SDK. + type: string + x: + description: The `x` value as received from the 3D Secure 2 SDK. + type: string + 'y': + description: The `y` value as received from the 3D Secure 2 SDK. + type: string + ShopperInteractionDevice: + properties: + locale: + description: Locale on the shopper interaction device. + type: string + os: + description: Operating system running on the shopper interaction device. + type: string + osVersion: + description: Version of the operating system on the shopper interaction device. + type: string + Split: + properties: + account: + description: |- + The account to which this split applies. + + >Required if the type is `MarketPlace`. + type: string + amount: + description: The amount of this split. + $ref: '#/components/schemas/SplitAmount' + description: + description: A description of this split. + type: string + reference: + description: |- + The reference of this split. Used to link other operations (e.g. captures and refunds) to this split. + + >Required if the type is `MarketPlace`. + type: string + type: + description: |- + The type of this split. + + >Permitted values: `Default`, `PaymentFee`, `VAT`, `Commission`, `MarketPlace`, `Verification`. + enum: + - Commission + - Default + - MarketPlace + - PaymentFee + - VAT + - Verification + type: string + required: + - amount + - type + SplitAmount: + properties: + currency: + description: |- + The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). + + If this value is not provided, the currency in which the payment is made will be used. + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + StoreDetailAndSubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payment. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + - reference + - amount + StoreDetailAndSubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + + * In case of success is payout-submit-received. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + StoreDetailRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + StoreDetailResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + recurringDetailReference: + description: The token which you can use later on for submitting the payout. + type: string + resultCode: + description: The result code of the transaction. `Success` indicates that the details were stored successfully. + type: string + required: + - pspReference + - recurringDetailReference + - resultCode + SubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + dateOfBirth: + description: |- + The date of birth. + Format: ISO-8601; example: YYYY-MM-DD + + For Paysafecard it must be the same as used when registering the Paysafecard account. + + > This field is mandatory for natural persons. + > This field is required to update the existing `dateOfBirth` that is associated with this recurring contract. + format: date-time + type: string + entityType: + description: |- + The type of the entity the payout is processed for. + + Allowed values: + * NaturalPerson + * Company + > This field is required to update the existing `entityType` that is associated with this recurring contract. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: The merchant account identifier you want to process the transaction request with. + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + + > This field is required to update the existing nationality that is associated with this recurring contract. + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The `recurring.contract` must be set to "PAYOUT". + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payout. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedRecurringDetailReference: + description: |- + This is the `recurringDetailReference` you want to use for this payout. + + You can use the value LATEST to select the most recently used recurring detail. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + In case the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + + > This field is required to update the existing `shopperName` associated with a recurring contract. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payout transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - reference + - amount + - shopperEmail + - shopperReference + - recurring + - selectedRecurringDetailReference + SubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + * In case of success, it is `payout-submit-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + ThreeDS2RequestData: + properties: + acquirerBIN: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The acquiring BIN enrolled for 3D Secure 2. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform.' + type: string + acquirerMerchantID: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The merchantId that is enrolled for 3D Secure 2 by the merchant''s acquirer. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform.' + type: string + authenticationOnly: + description: 'If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only), and not the payment authorisation.' + type: boolean + challengeIndicator: + description: | + Possibility to specify a preference for receiving a challenge from the issuer. + Allowed values: + * `noPreference` + * `requestNoChallenge` + * `requestChallenge` + * `requestChallengeAsMandate` + enum: + - noPreference + - requestNoChallenge + - requestChallenge + - requestChallengeAsMandate + type: string + deviceChannel: + description: |- + The environment of the shopper. + Allowed values: + * `app` + * `browser` + type: string + deviceRenderOptions: + description: |- + Display options for the 3D Secure 2 SDK. + Optional and only for `deviceChannel` **app**. + $ref: '#/components/schemas/DeviceRenderOptions' + mcc: + description: 'Required for merchants that have been enrolled for 3D Secure 2 by another party than Adyen, mostly [authentication-only integrations](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The `mcc` is a four-digit code with which the previously given `acquirerMerchantID` is registered at the scheme.' + type: string + merchantName: + description: |- + Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The merchant name that the issuer presents to the shopper if they get a challenge. We recommend to use the same value that you will use in the authorization. Maximum length is 40 characters. + > Optional for a [full 3D Secure 2 integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/api-integration). Use this field if you are enrolled for 3D Secure 2 with us and want to override the merchant name already configured on your account. + type: string + messageVersion: + description: The `messageVersion` value indicating the 3D Secure 2 protocol version. + type: string + notificationURL: + description: URL to where the issuer should send the `CRes`. Required if you are not using components for `channel` **Web** or if you are using classic integration `deviceChannel` **browser**. + type: string + sdkAppID: + description: |- + The `sdkAppID` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEncData: + description: |- + The `sdkEncData` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEphemPubKey: + description: |- + The `sdkEphemPubKey` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + $ref: '#/components/schemas/SDKEphemPubKey' + sdkMaxTimeout: + description: |- + The maximum amount of time in minutes for the 3D Secure 2 authentication process. + Optional and only for `deviceChannel` set to **app**. Defaults to **60** minutes. + format: int32 + type: integer + sdkReferenceNumber: + description: |- + The `sdkReferenceNumber` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + sdkTransID: + description: |- + The `sdkTransID` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + threeDSCompInd: + description: Completion indicator for the device fingerprinting. + type: string + threeDSRequestorID: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor identifier assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorName: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor name assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorURL: + description: URL of the (customer service) website that will be shown to the shopper in case of technical errors during the 3D Secure 2 process. + type: string + transactionType: + description: Identify the type of the transaction being authenticated. + enum: + - goodsOrServicePurchase + - checkAcceptance + - accountFunding + - quasiCashTransaction + - prepaidActivationAndLoad + type: string + whiteListStatus: + description: 'The `whiteListStatus` value returned from a previous 3D Secure 2 transaction, only applicable for 3D Secure 2 protocol version 2.2.0.' + type: string + required: + - deviceChannel + ThreeDSecureData: + properties: + authenticationResponse: + description: |- + In 3D Secure 1, the authentication response if the shopper was redirected. + + In 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, set this value to **Y**. + enum: + - 'Y' + - 'N' + - U + - A + type: string + cavv: + description: 'The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).' + format: byte + type: string + cavvAlgorithm: + description: The CAVV algorithm used. Include this only for 3D Secure 1. + type: string + directoryResponse: + description: |- + In 3D Secure 1, this is the enrollment response from the 3D directory server. + + In 3D Secure 2, this is the `transStatus` from the `ARes`. The possible values are **A** or **Y** for a frictionless flow, or **C** for a challenge flow. + enum: + - A + - C + - D + - I + - 'N' + - R + - U + - 'Y' + type: string + dsTransID: + description: Supported for 3D Secure 2. The unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction. + type: string + eci: + description: The electronic commerce indicator. + type: string + threeDSVersion: + description: The version of the 3D Secure protocol. + type: string + xid: + description: 'Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).' + format: byte + type: string diff --git a/specs/yaml/PayoutService-v51.yaml b/specs/yaml/PayoutService-v51.yaml new file mode 100644 index 00000000..aaa7f162 --- /dev/null +++ b/specs/yaml/PayoutService-v51.yaml @@ -0,0 +1,1743 @@ +openapi: 3.0.0 +servers: + - url: 'https://pal-test.adyen.com/pal/servlet/Payout/v51' +info: + version: '51' + title: Adyen Payout API + description: |- + A set of API endpoints that allow you to store payout details, confirm, or decline a payout. + + For more information, refer to [Online payouts](https://docs.adyen.com/checkout/online-payouts). + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +x-groups: + - Initialization + - Reviewing + - Instant payouts +paths: + /confirmThirdParty: + post: + summary: Confirms a payout. + description: |- + Confirms a previously submitted payout. + + To cancel a payout, use the `/declineThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /declineThirdParty: + post: + summary: Cancels a payout. + description: |- + Cancels a previously submitted payout. + + To confirm and send a payout, use the `/confirmThirdParty` endpoint. + x-groupName: Reviewing + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ModifyResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /payout: + post: + summary: Pay out directly. + description: 'With this call, you can pay out to your customers, and funds will be made available within 30 minutes on the cardholder''s bank account (this is dependent on whether the issuer supports this functionality). Instant card payouts are only supported for Visa and Mastercard cards.' + x-groupName: Instant payouts + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PayoutResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetail: + post: + summary: Stores payout details. + description: Stores payment details under the `PAYOUT` recurring contract. These payment details can be used later to submit a payout via the `/submitThirdParty` call. + x-groupName: Initialization + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /storeDetailAndSubmitThirdParty: + post: + summary: Stores details and submits a payout. + description: |- + Submits a payout and stores its details for subsequent payouts. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/StoreDetailAndSubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /submitThirdParty: + post: + summary: Submits a payout. + description: |- + Submits a payout using the previously stored payment details. To store payment details, use the `/storeDetail` API call. + + The submitted payout must be confirmed or declined either by a reviewer or via `/confirmThirdParty` or `/declineThirdParty` calls. + x-groupName: Initialization + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SubmitResponse' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +components: + schemas: + AccountInfo: + properties: + accountAgeIndicator: + description: |- + Indicator for the length of time since this shopper account was created in the merchant's environment. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountChangeDate: + description: Date when the shopper's account was last changed. + format: date-time + type: string + accountChangeIndicator: + description: |- + Indicator for the length of time since the shopper's account was last updated. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + accountCreationDate: + description: Date when the shopper's account was created. + format: date-time + type: string + accountType: + description: |- + Indicates the type of account. For example, for a multi-account card product. + Allowed values: + * notApplicable + * credit + * debit + enum: + - notApplicable + - credit + - debit + type: string + addCardAttemptsDay: + description: Number of attempts the shopper tried to add a card to their account in the last day. + format: int32 + type: integer + deliveryAddressUsageDate: + description: Date the selected delivery address was first used. + format: date-time + type: string + deliveryAddressUsageIndicator: + description: |- + Indicator for the length of time since this delivery address was first used. + Allowed values: + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + homePhone: + description: Shopper's home phone number (including the country code). + type: string + mobilePhone: + description: Shopper's mobile phone number (including the country code). + type: string + passwordChangeDate: + description: Date when the shopper last changed their password. + format: date-time + type: string + passwordChangeIndicator: + description: |- + Indicator when the shopper has changed their password. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + pastTransactionsDay: + description: Number of all transactions (successful and abandoned) from this shopper in the past 24 hours. + format: int32 + type: integer + pastTransactionsYear: + description: Number of all transactions (successful and abandoned) from this shopper in the past year. + format: int32 + type: integer + paymentAccountAge: + description: Date this payment method was added to the shopper's account. + format: date-time + type: string + paymentAccountIndicator: + description: |- + Indicator for the length of time since this payment method was added to this shopper's account. + Allowed values: + * notApplicable + * thisTransaction + * lessThan30Days + * from30To60Days + * moreThan60Days + enum: + - notApplicable + - thisTransaction + - lessThan30Days + - from30To60Days + - moreThan60Days + type: string + purchasesLast6Months: + description: Number of successful purchases in the last six months. + format: int32 + type: integer + suspiciousActivity: + description: Whether suspicious activity was recorded on this account. + type: boolean + workPhone: + description: Shopper's work phone number (including the country code). + type: string + Address: + properties: + city: + description: The name of the city. + type: string + country: + description: |- + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. + type: string + houseNumberOrName: + description: The number or name of the house. + type: string + postalCode: + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' + type: string + stateOrProvince: + description: |- + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. + type: string + street: + description: |- + The name of the street. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. + type: string + required: + - street + - houseNumberOrName + - city + - postalCode + - country + Amount: + properties: + currency: + description: 'The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).' + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + - currency + ApplicationInfo: + properties: + adyenLibrary: + description: 'Adyen-developed software, such as libraries and plugins, used to interact with the Adyen API. For example, Magento plugin, Java API library, etc.' + $ref: '#/components/schemas/CommonField' + adyenPaymentSource: + description: 'Adyen-developed software to get payment details. For example, Checkout SDK, Secured Fields SDK, etc.' + $ref: '#/components/schemas/CommonField' + externalPlatform: + description: 'Third-party developed platform used to initiate payment requests. For example, Magento, Zuora, etc.' + $ref: '#/components/schemas/ExternalPlatform' + merchantApplication: + description: 'Merchant developed software, such as cashier application, used to interact with the Adyen API.' + $ref: '#/components/schemas/CommonField' + merchantDevice: + description: Merchant device information. + $ref: '#/components/schemas/MerchantDevice' + shopperInteractionDevice: + description: 'Shopper interaction device, such as terminal, mobile device or web browser, to initiate payment requests.' + $ref: '#/components/schemas/ShopperInteractionDevice' + BankAccount: + properties: + bankAccountNumber: + description: The bank account number (without separators). + type: string + bankCity: + description: The bank city. + type: string + bankLocationId: + description: The location id of the bank. The field value is `nil` in most cases. + type: string + bankName: + description: The name of the bank. + type: string + bic: + description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.' + type: string + countryCode: + description: |- + Country code where the bank is located. + + A valid value is an ISO two-character country code (e.g. 'NL'). + type: string + iban: + description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).' + type: string + ownerName: + description: |- + The name of the bank account holder. + If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: + * χ12 is converted to ch12. + * üA is converted to euA. + * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. + After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: + * John17 - allowed. + * J17 - allowed. + * 171 - not allowed. + * John-7 - allowed. + > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'. + type: string + taxId: + description: The bank account holder's tax ID. + type: string + BrowserInfo: + properties: + acceptHeader: + description: The accept header value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + colorDepth: + description: 'The color depth of the shopper''s browser in bits per pixel. This should be obtained by using the browser''s `screen.colorDepth` property. Accepted values: 1, 4, 8, 15, 16, 24, 32 or 48 bit color depth.' + format: int32 + type: integer + javaEnabled: + description: Boolean value indicating if the shopper's browser is able to execute Java. + type: boolean + javaScriptEnabled: + description: Boolean value indicating if the shopper's browser is able to execute JavaScript. A default 'true' value is assumed if the field is not present. + type: boolean + language: + description: The `navigator.language` value of the shopper's browser (as defined in IETF BCP 47). + type: string + screenHeight: + description: The total height of the shopper's device screen in pixels. + format: int32 + type: integer + screenWidth: + description: The total width of the shopper's device screen in pixels. + format: int32 + type: integer + timeZoneOffset: + description: 'Time difference between UTC time and the shopper''s browser local time, in minutes.' + format: int32 + type: integer + userAgent: + description: The user agent value of the shopper's browser. + maxLength: 50 + minLength: 10 + type: string + required: + - userAgent + - acceptHeader + - javaEnabled + - colorDepth + - screenHeight + - screenWidth + - timeZoneOffset + - language + Card: + properties: + cvc: + description: |- + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: + * CVV2/CVC2 – length: 3 digits + * CID – length: 4 digits + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). + > When this value is returned in a response, it is always empty because it is not stored. + maxLength: 20 + minLength: 1 + type: string + expiryMonth: + description: |- + The card expiry month. + Format: 2 digits, zero-padded for single digits. For example: + * 03 = March + * 11 = November + maxLength: 2 + minLength: 1 + type: string + expiryYear: + description: |- + The card expiry year. + Format: 4 digits. For example: 2020 + maxLength: 4 + minLength: 4 + type: string + holderName: + description: 'The name of the cardholder, as printed on the card.' + maxLength: 50 + minLength: 1 + type: string + issueNumber: + description: The issue number of the card (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + number: + description: |- + The card number (4-19 characters). Do not use any separators. + When this value is returned in a response, only the last 4 digits of the card number are returned. + maxLength: 19 + minLength: 4 + type: string + startMonth: + description: The month component of the start date (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + startYear: + description: The year component of the start date (for some UK debit cards only). + maxLength: 4 + minLength: 4 + type: string + required: + - number + - expiryMonth + - expiryYear + - holderName + CommonField: + properties: + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + DeviceRenderOptions: + properties: + sdkInterface: + description: |- + Supported SDK interface types. + Allowed values: + * Native + * Html + * both + enum: + - Html + - Native + - both + type: string + sdkUiType: + description: |- + UI types supported for displaying specific challenges. + Allowed values: + * text + * singleSelect + * outOfBand + * otherHtml + * multiSelect + items: + enum: + - multiSelect + - otherHtml + - outOfBand + - singleSelect + - text + type: string + type: array + ExternalPlatform: + properties: + integrator: + description: External platform integrator. + type: string + name: + description: 'Name of the field. For example, Name of External Platform.' + type: string + version: + description: 'Version of the field. For example, Version of External Platform.' + type: string + 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 + FraudCheckResult: + properties: + accountScore: + description: The fraud score generated by the risk check. + format: int32 + type: integer + checkId: + description: The ID of the risk check. + format: int32 + type: integer + name: + description: The name of the risk check. + type: string + required: + - checkId + - name + - accountScore + FraudResult: + properties: + accountScore: + description: The total fraud score generated by the risk checks. + format: int32 + type: integer + results: + description: The result of the individual risk checks. + items: + $ref: '#/components/schemas/FraudCheckResult' + type: array + required: + - accountScore + FundSource: + properties: + additionalData: + description: a map of name/value pairs for passing in additional/industry-specific data + type: object + billingAddress: + description: the address where to send the invoice + $ref: '#/components/schemas/Address' + card: + description: a representation of a (credit or debit) card + $ref: '#/components/schemas/Card' + shopperEmail: + description: the email address of the person + type: string + shopperName: + description: the name of the person + $ref: '#/components/schemas/Name' + telephoneNumber: + description: the telephone number of the person + type: string + Installments: + properties: + 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 + MerchantDevice: + properties: + os: + description: Operating system running on the merchant device. + type: string + osVersion: + description: Version of the operating system on the merchant device. + type: string + reference: + description: Merchant device reference. + type: string + MerchantRiskIndicator: + properties: + addressMatch: + description: Whether the chosen delivery address is identical to the billing address. + type: boolean + deliveryAddressIndicator: + description: |- + Indicator regarding the delivery address. + Allowed values: + * `shipToBillingAddress` + * `shipToVerifiedAddress` + * `shipToNewAddress` + * `shipToStore` + * `digitalGoods` + * `goodsNotShipped` + * `other` + enum: + - shipToBillingAddress + - shipToVerifiedAddress + - shipToNewAddress + - shipToStore + - digitalGoods + - goodsNotShipped + - other + type: string + deliveryEmail: + description: The delivery email address (for digital goods). + type: string + deliveryTimeframe: + description: |- + The estimated delivery time for the shopper to receive the goods. + Allowed values: + * `electronicDelivery` + * `sameDayShipping` + * `overnightShipping` + * `twoOrMoreDaysShipping` + enum: + - electronicDelivery + - sameDayShipping + - overnightShipping + - twoOrMoreDaysShipping + type: string + giftCardAmount: + description: The amount of prepaid or gift cards used for this purchase. + $ref: '#/components/schemas/Amount' + giftCardCount: + description: Number of individual prepaid or gift cards used for this purchase. + format: int32 + type: integer + preOrderDate: + description: 'For pre-order purchases, the expected date this product will be available to the shopper.' + format: date-time + type: string + preOrderPurchase: + description: Indicator for whether this transaction is for pre-ordering a product. + type: boolean + reorderItems: + description: Indicator for whether the shopper has already purchased the same items in the past. + type: boolean + ModifyRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular payout request.' + type: object + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + originalReference: + description: The PSP reference received in the `/submitThirdParty` response. + type: string + required: + - merchantAccount + - originalReference + ModifyResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: Adyen's 16-character string reference associated with the transaction. This value is globally unique; quote it when communicating with us about this response. + type: string + response: + description: |- + The response: + * In case of success, it is either `payout-confirm-received` or `payout-decline-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - response + Name: + properties: + firstName: + description: The first name. + type: string + gender: + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. + enum: + - MALE + - FEMALE + - UNKNOWN + maxLength: 1 + minLength: 1 + type: string + infix: + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + - gender + PayoutRequest: + properties: + accountInfo: + 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: + 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. For more information on possible key-value pairs, refer to the [additionalData section](https://docs.adyen.com/api-reference/payments-api/paymentrequest/paymentrequest-additionaldata). + type: object + amount: + description: 'The amount information for the transaction. 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: + 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' + bankAccount: + description: |- + The details of the bank account, from which the payment should be made. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: |- + The address where to send the invoice. + > For 3D Secure 2 transactions, schemes require the `billingAddress` for both `deviceChannel` **browser** and **app**. Include all of the fields within this object. + $ref: '#/components/schemas/Address' + browserInfo: + description: |- + The shopper's browser information. + > For 3D Secure 2 transactions, `browserInfo` is required for `channel` **web** (or `deviceChannel` **browser**). + $ref: '#/components/schemas/BrowserInfo' + captureDelayHours: + description: 'The delay between the authorisation and scheduled auto-capture, specified in hours.' + format: int32 + type: integer + card: + description: |- + A container for card data. + > Either `bankAccount` or `card` field must be provided in a payment request. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The shopper's date of birth. + + Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD + format: date-time + 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: + 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: + description: 'A string containing the shopper''s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).' + type: string + enableRealTimeUpdate: + deprecated: true + description: 'Choose if a specific transaction should use the Real-time Account Updater, regardless of other settings.' + type: boolean + entityType: + description: The type of the entity the payment is processed for. + enum: + - NaturalPerson + - CompanyName + 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 + fundSource: + description: The person or entity funding the money. + $ref: '#/components/schemas/FundSource' + installments: + description: 'Contains installment settings. For more information, refer to [Installments](https://docs.adyen.com/payment-methods/installment-payments).' + $ref: '#/components/schemas/Installments' + mcc: + 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: + 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: + 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: + description: |- + Metadata consists of entries, each of which includes a key and a value. + Limitations: Maximum 20 key-value pairs per request. When exceeding, the "177" error occurs: "Metadata size exceeds limit". + type: object + mpiData: + description: Authentication data produced by an MPI (Mastercard SecureCode or Verified By Visa). + $ref: '#/components/schemas/ThreeDSecureData' + nationality: + description: The two-character country code of the shopper's nationality. + maxLength: 2 + type: string + 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: + description: | + Defines a recurring payment type. + Allowed values: + * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. + * `CardOnFile` – 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` – 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 the `shopperEmail` for both `deviceChannel` **browser** and **app**. + 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). + > Required for 3D Secure 2 transactions. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://support.adyen.com/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: + description: The combination of a language code and a country code to specify the language to be used in the payment. + type: string + shopperName: + description: The shopper's full name and gender (if specified). + $ref: '#/components/schemas/Name' + shopperReference: + description: |- + The shopper's reference to uniquely identify this shopper (e.g. user ID or account ID). + > This field is required for recurring payments. + type: string + shopperStatement: + description: The text to appear on the shopper's bank statement. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + splits: + description: The details of how the payment should be split when distributing a payment to a MarketPay Marketplace and its Accounts. + items: + $ref: '#/components/schemas/Split' + type: array + store: + description: 'The physical store, for which this payment is processed.' + maxLength: 16 + minLength: 1 + type: string + telephoneNumber: + description: The shopper's telephone number. + type: string + threeDS2RequestData: + description: Request fields for 3D Secure 2. + $ref: '#/components/schemas/ThreeDS2RequestData' + threeDSAuthenticationOnly: + description: 'If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only), and not the payment authorisation.' + type: boolean + totalsGroup: + 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: + description: Set to true if the payment should be routed to a trusted MID. + type: boolean + required: + - merchantAccount + - reference + - amount + PayoutResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be required to return in a particular payment response. To choose data fields to be returned, go to **Customer Area** > **Account** > **API URLs**.' + type: object + authCode: + description: |- + 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. + type: string + dccAmount: + description: |- + Includes the currency of the conversion and the value of the transaction. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + $ref: '#/components/schemas/Amount' + dccSignature: + description: |- + Cryptographic signature used to verify `dccQuote`. + > This value only applies if you have implemented Dynamic Currency Conversion. For more information, [contact Support](https://support.adyen.com/hc/en-us/requests/new). + type: string + fraudResult: + description: The fraud result properties of the payment. + $ref: '#/components/schemas/FraudResult' + issuerUrl: + description: |- + The URL to direct the shopper to. + > In case of SecurePlus, do not redirect a shopper to this URL. + type: string + md: + description: The payment session. + type: string + paRequest: + description: |- + 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). + type: string + pspReference: + description: |- + Adyen's 16-character string reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request. + + > `pspReference` is returned only for non-redirect payment methods. + type: string + refusalReason: + description: |- + 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. + type: string + resultCode: + description: |- + The result of the payment. Possible values: + + * **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions. + * **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. + * **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. For more information on handling a pending payment, refer to [Payments with pending status](https://docs.adyen.com/development-resources/payments-with-pending-status). + * **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. + enum: + - AuthenticationFinished + - Authorised + - Cancelled + - ChallengeShopper + - Error + - IdentifyShopper + - Pending + - PresentToShopper + - Received + - RedirectShopper + - Refused + type: string + Recurring: + properties: + contract: + description: |- + 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/checkout/online-payouts). + enum: + - ONECLICK + - RECURRING + - PAYOUT + type: string + recurringDetailName: + description: A descriptive name for this detail. + type: string + recurringExpiry: + description: Date after which no further authorisations shall be performed. Only for 3D Secure 2. + format: date-time + type: string + recurringFrequency: + description: Minimum number of days between authorisations. Only for 3D Secure 2. + type: string + tokenService: + description: The name of the token service. + enum: + - VISATOKENSERVICE + - MCTOKENSERVICE + type: string + SDKEphemPubKey: + properties: + crv: + description: The `crv` value as received from the 3D Secure 2 SDK. + type: string + kty: + description: The `kty` value as received from the 3D Secure 2 SDK. + type: string + x: + description: The `x` value as received from the 3D Secure 2 SDK. + type: string + 'y': + description: The `y` value as received from the 3D Secure 2 SDK. + type: string + ShopperInteractionDevice: + properties: + locale: + description: Locale on the shopper interaction device. + type: string + os: + description: Operating system running on the shopper interaction device. + type: string + osVersion: + description: Version of the operating system on the shopper interaction device. + type: string + Split: + properties: + account: + description: |- + The account to which this split applies. + + >Required if the type is `MarketPlace`. + type: string + amount: + description: The amount of this split. + $ref: '#/components/schemas/SplitAmount' + description: + description: A description of this split. + type: string + reference: + description: |- + The reference of this split. Used to link other operations (e.g. captures and refunds) to this split. + + >Required if the type is `MarketPlace`. + type: string + type: + description: |- + The type of this split. + + >Permitted values: `Default`, `PaymentFee`, `VAT`, `Commission`, `MarketPlace`, `Verification`. + enum: + - Commission + - Default + - MarketPlace + - PaymentFee + - VAT + - Verification + type: string + required: + - amount + - type + SplitAmount: + properties: + currency: + description: |- + The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). + + If this value is not provided, the currency in which the payment is made will be used. + maxLength: 3 + minLength: 3 + type: string + value: + description: |- + The payable amount that can be charged for the transaction. + + The transaction amount needs to be represented in minor units according to the [following table](https://docs.adyen.com/development-resources/currency-codes). + format: int64 + type: integer + required: + - value + StoreDetailAndSubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payment. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + - reference + - amount + StoreDetailAndSubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + + * In case of success is payout-submit-received. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + StoreDetailRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + bank: + description: |- + A container for bank account data. + > This field is mandatory if `card` is not provided. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: |- + A container for card data. + > This field is mandatory if `bank` is not provided. + $ref: '#/components/schemas/Card' + dateOfBirth: + description: |- + The date of birth. + Format: [ISO-8601](https://www.w3.org/TR/NOTE-datetime); example: YYYY-MM-DD + For Paysafecard it must be the same as used when registering the Paysafecard account. + > This field is mandatory for natural persons. + format: date-time + type: string + entityType: + description: The type of the entity the payout is processed for. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: 'The merchant account identifier, with which you want to process the transaction.' + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + maxLength: 2 + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The recurring.contract must be set to `PAYOUT` + $ref: '#/components/schemas/Recurring' + selectedBrand: + description: |- + The name of the brand to make a payout to. + + For Paysafecard it must be set to `paysafecard`. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + When the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payment transaction. + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - shopperEmail + - shopperReference + - recurring + - dateOfBirth + - nationality + - entityType + StoreDetailResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + recurringDetailReference: + description: The token which you can use later on for submitting the payout. + type: string + resultCode: + description: The result code of the transaction. `Success` indicates that the details were stored successfully. + type: string + required: + - pspReference + - recurringDetailReference + - resultCode + SubmitRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + amount: + description: A container object for the payable amount information of the transaction. + $ref: '#/components/schemas/Amount' + dateOfBirth: + description: |- + The date of birth. + Format: ISO-8601; example: YYYY-MM-DD + + For Paysafecard it must be the same as used when registering the Paysafecard account. + + > This field is mandatory for natural persons. + > This field is required to update the existing `dateOfBirth` that is associated with this recurring contract. + format: date-time + type: string + entityType: + description: |- + The type of the entity the payout is processed for. + + Allowed values: + * NaturalPerson + * Company + > This field is required to update the existing `entityType` that is associated with this recurring contract. + enum: + - NaturalPerson + - Company + 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 + merchantAccount: + description: The merchant account identifier you want to process the transaction request with. + type: string + nationality: + description: |- + The shopper's nationality. + + A valid value is an ISO 2-character country code (e.g. 'NL'). + + > This field is required to update the existing nationality that is associated with this recurring contract. + type: string + recurring: + description: |- + A container for the type of recurring contract to be retrieved. + + The `recurring.contract` must be set to "PAYOUT". + $ref: '#/components/schemas/Recurring' + reference: + description: 'The merchant reference for this payout. This reference will be used in all communication to the merchant about the status of the payout. Although it is a good idea to make sure it is unique, this is not a requirement.' + type: string + selectedRecurringDetailReference: + description: |- + This is the `recurringDetailReference` you want to use for this payout. + + You can use the value LATEST to select the most recently used recurring detail. + type: string + shopperEmail: + description: The shopper's email address. + type: string + shopperName: + description: |- + The shopper's name. + + In case the `entityType` is `Company`, the `shopperName.lastName` must contain the company name. + + > This field is required to update the existing `shopperName` associated with a recurring contract. + $ref: '#/components/schemas/Name' + shopperReference: + description: The shopper's reference for the payout transaction. + type: string + shopperStatement: + description: The description of this payout. This description is shown on the bank statement of the shopper (if this is supported by the chosen payment method). + type: string + socialSecurityNumber: + description: The shopper's social security number. + type: string + required: + - merchantAccount + - reference + - amount + - shopperEmail + - shopperReference + - recurring + - selectedRecurringDetailReference + SubmitResponse: + properties: + additionalData: + description: 'This field contains additional data, which may be returned in a particular response.' + type: object + pspReference: + description: A new reference to uniquely identify this request. + type: string + refusalReason: + description: 'In case of refusal, an informational message for the reason.' + type: string + resultCode: + description: |- + The response: + * In case of success, it is `payout-submit-received`. + * In case of an error, an informational message is returned. + type: string + required: + - pspReference + - resultCode + ThreeDS2RequestData: + properties: + acquirerBIN: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The acquiring BIN enrolled for 3D Secure 2. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform.' + type: string + acquirerMerchantID: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The merchantId that is enrolled for 3D Secure 2 by the merchant''s acquirer. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform.' + type: string + authenticationOnly: + description: 'If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only), and not the payment authorisation.' + type: boolean + challengeIndicator: + description: | + Possibility to specify a preference for receiving a challenge from the issuer. + Allowed values: + * `noPreference` + * `requestNoChallenge` + * `requestChallenge` + * `requestChallengeAsMandate` + enum: + - noPreference + - requestNoChallenge + - requestChallenge + - requestChallengeAsMandate + type: string + deviceChannel: + description: |- + The environment of the shopper. + Allowed values: + * `app` + * `browser` + type: string + deviceRenderOptions: + description: |- + Display options for the 3D Secure 2 SDK. + Optional and only for `deviceChannel` **app**. + $ref: '#/components/schemas/DeviceRenderOptions' + mcc: + description: 'Required for merchants that have been enrolled for 3D Secure 2 by another party than Adyen, mostly [authentication-only integrations](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The `mcc` is a four-digit code with which the previously given `acquirerMerchantID` is registered at the scheme.' + type: string + merchantName: + description: |- + Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only). The merchant name that the issuer presents to the shopper if they get a challenge. We recommend to use the same value that you will use in the authorization. Maximum length is 40 characters. + > Optional for a [full 3D Secure 2 integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/api-integration). Use this field if you are enrolled for 3D Secure 2 with us and want to override the merchant name already configured on your account. + type: string + messageVersion: + description: The `messageVersion` value indicating the 3D Secure 2 protocol version. + type: string + notificationURL: + description: URL to where the issuer should send the `CRes`. Required if you are not using components for `channel` **Web** or if you are using classic integration `deviceChannel` **browser**. + type: string + sdkAppID: + description: |- + The `sdkAppID` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEncData: + description: |- + The `sdkEncData` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + type: string + sdkEphemPubKey: + description: |- + The `sdkEphemPubKey` value as received from the 3D Secure 2 SDK. + Required for `deviceChannel` set to **app**. + $ref: '#/components/schemas/SDKEphemPubKey' + sdkMaxTimeout: + description: |- + The maximum amount of time in minutes for the 3D Secure 2 authentication process. + Optional and only for `deviceChannel` set to **app**. Defaults to **60** minutes. + format: int32 + type: integer + sdkReferenceNumber: + description: |- + The `sdkReferenceNumber` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + sdkTransID: + description: |- + The `sdkTransID` value as received from the 3D Secure 2 SDK. + Only for `deviceChannel` set to **app**. + type: string + threeDSCompInd: + description: Completion indicator for the device fingerprinting. + type: string + threeDSRequestorID: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor identifier assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorName: + description: 'Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/authentication-only) for Visa. Unique 3D Secure requestor name assigned by the Directory Server when you enrol for 3D Secure 2.' + type: string + threeDSRequestorURL: + description: URL of the (customer service) website that will be shown to the shopper in case of technical errors during the 3D Secure 2 process. + type: string + transactionType: + description: Identify the type of the transaction being authenticated. + enum: + - goodsOrServicePurchase + - checkAcceptance + - accountFunding + - quasiCashTransaction + - prepaidActivationAndLoad + type: string + whiteListStatus: + description: 'The `whiteListStatus` value returned from a previous 3D Secure 2 transaction, only applicable for 3D Secure 2 protocol version 2.2.0.' + type: string + required: + - deviceChannel + ThreeDSecureData: + properties: + authenticationResponse: + description: |- + In 3D Secure 1, the authentication response if the shopper was redirected. + + In 3D Secure 2, this is the `transStatus` from the challenge result. If the transaction was frictionless, set this value to **Y**. + enum: + - 'Y' + - 'N' + - U + - A + type: string + cavv: + description: 'The cardholder authentication value (base64 encoded, 20 bytes in a decoded form).' + format: byte + type: string + cavvAlgorithm: + description: The CAVV algorithm used. Include this only for 3D Secure 1. + type: string + directoryResponse: + description: |- + In 3D Secure 1, this is the enrollment response from the 3D directory server. + + In 3D Secure 2, this is the `transStatus` from the `ARes`. The possible values are **A** or **Y** for a frictionless flow, or **C** for a challenge flow. + enum: + - A + - C + - D + - I + - 'N' + - R + - U + - 'Y' + type: string + dsTransID: + description: Supported for 3D Secure 2. The unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction. + type: string + eci: + description: The electronic commerce indicator. + type: string + threeDSVersion: + description: The version of the 3D Secure protocol. + type: string + xid: + description: 'Supported for 3D Secure 1. The transaction identifier (Base64-encoded, 20 bytes in a decoded form).' + format: byte + type: string diff --git a/specs/yaml/RecurringService-v18.yaml b/specs/yaml/RecurringService-v18.yaml index 05088c65..ae2ef99d 100644 --- a/specs/yaml/RecurringService-v18.yaml +++ b/specs/yaml/RecurringService-v18.yaml @@ -3,8 +3,34 @@ servers: - url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v18' info: version: '18' - title: Adyen Recurring Service - description: 'Additional methods that allow you to manage payment details stored for recurring payments. For more information, refer to [Recurring payments](https://docs.adyen.com/developers/features/recurring-payments).' + title: Adyen Recurring API + description: |- + The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request. + + For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization). + ## Authentication + To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example: + + ``` + curl + -U "ws@Company.YourCompany":"YourWsPassword" \ + -H "Content-Type: application/json" \ + ... + ``` + Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints). + + ## Versioning + Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number. + + For example: + ``` + https://pal-test.adyen.com/pal/servlet/Recurring/v18/disable + ``` + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com x-groups: - General paths: @@ -14,7 +40,7 @@ paths: description: |- Disables stored payment details to stop charging a shopper with this particular recurring detail ID. - For more information, refer to [Disable stored details](https://docs.adyen.com/developers/features/recurring-payments/disable-stored-details). + For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/). x-groupName: General x-sortIndex: 2 requestBody: @@ -45,7 +71,7 @@ paths: description: |- Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper. - For more information, refer to [Retrieve stored details](https://docs.adyen.com/developers/features/recurring-payments/retrieve-stored-details). + For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/). x-groupName: General x-sortIndex: 1 requestBody: @@ -70,34 +96,70 @@ paths: description: Unprocessable Entity - a request validation error. '500': description: Internal Server Error - the server could not process the request. + /scheduleAccountUpdater: + post: + summary: Schedules running of the Account Updater. + description: |- + When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference: + * If the card information is provided, all the sub-fields for `card` are mandatory. + * If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory. + x-groupName: General + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. components: schemas: Address: properties: city: - description: The city name. + description: The name of the city. type: string country: - description: A valid value is an ISO two-character country code (e.g. 'NL'). + description: |- + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. type: string houseNumberOrName: - description: The house number or name. + description: The number or name of the house. type: string postalCode: - description: The postal code with a maximum of 5 characters for USA and maximum of 10 characters for any other country. + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' type: string stateOrProvince: - description: 'For USA or Canada, a valid 2-character abbreviation for the state or province respectively. For other countries any abbreviation with maximum 3 characters for the state or province.' + description: |- + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. type: string street: - description: | - The street name. - > Don't append the house number to this field. Instead, pass the house number separately as `houseNumberOrName`. + description: |- + The name of the street. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. type: string required: - street - houseNumberOrName - city + - postalCode - country BankAccount: properties: @@ -148,11 +210,11 @@ components: $ref: '#/components/schemas/Address' cvc: description: |- - The [card verification code](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid) (1-20 characters). Depending on the card brand, it is known also as: + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: * CVV2/CVC2 – length: 3 digits * CID – length: 4 digits - > If you are using [Client-Side Encryption](https://docs.adyen.com/developers/ecommerce-integration), the CVC code is present in the encrypted data. You must never post the card details to the server. - > This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/features/recurring-payments). + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). > When this value is returned in a response, it is always empty because it is not stored. maxLength: 20 minLength: 1 @@ -217,7 +279,7 @@ components: * PAYOUT type: string merchantAccount: - description: Your merchant account. + description: The merchant account identifier with which you want to process the transaction. type: string recurringDetailReference: description: |- @@ -236,33 +298,18 @@ components: - shopperReference DisableResult: properties: - details: - description: A list of one or more recurring payment details that were disabled. - items: - $ref: '#/components/schemas/RecurringDetail' - type: array response: description: 'Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].' type: string - ELV: - properties: - accountHolderName: - type: string - bankAccountNumber: - type: string - bankLocation: - type: string - bankLocationId: - type: string - bankName: - type: string Name: properties: firstName: - description: A person's first name. + description: The first name. type: string gender: - description: A person's gender (can be unknown). + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. enum: - MALE - FEMALE @@ -271,10 +318,12 @@ components: minLength: 1 type: string infix: - description: 'A person name''s infix, if applicable. Maximum length: 20 characters.' + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. type: string lastName: - description: A person's last name. + description: The last name. type: string required: - firstName @@ -286,9 +335,10 @@ components: description: |- The type of recurring contract to be used. Possible values: - * `ONECLICK` – The shopper opts to store their card details for future use. The shopper is present for the subsequent transaction, for cards the security code (CVC/CVV) is required. - * `RECURRING` – Payment details are stored for future use. For cards, the security code (CVC/CVV) is not required for subsequent payments. This is used for shopper not present transactions. - * `ONECLICK,RECURRING` – Payment details are stored for future use. This allows the use of the stored payment details regardless of whether the shopper is on your site or not. + * `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/checkout/online-payouts). enum: - ONECLICK - RECURRING @@ -299,51 +349,66 @@ components: type: string RecurringDetail: properties: - acquirer: - type: string - acquirerAccount: - type: string additionalData: - additionalProperties: - type: string + description: |- + This field contains additional data, which may be returned in a particular response. + + The additionalData object consists of entries, each of which includes the key and value. type: object alias: + description: |- + The alias of the credit card number. + + Applies only to recurring contracts storing credit card details type: string aliasType: + description: |- + The alias type of the credit card number. + + Applies only to recurring contracts storing credit card details. type: string bank: + description: A container for bank account data. $ref: '#/components/schemas/BankAccount' billingAddress: + description: The billing address. $ref: '#/components/schemas/Address' card: + description: A container for card data. $ref: '#/components/schemas/Card' contractTypes: + description: Types of recurring contracts. items: type: string type: array creationDate: + description: The date when the recurring details were created. format: date-time type: string - elv: - $ref: '#/components/schemas/ELV' firstPspReference: + description: The `pspReference` of the first recurring payment that created the recurring detail. type: string name: - description: An optional descriptive name for this recurring detail + description: An optional descriptive name for this recurring detail. type: string paymentMethodVariant: + description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).' type: string recurringDetailReference: - description: The reference that uniquely identifies the recurring detail + description: The reference that uniquely identifies the recurring detail. type: string shopperName: + description: The name of the shopper. $ref: '#/components/schemas/Name' socialSecurityNumber: + description: A shopper's social security number (only in countries where it is legal to collect). type: string - tokenDetails: - $ref: '#/components/schemas/TokenDetails' variant: + description: 'The payment method, such as “mc", "visa", "ideal", "paypal".' type: string + required: + - recurringDetailReference + - variant RecurringDetailsRequest: properties: merchantAccount: @@ -369,7 +434,7 @@ components: format: date-time type: string details: - description: A list of one or more recurring payment details. + description: Payment details stored for recurring payments. items: $ref: '#/components/schemas/RecurringDetail' type: array @@ -379,11 +444,46 @@ components: shopperReference: description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID). type: string - TokenDetails: + ScheduleAccountUpdaterRequest: properties: - tokenData: - additionalProperties: - type: string + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' type: object - tokenDataType: + card: + description: |- + A container for credit card data. + + Optional if `shopperReference` and `selectedRecurringDetailReference` are provided. + $ref: '#/components/schemas/Card' + merchantAccount: + description: Account of the merchant. type: string + reference: + description: A reference that merchants can apply for the call. + type: string + selectedRecurringDetailReference: + description: |- + The selected detail recurring reference. + + Optional if `card` is provided. + type: string + shopperReference: + description: |- + The reference of the shopper that owns the recurring contract. + + Optional if `card` is provided. + type: string + required: + - merchantAccount + - reference + ScheduleAccountUpdaterResult: + properties: + pspReference: + description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request. + type: string + result: + description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.' + type: string + required: + - pspReference + - result diff --git a/specs/yaml/RecurringService-v25.yaml b/specs/yaml/RecurringService-v25.yaml index 99e2138a..b5865a0c 100644 --- a/specs/yaml/RecurringService-v25.yaml +++ b/specs/yaml/RecurringService-v25.yaml @@ -3,13 +3,13 @@ servers: - url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v25' info: version: '25' - title: Adyen Recurring Service + title: Adyen Recurring API description: |- The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request. - For more information, refer to our [Tokenization documentation](https://docs.adyen.com/developers/features/tokenization). + For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization). ## Authentication - To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/developers/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example: + To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example: ``` curl @@ -17,7 +17,7 @@ info: -H "Content-Type: application/json" \ ... ``` - Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/developers/development-resources/live-endpoints). + Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints). ## Versioning Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number. @@ -40,7 +40,7 @@ paths: description: |- Disables stored payment details to stop charging a shopper with this particular recurring detail ID. - For more information, refer to [Disable stored details](https://docs.adyen.com/developers/features/recurring-payments/disable-stored-details). + For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/). x-groupName: General x-sortIndex: 2 requestBody: @@ -71,7 +71,7 @@ paths: description: |- Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper. - For more information, refer to [Retrieve stored details](https://docs.adyen.com/developers/features/recurring-payments/retrieve-stored-details). + For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/). x-groupName: General x-sortIndex: 1 requestBody: @@ -96,42 +96,70 @@ paths: description: Unprocessable Entity - a request validation error. '500': description: Internal Server Error - the server could not process the request. + /scheduleAccountUpdater: + post: + summary: Schedules running of the Account Updater. + description: |- + When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference: + * If the card information is provided, all the sub-fields for `card` are mandatory. + * If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory. + x-groupName: General + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. components: schemas: Address: properties: city: - description: |- - The name of the city. - >Required if either houseNumberOrName, street, postalCode, or stateOrProvince are provided. + description: The name of the city. type: string country: description: |- - The two-character country code of the address - >The permitted country codes are defined in ISO-3166-1 alpha-2 (e.g. 'NL'). + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. type: string houseNumberOrName: description: The number or name of the house. type: string postalCode: - description: |- - The postal code. - >A maximum of five (5) digits for an address in the USA, or a maximum of ten (10) characters for an address in all other countries. - >Required if either houseNumberOrName, street, city, or stateOrProvince are provided. + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' type: string stateOrProvince: description: |- - The abbreviation of the state or province. - >Two (2) characters for an address in the USA or Canada, or a maximum of three (3) characters for an address in all other countries. - >Required for an address in the USA or Canada if either houseNumberOrName, street, city, or postalCode are provided. + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. type: string street: description: |- The name of the street. - >The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. - >Required if either houseNumberOrName, city, postalCode, or stateOrProvince are provided. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. type: string required: + - street + - houseNumberOrName + - city + - postalCode - country BankAccount: properties: @@ -180,11 +208,11 @@ components: properties: cvc: description: |- - The [card verification code](https://docs.adyen.com/developers/payment-glossary#cardsecuritycodecvccvvcid) (1-20 characters). Depending on the card brand, it is known also as: + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: * CVV2/CVC2 – length: 3 digits * CID – length: 4 digits - > If you are using [Client-Side Encryption](https://docs.adyen.com/developers/features/client-side-encryption), the CVC code is present in the encrypted data. You must never post the card details to the server. - > This field must be always present in a [one-click payment request](https://docs.adyen.com/developers/classic-integration/recurring-payments). + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). > When this value is returned in a response, it is always empty because it is not stored. maxLength: 20 minLength: 1 @@ -305,10 +333,10 @@ components: description: |- 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/developers/payment-glossary#cardsecuritycodecvccvvcid). - * `RECURRING` – Payment details can be used without the card security code to initiate [card-not-present transactions](https://docs.adyen.com/developers/payment-glossary#cardnotpresentcnp). + * `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/developers/features/third-party-payouts). + * `PAYOUT` – Payment details can be used to [make a payout](https://docs.adyen.com/checkout/online-payouts). enum: - ONECLICK - RECURRING @@ -329,7 +357,7 @@ components: description: |- This field contains additional data, which may be returned in a particular response. - The additionalData object consists of entries, each of which includes the key and value. For more information on possible key-value pairs, refer to [RecurringDetail.additionalData](https://docs.adyen.com/developers/api-reference/recurring-api#recurringdetailadditionaldata). + The additionalData object consists of entries, each of which includes the key and value. type: object alias: description: |- @@ -368,7 +396,7 @@ components: description: An optional descriptive name for this recurring detail. type: string paymentMethodVariant: - description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/developers/api-reference/common-api/paymentmethodvariant).' + description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).' type: string recurringDetailReference: description: The reference that uniquely identifies the recurring detail. @@ -423,47 +451,43 @@ components: ScheduleAccountUpdaterRequest: properties: additionalData: - additionalProperties: - type: string + description: 'This field contains additional data, which may be required for a particular request.' type: object card: + description: |- + A container for credit card data. + + Optional if `shopperReference` and `selectedRecurringDetailReference` are provided. $ref: '#/components/schemas/Card' - genericBlockId: - format: int64 - type: integer - genericFileId: - format: int64 - type: integer - genericLineId: - format: int64 - type: integer merchantAccount: + description: Account of the merchant. type: string reference: + description: A reference that merchants can apply for the call. type: string selectedRecurringDetailReference: + description: |- + The selected detail recurring reference. + + Optional if `card` is provided. type: string shopperReference: - type: string - updateAfter: - format: date-time + description: |- + The reference of the shopper that owns the recurring contract. + + Optional if `card` is provided. type: string required: - merchantAccount + - reference ScheduleAccountUpdaterResult: properties: - accountUpdaterAction: - type: string - newAlias: - type: string - newExpiryMonth: - type: string - newExpiryYear: - type: string - processedDate: - format: date-time - type: string pspReference: + description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request. type: string result: + description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.' type: string + required: + - pspReference + - result diff --git a/specs/yaml/RecurringService-v30.yaml b/specs/yaml/RecurringService-v30.yaml new file mode 100644 index 00000000..b4521d20 --- /dev/null +++ b/specs/yaml/RecurringService-v30.yaml @@ -0,0 +1,493 @@ +openapi: 3.0.0 +servers: + - url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v30' +info: + version: '30' + title: Adyen Recurring API + description: |- + The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request. + + For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization). + ## Authentication + To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example: + + ``` + curl + -U "ws@Company.YourCompany":"YourWsPassword" \ + -H "Content-Type: application/json" \ + ... + ``` + Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints). + + ## Versioning + Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number. + + For example: + ``` + https://pal-test.adyen.com/pal/servlet/Recurring/v30/disable + ``` + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +x-groups: + - General +paths: + /disable: + post: + summary: Disables stored payment details. + description: |- + Disables stored payment details to stop charging a shopper with this particular recurring detail ID. + + For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/). + x-groupName: General + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DisableRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DisableResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /listRecurringDetails: + post: + summary: Retrieves stored payment details for a shopper. + description: |- + Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper. + + For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/). + x-groupName: General + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecurringDetailsRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecurringDetailsResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /scheduleAccountUpdater: + post: + summary: Schedules running of the Account Updater. + description: |- + When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference: + * If the card information is provided, all the sub-fields for `card` are mandatory. + * If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory. + x-groupName: General + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +components: + schemas: + Address: + properties: + city: + description: The name of the city. + type: string + country: + description: |- + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. + type: string + houseNumberOrName: + description: The number or name of the house. + type: string + postalCode: + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' + type: string + stateOrProvince: + description: |- + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. + type: string + street: + description: |- + The name of the street. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. + type: string + required: + - street + - houseNumberOrName + - city + - postalCode + - country + BankAccount: + properties: + bankAccountNumber: + description: The bank account number (without separators). + type: string + bankCity: + description: The bank city. + type: string + bankLocationId: + description: The location id of the bank. The field value is `nil` in most cases. + type: string + bankName: + description: The name of the bank. + type: string + bic: + description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.' + type: string + countryCode: + description: |- + Country code where the bank is located. + + A valid value is an ISO two-character country code (e.g. 'NL'). + type: string + iban: + description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).' + type: string + ownerName: + description: |- + The name of the bank account holder. + If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: + * χ12 is converted to ch12. + * üA is converted to euA. + * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. + After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: + * John17 - allowed. + * J17 - allowed. + * 171 - not allowed. + * John-7 - allowed. + > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'. + type: string + taxId: + description: The bank account holder's tax ID. + type: string + Card: + properties: + cvc: + description: |- + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: + * CVV2/CVC2 – length: 3 digits + * CID – length: 4 digits + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). + > When this value is returned in a response, it is always empty because it is not stored. + maxLength: 20 + minLength: 1 + type: string + expiryMonth: + description: |- + The card expiry month. + Format: 2 digits, zero-padded for single digits. For example: + * 03 = March + * 11 = November + maxLength: 2 + minLength: 1 + type: string + expiryYear: + description: |- + The card expiry year. + Format: 4 digits. For example: 2020 + maxLength: 4 + minLength: 4 + type: string + holderName: + description: 'The name of the cardholder, as printed on the card.' + maxLength: 50 + minLength: 1 + type: string + issueNumber: + description: The issue number of the card (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + number: + description: |- + The card number (4-19 characters). Do not use any separators. + When this value is returned in a response, only the last 4 digits of the card number are returned. + maxLength: 19 + minLength: 4 + type: string + startMonth: + description: The month component of the start date (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + startYear: + description: The year component of the start date (for some UK debit cards only). + maxLength: 4 + minLength: 4 + type: string + required: + - number + - expiryMonth + - expiryYear + - holderName + DisableRequest: + properties: + contract: + description: |- + Specify the contract if you only want to disable a specific use. + + This field can be set to one of the following values, or to their combination (comma-separated): + * ONECLICK + * RECURRING + * PAYOUT + type: string + merchantAccount: + description: The merchant account identifier with which you want to process the transaction. + type: string + recurringDetailReference: + description: |- + The ID that uniquely identifies the recurring detail reference. + + If it is not provided, the whole recurring contract of the `shopperReference` will be disabled, which includes all recurring details. + type: string + shopperReference: + description: |- + The ID that uniquely identifies the shopper. + + This `shopperReference` must be the same as the `shopperReference` used in the initial payment. + type: string + required: + - merchantAccount + - shopperReference + DisableResult: + properties: + response: + description: 'Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].' + type: string + Name: + properties: + firstName: + description: The first name. + type: string + gender: + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. + enum: + - MALE + - FEMALE + - UNKNOWN + maxLength: 1 + minLength: 1 + type: string + infix: + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + - gender + Recurring: + properties: + contract: + description: |- + 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/checkout/online-payouts). + enum: + - ONECLICK + - RECURRING + - PAYOUT + type: string + recurringDetailName: + description: A descriptive name for this detail. + type: string + tokenService: + description: The name of the token service. + enum: + - VISATOKENSERVICE + - MCTOKENSERVICE + type: string + RecurringDetail: + properties: + additionalData: + description: |- + This field contains additional data, which may be returned in a particular response. + + The additionalData object consists of entries, each of which includes the key and value. + type: object + alias: + description: |- + The alias of the credit card number. + + Applies only to recurring contracts storing credit card details + type: string + aliasType: + description: |- + The alias type of the credit card number. + + Applies only to recurring contracts storing credit card details. + type: string + bank: + description: A container for bank account data. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: A container for card data. + $ref: '#/components/schemas/Card' + contractTypes: + description: Types of recurring contracts. + items: + type: string + type: array + creationDate: + description: The date when the recurring details were created. + format: date-time + type: string + firstPspReference: + description: The `pspReference` of the first recurring payment that created the recurring detail. + type: string + name: + description: An optional descriptive name for this recurring detail. + type: string + paymentMethodVariant: + description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).' + type: string + recurringDetailReference: + description: The reference that uniquely identifies the recurring detail. + type: string + shopperName: + description: The name of the shopper. + $ref: '#/components/schemas/Name' + socialSecurityNumber: + description: A shopper's social security number (only in countries where it is legal to collect). + type: string + variant: + description: 'The payment method, such as “mc", "visa", "ideal", "paypal".' + type: string + required: + - recurringDetailReference + - variant + RecurringDetailsRequest: + properties: + merchantAccount: + description: The merchant account identifier you want to process the (transaction) request with. + type: string + recurring: + description: |- + A container for the type of a recurring contract to be retrieved. + + The contract value needs to match the contract value submitted in the payment transaction used to create a recurring contract. + However, if `ONECLICK,RECURRING` is the original contract definition in the initial payment, then `contract` should take either `ONECLICK` or `RECURRING`, depending on whether or not you want the shopper to enter their card's security code when they finalize their purchase. + $ref: '#/components/schemas/Recurring' + shopperReference: + description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID). + type: string + required: + - merchantAccount + - shopperReference + RecurringDetailsResult: + properties: + creationDate: + description: The date when the recurring details were created. + format: date-time + type: string + details: + description: Payment details stored for recurring payments. + items: + $ref: '#/components/schemas/RecurringDetail' + type: array + lastKnownShopperEmail: + description: The most recent email for this shopper (if available). + type: string + shopperReference: + description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID). + type: string + ScheduleAccountUpdaterRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + card: + description: |- + A container for credit card data. + + Optional if `shopperReference` and `selectedRecurringDetailReference` are provided. + $ref: '#/components/schemas/Card' + merchantAccount: + description: Account of the merchant. + type: string + reference: + description: A reference that merchants can apply for the call. + type: string + selectedRecurringDetailReference: + description: |- + The selected detail recurring reference. + + Optional if `card` is provided. + type: string + shopperReference: + description: |- + The reference of the shopper that owns the recurring contract. + + Optional if `card` is provided. + type: string + required: + - merchantAccount + - reference + ScheduleAccountUpdaterResult: + properties: + pspReference: + description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request. + type: string + result: + description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.' + type: string + required: + - pspReference + - result diff --git a/specs/yaml/RecurringService-v40.yaml b/specs/yaml/RecurringService-v40.yaml new file mode 100644 index 00000000..ded4185e --- /dev/null +++ b/specs/yaml/RecurringService-v40.yaml @@ -0,0 +1,500 @@ +openapi: 3.0.0 +servers: + - url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v40' +info: + version: '40' + title: Adyen Recurring API + description: |- + The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request. + + For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization). + ## Authentication + To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example: + + ``` + curl + -U "ws@Company.YourCompany":"YourWsPassword" \ + -H "Content-Type: application/json" \ + ... + ``` + Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints). + + ## Versioning + Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number. + + For example: + ``` + https://pal-test.adyen.com/pal/servlet/Recurring/v40/disable + ``` + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +x-groups: + - General +paths: + /disable: + post: + summary: Disables stored payment details. + description: |- + Disables stored payment details to stop charging a shopper with this particular recurring detail ID. + + For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/). + x-groupName: General + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DisableRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DisableResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /listRecurringDetails: + post: + summary: Retrieves stored payment details for a shopper. + description: |- + Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper. + + For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/). + x-groupName: General + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecurringDetailsRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecurringDetailsResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /scheduleAccountUpdater: + post: + summary: Schedules running of the Account Updater. + description: |- + When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference: + * If the card information is provided, all the sub-fields for `card` are mandatory. + * If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory. + x-groupName: General + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +components: + schemas: + Address: + properties: + city: + description: The name of the city. + type: string + country: + description: |- + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. + type: string + houseNumberOrName: + description: The number or name of the house. + type: string + postalCode: + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' + type: string + stateOrProvince: + description: |- + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. + type: string + street: + description: |- + The name of the street. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. + type: string + required: + - street + - houseNumberOrName + - city + - postalCode + - country + BankAccount: + properties: + bankAccountNumber: + description: The bank account number (without separators). + type: string + bankCity: + description: The bank city. + type: string + bankLocationId: + description: The location id of the bank. The field value is `nil` in most cases. + type: string + bankName: + description: The name of the bank. + type: string + bic: + description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.' + type: string + countryCode: + description: |- + Country code where the bank is located. + + A valid value is an ISO two-character country code (e.g. 'NL'). + type: string + iban: + description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).' + type: string + ownerName: + description: |- + The name of the bank account holder. + If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: + * χ12 is converted to ch12. + * üA is converted to euA. + * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. + After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: + * John17 - allowed. + * J17 - allowed. + * 171 - not allowed. + * John-7 - allowed. + > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'. + type: string + taxId: + description: The bank account holder's tax ID. + type: string + Card: + properties: + cvc: + description: |- + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: + * CVV2/CVC2 – length: 3 digits + * CID – length: 4 digits + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). + > When this value is returned in a response, it is always empty because it is not stored. + maxLength: 20 + minLength: 1 + type: string + expiryMonth: + description: |- + The card expiry month. + Format: 2 digits, zero-padded for single digits. For example: + * 03 = March + * 11 = November + maxLength: 2 + minLength: 1 + type: string + expiryYear: + description: |- + The card expiry year. + Format: 4 digits. For example: 2020 + maxLength: 4 + minLength: 4 + type: string + holderName: + description: 'The name of the cardholder, as printed on the card.' + maxLength: 50 + minLength: 1 + type: string + issueNumber: + description: The issue number of the card (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + number: + description: |- + The card number (4-19 characters). Do not use any separators. + When this value is returned in a response, only the last 4 digits of the card number are returned. + maxLength: 19 + minLength: 4 + type: string + startMonth: + description: The month component of the start date (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + startYear: + description: The year component of the start date (for some UK debit cards only). + maxLength: 4 + minLength: 4 + type: string + required: + - number + - expiryMonth + - expiryYear + - holderName + DisableRequest: + properties: + contract: + description: |- + Specify the contract if you only want to disable a specific use. + + This field can be set to one of the following values, or to their combination (comma-separated): + * ONECLICK + * RECURRING + * PAYOUT + type: string + merchantAccount: + description: The merchant account identifier with which you want to process the transaction. + type: string + recurringDetailReference: + description: |- + The ID that uniquely identifies the recurring detail reference. + + If it is not provided, the whole recurring contract of the `shopperReference` will be disabled, which includes all recurring details. + type: string + shopperReference: + description: |- + The ID that uniquely identifies the shopper. + + This `shopperReference` must be the same as the `shopperReference` used in the initial payment. + type: string + required: + - merchantAccount + - shopperReference + DisableResult: + properties: + response: + description: 'Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].' + type: string + Name: + properties: + firstName: + description: The first name. + type: string + gender: + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. + enum: + - MALE + - FEMALE + - UNKNOWN + maxLength: 1 + minLength: 1 + type: string + infix: + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + - gender + Recurring: + properties: + contract: + description: |- + 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/checkout/online-payouts). + enum: + - ONECLICK + - RECURRING + - PAYOUT + type: string + recurringDetailName: + description: A descriptive name for this detail. + type: string + recurringExpiry: + description: Date after which no further authorisations shall be performed. Only for 3D Secure 2. + format: date-time + type: string + recurringFrequency: + description: Minimum number of days between authorisations. Only for 3D Secure 2. + type: string + tokenService: + description: The name of the token service. + enum: + - VISATOKENSERVICE + - MCTOKENSERVICE + type: string + RecurringDetail: + properties: + additionalData: + description: |- + This field contains additional data, which may be returned in a particular response. + + The additionalData object consists of entries, each of which includes the key and value. + type: object + alias: + description: |- + The alias of the credit card number. + + Applies only to recurring contracts storing credit card details + type: string + aliasType: + description: |- + The alias type of the credit card number. + + Applies only to recurring contracts storing credit card details. + type: string + bank: + description: A container for bank account data. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: A container for card data. + $ref: '#/components/schemas/Card' + contractTypes: + description: Types of recurring contracts. + items: + type: string + type: array + creationDate: + description: The date when the recurring details were created. + format: date-time + type: string + firstPspReference: + description: The `pspReference` of the first recurring payment that created the recurring detail. + type: string + name: + description: An optional descriptive name for this recurring detail. + type: string + paymentMethodVariant: + description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).' + type: string + recurringDetailReference: + description: The reference that uniquely identifies the recurring detail. + type: string + shopperName: + description: The name of the shopper. + $ref: '#/components/schemas/Name' + socialSecurityNumber: + description: A shopper's social security number (only in countries where it is legal to collect). + type: string + variant: + description: 'The payment method, such as “mc", "visa", "ideal", "paypal".' + type: string + required: + - recurringDetailReference + - variant + RecurringDetailsRequest: + properties: + merchantAccount: + description: The merchant account identifier you want to process the (transaction) request with. + type: string + recurring: + description: |- + A container for the type of a recurring contract to be retrieved. + + The contract value needs to match the contract value submitted in the payment transaction used to create a recurring contract. + However, if `ONECLICK,RECURRING` is the original contract definition in the initial payment, then `contract` should take either `ONECLICK` or `RECURRING`, depending on whether or not you want the shopper to enter their card's security code when they finalize their purchase. + $ref: '#/components/schemas/Recurring' + shopperReference: + description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID). + type: string + required: + - merchantAccount + - shopperReference + RecurringDetailsResult: + properties: + creationDate: + description: The date when the recurring details were created. + format: date-time + type: string + details: + description: Payment details stored for recurring payments. + items: + $ref: '#/components/schemas/RecurringDetail' + type: array + lastKnownShopperEmail: + description: The most recent email for this shopper (if available). + type: string + shopperReference: + description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID). + type: string + ScheduleAccountUpdaterRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + card: + description: |- + A container for credit card data. + + Optional if `shopperReference` and `selectedRecurringDetailReference` are provided. + $ref: '#/components/schemas/Card' + merchantAccount: + description: Account of the merchant. + type: string + reference: + description: A reference that merchants can apply for the call. + type: string + selectedRecurringDetailReference: + description: |- + The selected detail recurring reference. + + Optional if `card` is provided. + type: string + shopperReference: + description: |- + The reference of the shopper that owns the recurring contract. + + Optional if `card` is provided. + type: string + required: + - merchantAccount + - reference + ScheduleAccountUpdaterResult: + properties: + pspReference: + description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request. + type: string + result: + description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.' + type: string + required: + - pspReference + - result diff --git a/specs/yaml/RecurringService-v49.yaml b/specs/yaml/RecurringService-v49.yaml new file mode 100644 index 00000000..310d49ea --- /dev/null +++ b/specs/yaml/RecurringService-v49.yaml @@ -0,0 +1,500 @@ +openapi: 3.0.0 +servers: + - url: 'https://pal-test.adyen.com/pal/servlet/Recurring/v49' +info: + version: '49' + title: Adyen Recurring API + description: |- + The Recurring APIs allow you to manage and remove your tokens or saved payment details. Tokens should be created with validation during a payment request. + + For more information, refer to our [Tokenization documentation](https://docs.adyen.com/checkout/tokenization). + ## Authentication + To connect to the Recurring API, you must use your basic authentication credentials. For this, create your web service user, as described in [How to get the WS user password](https://docs.adyen.com/user-management/how-to-get-the-web-service-ws-user-password). Then use its credentials to authenticate your request, for example: + + ``` + curl + -U "ws@Company.YourCompany":"YourWsPassword" \ + -H "Content-Type: application/json" \ + ... + ``` + Note that when going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints). + + ## Versioning + Recurring API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number. + + For example: + ``` + https://pal-test.adyen.com/pal/servlet/Recurring/v49/disable + ``` + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +x-groups: + - General +paths: + /disable: + post: + summary: Disables stored payment details. + description: |- + Disables stored payment details to stop charging a shopper with this particular recurring detail ID. + + For more information, refer to [Disable stored details](https://docs.adyen.com/classic-integration/recurring-payments/disable-stored-details/). + x-groupName: General + x-sortIndex: 2 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DisableRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DisableResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /listRecurringDetails: + post: + summary: Retrieves stored payment details for a shopper. + description: |- + Lists the stored payment details for a shopper, if there are any available. The recurring detail ID can be used with a regular authorisation request to charge the shopper. A summary of the payment detail is returned for presentation to the shopper. + + For more information, refer to [Retrieve stored details](https://docs.adyen.com/classic-integration/recurring-payments/retrieve-stored-details/). + x-groupName: General + x-sortIndex: 1 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RecurringDetailsRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RecurringDetailsResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. + /scheduleAccountUpdater: + post: + summary: Schedules running of the Account Updater. + description: |- + When making the API call, you can submit either the credit card information, or the recurring detail reference and the shopper reference: + * If the card information is provided, all the sub-fields for `card` are mandatory. + * If the recurring detail reference is provided, the fields for `shopperReference` and `selectedRecurringDetailReference` are mandatory. + x-groupName: General + x-sortIndex: 3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleAccountUpdaterResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +components: + schemas: + Address: + properties: + city: + description: The name of the city. + type: string + country: + description: |- + The two-character country code as defined in ISO-3166-1 alpha-2. For example, **US**. + > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`. + type: string + houseNumberOrName: + description: The number or name of the house. + type: string + postalCode: + description: 'A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.' + type: string + stateOrProvince: + description: |- + State or province codes as defined in ISO 3166-2. For example, **SF** in US or **ON** for Canada. + > Required for the US and Canada. + type: string + street: + description: |- + The name of the street. + > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`. + type: string + required: + - street + - houseNumberOrName + - city + - postalCode + - country + BankAccount: + properties: + bankAccountNumber: + description: The bank account number (without separators). + type: string + bankCity: + description: The bank city. + type: string + bankLocationId: + description: The location id of the bank. The field value is `nil` in most cases. + type: string + bankName: + description: The name of the bank. + type: string + bic: + description: 'The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.' + type: string + countryCode: + description: |- + Country code where the bank is located. + + A valid value is an ISO two-character country code (e.g. 'NL'). + type: string + iban: + description: 'The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).' + type: string + ownerName: + description: |- + The name of the bank account holder. + If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: + * χ12 is converted to ch12. + * üA is converted to euA. + * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. + After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: + * John17 - allowed. + * J17 - allowed. + * 171 - not allowed. + * John-7 - allowed. + > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'. + type: string + taxId: + description: The bank account holder's tax ID. + type: string + Card: + properties: + cvc: + description: |- + The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: + * CVV2/CVC2 – length: 3 digits + * CID – length: 4 digits + > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. + > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). + > When this value is returned in a response, it is always empty because it is not stored. + maxLength: 20 + minLength: 1 + type: string + expiryMonth: + description: |- + The card expiry month. + Format: 2 digits, zero-padded for single digits. For example: + * 03 = March + * 11 = November + maxLength: 2 + minLength: 1 + type: string + expiryYear: + description: |- + The card expiry year. + Format: 4 digits. For example: 2020 + maxLength: 4 + minLength: 4 + type: string + holderName: + description: 'The name of the cardholder, as printed on the card.' + maxLength: 50 + minLength: 1 + type: string + issueNumber: + description: The issue number of the card (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + number: + description: |- + The card number (4-19 characters). Do not use any separators. + When this value is returned in a response, only the last 4 digits of the card number are returned. + maxLength: 19 + minLength: 4 + type: string + startMonth: + description: The month component of the start date (for some UK debit cards only). + maxLength: 2 + minLength: 1 + type: string + startYear: + description: The year component of the start date (for some UK debit cards only). + maxLength: 4 + minLength: 4 + type: string + required: + - number + - expiryMonth + - expiryYear + - holderName + DisableRequest: + properties: + contract: + description: |- + Specify the contract if you only want to disable a specific use. + + This field can be set to one of the following values, or to their combination (comma-separated): + * ONECLICK + * RECURRING + * PAYOUT + type: string + merchantAccount: + description: The merchant account identifier with which you want to process the transaction. + type: string + recurringDetailReference: + description: |- + The ID that uniquely identifies the recurring detail reference. + + If it is not provided, the whole recurring contract of the `shopperReference` will be disabled, which includes all recurring details. + type: string + shopperReference: + description: |- + The ID that uniquely identifies the shopper. + + This `shopperReference` must be the same as the `shopperReference` used in the initial payment. + type: string + required: + - merchantAccount + - shopperReference + DisableResult: + properties: + response: + description: 'Depending on whether a specific recurring detail was in the request, result is either [detail-successfully-disabled] or [all-details-successfully-disabled].' + type: string + Name: + properties: + firstName: + description: The first name. + type: string + gender: + description: |- + The gender. + >The following values are permitted: `MALE`, `FEMALE`, `UNKNOWN`. + enum: + - MALE + - FEMALE + - UNKNOWN + maxLength: 1 + minLength: 1 + type: string + infix: + description: |- + The name's infix, if applicable. + >A maximum length of twenty (20) characters is imposed. + type: string + lastName: + description: The last name. + type: string + required: + - firstName + - lastName + - gender + Recurring: + properties: + contract: + description: |- + 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/checkout/online-payouts). + enum: + - ONECLICK + - RECURRING + - PAYOUT + type: string + recurringDetailName: + description: A descriptive name for this detail. + type: string + recurringExpiry: + description: Date after which no further authorisations shall be performed. Only for 3D Secure 2. + format: date-time + type: string + recurringFrequency: + description: Minimum number of days between authorisations. Only for 3D Secure 2. + type: string + tokenService: + description: The name of the token service. + enum: + - VISATOKENSERVICE + - MCTOKENSERVICE + type: string + RecurringDetail: + properties: + additionalData: + description: |- + This field contains additional data, which may be returned in a particular response. + + The additionalData object consists of entries, each of which includes the key and value. + type: object + alias: + description: |- + The alias of the credit card number. + + Applies only to recurring contracts storing credit card details + type: string + aliasType: + description: |- + The alias type of the credit card number. + + Applies only to recurring contracts storing credit card details. + type: string + bank: + description: A container for bank account data. + $ref: '#/components/schemas/BankAccount' + billingAddress: + description: The billing address. + $ref: '#/components/schemas/Address' + card: + description: A container for card data. + $ref: '#/components/schemas/Card' + contractTypes: + description: Types of recurring contracts. + items: + type: string + type: array + creationDate: + description: The date when the recurring details were created. + format: date-time + type: string + firstPspReference: + description: The `pspReference` of the first recurring payment that created the recurring detail. + type: string + name: + description: An optional descriptive name for this recurring detail. + type: string + paymentMethodVariant: + description: 'The type or sub-brand of a payment method used, e.g. Visa Debit, Visa Corporate, etc. For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/api-reference/common-api/paymentmethodvariant).' + type: string + recurringDetailReference: + description: The reference that uniquely identifies the recurring detail. + type: string + shopperName: + description: The name of the shopper. + $ref: '#/components/schemas/Name' + socialSecurityNumber: + description: A shopper's social security number (only in countries where it is legal to collect). + type: string + variant: + description: 'The payment method, such as “mc", "visa", "ideal", "paypal".' + type: string + required: + - recurringDetailReference + - variant + RecurringDetailsRequest: + properties: + merchantAccount: + description: The merchant account identifier you want to process the (transaction) request with. + type: string + recurring: + description: |- + A container for the type of a recurring contract to be retrieved. + + The contract value needs to match the contract value submitted in the payment transaction used to create a recurring contract. + However, if `ONECLICK,RECURRING` is the original contract definition in the initial payment, then `contract` should take either `ONECLICK` or `RECURRING`, depending on whether or not you want the shopper to enter their card's security code when they finalize their purchase. + $ref: '#/components/schemas/Recurring' + shopperReference: + description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID). + type: string + required: + - merchantAccount + - shopperReference + RecurringDetailsResult: + properties: + creationDate: + description: The date when the recurring details were created. + format: date-time + type: string + details: + description: Payment details stored for recurring payments. + items: + $ref: '#/components/schemas/RecurringDetail' + type: array + lastKnownShopperEmail: + description: The most recent email for this shopper (if available). + type: string + shopperReference: + description: The reference you use to uniquely identify the shopper (e.g. user ID or account ID). + type: string + ScheduleAccountUpdaterRequest: + properties: + additionalData: + description: 'This field contains additional data, which may be required for a particular request.' + type: object + card: + description: |- + A container for credit card data. + + Optional if `shopperReference` and `selectedRecurringDetailReference` are provided. + $ref: '#/components/schemas/Card' + merchantAccount: + description: Account of the merchant. + type: string + reference: + description: A reference that merchants can apply for the call. + type: string + selectedRecurringDetailReference: + description: |- + The selected detail recurring reference. + + Optional if `card` is provided. + type: string + shopperReference: + description: |- + The reference of the shopper that owns the recurring contract. + + Optional if `card` is provided. + type: string + required: + - merchantAccount + - reference + ScheduleAccountUpdaterResult: + properties: + pspReference: + description: Adyen's 16-character unique reference associated with the transaction. This value is globally unique; quote it when communicating with us about this request. + type: string + result: + description: 'The result of scheduling an Account Updater. If scheduling was successful, this field returns **Success**; otherwise it contains the error message.' + type: string + required: + - pspReference + - result diff --git a/specs/yaml/TestCardService-v1.yaml b/specs/yaml/TestCardService-v1.yaml new file mode 100644 index 00000000..093e90d4 --- /dev/null +++ b/specs/yaml/TestCardService-v1.yaml @@ -0,0 +1,217 @@ +openapi: 3.0.0 +servers: + - url: 'https://pal-test.adyen.com/pal/services/TestCard/v1' +info: + version: '1' + title: Adyen Test Cards API + description: 'The Test Cards API provides endpoints for generating custom test card numbers. For more information, refer to [Custom test cards](https://docs.adyen.com/development-resources/test-cards/create-test-cards) documentation.' + termsOfService: 'https://www.adyen.com/legal/terms-and-conditions' + contact: + name: Adyen Support + url: 'https://support.adyen.com/' + email: support@adyen.com +x-groups: + - General +paths: + /createTestCardRanges: + post: + summary: Creates one or more test card ranges. + description: Creates one or more test card ranges. + x-groupName: General + x-sortIndex: 0 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTestCardRangesRequest' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTestCardRangesResult' + description: OK - the request has succeeded. + '400': + description: Bad Request - a problem reading or understanding the request. + '401': + description: Unauthorized - authentication required. + '403': + description: Forbidden - insufficient permissions to process the request. + '422': + description: Unprocessable Entity - a request validation error. + '500': + description: Internal Server Error - the server could not process the request. +components: + schemas: + AvsAddress: + properties: + streetAddress: + description: |- + The street and house number of the address. + + Example: 1 Infinite Loop, Cupertino. + type: string + zip: + description: |- + The zip or post code of the address. + + Example: CA 95014 + type: string + required: + - streetAddress + CreateTestCardRangesRequest: + properties: + accountCode: + description: 'The code of the account, for which the test card ranges should be created.' + type: string + accountTypeCode: + description: |- + The type of the account, for which the test card ranges should be created. + + Permitted values: + * Company + * MerchantAccount + > These values are case-sensitive. + type: string + testCardRanges: + description: A list of test card ranges to create. + items: + $ref: '#/components/schemas/TestCardRange' + type: array + required: + - accountTypeCode + - accountCode + - testCardRanges + CreateTestCardRangesResult: + properties: + rangeCreationResults: + description: The results of the test card creation. + items: + $ref: '#/components/schemas/TestCardRangeCreationResult' + type: array + required: + - rangeCreationResults + TestCardRange: + properties: + address: + description: 'Contains the billing address of the card holder. The address details need to be AVS-compliant, which means that you need to provide at least street address.' + $ref: '#/components/schemas/AvsAddress' + cardHolderName: + description: 'The name of the card holder, as it appears on the card, for the test card range.' + type: string + cvc: + description: |- + The test card range security code. + + Example: 123 + type: string + expiryMonth: + description: |- + Expiry month for the test card range. + + Allowed values: + * JANUARY + * FEBRUARY + * MARCH + * APRIL + * MAY + * JUNE + * JULY + * AUGUST + * SEPTEMBER + * OCTOBER + * NOVEMBER + * DECEMBER + enum: + - APRIL + - AUGUST + - DECEMBER + - FEBRUARY + - JANUARY + - JULY + - JUNE + - MARCH + - MAY + - NOVEMBER + - OCTOBER + - SEPTEMBER + type: string + expiryYear: + description: |- + Expiry year for the test card range. + + Example: 2020 + format: int32 + type: integer + rangeEnd: + description: |- + The last test card number in the test card range (inclusive): + + * Min 6, max 19 digits + * BIN compliant + Example: 5432 1234 1234 4321 + type: string + rangeStart: + description: |- + The first test card number in the test card range (inclusive): + + * Min 6, max 19 digits + * BIN compliant + Example: 5432 1234 1234 1234 + type: string + threeDDirectoryServerResponse: + description: |- + 3D Secure server response. It notifies whether the specified card holder is enrolled in a 3D Secure service. Possible values: + + * Y (Authentication available) + * N (Card holder not enrolled/not participating) + * U (Unable to authenticate) + enum: + - 'N' + - U + - 'Y' + type: string + threeDPassword: + description: The password used for 3D Secure authentication. + type: string + threeDUsername: + description: The username used for 3D Secure authentication. + type: string + required: + - rangeStart + - rangeEnd + - expiryMonth + - expiryYear + - cardHolderName + TestCardRangeCreationResult: + properties: + cardNumberRangeEnd: + description: |- + The last test card number in the generated test card range. + + Example: 5432 1234 1234 4321 + type: string + cardNumberRangeStart: + description: |- + The first test card number in the generated test card range. + + Example: 5432 1234 1234 1234 + type: string + creationResultCode: + description: |- + Notification message. It informs about the outcome of the operation. Possible values: + * CREATED + * ALREADY_EXISTS + * ERROR + enum: + - ALREADY_EXISTS + - CREATED + - ERROR + type: string + message: + description: An optional information message about the result. + type: string + required: + - cardNumberRangeStart + - cardNumberRangeEnd + - creationResultCode