openapi: 3.1.0
servers:
  - url: https://balanceplatform-api-test.adyen.com/btl/v2
info:
  contact:
    email: developer-experience@adyen.com
    name: Adyen Developer Experience team
    url: https://www.adyen.help/hc/en-us/community/topics
    x-twitter: Adyen
  description: |+
    The Transfers API provides endpoints that you can use to get information about all your transactions, move funds within your balance platform or send funds from your balance platform to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments).

    ## Authentication
    Your Adyen contact will provide your API credential and an API key. To connect to the API, add an `X-API-Key` header with the API key as the value, for example:

     ```
    curl
    -H "Content-Type: application/json" \
    -H "X-API-Key: YOUR_API_KEY" \
    ...
    ```

    Alternatively, you can use the username and password to connect to the API using basic authentication. For example:

    ```
    curl
    -H "Content-Type: application/json" \
    -U "ws@BalancePlatform.YOUR_BALANCE_PLATFORM":"YOUR_WS_PASSWORD" \
    ...
    ```
    ## Roles and permissions
    To use the Transfers API, you need an additional role for your API credential. Transfers must also be enabled for the source balance account. Your Adyen contact will set up the roles and permissions for you.
    ## Versioning
    The Transfers API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: "vXX", where XX is the version number.

    For example:
    ```
    https://balanceplatform-api-test.adyen.com/btl/v2/transfers
    ```
    ## Going live
    When going live, your Adyen contact will provide your API credential for the live environment. You can then use the username and password to send requests to `https://balanceplatform-api-live.adyen.com/btl/v2`.

  termsOfService: https://www.adyen.com/legal/terms-and-conditions
  title: Transfers API
  version: "2"
  x-apisguru-categories:
    - payment
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_twitter_com_Adyen_profile_image.svg
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/Adyen/adyen-openapi/main/json/TransferService-v2.json
      version: "3.1"
  x-preferred: false
  x-providerName: adyen.com
  x-publicVersion: true
  x-serviceName: TransferService
  x-timestamp: 2023-04-18T17:29:01Z
tags:
  - name: Transactions
  - name: Transfers
