Set up a subscription with bank transfers
Learn how to create and charge for a subscription with bank transfers.
Use this guide to set up a subscription using bank transfers as a payment method.
Create a product and price
DashboardServer-side
Products and Prices are core resources for Subscriptions. Create a product and a recurring price. Save the price ID—you’ll need it later in this guide.
Create or retrieve a customerServer-side
To start, create a customer (either a customer-configured Account object or a Customer object) with a valid email address, if one doesn’t already exist. The valid email address ensures that the customer can receive invoices you send to them.
Funds from bank transfers are held in the customer’s cash balance, so you have to associate a customer with each bank transfer subscription. To manage the cash balance for a customer-configured Account, use the Customers API endpoint with the Account ID as the path parameter, for example v1/customers/acct_.
curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer" \ -H "Stripe-Version: $latestPreviewApiVersion" \ --json '{ "contact_email": "jenny.rosen@example.com", "display_name": "Jenny Rosen", "configuration": { "customer": {} }, "include": [ "configuration.customer" ] }'sk_test_BQokikJOvBiI2HlWgH4olfQ2
Create the subscriptionServer-side
Create the subscription using the customer ID and price ID from the previous steps.
- Set collection_method to
send_.invoice - Set days_until_due to configure how many days the customer has to pay the invoice.
curl https://api.stripe.com/v1/subscriptions \ -u ":" \ -d customer_account={{CUSTOMER_ACCOUNT_ID}} \ -d "items[0][price]={{PRICE_ID}}" \ -d collection_method=send_invoice \ -d days_until_due=30 \ -d "payment_settings[payment_method_types][0]=customer_balance"sk_test_BQokikJOvBiI2HlWgH4olfQ2
An invoice is sent to the customer when the Subscription is due. The invoice is marked as paid if the customer has enough funds in their cash balance. Otherwise, it contains the necessary information needed for the customer to push funds from their bank account. This invoice also has a link to the Hosted Invoice Page. Subsequent invoices use the price you created in the first step.
Learn more about bank transfer invoices.
Test your integration
Use the Stripe Dashboard or CLI to simulate an inbound transfer of funds.
As soon as you receive a fund, Stripe performs automatic or manual reconciliation of the invoice.