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.
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. EitherAU_BANK
orAU_PAYID
is required- If type is
AU_BANK
, provide the following information in theau_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 numberbsb
: 6-digit BSB codecurrency
:AUD
entity_type
:BUSINESS
orINDIVIDUAL
- If type is
AU_PAYID
, provide the following information in theau_payid
object:payid
: PayID valueaccount_identifier_type
: The type of PayID; could be one ofPHONE_NUMBER
,EMAIL_ADDRESS
,ABN
,ACN
,ARBN
,ARSN
,ORGANISATION_IDENTIFIER
currency
:AUD
entity_type
:BUSINESS
orINDIVIDUAL
mandate
: Details about the mandateemail
: 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.0preferred_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 mandateamount_type
: Determines if the PayTo payments areFIXED
orVARIABLE
. IfFIXED
,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 ifperiod
= 3 andperiod_unit
=MONTH
.period_unit
: Specifies the transaction frequency. One ofDAY
,WEEK
,MONTH
orYEAR
.
Example request
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
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.
See table below for actions and respective webhook events and data:
Action | Webhook events |
---|---|
Payer approves PayTo authorization or reactivates a paused PayTo mandate | linked_account.succeeded |
PayTo authorization rejected | linked_account.failed |
PayTo authorization expired | linked_account.failed |
PayTo mandate expired | linked_account.suspended |
PayTo mandate cancelled/amended by Payer | linked_account.suspended |
Payer pauses PayTo mandate | linked_account.requires_action |
Airwallex cancels PayTo mandate | linked_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
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
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
code | iso code | Provider failure details code | Description |
---|---|---|---|
invalid_debtor_account_number | AC02 | AC02 | The payer’s account does not exist |
closed_debtor_account_number | AC05 | AC05 | The payer’s account is closed. Contact the payer to reopen the account, or create a new mandate to charge a different bank account. |
blocked_account | AC06 | AC06 | The 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_type | AC13 | AC13 | The payer’s bank account cannot debit funds within. Contact the payer or payer's bank for further information. |
transaction_forbidden | AG01 | AG01 | Transactions forbidden on this account. Contact the payer or payer’s bank for further information. |
transaction_not_supported | AG03 | AG03 | Transaction not supported on this account. Contact the payer or payer’s bank for further information. |
not_allowed_currency | AM03 | AM03 | The bank account is not in AUD. |
invalid_amount | AM12 | AM12 | The amount in the mandate is invalid. |
amount_exceeds_agreed_limit | AM14 | AM14 | The amount in the mandate exceeds the allowed limit. Contact the payer or payer’s bank for further information. |
unknown_end_customer | BE06 | BE06 | Payer specified is unknown or no longer exists. |
requested_by_customer | MD16 | MD16 | RequestedByCustomer |
requested_by_initiating_party | MD17 | MD17 | Cancellation/amendment requested by the payee. |
no_mandate_service_on_customer | MD09 | MD09 | Account is not open to mandates services |
contract_amended | CTAM | CTAM | Mandate was suspended due to amendment. |
mandate_expired | MD20 | MD20 | Mandate is cancelled following validity expiration. |
mandate_cancelled_due_to_fraud | MD21 | MD21 | Mandate is cancelled due to suspected fraud. Contact the payer or payer’s bank for further information. |
not_specified_reason_customer_generated | MS02 | MS02 | Reason has not been specified by end customer. Contact the payer or payer’s bank for further information. |
no_answer_from_customer | NOAS | NOAS | No response from payer. |
regulatory_reason | RR04 | RR04 | The mandaate is rejected for regulatory reasons. Contact your account manager for further information. |
creditor_not_on_whitelist_of_debtor | SL11 | SL11 | The payee is not on the payer's whitelist. |
creditor_on_blacklist_of_debtor | SL12 | SL12 | The payee is on the payer's blacklist. |
PayTo deposit error codes
code | iso code | provider failure details code | description |
---|---|---|---|
invalid_debtor_account_number | AC02 | AC02 | Account to be debited does not exist |
closed_debtor_account_number | AC05 | AC05 | The 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_account | AC06 | AC06 | The 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_type | AC13 | AC13 | The payer’s bank account cannot debit funds within. Contact the payer or payer's bank for further information. |
account_details_changed | AC15 | AC15 | The payer's bank account details have changed. Please create a new mandate to the new bank account. |
transaction_forbidden | AG01 | AG01 | Account to be debited is unable to be debited. Contact the payer or payer’s bank for further information. |
unsuccessful_direct_debit | AG07 | AG07 | Payer's bank account cannot be debited for a generic reason. Contact the payer or payer’s bank for further information. |
insufficient_funds | AM04 | AM04 | Amount of funds available in the payer's bank account is insufficient. |
wrong_amount | AM09 | AM09 | Amount received is not the amount agreed or expected. |
limit_exceeded | AM21 | AM21 | The amount requested in the PayTo payment initiation request exceeds the agreed limit. |
unknown_end_customer | BE06 | BE06 | Payer specified is unknown or no longer exists. |
settlement_failed | ED05 | ED05 | Settlement of the transaction has failed. |
mandate_expired | MD20 | MD20 | The mandate has expired. |
not_specified_reason_customer_generated | MS02 | MS02 | Reason has not been specified by end customer. Contact the payer or payer’s bank for further information. |
not_specified_reason_agent_generated | MS03 | MS03 | Reason has not been specified by agent. |
not_authorized | NAUT | NAUT | Permission to be processed is not granted. |
creditor_not_on_whitelist_of_debtor | SL11 | SL11 | The payee is not on the payer's whitelist. |
creditor_on_blacklist_of_debtor | SL12 | SL12 | The payee is on the payer's blacklist. |
maximum_number_of_direct_debit_transactions_exceeded | SL13 | SL13 | The PayTo payment initiation request was rejected because the number of transactions requested exceeds the payer agent's offering. |
maximum_direct_debit_transaction_amount_exceeded | SL14 | SL14 | The PayTo payment initiation request was rejected because the total value of transactions requested exceeds the payer agent's offering. |
other | M911 | M911 | Payer is no longer reachable on NPP. Cancel the mandate. |
other | M919 | M919 | Unable to locate Payment Instruction record. |
other | M920 | M920 | Mandate validation failed. Verify the details of the mandate. |