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
Australia (AU_BECS_DEBIT)Australia (AU_PAYTO_DEBIT)
United States (US_ACH_DEBIT)United States (US_FEDWIRE_DEBIT)United Kingdom (GB_BACS_DEBIT)Europe SEPA (EU_SEPA_DEBIT)Canada (CA_EFT_DEBIT)Hong Kong (HK_FPS_DEBIT)Singapore (SG_EGIRO_DEBIT)New Zealand (NZ_BECS_DEBIT)
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

Australia (AU_PAYTO_DEBIT)

Begin you begin

Check your eligibility

Onboarding entity: PayTo is only available to Australian entities that are onboarded to Airwallex Australia with a local Australian Bank Account

  • Platforms must be Australian entities and onboarded to Airwallex Australia
  • Platforms must also ensure that only customers that are Australian entities and onboarded to Airwallex Australia are allowed to set up PayTo

Industry: Industry restrictions apply. Please reach out to your Airwallex Account Manager for more information

Settlement time

PayTo settles 24/7 in real-time via the NPP clearing system, hence FASTER_DIRECT_DEBIT is not applicable.

Mandate requirements

To add funds to their customers via PayTo, your customers must first link their Australian external bank accounts, as outlined in Linked Accounts.

Before any PayTo debit is processed, the owner of the external bank account must authorize Airwallex to debit the account on your behalf, in compliance with the Australia Payments Plus Rules. A copy of the authorization will be sent by Airwallex via email to the bank account owner and is stored and made available to be shared with the customer at all times.

The following is a guide to building your native scale experience for your customers to link their external bank account and sign the mandate/agreement.

1. Linking an external bank account

The title should inform your customers that they are linking an external bank account to set up PayTo.

You must ask the external bank account owner for:

  • If they wish to link via PayID
    • PayID (Email/Phone Number/ABN/ACN/ARBN/ARSN/Organisation ID)
  • Or the following if they choose to enter bank account details:
    • Bank account name
    • Bank account number
    • BSB code
  • Bank account owner's email address

2. Confirmation of account details

The customers must be given a prompt to confirm that their bank account details are correct before submitting the Linked Bank Account.

The following text must be displayed:

This PayTo agreement enables you to link your bank account with Airwallex for direct debits. By submitting this direct debit request, you agree to the PayTo Service Agreement and authorize Airwallex, through its own financial institution, to debit your nominated account through PayTo any amount and frequency specified by you. You also confirm that you have the authority to link the nominated account. Contact [email protected] for help.

3. PayTo authorization

Upon submitting the Linked Bank Account, a notification will be triggered to your customer’s banking application for them to approve the PayTo request.

You should inform your customers that the PayTo request is pending their authorization.

4. Confirmation of PayTo set up

Upon receiving a successful authorization, you should provide a confirmation page to your customers to inform them that PayTo has been successfully set up for the Linked Bank Account.

API instructions

1. Create Linked Account with direct debit mandate

Referring to Linked Account requirements for direct debit, both BUSINESS and INDIVIDUAL Linked Account types are supported for PayTo in Australia.

Open Banking is the available verification method. Unlike Open Banking for other direct debit schemes, PayTo triggers a notification to the external bank account banking application for authorization. It does not open up a modal or require the Platform to redirect its customers to an external site to log in.