paths:
  /transactions:
    get:
      description: |-
        Returns all transactions related to a balance account with a payment instrument of type **bankAccount**.

        This endpoint supports cursor-based pagination. The response returns the first page of results, and returns links to the next page when applicable. You can use the links to page through the results. The response also returns links to the previous page when applicable.
      operationId: get-transactions
      parameters:
        - description: Unique identifier of the [balance platform](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balancePlatforms/{id}__queryParam_id).
          in: query
          name: balancePlatform
          required: false
          schema:
            type: string
        - description: Unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/balanceplatform/latest/get/paymentInstruments/_id_).
          in: query
          name: paymentInstrumentId
          required: false
          schema:
            type: string
        - description: Unique identifier of the [account holder](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/accountHolders/{id}__queryParam_id).
          in: query
          name: accountHolderId
          required: false
          schema:
            type: string
        - description: Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__queryParam_id).
          in: query
          name: balanceAccountId
          required: false
          schema:
            type: string
        - description: The `cursor` returned in the links of the previous response.
          in: query
          name: cursor
          required: false
          schema:
            type: string
        - description: Only include transactions that have been created on or after this point in time. The value must be in ISO 8601 format. For example, **2021-05-30T15:07:40Z**.
          in: query
          name: createdSince
          required: true
          schema:
            format: date-time
            type: string
        - description: Only include transactions that have been created on or before this point in time. The value must be in ISO 8601 format. For example, **2021-05-30T15:07:40Z**.
          in: query
          name: createdUntil
          required: true
          schema:
            format: date-time
            type: string
        - description: The number of items returned per page, maximum of 100 items. By default, the response returns 10 items per page.
          in: query
          name: limit
          required: false
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/json:
              examples:
                success:
                  $ref: "#/components/examples/get-transactions-success-200"
              schema:
                $ref: "#/components/schemas/TransactionSearchResponse"
          description: OK - the request has succeeded.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Unauthorized - authentication required.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Forbidden - insufficient permissions to process the request.
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Unprocessable Entity - a request validation error.
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Internal Server Error - the server could not process the request.
      security:
        - ApiKeyAuth: []
      summary: Get all transactions
      tags:
        - Transactions
      x-addedInVersion: "1"
      x-groupName: Transactions
      x-methodName: getAllTransactions
      x-sortIndex: 1
  "/transactions/{id}":
    get:
      description: Returns a transaction.
      operationId: get-transactions-id
      parameters:
        - description: Unique identifier of the transaction.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              examples:
                success:
                  $ref: "#/components/examples/get-transactions-id-success-200"
              schema:
                $ref: "#/components/schemas/Transaction"
          description: OK - the request has succeeded.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Unauthorized - authentication required.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Forbidden - insufficient permissions to process the request.
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Unprocessable Entity - a request validation error.
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Internal Server Error - the server could not process the request.
      security:
        - ApiKeyAuth: []
      summary: Get a transaction
      tags:
        - Transactions
      x-addedInVersion: "1"
      x-groupName: Transactions
      x-methodName: getTransaction
      x-sortIndex: 2
  /transfers:
    post:
      description: |-
        Starts a request to transfer funds to [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts), [transfer instruments](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments), or third-party bank accounts. Adyen sends the outcome of the transfer request through webhooks.

        To use this endpoint, you need an additional role for your API credential and transfers must be enabled for the source balance account. Your Adyen contact will set these up for you.
      operationId: post-transfers
      requestBody:
        content:
          application/json:
            examples:
              payout-local-transfer-sepa:
                $ref: "#/components/examples/post-transfers-payout-local-transfer-sepa"
              payout-to-balance-account:
                $ref: "#/components/examples/post-transfers-payout-to-balance-account"
              payout-to-transfer-instrument:
                $ref: "#/components/examples/post-transfers-payout-to-transfer-instrument"
            schema:
              $ref: "#/components/schemas/TransferInfo"
      responses:
        "200":
          content:
            application/json:
              examples:
                payout-local-transfer-sepa:
                  $ref: "#/components/examples/post-transfers-payout-local-transfer-sepa-200"
                payout-to-balance-account:
                  $ref: "#/components/examples/post-transfers-payout-to-balance-account-200"
                payout-to-transfer-instrument:
                  $ref: "#/components/examples/post-transfers-payout-to-transfer-instrument-200"
              schema:
                $ref: "#/components/schemas/Transfer"
          description: OK - the request has succeeded.
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Transfer"
          description: Accepted - the request has been accepted for processing, but the processing has not been completed.
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Unauthorized - authentication required.
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Forbidden - insufficient permissions to process the request.
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Unprocessable Entity - a request validation error.
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RestServiceError"
          description: Internal Server Error - the server could not process the request.
      security:
        - ApiKeyAuth: []
      summary: Transfer funds
      tags:
        - Transfers
      x-addedInVersion: "2"
      x-groupName: Transfers
      x-methodName: transferFunds
      x-sortIndex: 1
