Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp

PayTo payments

Learn how to accept the PayTo payment method.

PayTo is a real-time payment method in Australia for accepting one-time and recurring payments. When paying with PayTo, customers authenticate and approve agreements using their mobile banking app.

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 agreement authorization.

Accepting PayTo payments on your website consists of creating an object to track a payment, collecting payment method information and mandate acknowledgement, and submitting the payment to Stripe for processing. Stripe uses this payment object, the PaymentIntent, to track and handle all states of the payment until the payment completes.

Determine compatibility

Customer Geography: Australia

Supported currencies: aud

Presentment currencies: aud

Payment mode: Yes

Setup mode: Yes

Subscription mode: Yes

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. Add payto to the list of payment_method_types.
  2. Make sure all your line_items use the aud currency.
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Stripe::Checkout::Session.create({ mode: 'payment', payment_method_types: ['card'], payment_method_types: ['card', 'payto'], line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel' })

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.
{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.
{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_timeout error code and a generic_decline decline code.
{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.
{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.
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc