{
   "openapi" : "3.1.0",
   "servers" : [
      {
         "url" : "https://balanceplatform-api-test.adyen.com/btl/v1"
      }
   ],
   "info" : {
      "version" : "1",
      "x-publicVersion" : true,
      "title" : "Transfers API",
      "description" : ">Versions 1 and 2 of the Transfers API are deprecated. If you are just starting your implementation, use the latest version.\n\nThe Transfers API provides endpoints that you can use to transfer funds, whether when paying out to a transfer instrument for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/on-demand-payouts) or [platforms](https://docs.adyen.com/platforms/payout-to-users/on-demand-payouts), [sending funds to third parties](https://docs.adyen.com/platforms/business-accounts/send-receive-funds) for users with business bank accounts, or to [request a payout for a grant offer](https://docs.adyen.com/platforms/capital). The API also supports use cases for [getting transactions for business bank accounts](https://docs.adyen.com/platforms/business-accounts/transactions-api) and getting [outstanding balances](https://docs.adyen.com/platforms/capital#get-balances) for one or more grants on your platform. \n\n## Authentication\nEach request to the Transfers API must be signed with an API key. Generate an API key in your Customer Area if you have a [platform setup](https://docs.adyen.com/platforms/manage-access/api-credentials-web-service/#generate-api-key) or [marketplace setup](https://docs.adyen.com/marketplaces/manage-access/api-credentials-web-service/#generate-api-key).\n\nIf you have an Adyen Issuing integration, [generate an API key](https://docs.adyen.com/issuing/manage-access/api-credentials-web-service/#generate-api-key) in your Balance Platform Customer Area.\n\nTo connect to the API, 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\n## Roles and permissions\nTo 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.\n## Versioning\nThe 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.\n\nFor example:\n```\nhttps://balanceplatform-api-test.adyen.com/btl/v1/transfers\n```\n## Going live\nWhen going live, generate an API key in your [live Customer Area](https://ca-live.adyen.com/ca/) if you have an Adyen for Platforms integration or [live Balance Platform Customer Area](https://balanceplatform-live.adyen.com/balanceplatform/) if you have an Adyen Issuing integration. You can then use the API key to send requests to `https://balanceplatform-api-live.adyen.com/btl/v1`.\n\n",
      "termsOfService" : "https://www.adyen.com/legal/terms-and-conditions",
      "contact" : {
         "name" : "Adyen Developer Experience team",
         "url" : "https://github.com/Adyen/adyen-openapi"
      }
   },
   "tags" : [
      {
         "name" : "Transfers"
      },
      {
         "name" : "Transactions"
      },
      {
         "name" : "Capital"
      }
   ],
   "paths" : {
      "/transactions" : {
         "get" : {
            "tags" : [
               "Transactions"
            ],
            "summary" : "Get all transactions",
            "description" : ">Versions 1 and 2 of the Transfers API are deprecated. If you are just starting your implementation, use the latest version.\n\nReturns all the transactions related to a balance account, account holder, or balance platform.\n\nWhen making this request, you must include at least one of the following:\n- `balanceAccountId`\n- `accountHolderId`\n- `balancePlatform`.\n\nThis endpoint supports cursor-based pagination. The response returns the first page of results, and returns links to the next and previous pages when applicable. You can use the links to page through the results.\n\n",
            "x-addedInVersion" : "1",
            "operationId" : "get-transactions",
            "x-sortIndex" : 1,
            "x-methodName" : "getAllTransactions",
            "security" : [
               {
                  "clientKey" : [
                     ]
               },
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "parameters" : [
               {
                  "description" : "The unique identifier of the [balance platform](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balancePlatforms/{id}__queryParam_id).\n\nRequired if you don't provide a `balanceAccountId` or `accountHolderId`.",
                  "name" : "balancePlatform",
                  "in" : "query",
                  "required" : false,
                  "schema" : {
                     "type" : "string"
                  }
               },
               {
                  "description" : "The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/balanceplatform/latest/get/paymentInstruments/_id_).\n\nTo use this parameter, you must also provide a `balanceAccountId`, `accountHolderId`, or `balancePlatform`.\n\nThe `paymentInstrumentId` must be related to the `balanceAccountId` or `accountHolderId` that you provide.",
                  "name" : "paymentInstrumentId",
                  "in" : "query",
                  "required" : false,
                  "schema" : {
                     "type" : "string"
                  }
               },
               {
                  "description" : "The unique identifier of the [account holder](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/accountHolders/{id}__queryParam_id).\n\nRequired if you don't provide a `balanceAccountId` or `balancePlatform`.\n\nIf you provide a `balanceAccountId`, the `accountHolderId` must be related to the `balanceAccountId`.",
                  "name" : "accountHolderId",
                  "in" : "query",
                  "required" : false,
                  "schema" : {
                     "type" : "string"
                  }
               },
               {
                  "description" : "The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__queryParam_id).\n\nRequired if you don't provide an `accountHolderId` or `balancePlatform`.\n\nIf you provide an `accountHolderId`, the `balanceAccountId` must be related to the `accountHolderId`.",
                  "name" : "balanceAccountId",
                  "in" : "query",
                  "required" : false,
                  "schema" : {
                     "type" : "string"
                  }
               },
               {
                  "description" : "The `cursor` returned in the links of the previous response.",
                  "name" : "cursor",
                  "in" : "query",
                  "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**.",
                  "name" : "createdSince",
                  "in" : "query",
                  "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**.",
                  "name" : "createdUntil",
                  "in" : "query",
                  "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.",
                  "name" : "limit",
                  "in" : "query",
                  "required" : false,
                  "schema" : {
                     "format" : "int32",
                     "type" : "integer"
                  }
               }
            ],
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "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."
               }
            }
         }
      },
      "/transactions/{id}" : {
         "get" : {
            "tags" : [
               "Transactions"
            ],
            "summary" : "Get a transaction",
            "description" : ">Versions 1 and 2 of the Transfers API are deprecated. If you are just starting your implementation, use the latest version.\n\nReturns a transaction.",
            "x-addedInVersion" : "1",
            "operationId" : "get-transactions-id",
            "x-sortIndex" : 2,
            "x-methodName" : "getTransaction",
            "security" : [
               {
                  "clientKey" : [
                     ]
               },
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "parameters" : [
               {
                  "description" : "The unique identifier of the transaction.",
                  "name" : "id",
                  "in" : "path",
                  "required" : true,
                  "schema" : {
                     "type" : "string"
                  }
               }
            ],
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "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."
               }
            }
         }
      },
      "/transfers" : {
         "post" : {
            "tags" : [
               "Transfers"
            ],
            "summary" : "Transfer funds",
            "description" : ">Versions 1 and 2 of the Transfers API are deprecated. If you are just starting your implementation, use the latest version.\n\nStarts a transfer request to move funds within your balance platform, or send funds to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/v1/post/transferInstruments). Adyen sends the outcome of the transfer request through webhooks.\n\nTo 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.",
            "x-addedInVersion" : "1",
            "operationId" : "post-transfers",
            "x-sortIndex" : 1,
            "x-methodName" : "transferFunds",
            "security" : [
               {
                  "clientKey" : [
                     ]
               },
               {
                  "BasicAuth" : [
                     ]
               },
               {
                  "ApiKeyAuth" : [
                     ]
               }
            ],
            "requestBody" : {
               "content" : {
                  "application/json" : {
                     "examples" : {
                        "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/TransferInfoOld"
                     }
                  }
               }
            },
            "parameters" : [
               {
                  "$ref" : "#/components/parameters/Idempotency-Key"
               },
               {
                  "description" : "Header for authenticating through SCA",
                  "example" : "SCA realm=\"Transfer\" auth-param1=\"eyJjaGFsbGVuZ2UiOiJiVlV6ZW5wek0waFNl...\"",
                  "name" : "WWW-Authenticate",
                  "in" : "header",
                  "schema" : {
                     "type" : "string"
                  }
               }
            ],
            "responses" : {
               "200" : {
                  "content" : {
                     "application/json" : {
                        "examples" : {
                           "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/TransferOld"
                        }
                     }
                  },
                  "description" : "OK - the request has succeeded.",
                  "headers" : {
                     "Idempotency-Key" : {
                        "$ref" : "#/components/headers/Idempotency-Key"
                     }
                  }
               },
               "401" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/ServiceError"
                        }
                     }
                  },
                  "description" : "Unauthorized - authentication required.",
                  "headers" : {
                     "auth-param1" : {
                        "$ref" : "#/components/headers/auth-param1"
                     }
                  }
               },
               "403" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/TransferServiceRestServiceError"
                        }
                     }
                  },
                  "description" : "Forbidden - insufficient permissions to process the request."
               },
               "422" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/TransferServiceRestServiceError"
                        }
                     }
                  },
                  "description" : "Unprocessable Entity - a request validation error.",
                  "headers" : {
                     "Idempotency-Key" : {
                        "$ref" : "#/components/headers/Idempotency-Key"
                     }
                  }
               },
               "500" : {
                  "content" : {
                     "application/json" : {
                        "schema" : {
                           "$ref" : "#/components/schemas/TransferServiceRestServiceError"
                        }
                     }
                  },
                  "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**.\n> 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.\n> Required for the US and Canada.",
                  "type" : "string"
               },
               "street" : {
                  "description" : "The name of the street. Maximum length: 3000 characters.\n> 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"
         },
         "BankAccountInfo" : {
            "additionalProperties" : false,
            "properties" : {
               "address" : {
                  "description" : "The address of the bank account owner.",
                  "$ref" : "#/components/schemas/Address"
               },
               "iban" : {
                  "description" : "The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard.",
                  "type" : "string"
               },
               "ownerName" : {
                  "description" : "The name of the bank account owner.",
                  "$ref" : "#/components/schemas/Name"
               }
            },
            "type" : "object"
         },
         "Counterparty" : {
            "additionalProperties" : false,
            "properties" : {
               "balanceAccountId" : {
                  "description" : "The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).",
                  "type" : "string"
               },
               "bankAccount" : {
                  "description" : "Contains information about the bank account.",
                  "$ref" : "#/components/schemas/BankAccountInfo"
               },
               "merchant" : {
                  "description" : "Contains information about the merchant.",
                  "$ref" : "#/components/schemas/MerchantData"
               },
               "transferInstrumentId" : {
                  "description" : "The unique identifier of the [transfer instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/transferInstruments__resParam_id).",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "InternalPartyIdentification" : {
            "additionalProperties" : false,
            "properties" : {
               "balanceAccountId" : {
                  "description" : "The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).",
                  "type" : "string"
               },
               "paymentInstrumentId" : {
                  "description" : "The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id).",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "InvalidField" : {
            "additionalProperties" : false,
            "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" : {
            "type" : "object"
         },
         "Link" : {
            "additionalProperties" : false,
            "properties" : {
               "href" : {
                  "description" : "The link to the resource.",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "Links" : {
            "additionalProperties" : false,
            "properties" : {
               "next" : {
                  "description" : "Contains a link to the next page.",
                  "$ref" : "#/components/schemas/Link"
               },
               "prev" : {
                  "description" : "Contains a link to the previous page.",
                  "$ref" : "#/components/schemas/Link"
               }
            },
            "type" : "object"
         },
         "MerchantData" : {
            "additionalProperties" : false,
            "properties" : {
               "acquirerId" : {
                  "description" : "The unique identifier of the merchant's acquirer.",
                  "type" : "string"
               },
               "mcc" : {
                  "description" : "The merchant category code.",
                  "type" : "string"
               },
               "merchantId" : {
                  "description" : "The unique identifier of the merchant.",
                  "type" : "string"
               },
               "nameLocation" : {
                  "description" : "Contains the name and location of the merchant.",
                  "$ref" : "#/components/schemas/NameLocation"
               },
               "postalCode" : {
                  "description" : "The postal code of the merchant.",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "Name" : {
            "additionalProperties" : false,
            "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" : {
            "additionalProperties" : false,
            "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"
         },
         "PartyIdentification" : {
            "additionalProperties" : false,
            "properties" : {
               "balanceAccountId" : {
                  "description" : "The unique identifier of the [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).",
                  "type" : "string"
               },
               "paymentInstrumentId" : {
                  "description" : "The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id).",
                  "type" : "string"
               }
            },
            "type" : "object"
         },
         "RestServiceError" : {
            "additionalProperties" : false,
            "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" : {
                  "description" : "JSON response payload.",
                  "$ref" : "#/components/schemas/JSONObject"
               },
               "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"
         },
         "RoutingDetails" : {
            "additionalProperties" : false,
            "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"
               },
               "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. Required for transfers with `category` **bank**.\n\nPossible values:\n\n* **regular**: for normal, low-value transactions.\n\n* **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions.\n\n* **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions.\n\n* **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html).\n\n* **crossBorder**: for high-value transfers to a recipient in a different country.\n\n* **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).",
                  "enum" : [
                     "crossBorder",
                     "fast",
                     "instant",
                     "internal",
                     "regular",
                     "wire"
                  ],
                  "type" : "string"
               },
               "title" : {
                  "description" : "A short, human-readable summary of the problem type.",
                  "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"
         },
         "Transaction" : {
            "additionalProperties" : false,
            "properties" : {
               "accountHolderId" : {
                  "x-addedInVersion" : "1",
                  "description" : "Unique identifier of the account holder.",
                  "type" : "string"
               },
               "amount" : {
                  "x-addedInVersion" : "1",
                  "description" : "Contains information about the amount of the transaction.",
                  "$ref" : "#/components/schemas/Amount"
               },
               "balanceAccountId" : {
                  "x-addedInVersion" : "1",
                  "description" : "Unique identifier of the balance account.",
                  "type" : "string"
               },
               "balancePlatform" : {
                  "x-addedInVersion" : "1",
                  "description" : "The unique identifier of the balance platform.",
                  "type" : "string"
               },
               "bookingDate" : {
                  "x-addedInVersion" : "1",
                  "description" : "The date the transaction was booked into the balance account.",
                  "format" : "date-time",
                  "type" : "string"
               },
               "category" : {
                  "x-addedInVersion" : "1",
                  "description" : "The category of the transaction indicating the type of activity.\n\n Possible values:\n\n* **platformPayment**: The transaction is a payment or payment modification made with an Adyen merchant account.\n\n* **internal**: The transaction resulted from an internal adjustment such as a deposit correction or invoice deduction.\n\n* **bank**: The transaction is a bank-related activity, such as sending a payout or receiving funds.\n\n* **issuedCard**: The transaction is a card-related activity, such as using an Adyen-issued card to pay online.\n\n",
                  "enum" : [
                     "bank",
                     "card",
                     "grants",
                     "internal",
                     "issuedCard",
                     "migration",
                     "platformPayment",
                     "topUp",
                     "upgrade"
                  ],
                  "type" : "string"
               },
               "counterparty" : {
                  "x-addedInVersion" : "1",
                  "description" : "Contains information about the other party in the transaction.",
                  "$ref" : "#/components/schemas/Counterparty"
               },
               "createdAt" : {
                  "x-addedInVersion" : "1",
                  "description" : "The date the transaction was created.",
                  "format" : "date-time",
                  "type" : "string"
               },
               "creationDate" : {
                  "description" : "The date and time when the event was triggered, in ISO 8601 extended format. For example, **2020-12-18T10:15:30+01:00**.",
                  "format" : "date-time",
                  "type" : "string"
               },
               "description" : {
                  "x-addedInVersion" : "1",
                  "description" : "The `description` from the `/transfers` request.",
                  "type" : "string"
               },
               "id" : {
                  "x-addedInVersion" : "1",
                  "description" : "The unique identifier of the transaction.",
                  "type" : "string"
               },
               "instructedAmount" : {
                  "x-addedInVersion" : "1",
                  "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.",
                  "$ref" : "#/components/schemas/Amount"
               },
               "paymentInstrumentId" : {
                  "x-addedInVersion" : "1",
                  "description" : "The unique identifier of the payment instrument that was used for the transaction.",
                  "type" : "string"
               },
               "reference" : {
                  "x-addedInVersion" : "1",
                  "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"
               },
               "referenceForBeneficiary" : {
                  "x-addedInVersion" : "1",
                  "description" : "The reference sent to or received from the counterparty.\n\n* 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.\n\n * For incoming funds, this is the reference from the sender.",
                  "type" : "string"
               },
               "status" : {
                  "x-addedInVersion" : "1",
                  "description" : "The status of the transaction.\n\n Possible values:\n\n* **pending**: The transaction is still pending.\n\n* **booked**: The transaction has been booked to the balance account.\n\n",
                  "enum" : [
                     "booked",
                     "pending"
                  ],
                  "type" : "string"
               },
               "transferId" : {
                  "x-addedInVersion" : "1",
                  "description" : "Unique identifier of the related transfer.",
                  "type" : "string"
               },
               "type" : {
                  "x-addedInVersion" : "1",
                  "description" : "The type of the transaction.\n\n Possible values: **payment**, **capture**, **captureReversal**, **refund** **refundReversal**, **chargeback**, **chargebackReversal**, **secondChargeback**, **atmWithdrawal**, **atmWithdrawalReversal**, **internalTransfer**, **manualCorrection**, **invoiceDeduction**, **depositCorrection**, **bankTransfer**, **miscCost**, **paymentCost**, **fee**",
                  "enum" : [
                     "atmWithdrawal",
                     "atmWithdrawalReversal",
                     "balanceAdjustment",
                     "balanceMigration",
                     "balanceRollover",
                     "bankDirectDebit",
                     "bankTransfer",
                     "capitalFundsCollection",
                     "capture",
                     "captureReversal",
                     "cardTransfer",
                     "cashOutFee",
                     "cashOutFunding",
                     "cashOutInstruction",
                     "cashoutFee",
                     "cashoutFunding",
                     "cashoutRepayment",
                     "chargeback",
                     "chargebackCorrection",
                     "chargebackReversal",
                     "chargebackReversalCorrection",
                     "depositCorrection",
                     "fee",
                     "grant",
                     "installment",
                     "installmentReversal",
                     "internalDirectDebit",
                     "internalTransfer",
                     "invoiceDeduction",
                     "leftover",
                     "manualCorrection",
                     "miscCost",
                     "payment",
                     "paymentCost",
                     "refund",
                     "refundReversal",
                     "repayment",
                     "reserveAdjustment",
                     "secondChargeback",
                     "secondChargebackCorrection"
                  ],
                  "type" : "string"
               },
               "valueDate" : {
                  "x-addedInVersion" : "1",
                  "description" : "The date the transfer amount becomes available in the balance account.",
                  "format" : "date-time",
                  "type" : "string"
               }
            },
            "required" : [
               "id",
               "accountHolderId",
               "balanceAccountId",
               "amount",
               "reference",
               "status",
               "createdAt",
               "bookingDate",
               "valueDate",
               "counterparty",
               "balancePlatform"
            ],
            "type" : "object"
         },
         "TransactionSearchResponse" : {
            "additionalProperties" : false,
            "properties" : {
               "_links" : {
                  "description" : "Contains links to the next and previous page whenever applicable.",
                  "$ref" : "#/components/schemas/Links"
               },
               "data" : {
                  "description" : "Contains the transactions that match the query parameters.",
                  "items" : {
                     "$ref" : "#/components/schemas/Transaction"
                  },
                  "type" : "array"
               }
            },
            "type" : "object"
         },
         "TransferInfoOld" : {
            "additionalProperties" : false,
            "properties" : {
               "amount" : {
                  "x-addedInVersion" : "1",
                  "description" : "The amount of the transfer.",
                  "$ref" : "#/components/schemas/Amount"
               },
               "description" : {
                  "x-addedInVersion" : "1",
                  "description" : "A human-readable description for the transfer. You can use alphanumeric characters and hyphens. We recommend sending a maximum of 140 characters, otherwise the description will be truncated in the webhooks that you receive about the transfer.",
                  "type" : "string"
               },
               "destination" : {
                  "x-addedInVersion" : "1",
                  "description" : "Contains information about the resource to which funds will be transferred.",
                  "$ref" : "#/components/schemas/PartyIdentification"
               },
               "reference" : {
                  "x-addedInVersion" : "1",
                  "description" : "Your unique reference for the transfer. You can use alphanumeric characters and hyphens. ",
                  "maxLength" : 80,
                  "type" : "string"
               },
               "source" : {
                  "x-addedInVersion" : "1",
                  "description" : "Contains information about the resource from which funds will be taken.",
                  "$ref" : "#/components/schemas/InternalPartyIdentification"
               }
            },
            "required" : [
               "source",
               "destination",
               "amount"
            ],
            "type" : "object"
         },
         "TransferOld" : {
            "additionalProperties" : false,
            "properties" : {
               "amount" : {
                  "x-addedInVersion" : "1",
                  "description" : "The amount of the transfer.",
                  "$ref" : "#/components/schemas/Amount"
               },
               "description" : {
                  "x-addedInVersion" : "1",
                  "description" : "A human-readable description for the transfer. You can use alphanumeric characters and hyphens. We recommend sending a maximum of 140 characters, otherwise the description will be truncated in the webhooks that you receive about the transfer.",
                  "type" : "string"
               },
               "destination" : {
                  "x-addedInVersion" : "1",
                  "description" : "Contains information about the resource to which funds will be transferred.",
                  "$ref" : "#/components/schemas/PartyIdentification"
               },
               "id" : {
                  "x-addedInVersion" : "1",
                  "description" : "Unique identifier of the transfer.",
                  "type" : "string"
               },
               "reference" : {
                  "x-addedInVersion" : "1",
                  "description" : "Your unique reference for the transfer. You can use alphanumeric characters and hyphens. ",
                  "maxLength" : 80,
                  "type" : "string"
               },
               "refusalReason" : {
                  "x-addedInVersion" : "1",
                  "description" : "Additional information about the result of the transfer request.",
                  "type" : "string"
               },
               "resultCode" : {
                  "x-addedInVersion" : "1",
                  "description" : "The result of the transfer request.\n\n Possible values: **Authorised**, **Refused**.",
                  "type" : "string"
               },
               "source" : {
                  "x-addedInVersion" : "1",
                  "description" : "Contains information about the resource from which funds will be taken.",
                  "$ref" : "#/components/schemas/InternalPartyIdentification"
               }
            },
            "required" : [
               "source",
               "destination",
               "amount",
               "id",
               "resultCode"
            ],
            "type" : "object"
         },
         "TransferServiceRestServiceError" : {
            "additionalProperties" : false,
            "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" : {
                  "description" : "JSON response payload.",
                  "$ref" : "#/components/schemas/JSONObject"
               },
               "routingDetails" : {
                  "description" : "Detailed explanation of each attempt to route the transfer with the priorities from the request.",
                  "items" : {
                     "$ref" : "#/components/schemas/RoutingDetails"
                  },
                  "type" : "array"
               },
               "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"
         }
      },
      "securitySchemes" : {
         "ApiKeyAuth" : {
            "in" : "header",
            "name" : "X-API-Key",
            "type" : "apiKey"
         },
         "BasicAuth" : {
            "scheme" : "basic",
            "type" : "http"
         },
         "clientKey" : {
            "in" : "query",
            "name" : "clientKey",
            "type" : "apiKey"
         }
      },
      "headers" : {
         "Idempotency-Key" : {
            "description" : "The idempotency key used for processing the request. Present if the key was provided in the request.",
            "schema" : {
               "type" : "string"
            }
         },
         "auth-param1" : {
            "description" : "Base64-encoded blob of data. You will need auth-param1 when authenticating your user using the SDK.",
            "schema" : {
               "type" : "string"
            }
         }
      },
      "parameters" : {
         "Idempotency-Key" : {
            "description" : "A unique identifier for the message with a maximum of 64 characters (we recommend a UUID).",
            "example" : "37ca9c97-d1d1-4c62-89e8-706891a563ed",
            "name" : "Idempotency-Key",
            "in" : "header",
            "schema" : {
               "type" : "string"
            }
         }
      },
      "examples" : {
         "post-transfers-payout-to-balance-account" : {
            "summary" : "Transfer funds to another balance account",
            "description" : "Example request to transfer funds to another balance account",
            "value" : {
               "source" : {
                  "balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4"
               },
               "destination" : {
                  "balanceAccountId" : "BAB1234567890ABC123456789"
               },
               "amount" : {
                  "value" : 10000,
                  "currency" : "EUR"
               },
               "reference" : "Your internal reference for the transfer",
               "description" : "Your description"
            }
         },
         "post-transfers-payout-to-balance-account-200" : {
            "summary" : "Response code - 200 OK",
            "description" : "Example response for a transfers request",
            "value" : {
               "id" : "1W1UG35U8A9J5ZLG",
               "source" : {
                  "balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4"
               },
               "destination" : {
                  "balanceAccountId" : "BAB1234567890ABC123456789"
               },
               "amount" : {
                  "value" : 10000,
                  "currency" : "EUR"
               },
               "resultCode" : "Authorised"
            }
         },
         "post-transfers-payout-to-transfer-instrument" : {
            "summary" : "Pay out to a transfer instrument",
            "description" : "Example request to pay out to a transfer instrument",
            "value" : {
               "source" : {
                  "balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4"
               },
               "destination" : {
                  "balanceAccountId" : "BAB1234567890ABC123456789"
               },
               "amount" : {
                  "value" : 10000,
                  "currency" : "EUR"
               },
               "reference" : "Your internal reference for the transfer",
               "description" : "Your description"
            }
         },
         "post-transfers-payout-to-transfer-instrument-200" : {
            "summary" : "Response code - 200 OK",
            "description" : "Example response for a transfers request",
            "value" : {
               "id" : "1W1UG35U8A9J5ZLG",
               "source" : {
                  "balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4"
               },
               "destination" : {
                  "balanceAccountId" : "BAB1234567890ABC123456789"
               },
               "amount" : {
                  "value" : 10000,
                  "currency" : "EUR"
               },
               "resultCode" : "Authorised"
            }
         }
      }
   }
}