openapi: 3.1.0 info: version: '3' x-publicVersion: true title: Transfer webhooks description: 'Adyen sends webhooks to inform your system about incoming and outgoing transfers in your platform. You can use these webhooks to build your implementation. For example, you can use this information to update balances in your own dashboards or to keep track of incoming funds.' termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team url: https://github.com/Adyen/adyen-openapi tags: - name: General webhooks: balancePlatform.transfer.created: post: tags: - General summary: Transfer created description: Adyen sends this webhook when there are fund movements on your platform. x-addedInVersion: '1' operationId: post-balancePlatform.transfer.created x-sortIndex: 0 x-methodName: transferCreated security: - BasicAuth: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/TransferNotificationRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. balancePlatform.transfer.updated: post: tags: - General summary: Transfer updated description: "Adyen sends this webhook when the status of a transfer changes.\ \ Use the `data.id` to track the original transfer resource in the [balancePlatform.transfer.created](https://docs.adyen.com/api-explorer/transfer-webhooks/1/post/balancePlatform.transfer.created)\ \ webhook.\n\nThe `status` field indicates the event that triggered the webhook.\ \ \n\n" x-addedInVersion: '1' operationId: post-balancePlatform.transfer.updated x-sortIndex: 0 x-methodName: transferUpdated security: - BasicAuth: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/TransferNotificationRequest' responses: '200': content: application/json: schema: $ref: '#/components/schemas/BalancePlatformNotificationResponse' description: OK - the request has succeeded. components: schemas: AULocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The bank account number, without separators or whitespace. maxLength: 9 minLength: 5 type: string bsbCode: description: The 6-digit [Bank State Branch (BSB) code](https://en.wikipedia.org/wiki/Bank_state_branch), without separators or whitespace. maxLength: 6 minLength: 6 type: string type: default: auLocal description: '**auLocal**' enum: - auLocal type: string required: - type - accountNumber - bsbCode type: object AdditionalBankIdentification: additionalProperties: false properties: code: description: The value of the additional bank identification. type: string type: description: "The type of additional bank identification, depending on the\ \ country.\n\nPossible values:\n\n * **gbSortCode**: The 6-digit [UK sort\ \ code](https://en.wikipedia.org/wiki/Sort_code), without separators or\ \ spaces\n * **usRoutingNumber**: The 9-digit [routing number](https://en.wikipedia.org/wiki/ABA_routing_transit_number),\ \ without separators or spaces." enum: - gbSortCode - usRoutingNumber type: string type: object Address: additionalProperties: false properties: city: description: "The name of the city.\n\nSupported characters: [a-z] [A-Z]\ \ [0-9] . - \u2014 / # , \u2019 \xB0 ( ) : ; [ ] & \\ | and Space." minLength: 3 type: string country: description: The two-character ISO 3166-1 alpha-2 country code. For example, **US**, **NL**, or **GB**. type: string line1: description: "First line of the street address.\n\nSupported characters:\ \ [a-z] [A-Z] [0-9] . - \u2014 / # , \u2019 \xB0 ( ) : ; [ ] & \\ | and\ \ Space." type: string line2: description: "Second line of the street address.\n\nSupported characters:\ \ [a-z] [A-Z] [0-9] . - \u2014 / # , \u2019 \xB0 ( ) : ; [ ] & \\ | and\ \ Space." type: string postalCode: description: 'The postal code. Maximum length: * 5 digits for an address in the US. * 10 characters for an address in all other countries. Supported characters: [a-z] [A-Z] [0-9] and Space. ' minLength: 3 type: string stateOrProvince: description: " The two-letter ISO 3166-2 state or province code. For example,\ \ **CA** in the US or **ON** in Canada.\n > Required for the US and\ \ Canada.\n" type: string required: - 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 AmountAdjustment: additionalProperties: false properties: amount: x-addedInVersion: '3' description: The adjustment amount. $ref: '#/components/schemas/Amount' amountAdjustmentType: x-addedInVersion: '3' description: 'The type of markup that is applied to an authorised payment. Possible values: **exchange**, **forexMarkup**, **authHoldReserve**, **atmMarkup**.' enum: - atmMarkup - authHoldReserve - exchange - forexMarkup type: string basepoints: x-addedInVersion: '3' description: The basepoints associated with the applied markup. format: int32 type: integer type: object BRLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The bank account number, without separators or whitespace. maxLength: 10 minLength: 1 type: string bankCode: description: The 3-digit bank code, with leading zeros. maxLength: 3 minLength: 3 type: string branchNumber: description: The bank account branch number, without separators or whitespace. maxLength: 4 minLength: 1 type: string ispb: description: The 8-digit ISPB, with leading zeros. maxLength: 8 minLength: 8 type: string type: default: brLocal description: '**brLocal**' enum: - brLocal type: string required: - type - branchNumber - accountNumber - bankCode type: object BalanceMutation: additionalProperties: false properties: balance: x-addedInVersion: '3' description: The amount in the payment's currency that is debited or credited on the balance accounting register. format: int64 type: integer currency: x-addedInVersion: '3' description: The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). type: string received: x-addedInVersion: '3' description: The amount in the payment's currency that is debited or credited on the received accounting register. format: int64 type: integer reserved: x-addedInVersion: '3' description: The amount in the payment's currency that is debited or credited on the reserved accounting register. format: int64 type: integer type: object BalancePlatformNotificationResponse: additionalProperties: false properties: notificationResponse: description: Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). type: string type: object BankAccountV3: additionalProperties: false properties: accountHolder: description: Information about the owner of the bank account. $ref: '#/components/schemas/PartyIdentification' accountIdentification: description: Contains the bank account details. The fields required in this object depend on the country of the bank account and the currency of the transfer. oneOf: - $ref: '#/components/schemas/AULocalAccountIdentification' - $ref: '#/components/schemas/BRLocalAccountIdentification' - $ref: '#/components/schemas/CALocalAccountIdentification' - $ref: '#/components/schemas/CZLocalAccountIdentification' - $ref: '#/components/schemas/DKLocalAccountIdentification' - $ref: '#/components/schemas/HKLocalAccountIdentification' - $ref: '#/components/schemas/HULocalAccountIdentification' - $ref: '#/components/schemas/IbanAccountIdentification' - $ref: '#/components/schemas/NOLocalAccountIdentification' - $ref: '#/components/schemas/NZLocalAccountIdentification' - $ref: '#/components/schemas/NumberAndBicAccountIdentification' - $ref: '#/components/schemas/PLLocalAccountIdentification' - $ref: '#/components/schemas/SELocalAccountIdentification' - $ref: '#/components/schemas/SGLocalAccountIdentification' - $ref: '#/components/schemas/UKLocalAccountIdentification' - $ref: '#/components/schemas/USLocalAccountIdentification' required: - accountIdentification - accountHolder type: object CALocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 5- to 12-digit bank account number, without separators or whitespace. maxLength: 12 minLength: 5 type: string accountType: default: checking description: 'The bank account type. Possible values: **checking** or **savings**. Defaults to **checking**.' enum: - checking - savings type: string institutionNumber: description: The 3-digit institution number, without separators or whitespace. maxLength: 3 minLength: 3 type: string transitNumber: description: The 5-digit transit number, without separators or whitespace. maxLength: 5 minLength: 5 type: string type: default: caLocal description: '**caLocal**' enum: - caLocal type: string required: - type - accountNumber - institutionNumber - transitNumber type: object CZLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: "The 2- to 16-digit bank account number (\u010C\xEDslo \xFA\ \u010Dtu) in the following format:\n\n- The optional prefix (p\u0159ed\u010D\ \xEDsl\xED).\n\n- The required second part (z\xE1kladn\xED \u010D\xE1\ st) which must be at least two non-zero digits.\n\nExamples:\n\n- **19-123457**\ \ (with prefix)\n\n- **123457** (without prefix)\n\n- **000019-0000123457**\ \ (with prefix, normalized)\n\n- **000000-0000123457** (without prefix,\ \ normalized)" maxLength: 17 minLength: 2 type: string bankCode: description: "The 4-digit bank code (K\xF3d banky), without separators or\ \ whitespace." maxLength: 4 minLength: 4 type: string type: default: czLocal description: '**czLocal**' enum: - czLocal type: string required: - type - accountNumber - bankCode type: object Card: additionalProperties: false properties: cardHolder: description: Contains information about the cardholder. $ref: '#/components/schemas/PartyIdentification' cardIdentification: description: Contains the identification details of the card. $ref: '#/components/schemas/CardIdentification' required: - cardIdentification - cardHolder type: object CardIdentification: additionalProperties: false properties: expiryMonth: description: 'The expiry month of the card. Format: two digits. Add a leading zero for single-digit months. For example: * 03 = March * 11 = November' maxLength: 2 minLength: 2 type: string expiryYear: description: 'The expiry year of the card. Format: four digits. For example: 2020' maxLength: 4 minLength: 4 type: string issueNumber: description: The issue number of the card. Applies only to some UK debit cards. maxLength: 2 minLength: 1 type: string number: description: 'The card number without any separators. For security, the response only includes the last four digits of the card number.' maxLength: 19 minLength: 4 type: string startMonth: description: 'The month when the card was issued. Applies only to some UK debit cards. Format: two digits. Add a leading zero for single-digit months. For example: * 03 = March * 11 = November' maxLength: 2 minLength: 2 type: string startYear: description: 'The year when the card was issued. Applies only to some UK debit cards. Format: four digits. For example: 2020' maxLength: 4 minLength: 4 type: string storedPaymentMethodId: description: 'The unique [token](/payouts/payout-service/pay-out-to-cards/manage-card-information#save-card-details) created to identify the counterparty. ' type: string type: object ConfirmationTrackingData: additionalProperties: false properties: status: description: "The status of the transfer.\n\nPossible values:\n\n - **credited**:\ \ the funds are credited to your user's transfer instrument or bank account." enum: - credited type: string type: default: confirmation description: "The type of the tracking event.\n\nPossible values:\n\n -\ \ **confirmation**: the transfer passed Adyen's internal review." enum: - confirmation type: string required: - type - status type: object CounterpartyV3: additionalProperties: false properties: balanceAccountId: description: The unique identifier of the counterparty [balance account](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#responses-200-id). type: string bankAccount: description: Contains information about the counterparty bank account. $ref: '#/components/schemas/BankAccountV3' card: description: Contains information about the counterparty card. $ref: '#/components/schemas/Card' merchant: description: Contains information about the merchant. $ref: '#/components/schemas/MerchantData' transferInstrumentId: description: The unique identifier of the counterparty [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id). type: string type: object DKLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 4-10 digits bank account number (Kontonummer) (without separators or whitespace). maxLength: 10 minLength: 4 type: string bankCode: description: The 4-digit bank code (Registreringsnummer) (without separators or whitespace). maxLength: 4 minLength: 4 type: string type: default: dkLocal description: '**dkLocal**' enum: - dkLocal type: string required: - type - accountNumber - bankCode type: object DirectDebitInformation: additionalProperties: false properties: dateOfSignature: description: The date when the direct debit mandate was accepted by your user, in [ISO-8601](https://www.w3.org/TR/NOTE-datetime) format. format: date-time type: string dueDate: description: The date when the funds are deducted from your user's balance account. format: date-time type: string mandateId: description: Your unique identifier for the direct debit mandate. type: string sequenceType: description: 'Identifies the direct debit transfer''s type. Possible values: **OneOff**, **First**, **Recurring**, **Final**.' type: string type: object EstimationTrackingData: additionalProperties: false properties: estimatedArrivalTime: description: The estimated time the beneficiary should have access to the funds. format: date-time type: string type: default: estimation description: "The type of tracking event. \n\nPossible values: \n\n- **estimation**:\ \ the estimated date and time of when the funds will be credited has been\ \ determined." enum: - estimation type: string required: - type - estimatedArrivalTime type: object ExternalReason: additionalProperties: false properties: code: description: The reason code. type: string description: description: The description of the reason code. type: string namespace: description: The namespace for the reason code. type: string type: object HKLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 9- to 15-character bank account number (alphanumeric), without separators or whitespace. Starts with the 3-digit branch code. maxLength: 15 minLength: 9 type: string clearingCode: description: The 3-digit clearing code, without separators or whitespace. maxLength: 3 minLength: 3 type: string type: default: hkLocal description: '**hkLocal**' enum: - hkLocal type: string required: - type - accountNumber - clearingCode type: object HULocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 24-digit bank account number, without separators or whitespace. maxLength: 24 minLength: 24 type: string type: default: huLocal description: '**huLocal**' enum: - huLocal type: string required: - type - accountNumber type: object IbanAccountIdentification: additionalProperties: false properties: iban: description: The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard. type: string type: default: iban description: '**iban**' enum: - iban type: string required: - type - iban type: object InternalReviewTrackingData: additionalProperties: false properties: reason: description: "The reason why the transfer failed Adyen's internal review.\ \ \n\nPossible values:\n\n- **refusedForRegulatoryReasons**: the transfer\ \ does not comply with Adyen's risk policy. For more information, [contact\ \ the Support Team](https://www.adyen.help/hc/en-us/requests/new). " enum: - refusedForRegulatoryReasons type: string status: description: "The status of the transfer.\n\nPossible values:\n\n - **pending**:\ \ the transfer is under internal review.\n\n- **failed**: the transfer\ \ failed Adyen's internal review. For details, see `reason`.\n\n" enum: - pending - failed type: string type: default: internalReview description: "The type of tracking event. \n\nPossible values: \n\n - **internalReview**:\ \ the transfer was flagged because it does not comply with Adyen's risk\ \ policy." enum: - internalReview type: string required: - type - status 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 Modification: additionalProperties: false properties: direction: x-addedInVersion: '3' description: The direction of the money movement. type: string id: x-addedInVersion: '3' description: Our reference for the modification. type: string reference: x-addedInVersion: '3' description: Your reference for the modification, used internally within your platform. type: string status: x-addedInVersion: '3' description: The status of the transfer event. 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 - pendingApproval - pendingExecution - received - refundPending - refundReversalPending - refundReversed - refunded - refundedExternally - refused - rejected - reserveAdjustment - reserveAdjustmentPending - returned - secondChargeback - secondChargebackPending - undefined type: string type: x-addedInVersion: '3' description: The type of transfer modification. type: string type: object NOLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 11-digit bank account number, without separators or whitespace. maxLength: 11 minLength: 11 type: string type: default: noLocal description: '**noLocal**' enum: - noLocal type: string required: - type - accountNumber type: object NZLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 15-16 digit bank account number. The first 2 digits are the bank number, the next 4 digits are the branch number, the next 7 digits are the account number, and the final 2-3 digits are the suffix. maxLength: 16 minLength: 15 type: string type: default: nzLocal description: '**nzLocal**' enum: - nzLocal type: string required: - type - accountNumber 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 NumberAndBicAccountIdentification: additionalProperties: false properties: accountNumber: description: The bank account number, without separators or whitespace. The length and format depends on the bank or country. maxLength: 34 type: string additionalBankIdentification: description: Additional identification codes of the bank. Some banks may require these identifiers for cross-border transfers. $ref: '#/components/schemas/AdditionalBankIdentification' bic: description: The bank's 8- or 11-character BIC or SWIFT code. maxLength: 11 minLength: 8 type: string type: default: numberAndBic description: '**numberAndBic**' enum: - numberAndBic type: string required: - type - accountNumber - bic type: object PLLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 26-digit bank account number ([Numer rachunku](https://pl.wikipedia.org/wiki/Numer_Rachunku_Bankowego)), without separators or whitespace. maxLength: 26 minLength: 26 type: string type: default: plLocal description: '**plLocal**' enum: - plLocal type: string required: - type - accountNumber type: object PartyIdentification: additionalProperties: false properties: address: description: The address of the bank account or card owner. $ref: '#/components/schemas/Address' dateOfBirth: description: 'The date of birth of the individual in [ISO-8601](https://www.w3.org/TR/NOTE-datetime) format. For example, **YYYY-MM-DD**. Allowed only when `type` is **individual**.' format: date type: string firstName: description: "The first name of the individual.\n\nSupported characters:\ \ [a-z] [A-Z] - . / \u2014 and space.\n\nThis parameter is:\n- Allowed\ \ only when `type` is **individual**.\n- Required when `category` is **card**." type: string fullName: description: "The full name of the entity that owns the bank account or\ \ card.\n\nSupported characters: [a-z] [A-Z] [0-9] , . ; : - \u2014 /\ \ \\ + & ! ? @ ( ) \" ' and space.\n\nRequired when `category` is **bank**." type: string lastName: description: "The last name of the individual.\n\nSupported characters:\ \ [a-z] [A-Z] - . / \u2014 and space.\n\nThis parameter is:\n- Allowed\ \ only when `type` is **individual**.\n- Required when `category` is **card**." type: string reference: description: 'A unique reference to identify the party or counterparty involved in the transfer. For example, your client''s unique wallet or payee ID. Required when you include `cardIdentification.storedPaymentMethodId`.' maxLength: 150 type: string type: default: unknown description: 'The type of entity that owns the bank account or card. Possible values: **individual**, **organization**, or **unknown**. Required when `category` is **card**. In this case, the value must be **individual**.' enum: - individual - organization - unknown type: string type: object PaymentInstrument: additionalProperties: false properties: description: description: The description of the resource. type: string id: description: The unique identifier of the resource. type: string reference: description: The reference for the resource. type: string tokenType: x-addedInVersion: '3' description: The type of wallet that the network token is associated with. type: string type: object RelayedAuthorisationData: additionalProperties: false properties: metadata: x-addedInVersion: '3' additionalProperties: type: string description: Contains key-value pairs of your references and descriptions, for example, `customId`:`your-own-custom-field-12345`. type: object reference: x-addedInVersion: '3' description: Your reference for the relayed authorisation data. type: string type: object Resource: additionalProperties: false properties: balancePlatform: description: The unique identifier of the balance platform. 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 id: description: The ID of the resource. type: string type: object ResourceReference: additionalProperties: false properties: description: description: The description of the resource. type: string id: description: The unique identifier of the resource. type: string reference: description: The reference for the resource. type: string type: object SELocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 7- to 10-digit bank account number ([Bankkontonummer](https://sv.wikipedia.org/wiki/Bankkonto)), without the clearing number, separators, or whitespace. maxLength: 10 minLength: 7 type: string clearingNumber: description: The 4- to 5-digit clearing number ([Clearingnummer](https://sv.wikipedia.org/wiki/Clearingnummer)), without separators or whitespace. maxLength: 5 minLength: 4 type: string type: default: seLocal description: '**seLocal**' enum: - seLocal type: string required: - type - accountNumber - clearingNumber type: object SGLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 4- to 19-digit bank account number, without separators or whitespace. maxLength: 19 minLength: 4 type: string bic: description: The bank's 8- or 11-character BIC or SWIFT code. maxLength: 11 minLength: 8 type: string type: default: sgLocal description: '**sgLocal**' enum: - sgLocal type: string required: - accountNumber - bic type: object TransactionEventViolation: additionalProperties: false properties: reason: description: An explanation about why the transaction rule failed. type: string transactionRule: description: Contains information about the transaction rule. $ref: '#/components/schemas/TransactionRuleReference' transactionRuleSource: description: Contains the type and ID of the resource to which the transaction rule is linked. $ref: '#/components/schemas/TransactionRuleSource' type: object TransactionRuleReference: additionalProperties: false properties: description: description: The description of the resource. type: string id: description: The unique identifier of the resource. type: string reference: description: The reference for the resource. type: string type: object TransactionRuleSource: additionalProperties: false properties: id: description: ID of the resource, when applicable. type: string type: description: "Indicates the type of resource for which the transaction rule\ \ is defined.\n\nPossible values:\n\n * **PaymentInstrumentGroup**\n\n\ * **PaymentInstrument**\n\n* **BalancePlatform**\n\n* **EntityUsageConfiguration**\n\ \n* **PlatformRule**: The transaction rule is a platform-wide rule imposed\ \ by Adyen." type: string type: object TransactionRulesResult: additionalProperties: false properties: advice: description: The advice given by the Risk analysis. type: string allRulesPassed: description: Indicates whether the transaction passed the evaluation for all transaction rules. type: boolean failedTransactionRules: description: Array containing all the transaction rules that the transaction violated. This list is only sent when `allRulesPassed` is **false**. items: $ref: '#/components/schemas/TransactionEventViolation' type: array score: description: The score of the Risk analysis. format: int32 type: integer type: object TransferData: additionalProperties: false properties: accountHolder: x-addedInVersion: '3' description: The account holder associated with the balance account involved in the transfer. $ref: '#/components/schemas/ResourceReference' amount: x-addedInVersion: '1' description: The amount of the transfer. $ref: '#/components/schemas/Amount' balanceAccount: x-addedInVersion: '3' description: Contains information about the balance account involved in the transfer. $ref: '#/components/schemas/ResourceReference' balanceAccountId: x-addedInVersion: '2' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: Use the ID in the [`balanceAccount`](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-balanceAccount-id) object instead. description: The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). type: string balancePlatform: description: The unique identifier of the balance platform. type: string balances: x-addedInVersion: '3' description: The list of the latest balance statuses in the transfer. items: $ref: '#/components/schemas/BalanceMutation' type: array category: x-addedInVersion: '3' description: "The category of the transfer.\n\nPossible values:\n\n - **bank**:\ \ a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id)\ \ or a bank account.\n\n- **card**: a transfer involving a third-party\ \ card.\n\n- **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id)\ \ within your platform.\n\n- **issuedCard**: a transfer initiated by a\ \ Adyen-issued card.\n\n- **platformPayment**: funds movements related\ \ to payments that are acquired for your users.\n\n- **topUp**: an incoming\ \ transfer initiated by your user to top up their balance account." enum: - bank - card - internal - issuedCard - platformPayment - topUp type: string counterparty: x-addedInVersion: '3' description: The other party in the transfer. $ref: '#/components/schemas/TransferNotificationCounterParty' creationDate: x-addedInVersion: '3' 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: 'Your description for the transfer. It is used by most banks as the transfer description. We recommend sending a maximum of 140 characters, otherwise the description may be truncated. Supported characters: **[a-z] [A-Z] [0-9] / - ?** **: ( ) . , '' + Space** Supported characters for **regular** and **fast** transfers to a US counterparty: **[a-z] [A-Z] [0-9] & $ % # @** **~ = + - _ '' " ! ?**' type: string directDebitInformation: x-addedInVersion: '3' description: The details of the direct debit. $ref: '#/components/schemas/DirectDebitInformation' direction: x-addedInVersion: '2' description: 'The direction of the transfer. Possible values: **incoming**, **outgoing**.' enum: - incoming - outgoing type: string events: x-addedInVersion: '3' description: The list of events leading up to the current status of the transfer. items: $ref: '#/components/schemas/TransferEvent' type: array id: description: The ID of the resource. type: string modificationMerchantReference: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: This property will be removed in version 4 and included in the `categoryData` object. description: The capture's merchant reference included in the transfer. type: string modificationPspReference: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: This property will be removed in version 4 and included in the `categoryData` object. description: The capture reference included in the transfer. type: string panEntryMode: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: This property will be removed in version 4 and included in the `categoryData` object. description: 'Indicates the method used for entering the PAN to initiate a transaction. Possible values: **manual**, **chip**, **magstripe**, **contactless**, **cof**, **ecommerce**, **token**.' enum: - chip - cof - contactless - ecommerce - magstripe - manual - token type: string paymentInstrument: x-addedInVersion: '3' description: Contains information about the payment instrument used in the transfer. $ref: '#/components/schemas/PaymentInstrument' paymentInstrumentId: x-addedInVersion: '2' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: Use the ID in the [`paymentInstrument`](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-paymentInstrument-id) object instead. 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 paymentMerchantReference: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: This property will be removed in version 4 and included in the `categoryData` object. description: The payment's merchant reference included in the transfer. type: string platformPaymentType: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: This property will be removed in version 4 and included in the `categoryData` object. description: 'Specifies the nature of the transfer. This parameter helps categorize transfers so you can reconcile transactions at a later time, using the Balance Platform Accounting Report for [marketplaces](https://docs.adyen.com/marketplaces/reports-and-fees/balance-platform-accounting-report/) or [platforms](https://docs.adyen.com/platforms/reports-and-fees/balance-platform-accounting-report/). Possible values: * **AcquiringFees**: for the acquiring fee incurred on a transaction. * **AdyenCommission**: for the transaction fee due to Adyen under [blended rates](https://www.adyen.com/knowledge-hub/guides/payments-training-guide/get-the-best-from-your-card-processing). * **AdyenFees**: for all the transaction fees due to Adyen. This is the sum of Adyen''s commission and Adyen''s markup. * **AdyenMarkup**: for the transaction fee due to Adyen under [Interchange++ pricing](https://www.adyen.com/pricing). * **BalanceAccount**: or the sale amount of a transaction. * **Commission**: for your platform''s commission on a transaction. * **DCCPlatformCommission**: for the DCC Commission for the platform on a transaction. * **Interchange**: for the interchange fee (fee paid to the issuer) incurred on a transaction. * **PaymentFee**: for all of the transaction fees. * **Remainder**: for the left over amount after currency conversion. * **SchemeFee**: for the scheme fee incurred on a transaction. This is the sum of the interchange fees and the acquiring fees. * **Surcharge**: for the surcharge paid by the customer on a transaction. * **Tip**: for the tip paid by the customer. * **TopUp**: for an incoming transfer to top up your user''s balance account. * **VAT**: for the Value Added Tax.' enum: - AcquiringFees - AdyenCommission - AdyenFees - AdyenMarkup - BalanceAccount - Commission - DCCPlatformCommission - Default - Interchange - PaymentFee - Remainder - SchemeFee - Surcharge - Tip - TopUp - VAT type: string priority: x-addedInVersion: '3' 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**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). This will be removed in v4 and replaced with a new field.' enum: - crossBorder - fast - instant - internal - regular - wire type: string processingType: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: This property will be removed in version 4 and included in the `categoryData` object. description: Contains information about how the payment was processed. For example, **ecommerce** for online or **pos** for in-person payments. enum: - atmWithdraw - balanceInquiry - ecommerce - moto - pos - purchaseWithCashback - recurring - token type: string pspPaymentReference: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: This property will be removed in version 4 and included in the `categoryData` object. description: The payment reference included in the transfer. type: string reason: x-addedInVersion: '2' description: Additional information about the status of the transfer. enum: - accountHierarchyNotActive - amountLimitExceeded - approved - balanceAccountTemporarilyBlockedByTransactionRule - counterpartyAccountBlocked - counterpartyAccountClosed - counterpartyAccountNotFound - counterpartyAddressRequired - counterpartyBankTimedOut - counterpartyBankUnavailable - declined - declinedByTransactionRule - directDebitNotSupported - error - notEnoughBalance - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank - refusedByCustomer - routeNotFound - scaFailed - transferInstrumentDoesNotExist - 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 the source and recipient of funds.\n\n\ \ Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends\ \ on the `category`.\n\n - **internal**: 80 characters\n\n- **bank**:\ \ 35 characters when transferring to an IBAN, 15 characters for others." type: string relayedAuthorisationData: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: This property will be removed in version 4 and included in the `categoryData` object. description: If you are using relayed authorisation, this object contains information from the relayed authorisation response from your server. $ref: '#/components/schemas/RelayedAuthorisationData' review: x-addedInVersion: '3' description: Contains status updates related to additional reviews. $ref: '#/components/schemas/TransferReview' sequenceNumber: x-addedInVersion: '3' description: 'The sequence number of the transfer webhook. The numbers start from 1 and increase with each new webhook for a specific transfer. The sequence number can help you restore the correct sequence of events even if they arrive out of order.' format: int32 type: integer 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 - pendingApproval - pendingExecution - received - refundPending - refundReversalPending - refundReversed - refunded - refundedExternally - refused - rejected - reserveAdjustment - reserveAdjustmentPending - returned - secondChargeback - secondChargebackPending - undefined type: string tracking: x-addedInVersion: '3' description: The latest tracking information of the transfer. oneOf: - $ref: '#/components/schemas/ConfirmationTrackingData' - $ref: '#/components/schemas/EstimationTrackingData' - $ref: '#/components/schemas/InternalReviewTrackingData' transactionId: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: Use the [transactionId](https://docs.adyen.com/api-explorer/transfer-webhooks/latest/post/balancePlatform.transfer.created#request-data-events-transactionId) in the `events` array instead. description: The ID of the transaction that is created based on the transfer. type: string transactionRulesResult: x-addedInVersion: '3' description: Contains the results of the evaluation of the transaction rules. $ref: '#/components/schemas/TransactionRulesResult' type: x-addedInVersion: '3' description: The type of transfer or transaction. For example, **refund**, **payment**, **internalTransfer**, **bankTransfer**. enum: - payment - capture - captureReversal - refund - refundReversal - chargeback - chargebackCorrection - chargebackReversal - chargebackReversalCorrection - secondChargeback - secondChargebackCorrection - atmWithdrawal - atmWithdrawalReversal - internalTransfer - internalDirectDebit - manualCorrection - invoiceDeduction - depositCorrection - reserveAdjustment - bankTransfer - bankDirectDebit - cardTransfer - miscCost - paymentCost - fee - leftover - grant - capitalFundsCollection - cashOutInstruction - cashoutFee - cashoutRepayment - cashoutFunding - repayment - installment - installmentReversal - balanceAdjustment - balanceRollover - balanceMigration type: string validationFacts: x-addedInVersion: '3' deprecated: true x-deprecatedInVersion: '3' x-deprecatedMessage: This property will be removed in version 4 and included in the `categoryData` object. description: The evaluation of the validation facts. See [validation checks](https://docs.adyen.com/issuing/validation-checks) for more information. items: $ref: '#/components/schemas/TransferNotificationValidationFact' type: array required: - status - category - amount type: object TransferEvent: additionalProperties: false properties: amount: x-addedInVersion: '3' description: The original journal amount. Only applicable for [issuing](https://docs.adyen.com/issuing/) integrations. $ref: '#/components/schemas/Amount' amountAdjustments: x-addedInVersion: '3' description: The amount adjustments in this transfer. Only applicable for [issuing](https://docs.adyen.com/issuing/) integrations. items: $ref: '#/components/schemas/AmountAdjustment' type: array bookingDate: x-addedInVersion: '3' description: The date when the transfer request was sent. format: date-time type: string estimatedArrivalTime: x-addedInVersion: '3' description: The estimated time when the beneficiary should have access to the funds. format: date-time type: string externalReason: x-addedInVersion: '3' description: The external reason for the transfer status. $ref: '#/components/schemas/ExternalReason' id: x-addedInVersion: '3' description: The unique identifier of the transfer event. type: string modification: x-addedInVersion: '3' description: The payment modification. Only applicable for [returned internal transfers](https://docs.adyen.com/platforms/internal-fund-transfers/internal-transfer-webhooks/#returned-internal-transfer). $ref: '#/components/schemas/Modification' mutations: x-addedInVersion: '3' description: The list of balance mutations per event. items: $ref: '#/components/schemas/BalanceMutation' type: array originalAmount: x-addedInVersion: '3' description: 'The amount in the original currency. Only applicable for [issuing](https://docs.adyen.com/issuing/) integrations. ' $ref: '#/components/schemas/Amount' reason: x-addedInVersion: '3' description: The reason for the transfer status. enum: - accountHierarchyNotActive - amountLimitExceeded - approved - balanceAccountTemporarilyBlockedByTransactionRule - counterpartyAccountBlocked - counterpartyAccountClosed - counterpartyAccountNotFound - counterpartyAddressRequired - counterpartyBankTimedOut - counterpartyBankUnavailable - declined - declinedByTransactionRule - directDebitNotSupported - error - notEnoughBalance - pending - pendingApproval - pendingExecution - refusedByCounterpartyBank - refusedByCustomer - routeNotFound - scaFailed - transferInstrumentDoesNotExist - unknown type: string schemeTraceID: x-addedInVersion: '3' description: SchemeTraceID retrieved from scheme. type: string schemeUniqueTransactionID: x-addedInVersion: '3' description: SchemeUniqueTransactionID retrieved from scheme. type: string status: x-addedInVersion: '3' description: The status of the transfer event. 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 - pendingApproval - pendingExecution - received - refundPending - refundReversalPending - refundReversed - refunded - refundedExternally - refused - rejected - reserveAdjustment - reserveAdjustmentPending - returned - secondChargeback - secondChargebackPending - undefined type: string trackingData: x-addedInVersion: '3' description: Additional information for the tracking event. oneOf: - $ref: '#/components/schemas/ConfirmationTrackingData' - $ref: '#/components/schemas/EstimationTrackingData' - $ref: '#/components/schemas/InternalReviewTrackingData' transactionId: x-addedInVersion: '3' description: The id of the transaction that is related to this accounting event. Only sent for events of type **accounting** where the balance changes. type: string type: x-addedInVersion: '3' description: 'The type of the transfer event. Possible values: **accounting**, **tracking**.' enum: - accounting - tracking type: string updateDate: x-addedInVersion: '3' description: The date when the tracking status was updated. format: date-time type: string valueDate: x-addedInVersion: '3' description: The date when the funds are expected to be deducted from or credited to the balance account. This date can be in either the past or future. format: date-time type: string type: object TransferNotificationCounterParty: additionalProperties: false properties: balanceAccountId: description: The unique identifier of the counterparty [balance account](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#responses-200-id). type: string bankAccount: description: Contains information about the counterparty bank account. $ref: '#/components/schemas/BankAccountV3' card: description: Contains information about the counterparty card. $ref: '#/components/schemas/Card' merchant: description: Contains information about the merchant. $ref: '#/components/schemas/TransferNotificationMerchantData' transferInstrumentId: description: The unique identifier of the counterparty [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id). type: string type: object TransferNotificationMerchantData: additionalProperties: false properties: acquirerId: description: The unique identifier of the merchant's acquirer. type: string city: description: The city where the merchant is located. type: string country: description: The country where the merchant is located. type: string mcc: description: The merchant category code. type: string merchantId: description: The unique identifier of the merchant. type: string name: description: The name of the merchant's shop or service. type: string postalCode: description: The postal code of the merchant. type: string type: object TransferNotificationRequest: additionalProperties: false properties: data: description: Contains details about the event. $ref: '#/components/schemas/TransferData' environment: description: 'The environment from which the webhook originated. Possible values: **test**, **live**.' type: string timestamp: description: When the event was queued. format: date-time type: string type: description: The type of webhook. enum: - balancePlatform.transfer.created - balancePlatform.transfer.updated type: string required: - environment - data type: object TransferNotificationValidationFact: additionalProperties: false properties: result: description: The evaluation result of the validation fact. type: string type: description: The type of the validation fact. type: string type: object TransferReview: additionalProperties: false properties: numberOfApprovalsRequired: description: Shows the number of [approvals](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers/approve) required to process the transfer. format: int32 type: integer scaOnApproval: description: 'Shows the status of the Strong Customer Authentication (SCA) process. Possible values: **required**, **notApplicable**.' enum: - completed - notApplicable - required type: string type: object UKLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The 8-digit bank account number, without separators or whitespace. maxLength: 8 minLength: 8 type: string sortCode: description: The 6-digit [sort code](https://en.wikipedia.org/wiki/Sort_code), without separators or whitespace. maxLength: 6 minLength: 6 type: string type: default: ukLocal description: '**ukLocal**' enum: - ukLocal type: string required: - type - accountNumber - sortCode type: object USLocalAccountIdentification: additionalProperties: false properties: accountNumber: description: The bank account number, without separators or whitespace. maxLength: 18 minLength: 2 type: string accountType: default: checking description: 'The bank account type. Possible values: **checking** or **savings**. Defaults to **checking**.' enum: - checking - savings type: string routingNumber: description: The 9-digit [routing number](https://en.wikipedia.org/wiki/ABA_routing_transit_number), without separators or whitespace. maxLength: 9 minLength: 9 type: string type: default: usLocal description: '**usLocal**' enum: - usLocal type: string required: - type - accountNumber - routingNumber type: object securitySchemes: BasicAuth: scheme: basic type: http examples: {}