components:
  examples:
    get-transactions-id-success-200:
      description: Example response for a transaction
      summary: Response code - 200 OK
      value:
        accountHolderId: AHA1B2C3D4E5F6G7H8I9J0
        amount:
          currency: EUR
          value: 9887
        balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
        balancePlatform: YOUR_BALANCE_PLATFORM
        bookingDate: 2022-03-14T12:01:00+01:00
        category: bank
        counterparty:
          balanceAccountId: BA00000000000000000000001
        createdAt: 2022-03-14T12:01:00+01:00
        description: YOUR_DESCRIPTION
        id: IZK7C25U7DYVX03Y
        instructedAmount:
          currency: EUR
          value: 9887
        reference: 2L6C6B5U7DYULLXC
        referenceForBeneficiary: YOUR_REFERENCE_FOR_BENEFICIARY
        status: booked
        transferId: 2QP32A5U7IWC5WKG
        type: bankTransfer
        valueDate: 2022-03-14T12:01:00+01:00
    get-transactions-success-200:
      description: Example response for a list of transactions
      summary: Response code - 200 OK
      value:
        _links:
          next:
            href: https://balanceplatform-api-test.adyen.com/btl/v2/transactions?balancePlatform=Bastronaut&createdUntil=2022-03-21T00%3A00%3A00Z&createdSince=2022-03-11T00%3A00%3A00Z&limit=3&cursor=S2B-TSAjOkIrYlIlbjdqe0RreHRyM32lKRSxubXBHRkhHL2E32XitQQz5SfzpucD5HbHwpM1p6NDR1eXVQLFF6MmY33J32sobDxQYT90MHIud1hwLnd6JitcX32xJ
        data:
          - accountHolderId: AHA1B2C3D4E5F6G7H8I9J0
            amount:
              currency: EUR
              value: -9
            balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
            balancePlatform: YOUR_BALANCE_PLATFORM
            bookingDate: 2022-03-11T11:21:24+01:00
            category: internal
            counterparty:
              balanceAccountId: BA00000000000000000000001
            createdAt: 2022-03-11T11:21:24+01:00
            id: 1VVF0D5U66PIUIVP
            instructedAmount:
              currency: EUR
              value: -9
            reference: REFERENCE_46e8c40e
            status: booked
            transferId: 1VVF0D5U66PIUIVP
            type: fee
            valueDate: 2022-03-11T11:21:24+01:00
          - accountHolderId: AHA1B2C3D4E5F6G7H8I9J0
            amount:
              currency: EUR
              value: -46
            balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
            balancePlatform: YOUR_BALANCE_PLATFORM
            bookingDate: 2022-03-12T14:22:52+01:00
            category: internal
            counterparty:
              balanceAccountId: BA00000000000000000000001
            createdAt: 2022-03-12T14:22:52+01:00
            id: 1WEPGD5U6MS1CFK3
            instructedAmount:
              currency: EUR
              value: -46
            reference: YOUR_REFERENCE
            status: booked
            transferId: 1WEPGD5U6MS1CFK3
            type: fee
            valueDate: 2022-03-12T14:22:52+01:00
          - accountHolderId: AHA1B2C3D4E5F6G7H8I9J0
            amount:
              currency: EUR
              value: -8
            balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
            balancePlatform: YOUR_BALANCE_PLATFORM
            bookingDate: 2022-03-14T21:00:48+01:00
            counterparty:
              balanceAccountId: BA00000000000000000000001
            createdAt: 2022-03-14T15:00:00+01:00
            description: YOUR_DESCRIPTION_2
            id: 2QP32A5U7IWC5WKG
            instructedAmount:
              currency: EUR
              value: -8
            reference: REFERENCE_46e8c40e
            status: booked
            valueDate: 2022-03-14T21:00:48+01:00
    post-transfers-payout-local-transfer-sepa:
      description: Example request to make a US local funds transfer
      summary: Make a SEPA funds transfer
      value:
        amount:
          currency: EUR
          value: 110000
        balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
        bank:
          priority: regular
        counterparty:
          bankAccount:
            iban: NL13TEST0123456789
            ownerName:
              fullName: A. Klaassen
        description: Your description
        reference: Your internal reference for the transfer
        referenceForBeneficiary: Your reference sent to the beneficiary
    post-transfers-payout-local-transfer-sepa-200:
      description: Example response for a transfers request
      summary: Response code - 200 OK
      value:
        amount:
          currency: EUR
          value: 110000
        balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
        bank:
          priority: regular
        counterparty:
          bankAccount:
            iban: NL13TEST0123456789
            ownerName:
              fullName: A. Klaassen
        description: Your description
        direction: outgoing
        id: 1W1UG35U8A9J5ZLG
        reason: approved
        reference: Your internal reference for the transfer
        referenceForBeneficiary: Your reference sent to the beneficiary
        status: authorised
    post-transfers-payout-to-balance-account:
      description: Example request to transfer funds to another balance account
      summary: Transfer funds to another balance account
      value:
        amount:
          currency: EUR
          value: 10000
        balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
        counterparty:
          balanceAccountId: BAB1234567890ABC123456789
        description: Your description
        reference: Your internal reference for the transfer
    post-transfers-payout-to-balance-account-200:
      description: Example response for a transfers request
      summary: Response code - 200 OK
      value:
        amount:
          currency: EUR
          value: 10000
        balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
        counterparty:
          balanceAccountId: BA32272223222B5LPRFDW7J9G
        description: Your description
        direction: outgoing
        id: 1W1UG35U8A9J5ZLG
        reason: approved
        reference: Your internal reference for the transfer
        referenceForBeneficiary: Your reference sent to the beneficiary
        status: authorised
    post-transfers-payout-to-transfer-instrument:
      description: Example request to pay out to a transfer instrument
      summary: Pay out to a transfer instrument
      value:
        amount:
          currency: EUR
          value: 80000
        balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
        bank:
          priority: regular
        counterparty:
          transferInstrumentId: SE1234567890ABC1234567890
        description: Your description
        reference: Your internal reference for the transfer
        referenceForBeneficiary: Your reference sent to the beneficiary
    post-transfers-payout-to-transfer-instrument-200:
      description: Example response for a transfers request
      summary: Response code - 200 OK
      value:
        amount:
          currency: EUR
          value: 80000
        balanceAccountId: BAB8B2C3D4E5F6G7H8D9J6GD4
        bank:
          priority: regular
        counterparty:
          transferInstrumentId: SE1234567890ABC1234567890
        description: Your description
        direction: outgoing
        id: 1W1UG35U8A9J5ZLG
        reason: approved
        reference: Your internal reference for the transfer
        referenceForBeneficiary: Your reference sent to the beneficiary
        status: authorised
  schemas:
    Address:
      properties:
        city:
          description: "The name of the city. Maximum length: 3000 characters."
          maxLength: 3000
          type: string
        country:
          description: |-
            The two-character ISO-3166-1 alpha-2 country code. For example, **US**.
            > If you don't know the country or are not collecting the country from the shopper, provide `country` as `ZZ`.
          type: string
        houseNumberOrName:
          description: "The number or name of the house. Maximum length: 3000 characters."
          maxLength: 3000
          type: string
        postalCode:
          description: A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries.
          type: string
        stateOrProvince:
          description: |-
            The two-character ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada.
            > Required for the US and Canada.
          type: string
        street:
          description: |-
            The name of the street. Maximum length: 3000 characters.
            > The house number should not be included in this field; it should be separately provided via `houseNumberOrName`.
          maxLength: 3000
          type: string
      required:
        - street
        - houseNumberOrName
        - city
        - postalCode
        - country
      type: object
    Amount:
      properties:
        currency:
          description: The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).
          maxLength: 3
          minLength: 3
          type: string
        value:
          description: The amount of the transaction, in [minor units](https://docs.adyen.com/development-resources/currency-codes).
          format: int64
          type: integer
      required:
        - value
        - currency
      type: object
    Bank:
      properties:
        priority:
          description: |-
            The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. If you don't provide this in the request, Adyen sets the optimal priority.

            Possible values:

            * **regular**: For normal, low-value transactions.

            * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions.

            * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions.

            * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html).

            * **crossBorder**: High-value transfer to a recipient in a different country.

            * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN).
          enum:
            - crossBorder
            - directDebit
            - fast
            - instant
            - internal
            - regular
            - wire
          type: string
          x-addedInVersion: "1"
      type: object
    BankAccountInfo:
      properties:
        address:
          $ref: "#/components/schemas/Address"
          description: The address of the bank account owner.
        iban:
          description: The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard.
          type: string
        ownerName:
          $ref: "#/components/schemas/Name"
          description: The name of the bank account owner.
      type: object
    Counterparty:
      properties:
        balanceAccountId:
          description: Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
          type: string
        bankAccount:
          $ref: "#/components/schemas/BankAccountInfo"
          description: Contains information about the bank account.
        merchant:
          $ref: "#/components/schemas/MerchantData"
          description: Contains information about the merchant.
        transferInstrumentId:
          description: Unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).
          type: string
      type: object
    CounterpartyInfo:
      properties:
        balanceAccountId:
          description: Unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
          type: string
        bankAccount:
          $ref: "#/components/schemas/BankAccountInfo"
          description: Contains information about the bank account.
        transferInstrumentId:
          description: Unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).
          type: string
      type: object
    InvalidField:
      properties:
        message:
          description: Description of the validation error.
          type: string
        name:
          description: The field that has an invalid value.
          type: string
        value:
          description: The invalid value.
          type: string
      required:
        - name
        - value
        - message
      type: object
    JSONObject:
      properties:
        paths:
          items:
            $ref: "#/components/schemas/JSONPath"
          type: array
        rootPath:
          $ref: "#/components/schemas/JSONPath"
      type: object
    JSONPath:
      properties:
        content:
          items:
            type: string
          type: array
      type: object
    Link:
      properties:
        href:
          type: string
      type: object
    Links:
      properties:
        next:
          $ref: "#/components/schemas/Link"
          description: Contains a link to the next page.
        prev:
          $ref: "#/components/schemas/Link"
          description: Contains a link to the previous page.
      type: object
    MerchantData:
      properties:
        mcc:
          description: The merchant category code.
          type: string
        merchantId:
          description: The merchant identifier.
          type: string
        nameLocation:
          $ref: "#/components/schemas/NameLocation"
          description: Contains the merchant's name and location.
        postalCode:
          description: The merchant postal code.
          type: string
      type: object
    Name:
      properties:
        firstName:
          description: The first name.
          type: string
        fullName:
          description: The full name.
          type: string
        infix:
          description: The infix in the name, if any.
          type: string
        lastName:
          description: The last name.
          type: string
      type: object
    NameLocation:
      properties:
        city:
          description: The city where the merchant is located.
          type: string
        country:
          description: The country where the merchant is located in [three-letter country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format.
          type: string
        countryOfOrigin:
          description: The home country in [three-digit country code](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) format, used for government-controlled merchants such as embassies.
          type: string
        name:
          description: The name of the merchant's shop or service.
          type: string
        rawData:
          description: The raw data.
          type: string
        state:
          description: The state where the merchant is located.
          type: string
      type: object
    RestServiceError:
      properties:
        detail:
          description: A human-readable explanation specific to this occurrence of the problem.
          type: string
        errorCode:
          description: A code that identifies the problem type.
          type: string
        instance:
          description: A unique URI that identifies the specific occurrence of the problem.
          type: string
        invalidFields:
          description: Detailed explanation of each validation error, when applicable.
          items:
            $ref: "#/components/schemas/InvalidField"
          type: array
        requestId:
          description: A unique reference for the request, essentially the same as `pspReference`.
          type: string
        response:
          $ref: "#/components/schemas/JSONObject"
          description: JSON response payload.
        status:
          description: The HTTP status code.
          format: int32
          type: integer
        title:
          description: A short, human-readable summary of the problem type.
          type: string
        type:
          description: A URI that identifies the problem type, pointing to human-readable documentation on this problem type.
          type: string
      required:
        - type
        - errorCode
        - title
        - detail
        - status
      type: object
    Transaction:
      properties:
        accountHolderId:
          description: Unique identifier of the account holder.
          type: string
          x-addedInVersion: "1"
        amount:
          $ref: "#/components/schemas/Amount"
          description: The amount.
          x-addedInVersion: "1"
        balanceAccountId:
          description: Unique identifier of the balance account.
          type: string
          x-addedInVersion: "1"
        balancePlatform:
          description: Unique identifier of the balance platform.
          type: string
          x-addedInVersion: "1"
        bookingDate:
          description: The date the transaction was booked to the balance account.
          format: date-time
          type: string
          x-addedInVersion: "1"
        category:
          description: |+
            The category of the transaction indicating the type of activity.

             Possible values:

            * **platformPayment**: The transaction is a payment or payment modification made with an Adyen merchant account.

            * **internal**: The transaction resulted from an internal adjustment such as a deposit correction or invoice deduction.

            * **bank**: The transaction is a bank-related activity, such as sending a payout or receiving funds.

            * **issuedCard**: The transaction is a card-related activity, such as using an Adyen-issued card to pay online.

          enum:
            - bank
            - grants
            - internal
            - issuedCard
            - platformPayment
          type: string
          x-addedInVersion: "1"
        counterparty:
          $ref: "#/components/schemas/Counterparty"
          description: Contains information about the other party in the transaction.
          x-addedInVersion: "1"
        createdAt:
          description: The date the transaction was created.
          format: date-time
          type: string
          x-addedInVersion: "1"
        description:
          description: The `description` from the `/transfers` request.
          type: string
          x-addedInVersion: "1"
        id:
          description: Unique identifier of the transaction.
          type: string
          x-addedInVersion: "1"
        instructedAmount:
          $ref: "#/components/schemas/Amount"
          description: The amount that the sender instructed their bank to send. This can be higher than `amount.value` when their bank deducts costs for the transfer.
          x-addedInVersion: "1"
        paymentInstrumentId:
          description: Unique identifier of the payment instrument that was used for the transaction.
          type: string
          x-addedInVersion: "1"
        reference:
          description: The [`reference`](https://docs.adyen.com/api-explorer/#/transfers/latest/post/transfers__reqParam_reference) from the `/transfers` request. If you haven't provided any, Adyen generates a unique reference.
          type: string
          x-addedInVersion: "1"
        referenceForBeneficiary:
          description: |-
            The reference sent to or received from the counterparty.

            * For outgoing funds, this is the [`referenceForBeneficiary`](https://docs.adyen.com/api-explorer/#/transfers/latest/post/transfers__resParam_referenceForBeneficiary) from the  [`/transfers`](https://docs.adyen.com/api-explorer/#/transfers/latest/post/transfers__reqParam_referenceForBeneficiary) request.

             * For incoming funds, this is the reference from the sender.
          type: string
          x-addedInVersion: "1"
        status:
          description: |+
            The status of the transaction.

             Possible values:

            * **pending**: The transaction is still pending.

            * **booked**: The transaction has been booked to the balance account.

          enum:
            - booked
            - pending
          type: string
          x-addedInVersion: "1"
        transferId:
          description: Unique identifier of the related transfer.
          type: string
          x-addedInVersion: "1"
        type:
          description: |-
            The type of the transaction.

             Possible values: **payment**, **capture**, **captureReversal**, **refund** **refundReversal**, **chargeback**, **chargebackReversal**, **secondChargeback**, **atmWithdrawal**, **atmWithdrawalReversal**, **internalTransfer**, **manualCorrection**, **invoiceDeduction**, **depositCorrection**, **bankTransfer**, **miscCost**, **paymentCost**, **fee**
          enum:
            - atmWithdrawal
            - atmWithdrawalReversal
            - balanceAdjustment
            - balanceRollover
            - bankTransfer
            - capture
            - captureReversal
            - chargeback
            - chargebackReversal
            - depositCorrection
            - fee
            - grant
            - installment
            - installmentReversal
            - internalTransfer
            - invoiceDeduction
            - leftover
            - manualCorrection
            - miscCost
            - payment
            - paymentCost
            - refund
            - refundReversal
            - repayment
            - reserveAdjustment
            - secondChargeback
          type: string
          x-addedInVersion: "1"
        valueDate:
          description: The date the transfer amount becomes available in the balance account.
          format: date-time
          type: string
          x-addedInVersion: "1"
      required:
        - id
        - accountHolderId
        - balanceAccountId
        - amount
        - reference
        - status
        - createdAt
        - bookingDate
        - valueDate
        - counterparty
        - balancePlatform
      type: object
    TransactionSearchResponse:
      properties:
        _links:
          $ref: "#/components/schemas/Links"
          description: Contains links to the next and previous page whenever applicable.
        data:
          description: Contains the transactions that match the query parameters.
          items:
            $ref: "#/components/schemas/Transaction"
          type: array
      type: object
    Transfer:
      properties:
        amount:
          $ref: "#/components/schemas/Amount"
          description: The amount of the transfer.
          x-addedInVersion: "1"
        balanceAccountId:
          description: The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
          type: string
          x-addedInVersion: "2"
        bank:
          $ref: "#/components/schemas/Bank"
          description: Contains settings for bank transfers. If you are transferring funds to bank accounts and you don't provide this object, Adyen applies default settings.
          x-addedInVersion: "1"
        counterparty:
          $ref: "#/components/schemas/Counterparty"
          description: The other party in the transfer.
        description:
          description: |-
            Your description for the transfer. It is used by most banks as the transfer description. We recommend sending a maximum of 140 characters, otherwise the description may be truncated.

            Supported characters: **[a-z] [A-Z] [0-9] / - ?** **: ( ) . , ' + Space**

            Supported characters for **regular** and **fast** transfers to a US counterparty: **[a-z] [A-Z] [0-9] & $ % # @** **~ = + - _ ' " ! ?**
          type: string
          x-addedInVersion: "1"
        direction:
          description: |-
            The direction of the transfer.

            Possible values: **incoming**, **outgoing**.
          enum:
            - incoming
            - outgoing
          type: string
          x-addedInVersion: "2"
        id:
          description: The ID of the resource.
          type: string
        paymentInstrumentId:
          description: The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) used in the transfer.
          type: string
          x-addedInVersion: "2"
        reason:
          description: Additional information about the status of the transfer.
          enum:
            - amountLimitExceeded
            - approved
            - counterpartyAccountBlocked
            - counterpartyAccountClosed
            - counterpartyAccountNotFound
            - counterpartyAddressRequired
            - counterpartyBankTimedOut
            - counterpartyBankUnavailable
            - error
            - notEnoughBalance
            - refusedByCounterpartyBank
            - routeNotFound
            - unknown
          type: string
          x-addedInVersion: "2"
        reference:
          description: Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.
          maxLength: 80
          type: string
          x-addedInVersion: "2"
        referenceForBeneficiary:
          description: |2-
             A reference that is sent to the recipient. This reference is also sent in all notification webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds.

             Supported characters: **a-z**, **A-Z**, **0-9**. Maximum length: 80 characters.
          maxLength: 80
          type: string
          x-addedInVersion: "2"
        status:
          description: |-
            The result of the transfer.

             For example, **authorised**, **refused**, or **error**.
          enum:
            - approvalPending
            - atmWithdrawal
            - atmWithdrawalReversalPending
            - atmWithdrawalReversed
            - authAdjustmentAuthorised
            - authAdjustmentError
            - authAdjustmentRefused
            - authorised
            - bankTransfer
            - bankTransferPending
            - booked
            - bookingPending
            - cancelled
            - capturePending
            - captureReversalPending
            - captureReversed
            - captured
            - chargeback
            - chargebackPending
            - chargebackReversalPending
            - chargebackReversed
            - credited
            - depositCorrection
            - depositCorrectionPending
            - dispute
            - disputeClosed
            - disputeExpired
            - disputeNeedsReview
            - error
            - expired
            - failed
            - fee
            - feePending
            - internalTransfer
            - internalTransferPending
            - invoiceDeduction
            - invoiceDeductionPending
            - manualCorrectionPending
            - manuallyCorrected
            - matchedStatement
            - matchedStatementPending
            - merchantPayin
            - merchantPayinPending
            - merchantPayinReversed
            - merchantPayinReversedPending
            - miscCost
            - miscCostPending
            - paymentCost
            - paymentCostPending
            - received
            - refundPending
            - refundReversalPending
            - refundReversed
            - refunded
            - refused
            - reserveAdjustment
            - reserveAdjustmentPending
            - returned
            - secondChargeback
            - secondChargebackPending
            - undefined
          type: string
          x-addedInVersion: "2"
      required:
        - amount
        - counterparty
        - status
      type: object
    TransferInfo:
      properties:
        amount:
          $ref: "#/components/schemas/Amount"
          description: The amount of the transfer.
          x-addedInVersion: "1"
        balanceAccountId:
          description: The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
          type: string
        bank:
          $ref: "#/components/schemas/Bank"
          description: Contains settings for bank transfers. If you are transferring funds to bank accounts and you don't provide this object, Adyen applies default settings.
          x-addedInVersion: "1"
        counterparty:
          $ref: "#/components/schemas/CounterpartyInfo"
          description: The recipient of the funds transfer. A bank account, a balance account, or a transfer instrument is required.
        description:
          description: |-
            Your description for the transfer. It is used by most banks as the transfer description. We recommend sending a maximum of 140 characters, otherwise the description may be truncated.

            Supported characters: **[a-z] [A-Z] [0-9] / - ?** **: ( ) . , ' + Space**

            Supported characters for **regular** and **fast** transfers to a US counterparty: **[a-z] [A-Z] [0-9] & $ % # @** **~ = + - _ ' " ! ?**
          type: string
          x-addedInVersion: "1"
        id:
          description: The ID of the resource.
          type: string
        paymentInstrumentId:
          description: The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id).
          type: string
        reference:
          description: Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.
          maxLength: 80
          type: string
          x-addedInVersion: "2"
        referenceForBeneficiary:
          description: |2-
             A reference that is sent to the recipient. This reference is also sent in all notification webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds.

             Supported characters: **a-z**, **A-Z**, **0-9**. Maximum length: 80 characters.
          maxLength: 80
          type: string
          x-addedInVersion: "2"
      required:
        - amount
        - counterparty
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: X-API-Key
      type: apiKey
    BasicAuth:
      scheme: basic
      type: http
x-groups:
  - Transfers
  - Transactions
