Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Accept a payment and save a mandate for future PayTo payments


Accept a payment and save a mandate for future PayTo payments

Learn how to collect a PayTo payment and authorize future payments.

PayTo allows customers in Australia to authenticate PayTo mandates for one-off and recurring payments in their banking apps. Customers pay with PayTo by receiving notification of a pending mandate request, authorizing the terms of the mandate, then returning to your app where you get delayed notification on whether the payment succeeded or failed.

Setting up a PayTo mandate for future payments allows you to collect future recurring payments without needing customer authorization again. Customers can view, manage, pause, and cancel their PayTo mandates in their banking apps.

Caution

Stripe doesn’t support modification or pausing of PayTo mandates by customers. If a customer attempts to pause or modify a mandate, we cancel the mandate and send you a mandate.updated webhook. After receiving the webhook, you can reach out to your customer to find out why they adjusted their mandate, as well as set up a new mandate.

Checkout

Elements

Direct API

Determine compatibility

To support PayTo payments in Checkout, express all Prices for all line items in AUD (currency code aud).

Accept a payment

Note

This guide builds on the foundational accept a payment Checkout integration.

To enable Payto as a payment method, create a new Checkout Session:

  1. Enable PayTo in your Dashboard. Stripe automatically displays PayTo to eligible customers using dynamic payment methods . If you currently specify payment _ method _ types , see the migration guide .
  2. Make sure all your line _ items use the aud currency.
  3. Specify the terms of the mandate you want your customer to agree to using payment method options .

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Fulfill your orders

After accepting a payment, learn how to fulfill orders.

Test your integration

Test your PayTo integration with your test API keys by using the various test PayIDs and bank account details below. Each set of details results in a different scenario your integration might commonly face in live mode.

PayIDDescription
{any_prefix}+succeed@{any_domain}The PaymentIntent status transitions from requires_action to processing after 10 seconds, then transitions to succeeded after an additional 5 seconds. The mandate enters an active state.
{any_prefix}+decline@{any_domain}The PaymentIntent status transitions from requires_action to requires_payment_method after 10 seconds. Stripe returns the payment_method_provider_decline error code and an invalid_authorization decline code. The mandate enters an inactive state.
{any_prefix}+expire@{any_domain}The PaymentIntent status transitions from requires_action to requires_payment_method after 10 seconds. Stripe returns the payment_method_provider_decline error code and a generic_decline decline code. The mandate enters an inactive state.
{any_prefix}+insufficient_funds@{any_domain}The PaymentIntent status transitions from requires_action to processing after 10 seconds, then transitions to requires_payment_method after an additional 5 seconds. Stripe returns the payment_method_provider_decline error code and an insufficient_funds decline code. The mandate enters an inactive state.
{any_prefix}+revoke@{any_domain}The PaymentIntent status transitions from requires_action to processing after 10 seconds then to succeeded after a further 5 seconds. The mandate begins in an active state and transitions to inactive after 1 minute.
{any_prefix}+agreement_type_not_supported@{any_domain}The PaymentIntent status transitions from requires_action to requires_payment_method after 10 seconds. Stripe returns the payment_method_provider_decline error code. The mandate enters an inactive state.
Last verified 2026-09-24

Is this helpful?