Glossary
Stripe Test Clock
A Stripe test clock is a simulated clock in a sandbox that customers and their subscriptions can be attached to, so you can move time forward and watch renewals, trial endings, prorations and failed payments happen in minutes instead of months.
Also called: test clock, Stripe simulation, subscription simulation, frozen_time, Run simulation, advance time
14-day free trial · card required · cancel anytime
Definition
Subscriptions are hard to test because the interesting part happens later. A monthly plan renews in thirty days, an annual plan in a year, and a free trial ends when the trial ends. A test clock removes the wait. Stripe’s description is that you use test clocks “to advance simulated time in a sandbox and see how your subscriptions and invoices change.” Its own example is the one bookkeepers care about most: testing how an integration handles a payment failure at an annual renewal “without waiting a year.”
The clock starts at a frozen time you choose, which can be in the past or the future. Once it is set, Stripe says, “you can only move it forward in time.” Every customer created on the clock, and every subscription that customer has, lives on the clock’s time rather than the real date. When you advance it, Stripe runs whatever would have happened in between: invoices are drafted, finalized and paid, trials end, renewals fire, and the webhook events go out as they would in live mode.
In the Dashboard a test clock is called a simulation. You can start one from a subscription’s Run simulation banner, or create one from the Simulations page under Subscriptions and add customers to it. In the API it is the test_clock object, and its starting point is the frozen_time field.
Key points
- +A test clock only exists in a sandbox. Deleting one cannot touch live data.
- +The frozen time can start in the past or the future, but after it is set it can only move forward.
- +You can advance by any increment, up to two subscription intervals at a time. For a monthly subscription that is up to 2 months per advance.
- +With no subscriptions on the clock, Stripe allows an advance of up to two years from the initial frozen time.
- +A clock holds up to three customers, three subscriptions or schedules per customer, and ten quotes not attached to a customer.
- +The Dashboard may disable Run simulation for a customer with more than three subscriptions, or more than 25 quotes, invoices or other related objects.
- +Finish simulation deletes the clock and everything on it, including the customer and the subscription. Stripe deletes simulations automatically 30 days after they are created.
- +Test clock advancement does not collect bank debit payments such as us_bank_account. Stripe collects them after the clock advances.
The two-interval rule, and why a renewal needs two advances
You cannot jump a clock to any date you like. Stripe lets you advance it “in intervals of up to two,” where the interval is the shortest service period on the subscription, set by its recurring price. A monthly subscription can move up to two months per advance. An annual one can move up to two years. A clock with no subscriptions on it can move up to two years from its initial frozen time.
The other timing detail is the one that trips people up. A renewal does not produce a paid invoice the instant the period rolls over. Stripe’s renewal walkthrough starts a 50 USD per month subscription on January 1, advances to February 1, and finds a new 50 USD invoice in draft. By default, Stripe says, a subscription invoice stays in draft for one hour. Advance the clock one more hour, and the invoice is finalized and paid.
So a simulation that stops exactly on the renewal date shows a draft invoice and no payment. That is not a failure. It is the hour Stripe leaves for adding invoice items before finalizing, and any check you run on the books should start after it.
A worked example: a mid-cycle upgrade
Stripe’s proration walkthrough is a useful one to run before the first real upgrade reaches your books, because the numbers are easy to check by hand.
On January 1 a customer starts a basic plan at 50 USD per month, and the first invoice is created, finalized and paid. The clock is advanced to January 16, and the customer upgrades to a premium plan at 100 USD per month. In Stripe’s walkthrough the upgrade creates two pending invoice items and no invoice yet: a credit proration of 25 USD for the unused half month of basic, and a charge of 50 USD for half a month of premium.
Advance to February 1 and the subscription cycles. The draft invoice holds the negative proration, the positive proration and February’s full 100 USD, for a total of 125 USD. That is 100 minus 25 plus 50. One more hour finalizes it.
The lesson for bookkeeping is that the upgrade itself produced no invoice and no payment on January 16. The revenue effect of a mid-month change can arrive on the next renewal invoice, netted into it, and your books will only see it when that invoice is finalized.
What a bookkeeper can rehearse with one
A test clock is a developer tool by origin, but most of what it shows is accounting. Four rehearsals are worth running before the real thing happens.
A free trial. Stripe’s trial walkthrough uses a 7-day trial on a clock frozen at January 1. The subscription starts in trialing status and generates a zero-value invoice for the trial. On January 5, the customer.subscription.trial_will_end event fires, three days before the end by default. On January 8 the trial ends, and with a successful payment the subscription becomes active and its first paid invoice appears. Watching that sequence once shows you which of those invoices your books should care about, and how a $0 invoice is handled before one arrives for real.
An annual renewal that fails. Attach a card that declines, move the clock past the renewal, and see what Stripe does with the unpaid invoice under your retry settings.
A mid-cycle plan change, as in the example above, to see where prorations land.
A customer balance or a one-off invoice item, both of which Stripe lists as things a simulation can test, to see how they change the next invoice.
Limits that change what you can test
A few limits decide whether a test clock can show you what you want.
A simulation you build from the Simulations page takes new customers only. Stripe’s note is that “you can’t choose existing customers during simulations,” and each simulation takes up to three. For an existing sandbox customer, the Dashboard route is Run simulation on one of their subscriptions, and the API lets you create a test clock for an existing customer, with conditions: the customer must be under the subscription and quote limits, the initial frozen time cannot be in the past, and the account must have no Billing Automations configured. Once attached, the customer cannot be removed from the clock, and deleting the clock deletes the customer.
Objects on a clock also hide from ordinary lists. Stripe says API list methods such as List Invoices do not return objects generated by test clocks unless you add a query clause, for example a customer, subscription or test clock ID. A report built on a plain invoice list will look as if the simulation produced nothing.
Bank debits are the biggest gap. Advancing a clock does not collect us_bank_account payments. Stripe collects them after the clock has advanced, so a subscription paid by bank debit can remain active right after the advance, with no payment attempt yet. To see the failure play out, Stripe’s advice is to listen for invoice.payment_failed and customer.subscription.deleted rather than reading the status straight after the advance.
Finally, the sandbox itself has limits. Stripe says payments in a sandbox are not processed by card networks or payment providers, and IC+ pricing cannot be tested there, so fee amounts in a simulation are not a forecast of the fees on your real statement.
Frequently asked questions
What is a test clock in Stripe?
It is a simulated clock in a Stripe sandbox. Customers created on it, and their subscriptions, follow the clock’s time instead of the real date. When you advance the clock, Stripe runs the renewals, trial endings and invoices that would have happened in between, so you can see months of billing in minutes.
How far can I advance a Stripe test clock at once?
Up to two subscription intervals per advance, measured by the shortest service period on the subscription. A monthly subscription can move up to 2 months at a time. A clock with no subscriptions on it can move up to two years from its initial frozen time. The clock can never move backwards.
Why is the renewal invoice still in draft after I advanced the clock?
Because Stripe leaves a subscription invoice in draft for about one hour by default before it finalizes it. Advance the clock one more hour and the invoice is finalized and, with a working payment method, paid.
Does finishing a simulation delete anything in live mode?
No. Test clocks exist only in sandboxes. Finishing a simulation deletes the clock and the objects on it, including its customers and their subscriptions, and Stripe states that it does not affect live mode. Stripe also deletes simulations automatically 30 days after they are created.
Can I put an existing customer on a test clock?
Not when you build a simulation from the Simulations page, which only takes new customers. You can start Run simulation from an existing subscription, and through the API you can create a test clock for an existing sandbox customer if the customer is within the limits, the frozen time is not in the past, and the account has no Billing Automations configured. That customer cannot be removed from the clock afterwards.
Why did my bank debit subscription not fail when I advanced the clock?
Test clock advancement does not collect bank debit payments such as us_bank_account. Stripe collects them after the clock has advanced, so the subscription can still show as active right after the advance. Listen for invoice.payment_failed and customer.subscription.deleted to see the outcome.
What customers say about running Stripe through Acodei

