Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
Overview
Billing
OverviewAbout the Billing APIs
Subscriptions
    How subscriptions work
    Quickstart
    Use cases
    Build your integration
    Subscription features
      Subscription invoices
      Subscription schedules
      Subscription pricing
      Recurring pricing models
      Embed a pricing table
      Start subscriptions
      Set quantities
      Set billing cycles
      Backdate subscriptions
      Subscribe to multiple items
      Set trial periods
      Apply coupons
      Migrate subscriptions to Stripe
      How credit prorations are calculated
      Subscription payments
      Subscription payment methods
        ACH Direct Debit
        Amazon Pay
        Bacs Direct Debit in the UK
        Bank transfer
        BECS Direct Debit in Australia
        Cash App Pay
        PayPal
        Revolut Pay
        Korean Cards
        Kakao Pay
        Naver Pay
        Pre-authorised debit in Canada
        SEPA Direct Debit in the EU
        iDEAL with SEPA Direct Debit
        Bancontact with SEPA Direct Debit
      Integrate with third-party payment processing
      Collection methods
      Strong Customer Authentication (SCA)
      Manage subscriptions
      Modify subscriptions
      Manage pending updates
    Entitlements
    Analytics
Invoicing
Usage-based billing
Quotes
Customer management
Billing with other products
Revenue recovery
Automations
Revenue recognition
Test your integration
Tax
Overview
Use Stripe tax
Manage compliance
Reporting
Overview
Select a report
Configure reports
Reports API
Reports for multiple accounts
Revenue recognition
Data
OverviewSchema
Custom reports
Data Pipeline
Data management
HomeRevenueSubscriptionsSubscription featuresSubscription payment methods

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
Dashboard
Server-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 customer
Server-side

To start, create a customer 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 object with each bank transfer subscription.

Command Line
cURL
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name="Jenny Rosen" \ --data-urlencode email="jenny.rosen@example.com"

Create the subscription
Server-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.
Command Line
cURL
curl https://api.stripe.com/v1/subscriptions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer={{CUSTOMER_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

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.

OptionalCreate a subscription schedule
Server-side

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.

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