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

Use existing AU BECS customer details to set up PayTo agreements

Use AU BECS customer details to set up PayTo agreements

To set up a PayTo agreement for a customer, you must obtain customer authorisation by sending the customer a new PayTo mandate using Stripe APIs.

If you need to set up PayTo agreements for more than one customer, you can bulk send the requests. Contact Stripe support if you have questions about your use case.

Notify customers about upcoming changes

Inform your customers about the PayTo agreement before initiating the process. You must include the following information:

  • A new payment mandate
  • The terms of the new payment mandate which need to match with the mandate_options you are going to specify on the SetupIntent
  • Your customer support contact details

Create PayTo mandates

For each customer and bank account, create a new Customer object or retrieve an existing one to associate with the PayTo mandate.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Create and confirm a SetupIntent to initiate the PayTo mandate authorisation flow.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/setup_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer={{CUSTOMER_ID}} \ -d confirm=true \ -d "payment_method_types[]"=payto \ -d "payment_method_data[type]"=payto \ -d "payment_method_data[payto][account_bsb]"={{BSB_NUMBER}} \ -d "payment_method_data[payto][account_number]"={{ACCOUNT_NUMBER}} \ -d "payment_method_options[payto][mandate_options][amount]"=1000 \ -d "mandate_data[customer_acceptance][type]"=online \ -d "mandate_data[customer_acceptance][online][ip_address]"="127.0.0.0" \ -d "mandate_data[customer_acceptance][online][user_agent]"=device

Alternatively, customers can authorise mandates using their PayID:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/setup_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer={{CUSTOMER_ID}} \ -d confirm=true \ -d "payment_method_types[]"=payto \ -d "payment_method_data[type]"=payto \ -d "payment_method_data[payto][pay_id]"={{PAY_ID}} \ -d "payment_method_options[payto][mandate_options][amount]"=1000 \ -d "mandate_data[customer_acceptance][type]"=online \ -d "mandate_data[customer_acceptance][online][ip_address]"="127.0.0.0" \ -d "mandate_data[customer_acceptance][online][user_agent]"=device

Customers receive an authorisation request from their bank, typically through a push notification or email. They must approve the mandate to complete the process. When the customer accepts or rejects the mandate, you receive mandate.updated event.

Retrieve and store new payment methods

Retrieve and store the PaymentMethod ID from the confirm SetupIntent response to use for future payments. You can also retrieve it by listing all PaymentMethods for the customer.

Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc