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
        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