Creating a Linked Account with the following information will create a PayTo authorization to the Linked Account:

  • request_id: A unique ID for this deposit request (should be a valid UUID)
  • type: Type of Linked Account. Either AU_BANK or AU_PAYID is required
  • If type is AU_BANK, provide the following information in the au_bank object:
    • account_name: Registered name of the external bank account. This name must be the name of the business onboarded or under one of its UBOs.
    • account_number: Bank account number
    • bsb: 6-digit BSB code
    • currency: AUD
    • entity_type: BUSINESS or INDIVIDUAL
  • If type is AU_PAYID, provide the following information in the au_payid object:
    • payid: PayID value
    • account_identifier_type: The type of PayID; could be one of PHONE_NUMBER, EMAIL_ADDRESS, ABN, ACN, ARBN, ARSN, ORGANISATION_IDENTIFIER
    • currency: AUD
    • entity_type: BUSINESS or INDIVIDUAL
  • mandate: Details about the mandate
    • email: Email of the signatory. A PDF copy of the PayTo agreement will be sent to this email address.
    • signatory: Name of the mandate’s signatory. This should be the external bank account owner.
    • type: AU_PAYTO_DEBIT
    • version: 1.0
    • preferred_reference: Description for the mandate, up to 140 characters. This will show up on the Payer's banking application.
    • controls object: Defines the characteristics of the mandate
      • amount_type: Determines if the PayTo payments are FIXED or VARIABLE. If FIXED, fixed_amount_per_transaction is required.
      • max_amount_per_transaction: The maximum amount that can be paid from the Linked Account per PayTo transaction.
        • Different payer banks have different restrictions on what is an acceptable max_amount_per_transaction. For instance, the Commonwealth Bank of Australia automatically rejects any amount above 25k AUD. We recommend that you ask for this information from the Payer when they set up the mandate, as this value varies across banks and not all banks publicly disclose it.
      • fixed_amount_per_transaction: The fixed amount that may be paid from the Linked Account, per transaction.
      • end_date: End date of the mandate arrangement after which the Linked Account will be suspended. If unspecified, the mandate will not expire.
      • schedule object: Determines the schedule for recurring transaction cycles under this mandate. If no schedule is provided, an unlimited number of transactions would be allowed.
        • period: The number of period units between recurring transaction cycles. For example, the transaction cycle is every quarter if period = 3 and period_unit = MONTH.
        • period_unit: Specifies the transaction frequency. One of DAY, WEEK, MONTH or YEAR.

Example request

Shell

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

Example response

JSON

The submission of a Linked Account with a mandate object will trigger an authorization to the external bank account owner’s banking application, where they will accept or decline the PayTo agreement.

After creating the Linked Account, the Linked Account will go into a REQUIRES_ACTION status, with next_action = external_authorize, indicating that the customer should authorize the agreement on their external banking application. They have to respond to the request in 5 days before the authorization expires.

The status of the Linked Account will be updated through the Linked Account webhooks.

linked accounts.create

See table below for actions and respective webhook events and data:

ActionWebhook events
Payer approves PayTo authorization or reactivates a paused PayTo mandatelinked_account.succeeded
PayTo authorization rejectedlinked_account.failed
PayTo authorization expiredlinked_account.failed
PayTo mandate expiredlinked_account.suspended
PayTo mandate cancelled/amended by Payerlinked_account.suspended
Payer pauses PayTo mandatelinked_account.requires_action
Airwallex cancels PayTo mandatelinked_account.suspended

Refer to Linked Account error codes below for the possible failure details when the Linked Account is in a FAILED or SUSPENDED status.

2. Create PayTo deposit

Before creating a PayTo deposit, please ensure that you have a sufficient funding limit by checking your available funding limit.

Next, follow the instructions outlined in Create a direct debit deposit. Please note that the direct debit deposit reference for PayTo should not exceed 280 characters.

Example request

Shell

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

Example response

JSON

Clearing system error codes

To help you handle exceptions systematically, this page provides a comprehensive list of all possible clearing system errors and detailed descriptions when the Linked Accounts or a direct debit deposit from Linked Accounts are in failure statuses.

We recommend using the Airwallex error code or the iso_code for systematic exception handling. The code from provider_failure_details can be used for troubleshooting against the clearing system rules, but it is not advised for systematic handling because the clearing system may update it from time to time.

Linked Accounts error codes

