---
title: "Transfer created"
method: POST
path: "balancePlatform.transfer.created"
tags: ["General"]
---

# Transfer created

`POST balancePlatform.transfer.created` (webhook)

Adyen sends this webhook when there are fund movements on your platform.

## Payload

- TransferNotificationRequest
  - `data` TransferData, required
    - `accountHolder` ResourceReference
      - `description` string — The description of the resource.
      - `id` string — The unique identifier of the resource.
      - `reference` string — The reference for the resource.
    - `amount` Amount, required
      - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
      - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
    - `balanceAccount` ResourceReference
      - `description` string — The description of the resource.
      - `id` string — The unique identifier of the resource.
      - `reference` string — The reference for the resource.
    - `balanceAccountId` string — The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).
    - `balancePlatform` string — The unique identifier of the balance platform.
    - `balances` BalanceMutation[] — The list of the latest balance statuses in the transfer.
      - `balance` integer — The amount in the payment's currency that is debited or credited on the balance accounting register.
      - `currency` string — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).
      - `received` integer — The amount in the payment's currency that is debited or credited on the received accounting register.
      - `reserved` integer — The amount in the payment's currency that is debited or credited on the reserved accounting register.
    - `category` 'bank' | 'card' | 'internal' | 'issuedCard' | 'platformPayment' | 'topUp', required — The category of the transfer. Possible values: - **bank**: A transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) or a bank account. - **card**: A transfer involving a third-party card. - **internal**: A transfer between [balance accounts](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#responses-200-id) within your platform. - **issuedCard**: A transfer initiated by an Adyen-issued card. - **platformPayment**: Funds movements related to payments that are acquired for your users. - **topUp**: An incoming transfer initiated by your user to top up their balance account.
    - `counterparty` TransferNotificationCounterParty
      - `balanceAccountId` string — The unique identifier of the counterparty [balance account](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#responses-200-id).
      - `bankAccount` BankAccountV3
        - `accountHolder` PartyIdentification, required
          - `address` Address
            - `city` string — The name of the city. Supported characters: **[a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ |** and Space. > Required when the `category` is **card**.
            - `country` string, required — The two-character ISO 3166-1 alpha-2 country code. For example, **US**, **NL**, or **GB**.
            - `line1` string — The first line of the street address. Supported characters: **[a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ |** and Space. > Required when the `category` is **card**.
            - `line2` string — The second line of the street address. Supported characters: **[a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ |** and Space. > Required when the `category` is **card**.
            - `postalCode` string — 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. > Required for addresses in the US.
            - `stateOrProvince` string — The two-letter ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
          - `dateOfBirth` string, date — 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**.
          - `email` string — The email address of the organization or individual. Maximum length: 254 characters.
          - `firstName` string — The first name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is: - Allowed only when `type` is **individual**. - Required when `category` is **card**.
          - `fullName` string — The full name of the entity that owns the bank account or card. Supported characters: [a-z] [A-Z] [0-9] , . ; : - — / \ + & ! ? @ ( ) " ' and space. Required when `category` is **bank**.
          - `lastName` string — The last name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is: - Allowed only when `type` is **individual**. - Required when `category` is **card**.
          - `reference` string — 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`.
          - `type` 'individual' | 'organization' | 'unknown' — 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**.
          - `url` string — The URL of the organization or individual. Maximum length: 255 characters.
        - `accountIdentification` union, required — 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.
          - AULocalAccountIdentification
            - `accountNumber` string, required — The bank account number, without separators or whitespace.
            - `bsbCode` string, required — The 6-digit [Bank State Branch (BSB) code](https://en.wikipedia.org/wiki/Bank_state_branch), without separators or whitespace.
            - `type` 'auLocal', required — **auLocal**
          - BRLocalAccountIdentification
            - `accountNumber` string, required — The bank account number, without separators or whitespace.
            - `bankCode` string, required — The 3-digit bank code, with leading zeros.
            - `branchNumber` string, required — The bank account branch number, without separators or whitespace.
            - `ispb` string — The 8-digit ISPB, with leading zeros.
            - `type` 'brLocal', required — **brLocal**
          - CALocalAccountIdentification
            - `accountNumber` string, required — The 5- to 12-digit bank account number, without separators or whitespace.
            - `accountType` 'checking' | 'savings' — The bank account type. Possible values: **checking** or **savings**. Defaults to **checking**.
            - `institutionNumber` string, required — The 3-digit institution number, without separators or whitespace.
            - `transitNumber` string, required — The 5-digit transit number, without separators or whitespace.
            - `type` 'caLocal', required — **caLocal**
          - CZLocalAccountIdentification
            - `accountNumber` string, required — The 2- to 16-digit bank account number (Číslo účtu) in the following format: - The optional prefix (předčíslí). - The required second part (základní část) which must be at least two non-zero digits. Examples: - **19-123457** (with prefix) - **123457** (without prefix) - **000019-0000123457** (with prefix, normalized) - **000000-0000123457** (without prefix, normalized)
            - `bankCode` string, required — The 4-digit bank code (Kód banky), without separators or whitespace.
            - `type` 'czLocal', required — **czLocal**
          - DKLocalAccountIdentification
            - `accountNumber` string, required — The 4-10 digits bank account number (Kontonummer) (without separators or whitespace).
            - `bankCode` string, required — The 4-digit bank code (Registreringsnummer) (without separators or whitespace).
            - `type` 'dkLocal', required — **dkLocal**
          - HKLocalAccountIdentification
            - `accountNumber` string, required — The 9- to 17-digit bank account number, without separators or whitespace. Starts with the 3-digit branch code.
            - `clearingCode` string, required — The 3-digit clearing code, without separators or whitespace.
            - `type` 'hkLocal', required — **hkLocal**
          - HULocalAccountIdentification
            - `accountNumber` string, required — The 24-digit bank account number, without separators or whitespace.
            - `type` 'huLocal', required — **huLocal**
          - IbanAccountIdentification
            - `bic` string — The bank's 8- or 11-character BIC or SWIFT code.
            - `iban` string, required — The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard.
            - `type` 'iban', required — **iban**
          - NOLocalAccountIdentification
            - `accountNumber` string, required — The 11-digit bank account number, without separators or whitespace.
            - `type` 'noLocal', required — **noLocal**
          - NZLocalAccountIdentification
            - `accountNumber` string, required — 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.
            - `type` 'nzLocal', required — **nzLocal**
          - NumberAndBicAccountIdentification
            - `accountNumber` string, required — The bank account number, without separators or whitespace. The length and format depends on the bank or country.
            - `additionalBankIdentification` AdditionalBankIdentification
              - …
            - `bic` string, required — The bank's 8- or 11-character BIC or SWIFT code.
            - `type` 'numberAndBic', required — **numberAndBic**
          - PLLocalAccountIdentification
            - `accountNumber` string, required — The 26-digit bank account number ([Numer rachunku](https://pl.wikipedia.org/wiki/Numer_Rachunku_Bankowego)), without separators or whitespace.
            - `type` 'plLocal', required — **plLocal**
          - SELocalAccountIdentification
            - `accountNumber` string, required — The 7- to 10-digit bank account number ([Bankkontonummer](https://sv.wikipedia.org/wiki/Bankkonto)), without the clearing number, separators, or whitespace.
            - `clearingNumber` string, required — The 4- to 5-digit clearing number ([Clearingnummer](https://sv.wikipedia.org/wiki/Clearingnummer)), without separators or whitespace.
            - `type` 'seLocal', required — **seLocal**
          - SGLocalAccountIdentification
            - `accountNumber` string, required — The 4- to 19-digit bank account number, without separators or whitespace.
            - `bic` string, required — The bank's 8- or 11-character BIC or SWIFT code.
            - `type` 'sgLocal' — **sgLocal**
          - UKLocalAccountIdentification
            - `accountNumber` string, required — The 8-digit bank account number, without separators or whitespace.
            - `sortCode` string, required — The 6-digit [sort code](https://en.wikipedia.org/wiki/Sort_code), without separators or whitespace.
            - `type` 'ukLocal', required — **ukLocal**
          - USLocalAccountIdentification
            - `accountNumber` string, required — The bank account number, without separators or whitespace.
            - `accountType` 'checking' | 'savings' — The bank account type. Possible values: **checking** or **savings**. Defaults to **checking**.
            - `routingNumber` string, required — The 9-digit [routing number](https://en.wikipedia.org/wiki/ABA_routing_transit_number), without separators or whitespace.
            - `type` 'usLocal', required — **usLocal**
        - `storedPaymentMethodId` string — The unique token that identifies the stored bank account details of the counterparty for a payout.
      - `card` Card
        - `cardHolder` PartyIdentification, required
          - `address` Address
            - `city` string — The name of the city. Supported characters: **[a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ |** and Space. > Required when the `category` is **card**.
            - `country` string, required — The two-character ISO 3166-1 alpha-2 country code. For example, **US**, **NL**, or **GB**.
            - `line1` string — The first line of the street address. Supported characters: **[a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ |** and Space. > Required when the `category` is **card**.
            - `line2` string — The second line of the street address. Supported characters: **[a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ |** and Space. > Required when the `category` is **card**.
            - `postalCode` string — 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. > Required for addresses in the US.
            - `stateOrProvince` string — The two-letter ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
          - `dateOfBirth` string, date — 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**.
          - `email` string — The email address of the organization or individual. Maximum length: 254 characters.
          - `firstName` string — The first name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is: - Allowed only when `type` is **individual**. - Required when `category` is **card**.
          - `fullName` string — The full name of the entity that owns the bank account or card. Supported characters: [a-z] [A-Z] [0-9] , . ; : - — / \ + & ! ? @ ( ) " ' and space. Required when `category` is **bank**.
          - `lastName` string — The last name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is: - Allowed only when `type` is **individual**. - Required when `category` is **card**.
          - `reference` string — 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`.
          - `type` 'individual' | 'organization' | 'unknown' — 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**.
          - `url` string — The URL of the organization or individual. Maximum length: 255 characters.
        - `cardIdentification` CardIdentification, required
          - `expiryMonth` string — The expiry month of the card. Format: two digits. Add a leading zero for single-digit months. For example: * 03 = March * 11 = November
          - `expiryYear` string — The expiry year of the card. Format: four digits. For example: 2020
          - `issueNumber` string — The issue number of the card. Applies only to some UK debit cards.
          - `number` string — The card number without any separators. For security, the response only includes the last four digits of the card number.
          - `startMonth` string — 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
          - `startYear` string — The year when the card was issued. Applies only to some UK debit cards. Format: four digits. For example: 2020
          - `storedPaymentMethodId` string — The unique [token](/payouts/payout-service/pay-out-to-cards/manage-card-information#save-card-details) created to identify the counterparty.
      - `merchant` TransferNotificationMerchantData
        - `acquirerId` string — The unique identifier of the merchant's acquirer.
        - `city` string — The city where the merchant is located.
        - `country` string — The country where the merchant is located.
        - `countryCode` string — The two-character country code of the merchant's location, in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
        - `mcc` string — The merchant category code.
        - `merchantId` string — The unique identifier of the merchant.
        - `name` string — The name of the merchant's shop or service.
        - `postalCode` string — The postal code of the merchant.
      - `transferInstrumentId` string — The unique identifier of the counterparty [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id).
    - `createdAt` string, date-time — The date and time when the transfer was created, in ISO 8601 extended format. For example, **2020-12-18T10:15:30+01:00**.
    - `creationDate` string, date-time — The date and time when the event was triggered, in ISO 8601 extended format. For example, **2020-12-18T10:15:30+01:00**.
    - `description` string — 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] & $ % # @** **~ = + - _ ' " ! ?**
    - `directDebitInformation` DirectDebitInformation
      - `dateOfSignature` string, date-time — The date when the direct debit mandate was accepted by your user, in [ISO-8601](https://www.w3.org/TR/NOTE-datetime) format.
      - `dueDate` string, date-time — The date when the funds are deducted from your user's balance account.
      - `mandateId` string — Your unique identifier for the direct debit mandate.
      - `sequenceType` string — Identifies the direct debit transfer's type. Possible values: **OneOff**, **First**, **Recurring**, **Final**.
    - `direction` 'incoming' | 'outgoing' — The direction of the transfer. Possible values: **incoming**, **outgoing**.
    - `events` TransferEvent[] — The list of events leading up to the current status of the transfer.
      - `amount` Amount
        - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
        - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
      - `amountAdjustments` AmountAdjustment[] — The amount adjustments in this transfer. Only applicable for [issuing](https://docs.adyen.com/issuing/) integrations.
        - `amount` Amount
          - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
          - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
        - `amountAdjustmentType` 'atmMarkup' | 'authHoldReserve' | 'exchange' | 'forexMarkup' — The type of markup that is applied to an authorised payment. Possible values: **exchange**, **forexMarkup**, **authHoldReserve**, **atmMarkup**.
        - `basepoints` integer — The basepoints associated with the applied markup.
      - `bookingDate` string, date-time — The date when the transfer request was sent.
      - `estimatedArrivalTime` string, date-time — The estimated time when the beneficiary should have access to the funds.
      - `externalReason` ExternalReason
        - `code` string — The reason code.
        - `description` string — The description of the reason code.
        - `namespace` string — The namespace for the reason code.
      - `id` string — The unique identifier of the transfer event.
      - `modification` Modification
        - `direction` string — The direction of the money movement.
        - `id` string — Our reference for the modification.
        - `reference` string — Your reference for the modification, used internally within your platform.
        - `status` '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' | 'interchangeAdjusted' | 'internalTransfer' | 'internalTransferPending' | 'invoiceDeduction' | 'invoiceDeductionPending' | 'manualCorrectionPending' | 'manuallyCorrected' | 'matchedStatement' | 'matchedStatementPending' | 'merchantPayin' | 'merchantPayinPending' | 'merchantPayinReversed' | 'merchantPayinReversedPending' | 'miscCost' | 'miscCostPending' | 'paymentCost' | 'paymentCostPending' | 'pending' | 'pendingApproval' | 'pendingExecution' | 'received' | 'refundPending' | 'refundReversalPending' | 'refundReversed' | 'refunded' | 'refundedExternally' | 'refused' | 'rejected' | 'reserveAdjustment' | 'reserveAdjustmentPending' | 'returned' | 'reversed' | 'secondChargeback' | 'secondChargebackPending' | 'undefined' — The status of the transfer event.
        - `type` string — The type of transfer modification.
      - `mutations` BalanceMutation[] — The list of balance mutations per event.
        - `balance` integer — The amount in the payment's currency that is debited or credited on the balance accounting register.
        - `currency` string — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes).
        - `received` integer — The amount in the payment's currency that is debited or credited on the received accounting register.
        - `reserved` integer — The amount in the payment's currency that is debited or credited on the reserved accounting register.
      - `originalAmount` Amount
        - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
        - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
      - `reason` 'accountHierarchyNotActive' | 'amountLimitExceeded' | 'approvalExpired' | 'approved' | 'avsDeclined' | 'balanceAccountTemporarilyBlockedByTransactionRule' | 'blockCard' | 'callReferral' | 'cancelled' | 'captureCard' | 'cardExpired' | 'cardholderAuthenticationRequired' | 'cashbackAmountExceedsLimit' | 'cavvDeclined' | 'contactlessFallback' | 'contactlessLimitReached' | 'counterpartyAccountBlocked' | 'counterpartyAccountClosed' | 'counterpartyAccountNotFound' | 'counterpartyAddressRequired' | 'counterpartyBankTimedOut' | 'counterpartyBankUnavailable' | 'cryptographicFailure' | 'cvcDeclined' | 'declined' | 'declinedByBapValidation' | 'declinedByTransactionRule' | 'declinedNonGeneric' | 'directDebitNotSupported' | 'doNotHonor' | 'domesticDebitTransactionNotAllowed' | 'duplicateTransmissionDetected' | 'error' | 'formatError' | 'fraud' | 'fraudCancelled' | 'honorWithId' | 'internalTimeout' | 'invalidAccount' | 'invalidAmount' | 'invalidAuthorizationLifeCycle' | 'invalidCard' | 'invalidExpiryDate' | 'invalidFromAccount' | 'invalidIssuer' | 'invalidMerchant' | 'invalidPin' | 'invalidToAccount' | 'invalidTransaction' | 'issuerSuspectedFraud' | 'lostCard' | 'mobilePinRequired' | 'noCheckingAccount' | 'noSavingsAccount' | 'not3dAuthenticated' | 'notEnoughBalance' | 'notSubmitted' | 'notSupported' | 'partiallyApproved' | 'pending' | 'pendingApproval' | 'pendingExecution' | 'pinNotChanged' | 'pinRequired' | 'pinTriesExceeded' | 'pinValidationNotPossible' | 'purchaseAmountOnlyNoCashBack' | 'refusedByCounterpartyBank' | 'refusedByCustomer' | 'restrictedCard' | 'revocationOfAuth' | 'routeNotFound' | 'scaAuthenticationRequired' | 'scaFailed' | 'schemeAdvice' | 'securityViolation' | 'shopperCancelled' | 'stolenCard' | 'threedsDynamicLinkingMismatch' | 'transactionNotPermitted' | 'transferInstrumentDoesNotExist' | 'unableToRouteTransaction' | 'unknown' | 'withdrawalAmountExceeded' | 'withdrawalCountExceeded' — The reason for the transfer status.
      - `schemeTraceID` string — SchemeTraceID retrieved from scheme.
      - `schemeUniqueTransactionID` string — SchemeUniqueTransactionID retrieved from scheme.
      - `status` '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' | 'interchangeAdjusted' | 'internalTransfer' | 'internalTransferPending' | 'invoiceDeduction' | 'invoiceDeductionPending' | 'manualCorrectionPending' | 'manuallyCorrected' | 'matchedStatement' | 'matchedStatementPending' | 'merchantPayin' | 'merchantPayinPending' | 'merchantPayinReversed' | 'merchantPayinReversedPending' | 'miscCost' | 'miscCostPending' | 'paymentCost' | 'paymentCostPending' | 'pending' | 'pendingApproval' | 'pendingExecution' | 'received' | 'refundPending' | 'refundReversalPending' | 'refundReversed' | 'refunded' | 'refundedExternally' | 'refused' | 'rejected' | 'reserveAdjustment' | 'reserveAdjustmentPending' | 'returned' | 'reversed' | 'secondChargeback' | 'secondChargebackPending' | 'undefined' — The status of the transfer event.
      - `trackingData` union — Additional information for the tracking event.
        - object
          - `status` 'credited' | 'accepted', required — The status of the transfer. Possible values: - **credited**: the funds are credited to your user's transfer instrument or bank account.- **accepted**: the request is accepted by the integration.
          - `type` 'confirmation', required — The type of the tracking event. Possible values: - **confirmation**: the transfer passed Adyen's internal review.
        - object
          - `estimatedArrivalTime` string, date-time, required — The estimated time the beneficiary should have access to the funds.
          - `type` 'estimation', required — The type of tracking event. Possible values: - **estimation**: the estimated date and time of when the funds will be credited has been determined.
        - object
          - `reason` 'refusedForRegulatoryReasons' — The reason why the transfer failed Adyen's internal review. Possible values: - **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).
          - `status` 'pending' | 'failed', required — The status of the transfer. Possible values: - **pending**: the transfer is under internal review by Adyen. - **failed**: the transfer failed Adyen's internal review. For details, see `reason`.
          - `type` 'internalReview', required — The type of tracking event. Possible values: - **internalReview**: the transfer was flagged because it does not comply with Adyen's risk policy.
      - `transactionId` string — The id of the transaction that is related to this accounting event. Only sent for events of type **accounting** where the balance changes.
      - `type` 'accounting' | 'tracing' | 'tracking' — The type of the transfer event. Possible values: **accounting**, **tracking**.
      - `updateDate` string, date-time — The date when the tracking status was updated.
      - `valueDate` string, date-time — 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.
    - `executionDate` ExecutionDate
      - `date` string, date — The date when the transfer will be processed. This date must be: * Within 30 days of the current date. * In the [ISO 8601 format](https://www.iso.org/iso-8601-date-and-time-format.html) **YYYY-MM-DD**. For example: 2025-01-31
      - `timezone` string — The timezone that applies to the execution date. Use a timezone identifier from the [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Example: **America/Los_Angeles**. Default value: **Europe/Amsterdam**.
    - `externalReason` ExternalReason
      - `code` string — The reason code.
      - `description` string — The description of the reason code.
      - `namespace` string — The namespace for the reason code.
    - `id` string — The ID of the resource.
    - `modificationMerchantReference` string — The capture's merchant reference included in the transfer.
    - `modificationPspReference` string — The capture reference included in the transfer.
    - `panEntryMode` 'chip' | 'cof' | 'contactless' | 'ecommerce' | 'magstripe' | 'manual' | 'token' — Indicates the method used for entering the PAN to initiate a transaction. Possible values: **manual**, **chip**, **magstripe**, **contactless**, **cof**, **ecommerce**, **token**.
    - `paymentInstrument` PaymentInstrument
      - `description` string — The description of the resource.
      - `id` string — The unique identifier of the resource.
      - `reference` string — The reference for the resource.
      - `tokenType` string — The type of wallet that the network token is associated with.
    - `paymentInstrumentId` string — The unique identifier of the [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) used in the transfer.
    - `paymentMerchantReference` string — The payment's merchant reference included in the transfer.
    - `platformPaymentType` 'AcquiringFees' | 'AdyenCommission' | 'AdyenFees' | 'AdyenMarkup' | 'BalanceAccount' | 'ChargebackRemainder' | 'Commission' | 'DCCMarkup' | 'DCCPlatformCommission' | 'Default' | 'Interchange' | 'PaymentFee' | 'Remainder' | 'SchemeFee' | 'Surcharge' | 'Tip' | 'TopUp' | 'VAT' — 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**: The acquiring fee (the aggregated amount of interchange and scheme fee) incurred on a transaction. * **AdyenCommission**: 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**: All transaction fees due to Adyen. This is the aggregated amount of Adyen's commission and markup. * **AdyenMarkup**: The transaction fee due to Adyen under [Interchange++ pricing](https://www.adyen.com/pricing). * **BalanceAccount**: The amount booked to your user after the deduction of the relevant fees. * **Commission**: Your platform's or marketplace's commission on a transaction. * **DCCPlatformCommission**: **deprecated** The Dynamic Currency Conversion (DCC) fee on a transaction. * **DCCMarkup**: The Dynamic Currency Conversion (DCC) fee on a transaction. * **Interchange**: The interchange fee (fee paid to the issuer) incurred on a transaction. * **PaymentFee**: The aggregated amount of all transaction fees. * **Remainder**: The leftover amount after currency conversion. * **SchemeFee**: The scheme fee incurred on a transaction. * **Surcharge**: The surcharge paid by the customer on a transaction. * **Tip**: The tip paid by the customer. * **TopUp**: An incoming transfer to top up your user's balance account. * **VAT**: The value-added tax charged on the payment.
    - `priority` 'crossBorder' | 'fast' | 'instant' | 'internal' | 'regular' | 'wire' — 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 within the United States and in [SEPA locations](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.
    - `processingType` 'atmWithdraw' | 'balanceInquiry' | 'ecommerce' | 'moto' | 'pos' | 'purchaseWithCashback' | 'recurring' | 'token' — Contains information about how the payment was processed. For example, **ecommerce** for online or **pos** for in-person payments.
    - `pspPaymentReference` string — The payment reference included in the transfer.
    - `reason` 'accountHierarchyNotActive' | 'amountLimitExceeded' | 'approvalExpired' | 'approved' | 'avsDeclined' | 'balanceAccountTemporarilyBlockedByTransactionRule' | 'blockCard' | 'callReferral' | 'cancelled' | 'captureCard' | 'cardExpired' | 'cardholderAuthenticationRequired' | 'cashbackAmountExceedsLimit' | 'cavvDeclined' | 'contactlessFallback' | 'contactlessLimitReached' | 'counterpartyAccountBlocked' | 'counterpartyAccountClosed' | 'counterpartyAccountNotFound' | 'counterpartyAddressRequired' | 'counterpartyBankTimedOut' | 'counterpartyBankUnavailable' | 'cryptographicFailure' | 'cvcDeclined' | 'declined' | 'declinedByBapValidation' | 'declinedByTransactionRule' | 'declinedNonGeneric' | 'directDebitNotSupported' | 'doNotHonor' | 'domesticDebitTransactionNotAllowed' | 'duplicateTransmissionDetected' | 'error' | 'formatError' | 'fraud' | 'fraudCancelled' | 'honorWithId' | 'internalTimeout' | 'invalidAccount' | 'invalidAmount' | 'invalidAuthorizationLifeCycle' | 'invalidCard' | 'invalidExpiryDate' | 'invalidFromAccount' | 'invalidIssuer' | 'invalidMerchant' | 'invalidPin' | 'invalidToAccount' | 'invalidTransaction' | 'issuerSuspectedFraud' | 'lostCard' | 'mobilePinRequired' | 'noCheckingAccount' | 'noSavingsAccount' | 'not3dAuthenticated' | 'notEnoughBalance' | 'notSubmitted' | 'notSupported' | 'partiallyApproved' | 'pending' | 'pendingApproval' | 'pendingExecution' | 'pinNotChanged' | 'pinRequired' | 'pinTriesExceeded' | 'pinValidationNotPossible' | 'purchaseAmountOnlyNoCashBack' | 'refusedByCounterpartyBank' | 'refusedByCustomer' | 'restrictedCard' | 'revocationOfAuth' | 'routeNotFound' | 'scaAuthenticationRequired' | 'scaFailed' | 'schemeAdvice' | 'securityViolation' | 'shopperCancelled' | 'stolenCard' | 'threedsDynamicLinkingMismatch' | 'transactionNotPermitted' | 'transferInstrumentDoesNotExist' | 'unableToRouteTransaction' | 'unknown' | 'withdrawalAmountExceeded' | 'withdrawalCountExceeded' — Additional information about the status of the transfer.
    - `reference` string — Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.
    - `referenceForBeneficiary` string — 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. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others.
    - `relayedAuthorisationData` RelayedAuthorisationData
      - `metadata` object — Contains key-value pairs of your references and descriptions, for example, `customId`:`your-own-custom-field-12345`.
      - `reference` string — Your reference for the relayed authorisation data.
    - `review` TransferReview
      - `numberOfApprovalsRequired` integer — Shows the number of [approvals](https://docs.adyen.com/api-explorer/transfers/latest/post/transfers/approve) required to process the transfer.
      - `scaOnApproval` 'completed' | 'notApplicable' | 'required' — Shows the status of the Strong Customer Authentication (SCA) process. Possible values: **required**, **notApplicable**.
    - `sequenceNumber` integer — 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.
    - `status` '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' | 'interchangeAdjusted' | 'internalTransfer' | 'internalTransferPending' | 'invoiceDeduction' | 'invoiceDeductionPending' | 'manualCorrectionPending' | 'manuallyCorrected' | 'matchedStatement' | 'matchedStatementPending' | 'merchantPayin' | 'merchantPayinPending' | 'merchantPayinReversed' | 'merchantPayinReversedPending' | 'miscCost' | 'miscCostPending' | 'paymentCost' | 'paymentCostPending' | 'pending' | 'pendingApproval' | 'pendingExecution' | 'received' | 'refundPending' | 'refundReversalPending' | 'refundReversed' | 'refunded' | 'refundedExternally' | 'refused' | 'rejected' | 'reserveAdjustment' | 'reserveAdjustmentPending' | 'returned' | 'reversed' | 'secondChargeback' | 'secondChargebackPending' | 'undefined', required — The result of the transfer. For example: - **received**: an outgoing transfer request is created. - **refused**: the transfer request is rejected by Adyen for one of the following reasons: - Transfer limit exceeded. - Transaction rule requirements violated. - **authorised**: the transfer request is authorized and the funds are reserved. - **booked**: the funds are deducted from your user's balance account. - **failed**: the transfer is rejected by the counterparty's bank. - **returned**: the transfer is returned by the counterparty's bank.
    - `tracking` union — The latest tracking information of the transfer.
      - object
        - `status` 'credited' | 'accepted', required — The status of the transfer. Possible values: - **credited**: the funds are credited to your user's transfer instrument or bank account.- **accepted**: the request is accepted by the integration.
        - `type` 'confirmation', required — The type of the tracking event. Possible values: - **confirmation**: the transfer passed Adyen's internal review.
      - object
        - `estimatedArrivalTime` string, date-time, required — The estimated time the beneficiary should have access to the funds.
        - `type` 'estimation', required — The type of tracking event. Possible values: - **estimation**: the estimated date and time of when the funds will be credited has been determined.
      - object
        - `reason` 'refusedForRegulatoryReasons' — The reason why the transfer failed Adyen's internal review. Possible values: - **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).
        - `status` 'pending' | 'failed', required — The status of the transfer. Possible values: - **pending**: the transfer is under internal review by Adyen. - **failed**: the transfer failed Adyen's internal review. For details, see `reason`.
        - `type` 'internalReview', required — The type of tracking event. Possible values: - **internalReview**: the transfer was flagged because it does not comply with Adyen's risk policy.
    - `transactionId` string — The ID of the transaction that is created based on the transfer.
    - `transactionRulesResult` TransactionRulesResult
      - `advice` string — The advice given by the Risk analysis.
      - `allRulesPassed` boolean — Indicates whether the transaction passed the evaluation for all transaction rules.
      - `failedTransactionRules` TransactionEventViolation[] — Array containing all the transaction rules that the transaction violated. This list is only sent when `allRulesPassed` is **false**.
        - `reason` string — An explanation about why the transaction rule failed.
        - `transactionRule` TransactionRuleReference
          - `description` string — The description of the resource.
          - `id` string — The unique identifier of the resource.
          - `reference` string — The reference for the resource.
        - `transactionRuleSource` TransactionRuleSource
          - `id` string — ID of the resource, when applicable.
          - `type` string — Indicates the type of resource for which the transaction rule is defined. Possible values: * **PaymentInstrumentGroup** * **PaymentInstrument** * **BalancePlatform** * **EntityUsageConfiguration** * **PlatformRule**: The transaction rule is a platform-wide rule imposed by Adyen.
      - `score` integer — The score of the Risk analysis.
    - `type` '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' — The type of transfer or transaction. For example, **refund**, **payment**, **internalTransfer**, **bankTransfer**.
    - `ultimateParty` UltimatePartyIdentification
      - `address` Address
        - `city` string — The name of the city. Supported characters: **[a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ |** and Space. > Required when the `category` is **card**.
        - `country` string, required — The two-character ISO 3166-1 alpha-2 country code. For example, **US**, **NL**, or **GB**.
        - `line1` string — The first line of the street address. Supported characters: **[a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ |** and Space. > Required when the `category` is **card**.
        - `line2` string — The second line of the street address. Supported characters: **[a-z] [A-Z] [0-9] . - — / # , ’ ° ( ) : ; [ ] & \ |** and Space. > Required when the `category` is **card**.
        - `postalCode` string — 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. > Required for addresses in the US.
        - `stateOrProvince` string — The two-letter ISO 3166-2 state or province code. For example, **CA** in the US or **ON** in Canada. > Required for the US and Canada.
      - `dateOfBirth` string, date — 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**.
      - `email` string — The email address of the organization or individual. Maximum length: 254 characters.
      - `firstName` string — The first name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is: - Allowed only when `type` is **individual**. - Required when `category` is **card**.
      - `fullName` string — The full name of the entity that owns the bank account or card. Supported characters: [a-z] [A-Z] [0-9] , . ; : - — / \ + & ! ? @ ( ) " ' and space. Required when `category` is **bank**.
      - `fundingInstrument` FundingInstrument
        - `cardIdentification` CardIdentification
          - `expiryMonth` string — The expiry month of the card. Format: two digits. Add a leading zero for single-digit months. For example: * 03 = March * 11 = November
          - `expiryYear` string — The expiry year of the card. Format: four digits. For example: 2020
          - `issueNumber` string — The issue number of the card. Applies only to some UK debit cards.
          - `number` string — The card number without any separators. For security, the response only includes the last four digits of the card number.
          - `startMonth` string — 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
          - `startYear` string — The year when the card was issued. Applies only to some UK debit cards. Format: four digits. For example: 2020
          - `storedPaymentMethodId` string — The unique [token](/payouts/payout-service/pay-out-to-cards/manage-card-information#save-card-details) created to identify the counterparty.
        - `networkPaymentReference` string — The unique reference assigned by the card network for the pay-in transaction.
        - `reference` string — Your internal reference that identifies this funding instrument. Required if `sourceOfFunds` is **DEPOSIT_ACCOUNT**.
        - `sourceOfFunds` 'DEBIT' | 'DEPOSIT_ACCOUNT' — Indicates where the funds used for the transfer originated. Possible values are: - **DEBIT** for card-to-card transfers. - **DEPOSIT_ACCOUNT** for wallet-to-card transfers.
      - `lastName` string — The last name of the individual. Supported characters: [a-z] [A-Z] - . / — and space. This parameter is: - Allowed only when `type` is **individual**. - Required when `category` is **card**.
      - `reference` string — 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`.
      - `type` 'individual' | 'organization' | 'unknown' — 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**.
      - `url` string — The URL of the organization or individual. Maximum length: 255 characters.
    - `updatedAt` string, date-time — The date and time when the event was triggered, in ISO 8601 extended format. For example, **2020-12-18T10:15:30+01:00**.
    - `validationFacts` TransferNotificationValidationFact[] — The evaluation of the validation facts. See [validation checks](https://docs.adyen.com/issuing/validation-checks) for more information.
      - `result` string — The evaluation result of the validation fact.
      - `type` string — The type of the validation fact.
  - `environment` string, required — The environment from which the webhook originated. Possible values: **test**, **live**.
  - `timestamp` string, date-time — When the event was queued.
  - `type` 'balancePlatform.transfer.created' | 'balancePlatform.transfer.updated' — The type of webhook.

## Acknowledgement `200`

OK - the request has succeeded.

- BalancePlatformNotificationResponse
  - `notificationResponse` string — Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks/#accept-webhooks).

---

[API](https://skmtc.dev/adyen/apis/transfer-webhooks.md) · [All operations](https://skmtc.dev/adyen/apis/transfer-webhooks/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adyen/transfer-webhooks/revisions/1e730d110ee0/schema)
