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.

OpenAPI Specification

payouts-openapi-original.yml Raw ↑
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