openapi: 3.1.0
info:
version: '6'
x-publicVersion: true
title: Adyen Account acceptDispute Payout API
description: "This API is used for the classic integration. If you are just starting your implementation, refer to our [new integration guide](https://docs.adyen.com/marketplaces-and-platforms) instead.\n\nThe Account API provides endpoints for managing account-related entities on your platform. These related entities include account holders, accounts, bank accounts, shareholders, and verification-related documents. The management operations include actions such as creation, retrieval, updating, and deletion of them.\n\nFor more information, refer to our [documentation](https://docs.adyen.com/marketplaces-and-platforms/classic).\n## Authentication\nYour Adyen contact will provide your API credential and an API key. To connect to the API, add an `X-API-Key` header with the API key as the value, for example:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication. For example:\n\n```\ncurl\n-U \"ws@MarketPlace.YOUR_PLATFORM_ACCOUNT\":\"YOUR_WS_PASSWORD\" \\\n-H \"Content-Type: application/json\" \\\n...\n```\nWhen going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).\n\n## Versioning\nThe Account API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.\n\nFor example:\n```\nhttps://cal-test.adyen.com/cal/services/Account/v6/createAccountHolder\n```"
x-timestamp: '2023-05-30T15:27:20Z'
termsOfService: https://www.adyen.com/legal/terms-and-conditions
contact:
name: Adyen Developer Experience team
url: https://github.com/Adyen/adyen-openapi
servers:
- url: https://cal-test.adyen.com/cal/services/Account/v6
tags:
- name: Payout
paths:
/payout:
post:
tags:
- Payout
summary: Adyen Make an Instant Card Payout
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-addedInVersion: '11'
operationId: post-payout
x-sortIndex: 1
x-methodName: payout
security:
- BasicAuth: []
- ApiKeyAuth: []
requestBody:
content:
application/json:
examples:
payout-b2c:
$ref: '#/components/examples/post-payout-payout-b2c'
payout-p2p:
$ref: '#/components/examples/post-payout-payout-p2p'
schema:
$ref: '#/components/schemas/PayoutRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutResponse'
examples:
post-payout200Example:
summary: Default post-payout 200 response
x-microcks-default: true
value:
additionalData: {}
authCode: CODE123
dccAmount: 1000
dccSignature: example_value
fraudResult: example_value
issuerUrl: https://example.com/resource
md: example_value
paRequest: example_value
pspReference: REF-001
refusalReason: REF-001
resultCode: AuthenticationFinished
description: OK - the request has succeeded.
'400':
content:
application/json:
examples:
generic:
$ref: '#/components/examples/generic-400'
schema:
$ref: '#/components/schemas/ServiceError'
description: Bad Request - a problem reading or understanding the request.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
examples:
post-payout401Example:
summary: Default post-payout 401 response
x-microcks-default: true
value:
additionalData: {}
errorCode: CODE123
errorType: standard
message: example_value
pspReference: REF-001
status: 500
description: Unauthorized - authentication required.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
examples:
post-payout403Example:
summary: Default post-payout 403 response
x-microcks-default: true
value:
additionalData: {}
errorCode: CODE123
errorType: standard
message: example_value
pspReference: REF-001
status: 500
description: Forbidden - insufficient permissions to process the request.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
examples:
post-payout422Example:
summary: Default post-payout 422 response
x-microcks-default: true
value:
additionalData: {}
errorCode: CODE123
errorType: standard
message: example_value
pspReference: REF-001
status: 500
description: Unprocessable Entity - a request validation error.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
examples:
post-payout500Example:
summary: Default post-payout 500 response
x-microcks-default: true
value:
additionalData: {}
errorCode: CODE123
errorType: standard
message: example_value
pspReference: REF-001
status: 500
description: Internal Server Error - the server could not process the request.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
ResponseAdditionalDataNetworkTokens:
properties:
networkToken.available:
description: Indicates whether a network token is available for the specified card.
type: string
networkToken.bin:
description: The Bank Identification Number of a tokenized card, which is the first six digits of a card number.
type: string
networkToken.tokenSummary:
description: The last four digits of a network token.
type: string
type: object
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/online-payments/online-payouts).'
enum:
- ONECLICK
- RECURRING
- PAYOUT
type: string
recurringDetailName:
description: A descriptive name for this detail.
type: string
recurringExpiry:
x-addedInVersion: '40'
description: Date after which no further authorisations shall be performed. Only for 3D Secure 2.
format: date-time
type: string
recurringFrequency:
x-addedInVersion: '40'
description: Minimum number of days between authorisations. Only for 3D Secure 2.
type: string
tokenService:
x-addedInVersion: '25'
description: The name of the token service.
enum:
- VISATOKENSERVICE
- MCTOKENSERVICE
- AMEXTOKENSERVICE
- TOKEN_SHARING
type: string
type: object
PayoutResponse:
properties:
additionalData:
additionalProperties:
type: string
x-anyOf:
- $ref: '#/components/schemas/ResponseAdditionalData3DSecure'
- $ref: '#/components/schemas/ResponseAdditionalDataBillingAddress'
- $ref: '#/components/schemas/ResponseAdditionalDataCard'
- $ref: '#/components/schemas/ResponseAdditionalDataCommon'
- $ref: '#/components/schemas/ResponseAdditionalDataDomesticError'
- $ref: '#/components/schemas/ResponseAdditionalDataInstallments'
- $ref: '#/components/schemas/ResponseAdditionalDataNetworkTokens'
- $ref: '#/components/schemas/ResponseAdditionalDataOpi'
- $ref: '#/components/schemas/ResponseAdditionalDataSepa'
description: 'Contains additional information about the payment. Some data fields are included only if you select them first: Go to **Customer Area** > **Developers** > **Additional data**.'
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://www.adyen.help/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://www.adyen.help/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.
maxLength: 20000
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 reference associated with the transaction/request. This value is globally unique; quote it when communicating with us about this request.
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.
For more information, see [Refusal reasons](https://docs.adyen.com/development-resources/refusal-reasons).'
type: string
resultCode:
description: 'The result of the payment. For more information, see [Result codes](https://docs.adyen.com/online-payments/payment-result-codes).
Possible values:
* **AuthenticationFinished** – The payment has been successfully authenticated with 3D Secure 2. Returned for 3D Secure 2 authentication-only transactions.
* **AuthenticationNotRequired** – The transaction does not require 3D Secure authentication. Returned for [standalone authentication-only integrations](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only).
* **Authorised** – The payment was successfully authorised. This state serves as an indicator to proceed with the delivery of goods and services. This is a final state.
* **Cancelled** – Indicates the payment has been cancelled (either by the shopper or the merchant) before processing was completed. This is a final state.
* **ChallengeShopper** – The issuer requires further shopper interaction before the payment can be authenticated. Returned for 3D Secure 2 transactions.
* **Error** – There was an error when the payment was being processed. The reason is given in the `refusalReason` field. This is a final state.
* **IdentifyShopper** – The issuer requires the shopper''s device fingerprint before the payment can be authenticated. Returned for 3D Secure 2 transactions.
* **PartiallyAuthorised** – The payment has been authorised for a partial amount.
This happens for card payments when the merchant supports Partial Authorisations and the cardholder has insufficient funds.
* **Pending** – Indicates that it is not possible to obtain the final status of the payment. This can happen if the systems providing final status information for the payment are unavailable, or if the shopper needs to take further action to complete the payment.
* **PresentToShopper** – Indicates that the response contains additional information that you need to present to a shopper, so that they can use it to complete a payment.
* **Received** – Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments.
* **RedirectShopper** – Indicates the shopper should be redirected to an external web page or app to complete the authorisation.
* **Refused** – Indicates the payment was refused. The reason is given in the `refusalReason` field. This is a final state.'
enum:
- AuthenticationFinished
- AuthenticationNotRequired
- Authorised
- Cancelled
- ChallengeShopper
- Error
- IdentifyShopper
- PartiallyAuthorised
- Pending
- PresentToShopper
- Received
- RedirectShopper
- Refused
- Success
type: string
type: object
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/FraudCheckResultWrapper'
type: array
required:
- accountScore
type: object
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
type: object
Address:
properties:
city:
description: 'The name of the city. Maximum length: 3000 characters.'
maxLength: 3000
type: string
country:
description: 'The two-character ISO-3166-1 alpha-2 country code. For example, **US**.
> If you don''t know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.'
type: string
houseNumberOrName:
description: 'The number or name of the house. Maximum length: 3000 characters.'
maxLength: 3000
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: 'The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada.
> Required for the US and Canada.'
type: string
street:
description: 'The name of the street. Maximum length: 3000 characters.
> The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.'
maxLength: 3000
type: string
required:
- street
- houseNumberOrName
- city
- postalCode
- country
type: object
FundSource:
properties:
additionalData:
additionalProperties:
type: string
description: A map of name-value pairs for passing additional or industry-specific data.
type: object
billingAddress:
description: The address where to send the invoice.
$ref: '#/components/schemas/Address'
card:
description: 'Credit card data.
Optional if `shopperReference` and `selectedRecurringDetailReference` are provided.'
$ref: '#/components/schemas/Card'
shopperEmail:
description: Email address of the person.
type: string
shopperName:
description: Name of the person.
$ref: '#/components/schemas/Name'
telephoneNumber:
description: Phone number of the person
type: string
type: object
PayoutRequest:
properties:
amount:
description: The amount information for the transaction (in [minor units](https://docs.adyen.com/development-resources/currency-codes)). For [BIN or card verification](https://docs.adyen.com/payment-methods/cards/bin-data-and-card-verification) requests, set amount to 0 (zero).
$ref: '#/components/schemas/Amount'
billingAddress:
x-addedInVersion: '4'
description: 'The address where to send the invoice.
> The `billingAddress` object is required in the following scenarios. Include all of the fields within this object.
>* For 3D Secure 2 transactions in all browser-based and mobile implementations.
>* For cross-border payouts to and from Canada.'
$ref: '#/components/schemas/Address'
card:
description: 'A container for card data.
> Either `bankAccount` or `card` field must be provided in a payment request.'
$ref: '#/components/schemas/Card'
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:
x-addedInVersion: '64'
description: The person or entity funding the money.
$ref: '#/components/schemas/FundSource'
merchantAccount:
description: The merchant account identifier, with which you want to process the transaction.
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'
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
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
shopperEmail:
description: 'The shopper''s email address. We recommend that you provide this data, as it is used in velocity fraud checks.
> For 3D Secure 2 transactions, schemes require `shopperEmail` for all browser-based and mobile implementations.'
type: string
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
shopperName:
x-addedInVersion: '7'
description: The shopper's full name.
$ref: '#/components/schemas/Name'
shopperReference:
description: "Required for recurring payments. \nYour reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters.\n> Your reference must not include personally identifiable information (PII), for example name or email address."
type: string
telephoneNumber:
x-addedInVersion: '7'
description: The shopper's telephone number.
type: string
required:
- merchantAccount
- reference
- amount
type: object
ServiceError:
properties:
additionalData:
x-addedInVersion: '46'
additionalProperties:
type: string
description: Contains additional information about the payment. Some data fields are included only if you select them first. Go to **Customer Area** > **Developers** > **Additional data**.
type: object
errorCode:
description: The error code mapped to the error message.
type: string
errorType:
description: The category of the error.
type: string
message:
description: A short explanation of the issue.
type: string
pspReference:
description: The PSP reference of the payment.
type: string
status:
description: The HTTP response status.
format: int32
type: integer
type: object
ResponseAdditionalDataCard:
properties:
cardBin:
description: 'The first six digits of the card number.
This is the [Bank Identification Number (BIN)](https://docs.adyen.com/get-started-with-adyen/payment-glossary#bank-identification-number-bin) for card numbers with a six-digit BIN.
Example: 521234'
type: string
cardHolderName:
description: The cardholder name passed in the payment request.
type: string
cardIssuingBank:
description: The bank or the financial institution granting lines of credit through card association branded payment cards. This information can be included when available.
type: string
cardIssuingCountry:
description: 'The country where the card was issued.
Example: US'
type: string
cardIssuingCurrency:
description: "The currency in which the card is issued, if this information is available. Provided as the currency code or currency number from the ISO-4217 standard. \n\nExample: USD"
type: string
cardPaymentMethod:
description: 'The card payment method used for the transaction.
Example: amex'
type: string
cardSummary:
description: 'The last four digits of a card number.
> Returned only in case of a card payment.'
type: string
issuerBin:
description: 'The first eight digits of the card number. Only returned if the card number is 16 digits or more.
This is the [Bank Identification Number (BIN)](https://docs.adyen.com/get-started-with-adyen/payment-glossary#bank-identification-number-bin) for card numbers with an eight-digit BIN.
Example: 52123423'
type: string
type: object
Name:
properties:
firstName:
description: The first name.
type: string
lastName:
description: The last name.
type: string
required:
- firstName
- lastName
type: object
ResponseAdditionalDataDomesticError:
properties:
domesticRefusalReasonRaw:
description: "The reason the transaction was declined, given by the local issuer. \nCurrently available for merchants in Japan."
type: string
domesticShopperAdvice:
description: "The action the shopper should take, in a local language. \nCurrently available in Japanese, for merchants in Japan."
type: string
type: object
FraudCheckResultWrapper:
properties:
FraudCheckResult:
$ref: '#/components/schemas/FraudCheckResult'
ResponseAdditionalDataOpi:
properties:
opi.transToken:
description: 'Returned in the response if you included `opi.includeTransToken: true` in an ecommerce payment request. This contains an Oracle Payment Interface token that you can store in your Oracle Opera database to identify tokenized ecommerce transactions. For more information and required settings, see [Oracle Opera](https://docs.adyen.com/plugins/oracle-opera#opi-token-ecommerce).'
type: string
type: object
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
type: object
ResponseAdditionalDataInstallments:
properties:
installmentPaymentData.installmentType:
description: Type of installment. The value of `installmentType` should be **IssuerFinanced**.
type: string
installmentPaymentData.option[itemNr].annualPercentageRate:
description: Annual interest rate.
type: string
installmentPaymentData.option[itemNr].firstInstallmentAmount:
description: First Installment Amount in minor units.
type: string
installmentPaymentData.option[itemNr].installmentFee:
description: Installment fee amount in minor units.
type: string
installmentPaymentData.option[itemNr].interestRate:
description: Interest rate for the installment period.
type: string
installmentPaymentData.option[itemNr].maximumNumberOfInstallments:
description: Maximum number of installments possible for this payment.
type: string
installmentPaymentData.option[itemNr].minimumNumberOfInstallments:
description: Minimum number of installments possible for this payment.
type: string
installmentPaymentData.option[itemNr].numberOfInstallments:
description: Total number of installments possible for this payment.
type: string
installmentPaymentData.option[itemNr].subsequentInstallmentAmount:
description: Subsequent Installment Amount in minor units.
type: string
installmentPaymentData.option[itemNr].totalAmountDue:
description: Total amount in minor units.
type: string
installmentPaymentData.paymentOptions:
description: 'Possible values:
* PayInInstallmentsOnly
* PayInFullOnly
* PayInFullOrInstallments'
type: string
installments.value:
description: 'The number of installments that the payment amount should be charged with.
Example: 5
> Only relevant for card payments in countries that support installments.'
type: string
type: object
ResponseAdditionalDataSepa:
properties:
sepadirectdebit.dateOfSignature:
description: 'The transaction signature date.
Format: yyyy-MM-dd'
type: string
sepadirectdebit.mandateId:
description: Its value corresponds to the pspReference value of the transaction.
type: string
sepadirectdebit.sequenceType:
description: 'This field can take one of the following values:
* OneOff: (OOFF) Direct debit instruction to initiate exactly one direct debit transaction.
* First: (FRST) Initial/first collecti
# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adyen/refs/heads/main/openapi/adyen-payout-api-openapi.yml