Search...
APIJSLog inGet started in sandbox
Airwallex logo
Home
Platform APIs
Connected Accounts
Accounts
Payments
Transactional FX
Payouts
Issuing
Back to home
OverviewUnderstanding Global Treasury
Market & infrastructure coverage
Use cases
Receive funds
Add funds via direct debits from Linked Accounts
Direct debit schemes and mandate requirements
Retrieve your depositsDirect debit deposit statusesDirect debit deposit error codesUnderstanding direct debit flight times and funding limits
Receive bank transfers to Global Accounts
Receive via Airwallex Pay
Revenue and fees
Test and go live

Add funds via direct debits from Linked Accounts

Direct debit deposits allow you to directly pull funds from an external financial account into your Airwallex account, so it can be used to fund payouts or card expenses.

You will need to first create Linked Accounts, which are external financial accounts linked to your Airwallex account. See Get started on how to create Linked Accounts and retrieve account details.

Linked Account requirements for direct debit

Please check Supported regions and currencies to ensure your desired use case is supported. Please also refer to the table below to understand the Linked Accounts requirements for each direct debit scheme.

Direct debit schemeMandate typeVersionPlatform’s entityCustomer’s entityBusiness account typeIndividual account typeMicro-deposit verificationOpen banking verification
Australia BECSAU_BECS_DEBIT1.1.1AnyAUYesYesYes
Australia PayToAU_PAYTO_DEBIT1.0AUAUYesYesYes
United States ACHUS_ACH_DEBIT1.0AnyAnyYesYesYes
United States FedwireUS_FEDWIRE_DEBIT1.0AnyAnyYesYes
United Kingdom BacsGB_BACS_DEBIT1.0AnyUK*YesYesYesYes
Europe SEPAEU_SEPA_DEBIT1.0AnyAnyYesYesYesYes
Canada EFT PADCA_EFT_DEBIT1.0AnyAnyYesYesYesYes
Hong Kong FPSHK_FPS_DEBIT1.0AnyHKYesYesYes
Singapore eGiroSG_EGIRO_DEBIT1.0AnyAnyYesYesYes
New Zealand BECSNZ_BECS_DEBIT1.0AnyAnyYesYesYes

(Updated on 22 Aug, 2025)

*Non-UK entities can be supported on a case-by-case basis. Please contact your Airwallex Account Manager for more details.

Step 1: Create a direct debit mandate

To create and sign direct debit mandates via API, as a first step, please contact your Airwallex Account Manager to walk you through the scheme-specific direct debit schemes and mandate requirements and to enable this capability for your use case.

Before you can add funds via direct debit from a Linked Account, you must obtain authorization from the external bank account owner in the form of a signed mandate (or signed agreement). You can either

Note that for AU_PAYTO_DEBIT and SG_EGIRO_DEBIT mandate types, you must submit the signed mandate when calling Create a Linked Account API.

Provide the following mandate details in the request:

  • email: Email of the signatory. A PDF copy of the mandate will be sent to this email address.
  • signatory: Name of the mandate’s signatory. This should be the external bank account owner.
  • type: Direct debit schemes in different regions. Refer to the mandate type column in the Linked Account requirements table above.
  • version: Version of the signed mandate. Refer to the version column in the Linked Account requirements table above.

Depending on the mandate type, additional information such as identification_document or preferred_reference is applicable. Please refer to Direct debit schemes and mandate requirements for more details.

If the mandate is successfully created or updated, a mandate status of ACTIVE will be returned. You can retrieve the mandate anytime using Get a direct debit mandate.

Example request

Shell

If you are registered as a platform account, you can call this endpoint on behalf of your connected accounts by specifying the open ID in the x-on-behalf-of header.

Example response

JSON

Step 2: Check for funding limits

After creating a Linked Account and authorizing direct debits via a signed mandate, use Get funding limits API to confirm that your existing funding limits are sufficient. Funding limits are the maximum amount of direct debit deposits you can create over a certain period of time. They are shared across all Airwallex accounts under a single legal entity, and may be counted against regular direct debits (flight time 2-5 business days) and Faster Direct Debits (flight time 0-2 business days).

The response will provide all the funding limits currently available to the legal entity associated with your Airwallex account.

Example request

Shell

If you are registered as a platform account, you can call this endpoint on behalf of your connected accounts by specifying the open ID in the x-on-behalf-of header.

You can also call this endpoint directly to check funding limits available to the legal entity associated with your own account. Depending on configurations agreed upon with your Account Manager, direct debit deposits created on behalf of your connected accounts may draw from either the platform account or the connected account.

To learn more, see Understanding direct debit flight times and funding limits.

Step 3: Check Linked Account balance

If your Linked Account was created using Open Banking types PLAID or TRUELAYER, you will be able to use Check available balances API to ensure that the external bank account has sufficient balance for your direct debit.

We recommend checking balances ahead of larger transactions. This is because an overdraft of the Linked Account would still be processed, only to return as REJECTED a few days later.

Step 4: Create a direct debit deposit

After ensuring that you have sufficient limits for the direct debit and that the Linked Account has sufficient balance, use Create a deposit via Direct Debit API to receive funds into your Wallet. If the deposit amount exceeds the remaining Direct Debit limit or Faster Direct Debit limit, the request will return a 400 error with the code INSUFFICIENT_DD_LIMIT or INSUFFICIENT_FASTER_DD_LIMIT.

You may use this endpoint to create both regular direct debit deposits (flight time 2-4 business days) or Faster Direct Debit deposits (flight time 0-1 business day).

Provide the following parameters in your request:

  • amount: The amount you want to collect.
  • currency: The currency of the amount in 3-letter ISO-4217 code.
  • deposit_type: The type of deposit you would like to create, either DIRECT_DEBIT or FASTER_DIRECT_DEBIT. If not specified, it will default to DIRECT_DEBIT.
  • funding_source_id: The unique id of your Linked Account as returned in Create a Linked Account API.
  • request_id: A unique ID for this deposit request (should be a valid UUID).
  • reference: An optional reference that will be displayed to the bank account owner on the bank statement. Please refer to Direct debit schemes and mandate requirements for applicable mandate types.

A successful request will return a PENDING status. This status will transition to SETTLED and the funds will subsequently appear in your available balance after a holding time. If the request is rejected before the holding time if applicable, either by Airwallex or the external bank, the status will transition to REJECTED. If we receive a rejection from the external bank after the holding time, the status will transition to REVERSED, and corresponding funds will be deducted from your balance.

Subscribe to Deposit webhook events to receive any deposit status transitions. See Direct debit deposit statuses for all the possible statuses. The transaction id returned in the webhook payload can be used to retrieve further details of a deposit by calling Get a deposit by ID API. If the deposit is in a failure status (REJECTED or REVERSED), you can review Direct debit deposit error codes to learn about all possible errors.

Example request

Shell

If you are registered as a platform account, you can call this endpoint on behalf of your connected accounts by specifying the open ID in the x-on-behalf-of header.

Was this page helpful?
On this page
Was this page helpful?