# 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 authorization 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](https://support.stripe.com/contact) 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](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_options-payto-mandate_options) you’re going to specify on the [SetupIntent](https://docs.stripe.com/api/setup_intents.md) - Your customer support contact details ## Create PayTo mandates For each customer and bank account, create a new [Customer object](https://docs.stripe.com/api/customers.md) or retrieve an existing one to associate with the PayTo mandate. ```curl curl -X POST https://api.stripe.com/v1/customers \ -u "<>:" ``` Create and *confirm* (Confirming an intent indicates that the customer intends to use the current or provided payment method. Upon confirmation, the intent attempts to initiate the portions of the flow that have real-world side effects) a [SetupIntent](https://docs.stripe.com/api/setup_intents.md) to initiate the PayTo mandate authorization flow. ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -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 authorize mandates using their PayID: ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -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 authorization 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](https://docs.stripe.com/api/events/types.md#event_types-mandate.updated) event. ## Retrieve and store new payment methods Retrieve and store the [PaymentMethod ID](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-payment_method) from the *confirm* (Confirming an intent indicates that the customer intends to use the current or provided payment method. Upon confirmation, the intent attempts to initiate the portions of the flow that have real-world side effects) [SetupIntent](https://docs.stripe.com/api/setup_intents.md) response to use for future payments. You can also retrieve it by [listing](https://docs.stripe.com/api/payment_methods/list.md) all PaymentMethods for the customer.