Files
adyen-openapi/yaml/PayoutService-v30.yaml
Adyen Automation 6196e4c70e spec release
2025-06-10 15:03:26 +02:00

2646 lines
94 KiB
YAML

openapi: 3.1.0
servers:
- url: https://pal-test.adyen.com/pal/servlet/Payout/v30
info:
version: '30'
x-publicVersion: true
title: Adyen Payout API
description: "> The **Payout API is deprecated** and no longer supports new integrations.\
\ Do one of the following:\n>- If you are building a new integration, use the\
\ [Transfers API](https://docs.adyen.com/api-explorer/transfers/latest/overview)\
\ instead.\n> - If you are already using the Payout API, reach out to your Adyen\
\ contact to learn how to migrate to the Transfers API.\n>\n> With the Transfers\
\ API, you can:\n> - Handle multiple payout use cases with a single API.\n> -\
\ Use new payout functionalities, such as instant payouts to bank accounts.\n\
> - Receive webhooks with more details and defined transfer states.\n>\n> For\
\ more information about the payout features of the Transfers API, see our [Payouts](https://docs.adyen.com/payouts/payout-service)\
\ documentation.\n\n\nA set of API endpoints that allow you to store payout details,\
\ confirm, or decline a payout.\n\nFor more information, refer to [Online payouts](https://docs.adyen.com/online-payments/online-payouts).\n\
## Authentication\nTo use the Payout API, you need to have [two API credentials](https://docs.adyen.com/online-payments/online-payouts#payouts-to-bank-accounts-and-wallets):\
\ one for storing payout details and submitting payouts, and another one for confirming\
\ or declining payouts. If you don't have the required API credentials, contact\
\ our [Support Team](https://www.adyen.help/hc/en-us/requests/new).\n\nIf using\
\ an API key, 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](https://docs.adyen.com/development-resources/api-credentials#basic-authentication).\n\
\nThe following example shows how to authenticate your request with basic authentication\
\ when submitting a payout:\n\n```\ncurl\n-U \"storePayout@Company.YOUR_COMPANY_ACCOUNT\"\
:\"YOUR_BASIC_AUTHENTICATION_PASSWORD\" \\\n-H \"Content-Type: application/json\"\
\ \\\n...\n```\n\n## Versioning\nPayments 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://pal-test.adyen.com/pal/servlet/Payout/v30/payout\n\
```\n\n## Going live\n\nTo authenticate to the live endpoints, you need [API credentials](https://docs.adyen.com/development-resources/api-credentials)\
\ from your live Customer Area.\n\nThe live endpoint URLs contain a prefix which\
\ is unique to your company account:\n```\n\nhttps://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Payout/v30/payout\n\
```\n\nGet your `{PREFIX}` from your live Customer Area under **Developers** >\
\ **API URLs** > **Prefix**."
termsOfService: https://www.adyen.com/legal/terms-and-conditions
contact:
name: Adyen Developer Experience team
url: https://github.com/Adyen/adyen-openapi
tags:
- name: Initialization
- name: Reviewing
- name: Instant payouts
paths:
/confirmThirdParty:
post:
tags:
- Reviewing
summary: Confirm a payout
description: '> This endpoint is **deprecated** and no longer supports new integrations.
Do one of the following:
>- If you are building a new integration, use the [Transfers API](https://docs.adyen.com/api-explorer/transfers/latest/overview)
instead.
> - If you are already using the Payout API, reach out to your Adyen contact
to learn how to migrate to the Transfers API.
>
> With the Transfers API, you can:
> - Handle multiple payout use cases with a single API.
> - Use new payout functionalities, such as instant payouts to bank accounts.
> - Receive webhooks with more details and defined transfer states.
>
> For more information about the payout features of the Transfers API, see
our [Payouts](https://docs.adyen.com/payouts/payout-service) documentation.
Confirms a previously submitted payout.
To cancel a payout, use the `/declineThirdParty` endpoint.'
x-addedInVersion: '10'
operationId: post-confirmThirdParty
x-sortIndex: 1
x-methodName: confirmThirdParty
security:
- BasicAuth: []
- ApiKeyAuth: []
requestBody:
content:
application/json:
examples:
confirmThirdParty:
$ref: '#/components/examples/post-confirmThirdParty-confirmThirdParty'
schema:
$ref: '#/components/schemas/ModifyRequest'
responses:
'200':
content:
application/json:
examples:
confirmThirdParty:
$ref: '#/components/examples/post-confirmThirdParty-confirmThirdParty-200'
schema:
$ref: '#/components/schemas/ModifyResponse'
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'
description: Unauthorized - authentication required.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Forbidden - insufficient permissions to process the request.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Unprocessable Entity - a request validation error.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Internal Server Error - the server could not process the request.
/declineThirdParty:
post:
tags:
- Reviewing
summary: Cancel a payout
description: '> This endpoint is **deprecated** and no longer supports new integrations.
Do one of the following:
>- If you are building a new integration, use the [Transfers API](https://docs.adyen.com/api-explorer/transfers/latest/overview)
instead.
> - If you are already using the Payout API, reach out to your Adyen contact
to learn how to migrate to the Transfers API.
>
> With the Transfers API, you can:
> - Handle multiple payout use cases with a single API.
> - Use new payout functionalities, such as instant payouts to bank accounts.
> - Receive webhooks with more details and defined transfer states.
>
> For more information about the payout features of the Transfers API, see
our [Payouts](https://docs.adyen.com/payouts/payout-service) documentation.
Cancels a previously submitted payout.
To confirm and send a payout, use the `/confirmThirdParty` endpoint.'
x-addedInVersion: '10'
operationId: post-declineThirdParty
x-sortIndex: 2
x-methodName: declineThirdParty
security:
- BasicAuth: []
- ApiKeyAuth: []
requestBody:
content:
application/json:
examples:
declineThirdParty:
$ref: '#/components/examples/post-declineThirdParty-declineThirdParty'
schema:
$ref: '#/components/schemas/ModifyRequest'
responses:
'200':
content:
application/json:
examples:
declineThirdParty:
$ref: '#/components/examples/post-declineThirdParty-declineThirdParty-200'
schema:
$ref: '#/components/schemas/ModifyResponse'
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'
description: Unauthorized - authentication required.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Forbidden - insufficient permissions to process the request.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Unprocessable Entity - a request validation error.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Internal Server Error - the server could not process the request.
/payout:
post:
tags:
- Instant payouts
summary: Make an instant card payout
description: '> This endpoint is **deprecated** and no longer supports new integrations.
Do one of the following:
>- If you are building a new integration, use the POST [/transfers](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers)
endpoint instead.
> - If you are already using the Payout API, reach out to your Adyen contact
to learn how to migrate to the Transfers API.
>
> With the Transfers API, you can:
> - Handle multiple payout use cases with a single API.
> - Use new payout functionalities, such as instant payouts to bank accounts.
> - Receive webhooks with more details and defined transfer states.
>
> For more information about the payout features of the Transfers API, see
our [Payouts](https://docs.adyen.com/payouts/payout-service) documentation.
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'
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'
description: Unauthorized - authentication required.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Forbidden - insufficient permissions to process the request.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Unprocessable Entity - a request validation error.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Internal Server Error - the server could not process the request.
/storeDetail:
post:
tags:
- Initialization
summary: Store payout details
description: '> This endpoint is **deprecated** and no longer supports new integrations.
Do one of the following:
>- If you are building a new integration, use the [Transfers API](https://docs.adyen.com/api-explorer/transfers/latest/overview)
instead.
> - If you are already using the Payout API, reach out to your Adyen contact
to learn how to migrate to the Transfers API.
>
> With the Transfers API, you can:
> - Handle multiple payout use cases with a single API.
> - Use new payout functionalities, such as instant payouts to bank accounts.
> - Receive webhooks with more details and defined transfer states.
>
> For more information about the payout features of the Transfers API, see
our [Payouts](https://docs.adyen.com/payouts/payout-service) documentation.
Stores payment details under the `PAYOUT` recurring contract. These payment
details can be used later to submit a payout via the `/submitThirdParty` call.'
operationId: post-storeDetail
x-sortIndex: 2
x-methodName: storeDetail
security:
- BasicAuth: []
- ApiKeyAuth: []
requestBody:
content:
application/json:
examples:
storeDetail:
$ref: '#/components/examples/post-storeDetail-storeDetail'
schema:
$ref: '#/components/schemas/StoreDetailRequest'
responses:
'200':
content:
application/json:
examples:
storeDetail:
$ref: '#/components/examples/post-storeDetail-storeDetail-200'
schema:
$ref: '#/components/schemas/StoreDetailResponse'
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'
description: Unauthorized - authentication required.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Forbidden - insufficient permissions to process the request.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Unprocessable Entity - a request validation error.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Internal Server Error - the server could not process the request.
/storeDetailAndSubmitThirdParty:
post:
tags:
- Initialization
summary: Store details and submit a payout
description: '> This endpoint is **deprecated** and no longer supports new integrations.
Do one of the following:
>- If you are building a new integration, use the POST [/transfers](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers)
endpoint instead.
> - If you are already using the Payout API, reach out to your Adyen contact
to learn how to migrate to the Transfers API.
>
> With the Transfers API, you can:
> - Handle multiple payout use cases with a single API.
> - Use new payout functionalities, such as instant payouts to bank accounts.
> - Receive webhooks with more details and defined transfer states.
>
> For more information about the payout features of the Transfers API, see
our [Payouts](https://docs.adyen.com/payouts/payout-service) documentation.
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-addedInVersion: '10'
operationId: post-storeDetailAndSubmitThirdParty
x-sortIndex: 1
x-methodName: storeDetailAndSubmitThirdParty
security:
- BasicAuth: []
- ApiKeyAuth: []
requestBody:
content:
application/json:
examples:
storeDetailAndSubmitThirdParty:
$ref: '#/components/examples/post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty'
storeDetailAndSubmitThirdParty-Neteller:
$ref: '#/components/examples/post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty-Neteller'
storeDetailAndSubmitThirdParty-PayPal:
$ref: '#/components/examples/post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty-PayPal'
storeDetailAndSubmitThirdParty-Paysafecard:
$ref: '#/components/examples/post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty-Paysafecard'
storeDetailAndSubmitThirdParty-Skrill:
$ref: '#/components/examples/post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty-Skrill'
schema:
$ref: '#/components/schemas/StoreDetailAndSubmitRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/StoreDetailAndSubmitResponse'
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'
description: Unauthorized - authentication required.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Forbidden - insufficient permissions to process the request.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Unprocessable Entity - a request validation error.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Internal Server Error - the server could not process the request.
/submitThirdParty:
post:
tags:
- Initialization
summary: Submit a payout
description: '> This endpoint is **deprecated** and no longer supports new integrations.
Do one of the following:
>- If you are building a new integration, use the POST [/transfers](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers)
endpoint instead.
> - If you are already using the Payout API, reach out to your Adyen contact
to learn how to migrate to the Transfers API.
>
> With the Transfers API, you can:
> - Handle multiple payout use cases with a single API.
> - Use new payout functionalities, such as instant payouts to bank accounts.
> - Receive webhooks with more details and defined transfer states.
>
> For more information about the payout features of the Transfers API, see
our [Payouts](https://docs.adyen.com/payouts/payout-service) documentation.
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-addedInVersion: '10'
operationId: post-submitThirdParty
x-sortIndex: 3
x-methodName: submitThirdParty
security:
- BasicAuth: []
- ApiKeyAuth: []
requestBody:
content:
application/json:
examples:
submitThirdParty:
$ref: '#/components/examples/post-submitThirdParty-submitThirdParty'
schema:
$ref: '#/components/schemas/SubmitRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SubmitResponse'
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'
description: Unauthorized - authentication required.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Forbidden - insufficient permissions to process the request.
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Unprocessable Entity - a request validation error.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceError'
description: Internal Server Error - the server could not process the request.
components:
schemas:
Address:
additionalProperties: false
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
Amount:
additionalProperties: false
properties:
currency:
description: The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes).
maxLength: 3
minLength: 3
type: string
value:
description: The amount of the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
format: int64
type: integer
required:
- value
- currency
type: object
BankAccount:
additionalProperties: false
properties:
bankAccountNumber:
description: The bank account number (without separators).
type: string
bankCity:
x-addedInVersion: '18'
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.\nIf 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:\n* \u03C712 is converted to ch12.\n* \xFCA is converted to\
\ euA.\n* Peter M\xF8ller is converted to Peter Mller, because banks don't\
\ accept '\xF8'.\nAfter 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:\n* John17 -\
\ allowed.\n* J17 - allowed.\n* 171 - not allowed.\n* John-7 - allowed.\n\
> If provided details don't match the required format, the response returns\
\ the error message: 203 'Invalid bank account holder name'."
type: string
taxId:
x-addedInVersion: '18'
description: The bank account holder's tax ID.
type: string
type: object
Card:
additionalProperties: false
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:\n\
* CVV2/CVC2 \u2013 length: 3 digits\n* CID \u2013 length: 4 digits\n>\
\ 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.\n> This field must be always present in\
\ a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments).\n\
> 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
FraudCheckResult:
additionalProperties: false
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
FraudCheckResultWrapper:
properties:
FraudCheckResult:
$ref: '#/components/schemas/FraudCheckResult'
FraudResult:
additionalProperties: false
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
FundSource:
additionalProperties: false
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
ModifyRequest:
additionalProperties: false
properties:
additionalData:
additionalProperties:
type: string
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
type: object
ModifyResponse:
additionalProperties: false
properties:
additionalData:
additionalProperties:
type: string
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
type: object
Name:
additionalProperties: false
properties:
firstName:
description: The first name.
maxLength: 80
type: string
lastName:
description: The last name.
maxLength: 80
type: string
required:
- firstName
- lastName
type: object
PayoutRequest:
additionalProperties: false
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. The value\
\ is case-sensitive and must be at least three characters.\n> Your reference\
\ must not include personally identifiable information (PII) such as name\
\ or email address."
type: string
telephoneNumber:
x-addedInVersion: '7'
description: The shopper's telephone number.
type: string
required:
- merchantAccount
- reference
- amount
type: object
PayoutResponse:
additionalProperties: false
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).\n\
\nPossible values:\n\n* **AuthenticationFinished** \u2013 The payment\
\ has been successfully authenticated with 3D Secure 2. Returned for 3D\
\ Secure 2 authentication-only transactions.\n* **AuthenticationNotRequired**\
\ \u2013 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).\n\
* **Authorised** \u2013 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.\n* **Cancelled** \u2013 Indicates the\
\ payment has been cancelled (either by the shopper or the merchant) before\
\ processing was completed. This is a final state.\n* **ChallengeShopper**\
\ \u2013 The issuer requires further shopper interaction before the payment\
\ can be authenticated. Returned for 3D Secure 2 transactions.\n* **Error**\
\ \u2013 There was an error when the payment was being processed. The\
\ reason is given in the `refusalReason` field. This is a final state.\n\
* **IdentifyShopper** \u2013 The issuer requires the shopper's device\
\ fingerprint before the payment can be authenticated. Returned for 3D\
\ Secure 2 transactions.\n* **PartiallyAuthorised** \u2013 The payment\
\ has been authorised for a partial amount.\nThis happens for card payments\
\ when the merchant supports Partial Authorisations and the cardholder\
\ has insufficient funds.\n* **Pending** \u2013 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.\n* **PresentToShopper** \u2013 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.\n* **Received** \u2013\
\ Indicates the payment has successfully been received by Adyen, and will\
\ be processed. This is the initial state for all payments.\n* **RedirectShopper**\
\ \u2013 Indicates the shopper should be redirected to an external web\
\ page or app to complete the authorisation.\n* **Refused** \u2013 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
Recurring:
additionalProperties: false
properties:
contract:
description: "The type of recurring contract to be used.\nPossible values:\n\
* `ONECLICK` \u2013 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).\n\
* `RECURRING` \u2013 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).\n\
* `ONECLICK,RECURRING` \u2013 Payment details can be used regardless of\
\ whether the shopper is on your site or not.\n* `PAYOUT` \u2013 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
tokenService:
x-addedInVersion: '25'
description: The name of the token service.
enum:
- VISATOKENSERVICE
- MCTOKENSERVICE
- AMEXTOKENSERVICE
- TOKEN_SHARING
type: string
type: object
ResponseAdditionalData3DSecure:
additionalProperties: false
properties:
cardHolderInfo:
description: 'Information provided by the issuer to the cardholder. If this
field is present, you need to display this information to the cardholder. '
type: string
cavv:
description: The Cardholder Authentication Verification Value (CAVV) for
the 3D Secure authentication session, as a Base64-encoded 20-byte array.
type: string
cavvAlgorithm:
description: The CAVV algorithm used.
type: string
scaExemptionRequested:
description: "Shows the [exemption type](https://docs.adyen.com/payments-fundamentals/psd2-sca-compliance-and-implementation-guide#specifypreferenceinyourapirequest)\
\ that Adyen requested for the payment.\n\n Possible values:\n* **lowValue**\
\ \n* **secureCorporate** \n* **trustedBeneficiary** \n* **transactionRiskAnalysis** "
type: string
threeds2.cardEnrolled:
description: Indicates whether a card is enrolled for 3D Secure 2.
type: boolean
type: object
ResponseAdditionalDataBillingAddress:
additionalProperties: false
properties:
billingAddress.city:
description: The billing address city passed in the payment request.
type: string
billingAddress.country:
description: 'The billing address country passed in the payment request.
Example: NL'
type: string
billingAddress.houseNumberOrName:
description: The billing address house number or name passed in the payment
request.
type: string
billingAddress.postalCode:
description: 'The billing address postal code passed in the payment request.
Example: 1011 DJ'
type: string
billingAddress.stateOrProvince:
description: 'The billing address state or province passed in the payment
request.
Example: NH'
type: string
billingAddress.street:
description: The billing address street passed in the payment request.
type: string
type: object
ResponseAdditionalDataCard:
additionalProperties: false
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
cardProductId:
description: 'The Card Product ID represents the type of card following
card scheme product definitions and can be returned for Adyen Acquiring
service level payments.
Possible values Visa:
* **A** - Visa Traditional
* **B** - Visa Traditional Rewards
* **C** - Visa Signature
* **D** - Visa Signature Preferred
* **F** - Visa Classic
Possible values Mastercard:
* **MCC** - Mastercard Card
* **MCE** - Mastercard Electronic Card
* **MCF** - Mastercard Corporate Fleet Card
* **MCG** - Gold Mastercard Card
* **MCH** - Mastercard Premium Charge
* **MCI** - Mastercard Select Debit
'
enum:
- A
- B
- C
- D
- F
- MCC
- MCE
- MCF
- MCG
- MCH
- MCI
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
ResponseAdditionalDataCommon:
additionalProperties: false
properties:
acquirerAccountCode:
description: 'The name of the Adyen acquirer account.
Example: PayPalSandbox_TestAcquirer
> Only relevant for PayPal transactions.'
type: string
acquirerCode:
description: 'The name of the acquirer processing the payment request.
Example: TestPmmAcquirer'
type: string
acquirerReference:
description: 'The reference number that can be used for reconciliation in
case a non-Adyen acquirer is used for settlement.
Example: 7C9N3FNBKT9'
type: string
alias:
description: 'The Adyen alias of the card.
Example: H167852639363479'
type: string
aliasType:
description: 'The type of the card alias.
Example: Default'
type: string
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.
Example: 58747'
type: string
authorisationMid:
description: Merchant ID known by the acquirer.
type: string
authorisedAmountCurrency:
description: The currency of the authorised amount, as a three-character
[ISO currency code](https://docs.adyen.com/development-resources/currency-codes).
type: string
authorisedAmountValue:
description: 'Value of the amount authorised.
This amount is represented in minor units according to the [following
table](https://docs.adyen.com/development-resources/currency-codes).'
type: string
avsResult:
description: 'The AVS result code of the payment, which provides information
about the outcome of the AVS check.
For possible values, see [AVS](https://docs.adyen.com/risk-management/configure-standard-risk-rules/consistency-rules#billing-address-does-not-match-cardholder-address-avs).'
type: string
avsResultRaw:
description: 'Raw AVS result received from the acquirer, where available.
Example: D'
type: string
bic:
description: 'BIC of a bank account.
Example: TESTNL01
> Only relevant for SEPA Direct Debit transactions.'
type: string
coBrandedWith:
description: Includes the co-branded card information.
type: string
cvcResult:
description: The result of CVC verification.
example: 1 Matches
type: string
cvcResultRaw:
description: The raw result of CVC verification.
example: M
type: string
dsTransID:
description: Supported for 3D Secure 2. The unique transaction identifier
assigned by the DS to identify a single transaction.
type: string
eci:
description: 'The Electronic Commerce Indicator returned from the schemes
for the 3DS payment session.
Example: 02'
type: string
expiryDate:
description: 'The expiry date on the card.
Example: 6/2016
> Returned only in case of a card payment.'
type: string
extraCostsCurrency:
description: 'The currency of the extra amount charged due to additional
amounts set in the skin used in the HPP payment request.
Example: EUR'
type: string
extraCostsValue:
description: The value of the extra amount charged due to additional amounts
set in the skin used in the HPP payment request. The amount is in minor
units.
type: string
fraudCheck-[itemNr]-[FraudCheckname]:
description: The fraud score due to a particular fraud check. The fraud
check name is found in the key of the key-value pair.
type: string
fraudManualReview:
description: Indicates if the payment is sent to manual review.
type: string
fraudResultType:
description: The fraud result properties of the payment.
enum:
- GREEN
- FRAUD
type: string
fraudRiskLevel:
description: 'The risk level of the transaction as classified by the [machine
learning](https://docs.adyen.com/risk-management/configure-your-risk-profile/machine-learning-rules/)
fraud risk rule. The risk level indicates the likelihood that a transaction
will result in a fraudulent dispute. The possible return values are:
* veryLow
* low
* medium
* high
* veryHigh
'
enum:
- veryLow
- low
- medium
- high
- veryHigh
type: string
fundingSource:
description: 'Information regarding the funding type of the card. The possible
return values are:
* CHARGE
* CREDIT
* DEBIT
* PREPAID
* PREPAID_RELOADABLE
* PREPAID_NONRELOADABLE
* DEFFERED_DEBIT
> This functionality requires additional configuration on Adyen''s end.
To enable it, contact the Support Team.
For receiving this field in the notification, enable **Include Funding
Source** in **Notifications** > **Additional settings**.'
type: string
fundsAvailability:
description: 'Indicates availability of funds.
Visa:
* "I" (fast funds are supported)
* "N" (otherwise)
Mastercard:
* "I" (product type is Prepaid or Debit, or issuing country is in CEE/HGEM
list)
* "N" (otherwise)
> Returned when you verify a card BIN or estimate costs, and only if payoutEligible
is "Y" or "D".'
type: string
inferredRefusalReason:
description: 'Provides the more granular indication of why a transaction
was refused. When a transaction fails with either "Refused", "Restricted
Card", "Transaction Not Permitted", "Not supported" or "DeclinedNon Generic"
refusalReason from the issuer, Adyen cross references its PSP-wide data
for extra insight into the refusal reason. If an inferred refusal reason
is available, the `inferredRefusalReason`, field is populated and the
`refusalReason`, is set to "Not Supported".
Possible values:
* 3D Secure Mandated
* Closed Account
* ContAuth Not Supported
* CVC Mandated
* Ecommerce Not Allowed
* Crossborder Not Supported
* Card Updated
* Low Authrate Bin
* Non-reloadable prepaid card'
type: string
isCardCommercial:
description: Indicates if the card is used for business purposes only.
type: string
issuerCountry:
description: 'The issuing country of the card based on the BIN list that
Adyen maintains.
Example: JP'
type: string
liabilityShift:
description: A Boolean value indicating whether a liability shift was offered
for this payment.
type: string
mcBankNetReferenceNumber:
description: 'The `mcBankNetReferenceNumber`, is a minimum of six characters
and a maximum of nine characters long.
> Contact Support Team to enable this field.'
type: string
merchantAdviceCode:
description: 'The Merchant Advice Code (MAC) can be returned by Mastercard
issuers for refused payments. If present, the MAC contains information
about why the payment failed, and whether it can be retried.
For more information see [Mastercard Merchant Advice Codes](https://docs.adyen.com/development-resources/raw-acquirer-responses#mastercard-merchant-advice-codes).'
type: string
merchantReference:
description: The reference provided for the transaction.
type: string
networkTxReference:
description: 'Returned in the response if you are not tokenizing with Adyen
and are using the Merchant-initiated transactions (MIT) framework from
Mastercard or Visa.
This contains either the Mastercard Trace ID or the Visa Transaction ID.'
type: string
nonScheme.transactionLimit:
description: The maximum spendable value for a single transaction. Applicable
to some gift cards.
type: string
nonScheme.transactionLimitCcy:
description: The currency of the transaction limit.
type: string
ownerName:
description: 'The owner name of a bank account.
Only relevant for SEPA Direct Debit transactions.'
type: string
paymentAccountReference:
description: The Payment Account Reference (PAR) value links a network token
with the underlying primary account number (PAN). The PAR value consists
of 29 uppercase alphanumeric characters.
type: string
paymentMethod:
description: The payment method used in the transaction.
type: string
paymentMethodVariant:
description: 'The Adyen sub-variant of the payment method used for the payment
request.
For more information, refer to [PaymentMethodVariant](https://docs.adyen.com/development-resources/paymentmethodvariant).
Example: mcpro'
type: string
payoutEligible:
description: 'Indicates whether a payout is eligible or not for this card.
Visa:
* "Y"
* "N"
Mastercard:
* "Y" (domestic and cross-border)
* "D" (only domestic)
* "N" (no MoneySend)
* "U" (unknown)'
type: string
realtimeAccountUpdaterStatus:
description: 'The response code from the Real Time Account Updater service.
Possible return values are:
* CardChanged
* CardExpiryChanged
* CloseAccount
* ContactCardAccountHolder'
type: string
receiptFreeText:
description: Message to be displayed on the terminal.
type: string
recurring.firstPspReference:
description: 'The `pspReference`, of the first recurring payment that created
the recurring detail.
This functionality requires additional configuration on Adyen''s end.
To enable it, contact the Support Team.'
type: string
recurring.recurringDetailReference:
description: The reference that uniquely identifies the recurring transaction.
type: string
referred:
description: 'If the payment is referred, this field is set to true.
This field is unavailable if the payment is referred and is usually not
returned with ecommerce transactions.
Example: true'
type: string
refusalReasonRaw:
description: 'Raw refusal reason received from the acquirer, where available.
Example: AUTHORISED'
type: string
requestAmount:
description: The amount of the payment request.
type: string
requestCurrencyCode:
description: The currency of the payment request.
type: string
shopperInteraction:
description: 'The shopper interaction type of the payment request.
Example: Ecommerce'
type: string
shopperReference:
description: 'The shopperReference passed in the payment request.
Example: AdyenTestShopperXX'
type: string
terminalId:
description: 'The terminal ID used in a point-of-sale payment.
Example: 06022622'
type: string
threeDAuthenticated:
description: 'A Boolean value indicating whether 3DS authentication was
completed on this payment.
Example: true'
type: string
threeDAuthenticatedResponse:
description: 'The raw 3DS authentication result from the card issuer.
Example: N'
type: string
threeDOffered:
description: 'A Boolean value indicating whether 3DS was offered for this
payment.
Example: true'
type: string
threeDOfferedResponse:
description: 'The raw enrollment result from the 3DS directory services
of the card schemes.
Example: Y'
type: string
threeDSVersion:
description: The 3D Secure 2 version.
type: string
tokenization.shopperReference:
description: The reference for the shopper that you sent when tokenizing
the payment details.
type: string
tokenization.store.operationType:
description: 'The operation performed on the token. Possible values:
* **created**: the token has been created.
* **updated**: the existing token has been updated.
* **alreadyExisting**: the details have already been stored.
'
enum:
- created
- updated
- alreadyExisting
type: string
tokenization.storedPaymentMethodId:
description: The reference that uniquely identifies tokenized payment details.
type: string
visaTransactionId:
description: 'The `visaTransactionId`, has a fixed length of 15 numeric
characters.
> Contact Support Team to enable this field.'
type: string
xid:
description: "The 3DS transaction ID of the 3DS session sent in notifications.\
\ The value is Base64-encoded and is returned for transactions with directoryResponse\
\ 'N' or 'Y'. \n\nExample: ODgxNDc2MDg2MDExODk5MAAAAAA="
type: string
type: object
ResponseAdditionalDataDomesticError:
additionalProperties: false
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. \n\
Currently available in Japanese, for merchants in Japan."
type: string
type: object
ResponseAdditionalDataInstallments:
additionalProperties: false
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
ResponseAdditionalDataNetworkTokens:
additionalProperties: false
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
ResponseAdditionalDataOpi:
additionalProperties: false
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
ResponseAdditionalDataSepa:
additionalProperties: false
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 collection in a series of direct debit instructions.
* Recurring: (RCUR) Direct debit instruction to carry out regular direct
debit transactions initiated by the creditor.
* Final: (FNAL) Last/final collection in a series of direct debit instructions.
Example: OOFF'
type: string
type: object
ServiceError:
additionalProperties: false
properties:
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
StoreDetailAndSubmitRequest:
additionalProperties: false
properties:
additionalData:
additionalProperties:
type: string
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:
x-addedInVersion: '18'
description: 'The billing address.
> The `billingAddress` object is required for cross-border payouts to
and from Canada. Include all of the fields within this object.'
$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:
x-addedInVersion: '24'
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
type: string
entityType:
x-addedInVersion: '24'
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:
x-addedInVersion: '24'
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:
x-addedInVersion: '24'
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:
x-addedInVersion: '24'
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:
x-addedInVersion: '2'
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:
x-addedInVersion: '24'
description: The shopper's social security number.
type: string
required:
- merchantAccount
- shopperEmail
- shopperReference
- recurring
- dateOfBirth
- nationality
- entityType
- reference
- amount
type: object
StoreDetailAndSubmitResponse:
additionalProperties: false
properties:
additionalData:
additionalProperties:
type: string
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
type: object
StoreDetailRequest:
additionalProperties: false
properties:
additionalData:
additionalProperties:
type: string
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:
x-addedInVersion: '18'
description: 'The billing address.
> The `billingAddress` object is required for cross-border payouts to
and from Canada. Include all of the fields within this object.'
$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:
x-addedInVersion: '24'
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
type: string
entityType:
x-addedInVersion: '24'
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:
x-addedInVersion: '24'
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:
x-addedInVersion: '24'
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:
x-addedInVersion: '24'
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:
x-addedInVersion: '24'
description: The shopper's social security number.
type: string
required:
- merchantAccount
- shopperEmail
- shopperReference
- recurring
- dateOfBirth
- nationality
- entityType
type: object
StoreDetailResponse:
additionalProperties: false
properties:
additionalData:
additionalProperties:
type: string
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
type: object
SubmitRequest:
additionalProperties: false
properties:
additionalData:
additionalProperties:
type: string
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:
x-addedInVersion: '24'
description: "The date of birth.\nFormat: ISO-8601; example: YYYY-MM-DD\n\
\nFor Paysafecard it must be the same as used when registering the Paysafecard\
\ account.\n\n> This field is mandatory for natural persons. \n> This\
\ field is required to update the existing `dateOfBirth` that is associated\
\ with this recurring contract."
format: date
type: string
entityType:
x-addedInVersion: '24'
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:
x-addedInVersion: '24'
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:
x-addedInVersion: '24'
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:
x-addedInVersion: '2'
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:
x-addedInVersion: '24'
description: The shopper's social security number.
type: string
required:
- merchantAccount
- reference
- amount
- shopperEmail
- shopperReference
- recurring
- selectedRecurringDetailReference
type: object
SubmitResponse:
additionalProperties: false
properties:
additionalData:
additionalProperties:
type: string
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
type: object
securitySchemes:
ApiKeyAuth:
in: header
name: X-API-Key
type: apiKey
BasicAuth:
scheme: basic
type: http
examples:
generic-400:
summary: Response code 400. Bad Request.
value:
status: 400
errorCode: '702'
message: 'Unexpected input: I'
errorType: validation
post-confirmThirdParty-confirmThirdParty:
summary: Confirm a payout
description: Confirm a previously submitted payout
value:
merchantAccount: YOUR_MERCHANT_ACCOUNT
originalReference: '9913140798220028'
post-confirmThirdParty-confirmThirdParty-200:
summary: Example response for request 'confirmThirdParty'
value:
pspReference: 991617894325358C
response: '[payout-confirm-received]'
post-declineThirdParty-declineThirdParty:
summary: Cancel a payout
description: Cancel a previously submitted payout
value:
merchantAccount: YOUR_MERCHANT_ACCOUNT
originalReference: '9913140798220028'
post-declineThirdParty-declineThirdParty-200:
summary: Example response for request 'declineThirdParty'
value:
pspReference: 991617894325360J
response: '[payout-decline-received]'
post-payout-payout-b2c:
summary: Instant card payout (B2C)
description: Pay out to your sellers, customers, freelancers, etc
value:
amount:
value: 2500
currency: USD
card:
number: '4111111111111111'
expiryMonth: '03'
expiryYear: '2030'
holderName: John Smith
billingAddress:
houseNumberOrName: '121'
street: Brannan Street
city: Beverly Hills
postalCode: '90210'
stateOrProvince: CA
country: US
merchantAccount: YOUR_MERCHANT_ACCOUNT
reference: P9999999999999999
shopperName:
firstName: John
lastName: Smith
post-payout-payout-p2p:
summary: Instant card payout (P2P)
description: Facilitate the transfer of money between two individuals
value:
amount:
value: 2500
currency: USD
card:
number: '4111111111111111'
expiryMonth: '03'
expiryYear: '2030'
holderName: John Smith
billingAddress:
houseNumberOrName: '121'
street: Brannan Street
city: Beverly Hills
postalCode: '90210'
stateOrProvince: CA
country: US
fundSource:
additionalData:
fundingSource: DEBIT
billingAddress:
houseNumberOrName: '121'
street: Brannan Street
city: Beverly Hills
postalCode: '90210'
stateOrProvince: CA
country: US
card:
expiryMonth: '03'
expiryYear: '2030'
holderName: Payer Name
number: '4400000000000008'
shopperName:
firstName: Payer
lastName: Name
merchantAccount: YOUR_MERCHANT_ACCOUNT
reference: P9999999999999999
shopperName:
firstName: John
lastName: Smith
post-storeDetail-storeDetail:
summary: Store payout details
description: Store payment details under the PAYOUT recurring contract
value:
merchantAccount: YOUR_MERCHANT_ACCOUNT
recurring:
contract: PAYOUT
bank:
bankName: AbnAmro
bic: ABNANL2A
countryCode: NL
iban: NL32ABNA0515071439
ownerName: Adyen
bankCity: Amsterdam
taxId: bankTaxId
shopperEmail: shopper@email.com
shopperReference: YOUR_UNIQUE_SHOPPER_ID
shopperName:
firstName: Adyen
lastName: Test
dateOfBirth: '1990-01-01'
entityType: Company
nationality: NL
billingAddress:
houseNumberOrName: '17'
street: Teststreet 1
city: Amsterdam
stateOrProvince: NY
country: US
postalCode: '12345'
post-storeDetail-storeDetail-200:
summary: Example response for request 'storeDetail'
value:
pspReference: 991617894326362D
recurringDetailReference: '9916178936754752'
resultCode: Success
post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty:
summary: Submit a payout and stores details
description: Submit a payout and stores its details for subsequent payouts
value:
merchantAccount: YOUR_MERCHANT_ACCOUNT
recurring:
contract: PAYOUT
amount:
value: 2000
currency: EUR
bank:
bankName: Commerzbank
iban: DE87123456781234567890
countryCode: DE
ownerName: Simon Hopper
reference: Your Reference
shopperEmail: s.hopper@test.com
shopperReference: YOUR_SHOPPER_REFERENCE
shopperName:
firstName: Adyen
lastName: Test
dateOfBirth: '1990-01-01'
entityType: Company
nationality: NL
post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty-Neteller:
summary: Submit a payout to Neteller
description: Submit a payout to Neteller and stores its details for subsequent
payouts
value:
amount:
currency: EUR
value: 100
selectedBrand: neteller
additionalData:
tokenDataType: Neteller
account: myNetellerAccount
shopperName:
firstName: Test
lastName: Test2
dateOfBirth: '1982-07-17'
entityType: NaturalPerson
nationality: NL
merchantAccount: YOUR_MERCHANT_ACCOUNT
recurring:
contract: PAYOUT
reference: Test Payout
shopperEmail: test@company.com
shopperReference: YOUR_SHOPPER_REFERENCE
post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty-PayPal:
summary: Submit a payout to PayPal
description: Submit a payout to PayPal and stores its details for subsequent
payouts
value:
amount:
currency: EUR
value: 1750
selectedBrand: paypal
additionalData:
tokenDataType: PayPal
emailId: EmailUsedForPayPalAccount@example.com
paypal.payerId: AK5HCWWRUV2KL
shopperName:
firstName: Test
lastName: Test2
dateOfBirth: '1982-07-17'
entityType: NaturalPerson
nationality: NL
merchantAccount: YOUR_MERCHANT_ACCOUNT
recurring:
contract: PAYOUT
reference: Test Payout
shopperEmail: test@company.com
shopperReference: YOUR_UNIQUE_SHOPPER_ID
post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty-Paysafecard:
summary: Submit a payout to Paysafecard
description: Submit a payout to Paysafecard and stores its details for subsequent
payouts
value:
amount:
currency: EUR
value: 1000
selectedBrand: paysafecard
additionalData:
emailId: EmailUsedForPaysafecardAccount@example.com
shopperName:
firstName: Test
lastName: Test2
dateOfBirth: '1982-07-17'
entityType: NaturalPerson
nationality: NL
merchantAccount: YOUR_MERCHANT_ACCOUNT
recurring:
contract: PAYOUT
reference: Test Payout
shopperEmail: test@company.com
shopperReference: YOUR_UNIQUE_SHOPPER_ID
post-storeDetailAndSubmitThirdParty-storeDetailAndSubmitThirdParty-Skrill:
summary: Submit a payout to Skrill
description: Submit a payout to Skrill and stores its details for subsequent
payouts
value:
amount:
currency: EUR
value: 100
selectedBrand: moneybookers
additionalData:
tokenDataType: MoneyBookers
email: name@adyen.com
shopperName:
firstName: Test
lastName: Test2
dateOfBirth: '1982-07-17'
entityType: NaturalPerson
nationality: NL
merchantAccount: YOUR_MERCHANT_ACCOUNT
recurring:
contract: PAYOUT
reference: Test Payout
shopperEmail: test@company.com
shopperReference: YOUR_UNIQUE_SHOPPER_ID
post-submitThirdParty-submitThirdParty:
summary: Submit a payout
description: Submit a payout using the previously stored payment details
value:
amount:
currency: EUR
value: 1000
merchantAccount: YOUR_MERCHANT_ACCOUNT
recurring:
contract: PAYOUT
reference: PayoutPayment-0001
shopperEmail: shopper@email.com
shopperReference: YOUR_UNIQUE_SHOPPER_ID
shopperName:
firstName: Adyen
lastName: Test
dateOfBirth: '1990-01-01'
entityType: Company
nationality: NL
selectedRecurringDetailReference: LATEST