Files
adyen-openapi/json/TransferService-v2.json
Adyen Automation 4ccefb6de4 spec release
2024-06-20 10:26:08 +02:00

1532 lines
69 KiB
JSON

{
"openapi" : "3.1.0",
"servers" : [
{
"url" : "https://balanceplatform-api-test.adyen.com/btl/v2"
}
],
"info" : {
"version" : "2",
"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\nThis 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\nYour 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:\n\n ```\ncurl\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Key: YOUR_API_KEY\" \\\n...\n```\n\nAlternatively, you can use the username and password to connect to the API using basic authentication. For example:\n\n```\ncurl\n-H \"Content-Type: application/json\" \\\n-U \"ws@BalancePlatform.YOUR_BALANCE_PLATFORM\":\"YOUR_WS_PASSWORD\" \\\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/v2/transfers\n```\n## Going live\nWhen 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`.\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" : {
"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."
}
}
}
},
"/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" : {
"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."
}
}
}
},
"/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 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.\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" : "2",
"operationId" : "post-transfers",
"x-sortIndex" : 1,
"x-methodName" : "transferFunds",
"security" : [
{
"clientKey" : [
]
},
{
"BasicAuth" : [
]
},
{
"ApiKeyAuth" : [
]
}
],
"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"
}
}
}
},
"parameters" : [
{
"description" : "Header for authenticating through SCA",
"example" : "SCA realm=\"Transfer\" auth-param1=\"eyJjaGFsbGVuZ2UiOiJiVlV6ZW5wek0waFNl...\"",
"name" : "WWW-Authenticate",
"in" : "header",
"schema" : {
"type" : "string"
}
}
],
"responses" : {
"202" : {
"content" : {
"application/json" : {
"examples" : {
"payout-local-transfer-sepa" : {
"$ref" : "#/components/examples/post-transfers-payout-local-transfer-sepa-202"
},
"payout-to-balance-account" : {
"$ref" : "#/components/examples/post-transfers-payout-to-balance-account-202"
},
"payout-to-transfer-instrument" : {
"$ref" : "#/components/examples/post-transfers-payout-to-transfer-instrument-202"
}
},
"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/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."
},
"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).",
"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" : {
"additionalProperties" : false,
"properties" : {
"priority" : {
"x-addedInVersion" : "1",
"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.\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"
}
},
"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"
},
"CounterpartyInfo" : {
"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"
},
"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"
},
"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 merchant identifier.",
"type" : "string"
},
"nameLocation" : {
"description" : "Contains the merchant's name and location.",
"$ref" : "#/components/schemas/NameLocation"
},
"postalCode" : {
"description" : "The merchant postal code.",
"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"
},
"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",
"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"
},
"Transfer" : {
"additionalProperties" : false,
"properties" : {
"amount" : {
"x-addedInVersion" : "1",
"description" : "The amount of the transfer.",
"$ref" : "#/components/schemas/Amount"
},
"balanceAccountId" : {
"x-addedInVersion" : "2",
"description" : "The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).",
"type" : "string"
},
"bank" : {
"x-addedInVersion" : "1",
"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.",
"$ref" : "#/components/schemas/Bank"
},
"counterparty" : {
"description" : "The other party in the transfer.",
"$ref" : "#/components/schemas/Counterparty"
},
"description" : {
"x-addedInVersion" : "1",
"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.\n\nSupported characters: **[a-z] [A-Z] [0-9] / - ?** **: ( ) . , ' + Space**\n\nSupported characters for **regular** and **fast** transfers to a US counterparty: **[a-z] [A-Z] [0-9] & $ % # @** **~ = + - _ ' \" ! ?**",
"type" : "string"
},
"direction" : {
"x-addedInVersion" : "2",
"description" : "The direction of the transfer.\n\nPossible values: **incoming**, **outgoing**.",
"enum" : [
"incoming",
"outgoing"
],
"type" : "string"
},
"id" : {
"description" : "The ID of the resource.",
"type" : "string"
},
"paymentInstrumentId" : {
"x-addedInVersion" : "2",
"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"
},
"reason" : {
"x-addedInVersion" : "2",
"description" : "Additional information about the status of the transfer.",
"enum" : [
"amountLimitExceeded",
"approved",
"balanceAccountTemporarilyBlockedByTransactionRule",
"counterpartyAccountBlocked",
"counterpartyAccountClosed",
"counterpartyAccountNotFound",
"counterpartyAddressRequired",
"counterpartyBankTimedOut",
"counterpartyBankUnavailable",
"declined",
"declinedByTransactionRule",
"error",
"notEnoughBalance",
"pendingApproval",
"refusedByCounterpartyBank",
"routeNotFound",
"scaFailed",
"unknown"
],
"type" : "string"
},
"reference" : {
"x-addedInVersion" : "2",
"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"
},
"referenceForBeneficiary" : {
"x-addedInVersion" : "2",
"description" : " A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both parties involved in the funds movement.\n\n Supported characters: **a-z**, **A-Z**, **0-9**.",
"maxLength" : 80,
"type" : "string"
},
"status" : {
"x-addedInVersion" : "2",
"description" : "The result of the transfer.\n\n For example, **authorised**, **refused**, or **error**.",
"enum" : [
"approvalPending",
"atmWithdrawal",
"atmWithdrawalReversalPending",
"atmWithdrawalReversed",
"authAdjustmentAuthorised",
"authAdjustmentError",
"authAdjustmentRefused",
"authorised",
"bankTransfer",
"bankTransferPending",
"booked",
"bookingPending",
"cancelled",
"capturePending",
"captureReversalPending",
"captureReversed",
"captured",
"capturedExternally",
"chargeback",
"chargebackExternally",
"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",
"refundedExternally",
"refused",
"rejected",
"reserveAdjustment",
"reserveAdjustmentPending",
"returned",
"secondChargeback",
"secondChargebackPending",
"undefined"
],
"type" : "string"
}
},
"required" : [
"counterparty",
"status",
"amount"
],
"type" : "object"
},
"TransferInfo" : {
"additionalProperties" : false,
"properties" : {
"amount" : {
"x-addedInVersion" : "1",
"description" : "The amount of the transfer.",
"$ref" : "#/components/schemas/Amount"
},
"balanceAccountId" : {
"description" : "The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#responses-200-id).\n\nIf you want to make a transfer using a **virtual** **bankAccount** assigned to the balance account, you must specify the [payment instrument ID](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id) of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account.",
"type" : "string"
},
"bank" : {
"x-addedInVersion" : "1",
"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.",
"$ref" : "#/components/schemas/Bank"
},
"counterparty" : {
"description" : "The other party involved in the funds transfer. A bank account, a balance account, or a transfer instrument is required.",
"$ref" : "#/components/schemas/CounterpartyInfo"
},
"description" : {
"x-addedInVersion" : "1",
"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.\n\nSupported characters: **[a-z] [A-Z] [0-9] / - ?** **: ( ) . , ' + Space**\n\nSupported characters for **regular** and **fast** transfers to a US counterparty: **[a-z] [A-Z] [0-9] & $ % # @** **~ = + - _ ' \" ! ?**",
"maxLength" : 140,
"type" : "string"
},
"paymentInstrumentId" : {
"description" : "The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id).\n\nIf you want to make a transfer using a **virtual** **bankAccount**, you must specify the payment instrument ID of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account.",
"type" : "string"
},
"reference" : {
"x-addedInVersion" : "2",
"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"
},
"referenceForBeneficiary" : {
"x-addedInVersion" : "2",
"description" : " A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both parties involved in the funds movement.\n\n Supported characters: **a-z**, **A-Z**, **0-9**.",
"maxLength" : 80,
"type" : "string"
}
},
"required" : [
"amount",
"counterparty"
],
"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" : {
"auth-param1" : {
"description" : "Base64-encoded blob of data. You will need auth-param1 when authenticating your user using the SDK.",
"schema" : {
"type" : "string"
}
}
},
"examples" : {
"get-transactions-id-success-200" : {
"summary" : "Response code - 200 OK",
"description" : "Example response for a transaction",
"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" : {
"summary" : "Response code - 200 OK",
"description" : "Example response for a list of transactions",
"value" : {
"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
},
"counterparty" : {
"balanceAccountId" : "BA00000000000000000000001"
},
"reference" : "REFERENCE_46e8c40e",
"balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4",
"balancePlatform" : "YOUR_BALANCE_PLATFORM",
"bookingDate" : "2022-03-14T21:00:48+01:00",
"createdAt" : "2022-03-14T15:00:00+01:00",
"description" : "YOUR_DESCRIPTION_2",
"id" : "2QP32A5U7IWC5WKG",
"instructedAmount" : {
"currency" : "EUR",
"value" : -8
},
"status" : "booked",
"valueDate" : "2022-03-14T21:00:48+01:00"
}
],
"_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"
}
}
}
},
"post-transfers-payout-local-transfer-sepa" : {
"summary" : "Make a SEPA funds transfer",
"description" : "Example request to make a US local funds transfer",
"value" : {
"amount" : {
"value" : 110000,
"currency" : "EUR"
},
"balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4",
"counterparty" : {
"bankAccount" : {
"iban" : "NL13TEST0123456789",
"ownerName" : {
"fullName" : "A. Klaassen"
}
}
},
"bank" : {
"priority" : "regular"
},
"referenceForBeneficiary" : "Your reference sent to the beneficiary",
"reference" : "Your internal reference for the transfer",
"description" : "Your description"
}
},
"post-transfers-payout-local-transfer-sepa-202" : {
"summary" : "Response code - 202 Accepted",
"description" : "Example response for a transfers request",
"value" : {
"id" : "1W1UG35U8A9J5ZLG",
"amount" : {
"value" : 110000,
"currency" : "EUR"
},
"balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4",
"counterparty" : {
"bankAccount" : {
"iban" : "NL13TEST0123456789",
"ownerName" : {
"fullName" : "A. Klaassen"
}
}
},
"bank" : {
"priority" : "regular"
},
"referenceForBeneficiary" : "Your reference sent to the beneficiary",
"reference" : "Your internal reference for the transfer",
"description" : "Your description",
"direction" : "outgoing",
"reason" : "approved",
"status" : "authorised"
}
},
"post-transfers-payout-to-balance-account" : {
"summary" : "Transfer funds to another balance account",
"description" : "Example request to transfer funds to another balance account",
"value" : {
"balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4",
"counterparty" : {
"balanceAccountId" : "BAB1234567890ABC123456789"
},
"amount" : {
"value" : 10000,
"currency" : "EUR"
},
"reference" : "Your internal reference for the transfer",
"description" : "Your description"
}
},
"post-transfers-payout-to-balance-account-202" : {
"summary" : "Response code - 202 Accepted",
"description" : "Example response for a transfers request",
"value" : {
"id" : "1W1UG35U8A9J5ZLG",
"amount" : {
"currency" : "EUR",
"value" : 10000
},
"balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4",
"counterparty" : {
"balanceAccountId" : "BA32272223222B5LPRFDW7J9G"
},
"referenceForBeneficiary" : "Your reference sent to the beneficiary",
"reference" : "Your internal reference for the transfer",
"description" : "Your description",
"direction" : "outgoing",
"reason" : "approved",
"status" : "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" : {
"amount" : {
"value" : 80000,
"currency" : "EUR"
},
"balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4",
"counterparty" : {
"transferInstrumentId" : "SE1234567890ABC1234567890"
},
"bank" : {
"priority" : "regular"
},
"referenceForBeneficiary" : "Your reference sent to the beneficiary",
"reference" : "Your internal reference for the transfer",
"description" : "Your description"
}
},
"post-transfers-payout-to-transfer-instrument-202" : {
"summary" : "Response code - 202 Accepted",
"description" : "Example response for a transfers request",
"value" : {
"id" : "1W1UG35U8A9J5ZLG",
"amount" : {
"value" : 80000,
"currency" : "EUR"
},
"balanceAccountId" : "BAB8B2C3D4E5F6G7H8D9J6GD4",
"counterparty" : {
"transferInstrumentId" : "SE1234567890ABC1234567890"
},
"bank" : {
"priority" : "regular"
},
"referenceForBeneficiary" : "Your reference sent to the beneficiary",
"reference" : "Your internal reference for the transfer",
"description" : "Your description",
"direction" : "outgoing",
"reason" : "approved",
"status" : "authorised"
}
}
}
}
}