Sign in
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
Security
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Overview
Customers
Products and Prices
Tax Rates
Customer portal
Start with a use case
Subscriptions with Checkout
Fixed-price subscriptions with Elements
Metered billing with Elements
Per-seat billing with Elements
Manage subscriptions
How subscriptions work
Subscription webhooks
Change subscriptions
Strong Customer Authentication (SCA)
Improved tax support
Invoices API updates
Migrating to Prices
Additional features
Adding taxes
Applying discounts
Backdating subscriptions
Decimal amounts
Metered billing
Multiple subscriptions
Prorations
Setting quantities
Subscriptions with Connect
Subscriptions with multiple products
Subscription schedules
Tiered pricing
Quantity transformation
Using trial periods
Testing
Add payment methods
Bacs Direct Debit in the UK
BECS Direct Debit in Australia
SEPA Direct Debit in the EU
Revenue recognition
Overview
Reports
Methodology
Examples
Overrides
Testing
billing
·
HomePaymentsSubscriptionsAdditional features

Backdating subscriptions

Learn about backdating subscriptions.

You can backdate a subscription to bill customers for time that has already elapsed. This is often used when migrating to Stripe or for record keeping purposes. The backdate_start_date field specifies the date the subscription is backdated to. You can optionally bill customers for this elapsed time and set the next billing date.

Backdating and charging users

Sometimes users might have access to your service before a subscription is created for them. To charge users for this time, create and backdate a subscription by passing the customer, price, and backdate_start_date.

Terminal
curl https://api.stripe.com/v1/subscriptions \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "customer"="{{ CUSTOMER_ID }}" \ -d "items[0][price]"="{{ PRICE_ID }}" \ -d "backdate_start_date"=1575176400

This creates an invoice with a prorated amount for the time between the backdated start date and the current time. In this example, it also sets the start_date on the subscription to September 1 and the billing cycle anchor to the current date.

Backdating without charging users

If you’re migrating to Stripe, you might want to backdate your subscriptions without charging your customers. You can do this by passing proration_behavior: 'none' when you create the subscriptions. This sets the start_date to the same value as backdate_start_date, but it doesn’t charge the customer for backdated time.

Backdating and setting the billing cycle anchor

You can combine backdate_start_date with billing_cycle_anchor to backdate a subscription and set the billing cycle anchor to a date in the future. This creates a prorated item on the next invoice for the time between the backdated start date and the billing cycle anchor. This is useful if you’re migrating to Stripe and need to carry over the next billing date for your subscriptions. It also allows you to bill customers for elapsed time and to carry over the start dates for your subscriptions from your previous integration.

For example, let’s say it’s October 15 and you’re migrating to Stripe. You have a subscription that started on September 1 and the next billing date is November 1. To migrate this subscription, create a new subscription and set backdate_start_date to September 1 and billing_cycle_anchor to November 1.

Terminal
curl https://api.stripe.com/v1/subscriptions \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "customer"="{{ CUSTOMER_ID }}" \ -d "items[0][price]={{ PRICE_ID }}" \ -d "backdate_start_date"=1575176400 \ -d "billing_cycle_anchor"=1572580800

This immediately issues an invoice for the prorated amount from the time between September 1 and November 1. The next invoice will be issued on November 1. It also sets the start_date of the subscription to September 1.

Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.
You can unsubscribe at any time. Read our privacy policy.
On this page
Backdating and charging users
Backdating without charging users
Backdating and setting the billing cycle anchor