Skip to content
Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Finance automation
Banking as a service
Developer tools
No-code
All products
Home
Payments
Finance automation
Home
Payments
Finance automation
Banking as a service
Developer tools
Overview
Online payments
In-person payments
Multiparty payments
After the payment
Add payment methods
Fraud detection
Payment Links
Stripe Checkout UI
    Overview
    How Checkout works
    Quickstart
    Fulfill your orders
    Migrate payment methods to the Dashboard
    Migrate from legacy Checkout
    Migrate Checkout to use Prices
    Customize your integration
    Customize branding
    Collect taxes
    Collect tax IDs
    Collect phone numbers
    Post-payment invoices
    Make line item quantities adjustable
    Add custom fields
    Let customers decide what to pay
    Boost revenue
    Present local currencies
    Configure subscription upsells
    Configure cross-sells
    Recover abandoned carts
    Collect consent for promotional emails
    Analyze conversion funnel
    Additional features
    Add discounts
    Add shipping
    Start a free trial without collecting payment details
    Set billing cycle date
    Manage limited inventory
    Guest customers
Stripe Elements UI
Financial Connections
Crypto
Identity
Climate
About the APIs
Regulation support
Implementation guides
Testing
Checkout
·
HomePayments

Set the billing cycle date in Checkout

Use Stripe Checkout to set a billing cycle date for subscriptions.

You can explicitly set a subscription’s billing cycle anchor to a fixed date (for example, the 1st of the next month) in Checkout.

For the initial billing period up until the anchor, you can customize how to handle prorations with the proration_behavior parameter. By default, proration_behavior is set to create_prorations, and customers receive a prorated invoice. If proration_behavior is none, customers receive the initial period up to the billing cycle anchor for free.

Starting on the billing cycle anchor, customers are billed the full subscription amount. The billing cycle anchor and the recurring interval of its price determine a subscription’s future billing dates. For example, a monthly subscription created in Checkout on May 15 with an anchor at June 1 is billed on May 15, then always on the 1st of the month.

Create a Checkout Session with a billing cycle anchor

To configure a billing cycle anchor, set the subscription_data.billing_cycle_anchor parameter when you create a Checkout Session in subscription mode.

The anchor must be a future UNIX timestamp before the next natural subscription billing date.

Command Line
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "line_items[][price]"=
{{PRICE_ID}}
\ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d "cancel_url"="https://example.com/cancel" \ -d "subscription_data[billing_cycle_anchor]"=1611008505

If the billing cycle anchor is during a session’s active period and a customer attempts payment after it has passed, Checkout displays and charges for the full period starting with the billing cycle anchor instead of the prorated period before the billing cycle anchor.

Disable prorations

To disable prorations, set the subscription_data.proration_behavior parameter to none when creating a Checkout Session.

Command Line
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "line_items[][price]"=
{{PRICE_ID}}
\ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d "cancel_url"="https://example.com/cancel" \ -d "subscription_data[billing_cycle_anchor]"=1611008505 -d "subscription_data[proration_behavior]"="none"

Similar to a free trial, the initial period up to the billing cycle anchor is free. Unlike a trial, no 0 USD invoice is generated. Customers receive an invoice with the full subscription amount on the billing cycle anchor date.

In the Checkout Session response object, amounts attached to the line items and total details are always 0 when prorations are disabled. Additionally, the payment status of the Session is set to no_payment_required to reflect that payment is delayed to a future date.

Current limitations

  • You can’t use trials in Checkout with a billing cycle anchor.
  • One-time prices can’t be used in Checkout Sessions when proration_behavior is none.
  • You can’t apply amount_off coupons to Checkout Sessions with a default proration_behavior of create_prorations.

See also

  • Setting the subscription billing cycle date
  • Prorations
  • Create Checkout Session
Was this page helpful?
Need help? Contact Support.
Watch our developer tutorials.
Check out our product changelog.
Questions? Contact Sales.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Create a Checkout Session with a billing cycle anchor
Disable prorations
Current limitations
See also
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$