Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Billing
    Overview
    About the Billing APIs
    Subscriptions
      Overview
      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
          Sofort with SEPA Direct Debit
        Integrate with third-party payment processing
        Collection methods
        Share a link to update payment details
        Strong Customer Authentication (SCA)
        Manage subscriptions
        Modify subscriptions
        Manage pending updates
      Analytics
    Invoicing
    Usage-based billing
    Connect and Billing
    Tax and Billing
    Quotes
    Revenue recovery
    Automations
    Scripts
    Revenue recognition
    Customer management
    Entitlements
    Test your integration
Tax
Reporting
Data
Startup incorporation
HomeFinance automationBillingSubscriptionsSubscription featuresSubscription payment methods

Set up a subscription with bank transfers

Learn how to create and charge for a subscription with bank transfers.

Copy page

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