Adyen Payouts API
A set of API endpoints that allow you to store payout details, confirm, or decline a payout. For more information, refer to Online payouts.
A set of API endpoints that allow you to store payout details, confirm, or decline a payout. For more information, refer to Online payouts.
openapi: 3.1.0
servers:
- url: https://pal-test.adyen.com/pal/servlet/Payout/v68
info:
version: '68'
x-publicVersion: true
title: Adyen Payout API
description: >-
A set of API endpoints that allow you to store payout details, confirm, or
decline a payout.
For more information, refer to [Online
payouts](https://docs.adyen.com/online-payments/online-payouts).
## Authentication
To 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).
If using an API key, add an `X-API-Key` header with the API key as the
value, for example:
```
curl
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
...
```
Alternatively, 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).
The following example shows how to authenticate your request with basic
authentication when submitting a payout:
```
curl
-U
"[email protected]_COMPANY_ACCOUNT":"YOUR_BASIC_AUTHENTICATION_PASSWORD"
\
-H "Content-Type: application/json" \
...
```
## Versioning
Payments 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.
For example:
```
https://pal-test.adyen.com/pal/servlet/Payout/v68/payout
```
## Going live
To authenticate to the live endpoints, you need [API
credentials](https://docs.adyen.com/development-resources/api-credentials)
from your live Customer Area.
The live endpoint URLs contain a prefix which is unique to your company
account:
```
https://{PREFIX}-pal-live.adyenpayments.com/pal/servlet/Payout/v68/payout
```
Get 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: confirmThirdParty
- name: declineThirdParty
- name: Payout
- name: storeDetail
- name: storeDetailAndSubmitThirdParty
- name: submitThirdParty
paths:
/confirmThirdParty:
post:
tags:
- confirmThirdParty
summary: Adyen Confirm a Payout
description: |-
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'
examples:
post-confirmThirdParty401Example:
summary: Default post-confirmThirdParty 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-confirmThirdParty403Example:
summary: Default post-confirmThirdParty 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-confirmThirdParty422Example:
summary: Default post-confirmThirdParty 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-confirmThirdParty500Example:
summary: Default post-confirmThirdParty 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
/declineThirdParty:
post:
tags:
- declineThirdParty
summary: Adyen Cancel a Payout
description: |-
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'
examples:
post-declineThirdParty401Example:
summary: Default post-declineThirdParty 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-declineThirdParty403Example:
summary: Default post-declineThirdParty 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-declineThirdParty422Example:
summary: Default post-declineThirdParty 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-declineThirdParty500Example:
summary: Default post-declineThirdParty 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
/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
/storeDetail:
post:
tags:
- storeDetail
summary: Adyen Store Payout Details
description: >-
Stores payment details under the `PAYOUT` recurring contract. These
payment details can be used later to submit a payout via the
`/submitThirdParty` call.
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'
examples:
post-storeDetail401Example:
summary: Default post-storeDetail 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-storeDetail403Example:
summary: Default post-storeDetail 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-storeDetail422Example:
summary: Default post-storeDetail 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-storeDetail500Example:
summary: Default post-storeDetail 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
/storeDetailAndSubmitThirdParty:
post:
tags:
- storeDetailAndSubmitThirdParty
summary: Adyen Store Details and Submit a Payout
description: >-
Submits a payout and stores its details for subsequent payouts.
The submitted payout must be confirmed or declined either by a reviewer
or via `/confirmThirdParty` or `/declineThirdParty` calls.
x-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'
examples:
post-storeDetailAndSubmitThirdParty200Example:
summary: Default post-storeDetailAndSubmitThirdParty 200 response
x-microcks-default: true
value:
additionalData: {}
pspReference: REF-001
refusalReason: REF-001
resultCode: CODE123
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-storeDetailAndSubmitThirdParty401Example:
summary: Default post-storeDetailAndSubmitThirdParty 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-storeDetailAndSubmitThirdParty403Example:
summary: Default post-storeDetailAndSubmitThirdParty 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-storeDetailAndSubmitThirdParty422Example:
summary: Default post-storeDetailAndSubmitThirdParty 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-storeDetailAndSubmitThirdParty500Example:
summary: Default post-storeDetailAndSubmitThirdParty 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
/submitThirdParty:
post:
tags:
- submitThirdParty
summary: Adyen Submit a Payout
description: >-
Submits a payout using the previously stored payment details. To store
payment details, use the `/storeDetail` API call.
The submitted payout must be confirmed or declined either by a reviewer
or via `/confirmThirdParty` or `/declineThirdParty` calls.
x-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'
examples:
post-submitThirdParty200Example:
summary: Default post-submitThirdParty 200 response
x-microcks-default: true
value:
additionalData: {}
pspReference: REF-001
refusalReason: REF-001
resultCode: CODE123
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-submitThirdParty401Example:
summary: Default post-submitThirdParty 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-submitThirdParty403Example:
summary: Default post-submitThirdParty 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-submitThirdParty422Example:
summary: Default post-submitThirdParty 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-submitThirdParty500Example:
summary: Default post-submitThirdParty 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:
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
Amount:
properties:
currency:
description: >-
The three-character [ISO currency
code](https://docs.adyen.com/development-resources/currency-codes).
maxLength: 3
minLength: 3
type: string
value:
description: >-
The amount of the transaction, in [minor
units](https://docs.adyen.com/development-resources/currency-codes).
format: int64
type: integer
required:
- value
- currency
type: object
BankAccount:
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:
d
# --- truncated at 32 KB (101 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adyen/refs/heads/main/openapi/payouts-openapi-original.yml