PayTo is a real-time payment scheme for Australian bank accounts. GoCardless supports two use cases: setting up an open mandate with your customer, and taking one-off real-time payments.
PayTo uses the term "agreement" for the contract between you and your customer. This maps to a
"mandate" in the GoCardless API. The two terms are synonymous — customers will see "agreement" in
the payment flow.
Constraints specify the limits on recurring payments, allowing you to collect payments without requiring the payer to re-consent each time — provided payments fall within the agreed constraints.
Parameter
Description
start_date
Date from which the consent is valid. Must not be in the past; the payer must have enough time to complete the flow before this date.
end_date
Date after which payments cannot be collected. Must not be in the past or before start_date.
max_amount_per_payment
Maximum amount that can be charged per payment.
periodic_limits[].period
Repeating time frame: year, month, week, or day.
periodic_limits[].max_payments
Maximum number of payments that can be taken within the period.
Create a Billing Request Flow to generate a hosted checkout link for your customer. For PayTo, always include an exit_uri.
Some banks do not yet support PayTo. If a customer's bank is unsupported, they will be redirected
to the exit_uri rather than reaching a dead end. We recommend sending them back to your checkout
page so they can choose an alternative payment method.
Skip steps for existing customers — If you already have a customer on record, pass their ID in links.customer on the Billing Request to skip the customer details step. Similarly, pass links.customer_bank_account to skip the bank account step. The customer can still edit these details unless they are locked.
Lock details — Set lock_customer_details or lock_bank_account to true on the Billing Request Flow to prevent the customer from changing those details. When both are locked, the customer skips directly to the confirmation step.
Lock scheme and currency — For mandate-only requests, you can set lock_currency to true on the Billing Request Flow. This prevents the customer from changing the scheme or currency, ensuring the mandate is always set up in PayTo.
The customer provides their personal details. This step is skipped if customer details already exist or have been locked.
Collect bank details
The customer provides their PayID or bank details. This step is skipped if bank details already exist or have been locked.
Bank authorisation
The customer is prompted to complete the authorisation in their banking app. Depending on their bank, they may also receive a push notification or SMS.
Confirmation
Once authorisation is complete, a confirmation screen is shown. All required actions are fulfilled and the Billing Request is complete.