“If you're testing out all the different Stripe/QuickBooks integration apps right now, let me save you some time. This one is the best one by far.”
“Works well and is really helpful for massive transactions. The support is really fast and helpful. 100% recommended.”
Related reading
- Stripe Trial Settings
- Stripe Proration
- Stripe Subscription Status
- Stripe Subscription Schedule
- Stripe $0 and negative invoices in QuickBooks
More glossary terms
- Undeposited Funds
- Stripe Balance Transaction
- Available vs Pending Balance
- Stripe Dispute
- Stripe Dispute Evidence
- Stripe Fee
- Stripe Balance Adjustment
- QuickBooks Credit Memo
- Stripe Tax
- QuickBooks Tax Code
- Stripe Reserve
- Stripe Tax Rate
- Stripe Fee Credit
- Stripe Credit Note
- QuickBooks Product/Service Item
- Stripe Payout
- QuickBooks Sales Receipt
- QuickBooks Bank Deposit
- QuickBooks Transfer
- Stripe Authorization Hold
- QuickBooks Refund Receipt
- QuickBooks Payment
- QuickBooks Expense
- QuickBooks Journal Entry
- Stripe Financial Account
- Holding Account
- Accounts Receivable
- Bank Feed
- Deferred Revenue
- Stripe PaymentIntent
- Stripe Checkout Session
- Stripe SetupIntent
- Stripe PaymentMethod
- Stripe Charge
- Stripe Refund
- QuickBooks Invoice
- QuickBooks Class Tracking
- QuickBooks Location Tracking
- QuickBooks Project
- QuickBooks Closing Date
- Stripe Invoice Line Item
- Stripe Proration
- Stripe Invoice Status
- Stripe Shipping Rate
- Stripe Transfer
- Stripe Mandate
- Stripe on_behalf_of
- Stripe Invoice Item
- QuickBooks Estimate
- Stripe Invoice Payment
- Stripe Invoice Payment Settings
- Stripe Billing Meter
- Stripe Invoice Template
- Stripe Price
- Stripe Subscription Schedule
- Stripe Subscription Item
- QuickBooks Recurring Transaction
- QuickBooks Sub-Customer
- QuickBooks Audit Log
- QuickBooks Bank Rule
- Stripe Subscription Status
- Stripe Mixed Interval Subscription
- Stripe Trial Settings
- QuickBooks Payment Terms
- Stripe Pending Update
- QuickBooks Tags
- QuickBooks Credit Card Credit
- QuickBooks Vendor Credit
- QuickBooks Bill
- QuickBooks Delayed Charge
- Stripe Billing Mode
- QuickBooks Billable Expense
- Stripe Customer Cash Balance
- QuickBooks Purchase Order
- QuickBooks Opening Balance
- QuickBooks Account Type
- QuickBooks Sales Tax Center
- Stripe Webhook
- Stripe Metadata
- Stripe Outbound Payment
- Stripe Received Credit
- Stripe Outbound Transfer
- Stripe Inbound Transfer
- Stripe Received Debit
- Stripe Payout Method
- Stripe Financial Account Transaction
- Stripe Financial Address
- Stripe Application Fee
- Stripe Connected Account
- Stripe Destination Charge
- Stripe Separate Charges and Transfers
- Stripe Direct Charge
- Stripe Payment Method Configuration
- Stripe Dynamic Payment Methods
- Stripe Payment Method Rules
- QuickBooks Bundle
- Stripe Account Capability
- Stripe Merchant of Record
- Stripe Data Pipeline
- Settlement Currency
- Hosted Invoice Page
- Stripe Customer
- Stripe Product
- QuickBooks Home Currency
- QuickBooks Exchange Gain or Loss
- QuickBooks Trial Balance
- QuickBooks General Ledger Report
- QuickBooks Retained Earnings
- QuickBooks Profit and Loss Report
- QuickBooks Balance Sheet Report
- QuickBooks Account Register
- QuickBooks Reclassify Transactions
- QuickBooks A/R Aging Report
- QuickBooks Sales Tax Liability Report
- QuickBooks Sales Tax Payable
- Stripe Tax Transaction
- Stripe Tax Location Report
- Stripe Tax Summarized Export
- Stripe Tax Itemized Export
- Stripe Product Tax Code
- QuickBooks Vendor
- Economic Nexus
- Reverse Charge
- Stripe Statement Descriptor
- Stripe Taxability Reason
- Stripe Tax Filing Currency
- Stripe Tax Cross-Border Goods Option
- Stripe Tax Threshold Monitoring
- QuickBooks Uncategorized Income
- QuickBooks Sales by Product/Service Report
- QuickBooks Sales by Customer Report
- QuickBooks Group Tax Rate
- Form 1099-NEC
- SEPA Direct Debit
- Bacs Direct Debit
- Canadian Pre-Authorized Debit (PAD)
- Australia BECS Direct Debit
- Stripe PayTo
- QuickBooks Customer Display Name
- Backup Withholding
- QuickBooks Multicurrency
- Form 1042-S
- Form W-8BEN
- Form W-9
- Form 8233
- Form 1042
- Form 1099-K
- Form W-8BEN-E
- Stripe Tax Behavior
- Stripe Customer Tax ID
- Form 945
- ITIN (Individual Taxpayer Identification Number)
- Form 1099-MISC
- Stripe Customer Tax Exempt Status
- EFTPS (Electronic Federal Tax Payment System)
- Tax Representative (Fiscal Representative)
- Nil Return
- Sales Tax Exemption Certificate
- EU One Stop Shop (OSS)
- Place of Supply
- Simplified Tax Invoice
- Input VAT (Input Tax)
- Streamlined Sales Tax (SST)
- Fixed Establishment (VAT)
- VIES VAT Number Validation
- E-Invoicing Mandate
- Tax Point (Time of Supply)
- Sales Tax Holiday
- Digital Services Tax
- VAT Invoice (Full Tax Invoice)
- Output VAT (Output Tax)
- VAT Bad Debt Relief
- Sales Tax Sourcing
- Gross Receipts Tax
- VAT Cash Accounting Scheme
- Reduced VAT Rate
- VAT Flat Rate Scheme (UK)
- VAT Annual Accounting Scheme (UK)
- EU VAT SME Scheme
- Making Tax Digital for VAT
- VAT Payments on Account (UK)
- Stripe Tax Registration
- Non-Established Taxable Person (NETP)
- VAT Group Registration (UK)
- Zero-Rated vs Exempt Supply
- Electronically Supplied Services (ESS)
- Zero-Decimal Currency
- UK VAT Registration Threshold
- QuickBooks Deposit Detail Report
- Payment Settlement Entity (PSE)
Ready to try Acodei?
Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.
14-day free trial · card required · cancel anytime