codeiso codeProvider failure details codeDescription
invalid_debtor_account_numberAC02AC02The payer’s account does not exist
closed_debtor_account_numberAC05AC05The payer’s account is closed. Contact the payer to reopen the account, or create a new mandate to charge a different bank account.
blocked_accountAC06AC06The bank account has been blocked. Contact the payer to remove the block, or create a new mandate to charge a different bank account.
invalid_debtor_account_typeAC13AC13The payer’s bank account cannot debit funds within. Contact the payer or payer's bank for further information.
transaction_forbiddenAG01AG01Transactions forbidden on this account. Contact the payer or payer’s bank for further information.
transaction_not_supportedAG03AG03Transaction not supported on this account. Contact the payer or payer’s bank for further information.
not_allowed_currencyAM03AM03The bank account is not in AUD.
invalid_amountAM12AM12The amount in the mandate is invalid.
amount_exceeds_agreed_limitAM14AM14The amount in the mandate exceeds the allowed limit. Contact the payer or payer’s bank for further information.
unknown_end_customerBE06BE06Payer specified is unknown or no longer exists.
requested_by_customerMD16MD16RequestedByCustomer
requested_by_initiating_partyMD17MD17Cancellation/amendment requested by the payee.
no_mandate_service_on_customerMD09MD09Account is not open to mandates services
contract_amendedCTAMCTAMMandate was suspended due to amendment.
mandate_expiredMD20MD20Mandate is cancelled following validity expiration.
mandate_cancelled_due_to_fraudMD21MD21Mandate is cancelled due to suspected fraud. Contact the payer or payer’s bank for further information.
not_specified_reason_customer_generatedMS02MS02Reason has not been specified by end customer. Contact the payer or payer’s bank for further information.
no_answer_from_customerNOASNOASNo response from payer.
regulatory_reasonRR04RR04The mandaate is rejected for regulatory reasons. Contact your account manager for further information.
creditor_not_on_whitelist_of_debtorSL11SL11The payee is not on the payer's whitelist.
creditor_on_blacklist_of_debtorSL12SL12The payee is on the payer's blacklist.

PayTo deposit error codes

codeiso codeprovider failure details codedescription
invalid_debtor_account_numberAC02AC02Account to be debited does not exist
closed_debtor_account_numberAC05AC05The payer’s bank account is closed. Contact the payer to reopen the account, or create a new mandate to charge a different bank account.
blocked_accountAC06AC06The bank account has been blocked for PayTo direct debits. Contact the payer to remove the block, or create a new mandate to charge a different bank account.
invalid_debtor_account_typeAC13AC13The payer’s bank account cannot debit funds within. Contact the payer or payer's bank for further information.
account_details_changedAC15AC15The payer's bank account details have changed. Please create a new mandate to the new bank account.
transaction_forbiddenAG01AG01Account to be debited is unable to be debited. Contact the payer or payer’s bank for further information.
unsuccessful_direct_debitAG07AG07Payer's bank account cannot be debited for a generic reason. Contact the payer or payer’s bank for further information.
insufficient_fundsAM04AM04Amount of funds available in the payer's bank account is insufficient.
wrong_amountAM09AM09Amount received is not the amount agreed or expected.
limit_exceededAM21AM21The amount requested in the PayTo payment initiation request exceeds the agreed limit.
unknown_end_customerBE06BE06Payer specified is unknown or no longer exists.
settlement_failedED05ED05Settlement of the transaction has failed.
mandate_expiredMD20MD20The mandate has expired.
not_specified_reason_customer_generatedMS02MS02Reason has not been specified by end customer. Contact the payer or payer’s bank for further information.
not_specified_reason_agent_generatedMS03MS03Reason has not been specified by agent.
not_authorizedNAUTNAUTPermission to be processed is not granted.
creditor_not_on_whitelist_of_debtorSL11SL11The payee is not on the payer's whitelist.
creditor_on_blacklist_of_debtorSL12SL12The payee is on the payer's blacklist.
maximum_number_of_direct_debit_transactions_exceededSL13SL13The PayTo payment initiation request was rejected because the number of transactions requested exceeds the payer agent's offering.
maximum_direct_debit_transaction_amount_exceededSL14SL14The PayTo payment initiation request was rejected because the total value of transactions requested exceeds the payer agent's offering.
otherM911M911Payer is no longer reachable on NPP. Cancel the mandate.
otherM919M919Unable to locate Payment Instruction record.
otherM920M920Mandate validation failed. Verify the details of the mandate.
Was this page helpful?
On this page
  • Begin you begin
  • Mandate requirements
  • API instructions
  • Clearing system error codes
Was this page helpful?