PayTo payments
Learn about PayTo, a real-time payment method in Australia.
PayTo is a real-time payment method in Australia for accepting one-time and recurring payments. When paying with PayTo, customers authenticate and approve mandates using their mobile banking app or online banking.
You get delayed notification on whether the payment succeeded or failed. Stripe typically sends a notification of the final status of the payment within 60 seconds of the mandate authorization.
Verification Requirements
Using PayTo requires you to complete additional identity verification steps. We prompt you to complete these steps after you request access from the Payment methods settings. If you require further assistance, contact Stripe support.
Payment flows
Customers pay with PayTo by using one of the following methods:
PayID: Customers can provide a PayID, a unique identifier linked to a customer’s bank account, to initiate mandate authorization.
Account and BSB Numbers: Customers can provide their bank account details to initiate mandate authorization.
In both cases, customers receive a request from their bank to authorize the PayTo mandate. This request typically surfaces through a push notification or by email.
Get started
PayTo is available through Checkout Sessions, on the Payment Element or through a direct API integration. It also supports Billing and Payment Links. PayTo is available as a dynamic payment method, which means you don’t have to individually integrate PayTo and other payment methods. If you use the Payment Element, Stripe automatically determines the most relevant payment methods to display. Go to the Stripe Dashboard and enable PayTo.
If you prefer to manually list payment methods, learn how to manually configure PayTo as a payment.
Mandates
PayTo mandates allow you to specify the amount, cadence, purpose, and allowed period for payments.
You don’t need to specify the mandate terms when processing one-off payments. Stripe sets up one-off mandates automatically.
To set up the PayTo payment method for recurring payments, specify the least permissive mandate terms required to collect your payments. In any case, limit the amount on your mandates because several banks always reject mandates without an amount specified.
This table describes mandate fields that PayTo supports. Specify these fields by providing mandate_ parameter in payment_. For example, see the mandate_options parameter in the Payment Intents API.
| Mandate field | Description | One-off payments behavior | Recurring payments behavior |
|---|---|---|---|
| amount | Amount that you collect. | Stripe sets amount to the payment’s amount. You can’t modify it. | Required for fixed amount_type. You can modify it. |
| amount_type | The type of amount that you collect. | Stripe sets amount_type to fixed. You can’t modify it. | You can set to fixed (charge must equal the amount) or the default of maximum (charge must be equal or less than the amount). |
| payment_schedule | The cadence at which you collect payments. | Stripe sets payment_schedule to adhoc. You can’t modify it. | Defaults to adhoc. You can modify it. |
| purpose | The payment reason according to your merchant category code (MCC). | You can override the Stripe-inferred value using any of the valid values if the default value doesn’t accurately represent the purpose of the mandate. The mandate will contain the default value when you don’t specify an override. | |
| start_date | Date, in YYYY-MM-DD format, from which payments are collected. | Stripe sets start_date to confirmation time. You can’t modify it. | |
| end_date | Date, in YYYY-MM-DD format, after which payments aren’t collected. | Stripe sets end_date to no end date (nil). You can’t modify it. | Defaults to no end date (nil). You can modify it. |
| payments_per_period | The number of payments that are made during a payment period. | Stripe sets payments_per_period to 1. You can’t modify it. | Defaults to 1 except for when payment_schedule is adhoc. In that case, it defaults to no limit (nil). You can modify it. |
Refunds
Refund PayTo payments by calling the Stripe Refunds API or using the Stripe Dashboard. You can refund a PayTo payment up to 2 years after the original payment. Customers typically receive refunds in their bank accounts within minutes, but some banks might take up to several days to process a PayTo refund.
PayTo supports full and partial refunds. You can also issue multiple partial refunds up to the amount of the original charge.
Disputes
If a dispute gets created, Stripe sends both the charge. and charge. webhook events, and deducts the amount of the dispute and associated dispute fee from your Stripe balance.
Unlike credit card disputes, all PayTo disputes are final and you can’t appeal them. If a customer successfully disputes a payment, contact them to resolve the situation. If you can come to a resolution and your customer is willing to return the funds to you, they need to make a new payment.
Connect
You can use Stripe Connect with PayTo to process payments on behalf of a connected account. Connect users can use PayTo with the following charge types:
Enable PayTo for connected accounts that use the Express Dashboard or a dashboard that isn’t hosted by Stripe
To onboard connected accounts that use the Express Dashboard or a dashboard that isn’t hosted by Stripe, request the payto_ capability using the Capabilities API. For more details, see Enable payment methods for your connected accounts.
Transaction limits and other considerations
Across the banks, PayTo performs best for recurring transactions, and transactions below 1,000 AUD. PayTo performance might vary depending on the buyer’s bank, their account type, and the frequency of payments. Each bank can enforce additional measures to manage risk and prevent fraud.
The business bank account coverage for PayTo is relatively low compared to consumer coverage. When more banks enable PayTo payments for their business accounts, coverage will increase.
See the documentation linked below for more details on bank-specific considerations.