Customer timeline Load scenario S01 · Flat monthly subscription S02 · Annual plan S03 · Per-seat x5 S04 · 14-day trial moves the anchor S05 · Upgrade day 17 of 31, prorations on next invoice S06 · Downgrade day 17 of 31 S07 · February: mid-month upgrade is exactly half S08 · Leap-year February S09 · Add 3 seats mid-cycle S10 · SAVE20 once S11 · SAVE20 applied twice right after subscribing discounts the next invoice once S12 · FOREVER25 on Pro S13 · $10 off for 3 months S14 · amount_off larger than invoice is capped, not carried S15 · 10% exclusive tax S16 · 20% inclusive VAT S17 · Coupon then exclusive tax S18 · JPY zero-decimal upgrade S19 · EUR locale display S20 · Upgrade with always_invoice S21 · Monthly to annual resets anchor, invoices now S22 · Cancel at period end: no further invoices S23 · Graduated metered usage 12,346 calls S26 · Price change during a trial does not prorate S27 · Downgrade with always_invoice creates a credit balance S28 · Upgrade under a forever 25% coupon: prorations are pre-discounted, not re-discounted S30 · Seat increase after a used-up 'once' coupon: the credit refunds the discounted price actually paid S31 · Changing the price without a quantity resets 5 seats to quantity 1 (Stripe item semantics) S32 · Changing the price with quantity 5 keeps all 5 seats S33 · Two seat changes in one period after a used-up 'once' coupon: each credit refunds the rate it was charged at S34 · Coupon applied mid-period, then an upgrade: January was paid in full, so its credit is full price S35 · A period made free by an amount_off coupon refunds nothing when it is changed S36 · Seat increase under a repeating amount_off coupon: both proration lines are net of the $10 S37 · A once coupon applied mid-period is used up by the proration it prices S38 · Changing to the same quantity or the same price is a no-op S39 · Cancel at period end bills pending prorations on a final invoice, with negative tax S40 · always_invoice change at the exact renewal instant: separate invoices, the credit pays the renewal S41 · Switching to a yearly price during a trial issues a new $0 trial invoice S42 · Proration charge under a percent coupon is rounded in two steps S43 · A no-op change with always_invoice still invoices earlier pending prorations now S44 · proration_behavior none: no lines now; a later proration credits the item as it is then, not what was paid S45 · Ending a trial early bills the first period now, resets the anchor, and the once coupon applies to it S46 · Immediate cancel: no final invoice and pending prorations are dropped; a new subscription starts clean S47 · Undoing a scheduled cancel keeps renewing S48 · Interval change with proration_behavior none: invoices the new interval now without a credit S49 · After a none change, an always_invoice change credits the current quantity at the coupon rate S50 · A repeating coupon lasts its months in calendar time, not a count of invoices (yearly -> monthly) S51 · Reset the billing anchor mid-period (billing_cycle_anchor=now): credit unused time, bill a full new period today S52 · Anchor reset with proration none still sweeps earlier pending prorations into the invoice, without a credit S53 · Removing a forever coupon: later invoices are full price, but the next credit refunds what was paid (discounted) S54 · Two interval changes under an amount-off coupon: the second credit refunds the discounted yearly charge S55 · A half-cent tie that is not a tie: Stripe prorates the unit price to 12 decimals before multiplying by seats (found by fuzzing) S56 · The same 12-decimal unit proration on a single seat: 7900 x 19/30 x 75% credits 3752, not 3753 S57 · A coupon applied at the exact renewal instant discounts the next invoice, not that renewal (found by fuzzing) S58 · Flexible: two interval changes keep the anchor and credit each original debit (no invoice until the monthly renewal) S59 · Flexible: a metered subscription gets no $0 invoice at creation S60 · Flexible: a price change during a trial issues a new $0 trial invoice right away S61 · Flexible: billing_cycle_anchor=now nets the overlap and debits only the time past the old period end S62 · Flexible: credits round gross and discount apart; an anchor reset with none debits nothing, so nothing is credited later S63 · Flexible: the credit's gross and discount are each rounded from the 12-decimal prorated unit price S64 · Flexible: after a none change, the next proration credits what was originally debited, not the item as it is S65 · Flexible: always_invoice after a none change credits the original 2-seat debit at its coupon S66 · Flexible: a proration debit is credited from its rounded gross and rounded discount, not its net (found by fuzzing) S67 · Cancel now with a refund (prorate + invoice_now): the final invoice carries pending prorations and the unused-time credit S68 · Flexible: cancelling a taxed yearly plan with a refund creates a credit balance that pays the next subscription S69 · An amount due below Stripe's $0.50 minimum is not charged; it is carried onto the next invoice (found by fuzzing) S70 · Flexible: after a none yearly -> monthly change, a later change credits the yearly debit only to the monthly period end (found by fuzzing) S71 · cancel_at inside the current period: a final invoice on that date credits the unused time at the discounted rate S72 · Flexible: cancel_at in a later period cuts the last renewal short, priced as gross minus discount each rounded S73 · cancel_at sweeps pending prorations onto the final invoice with the credit for the seats as they are S74 · Bill on a fixed day: billing_cycle_anchor at creation prorates the time until the first billing date over one interval from the start S75 · A once coupon is used up by the first-billing-date proration; the first full invoice is full price S76 · Flexible: an upgrade before the first billing date credits the stub debit over its own days S77 · First-billing-date stub is prorated over one interval counted from the start (05-31 -> 06-30), not the period ending on the anchor (found by fuzzing) S78 · Flexible: a period made free by an amount_off coupon is still credited, as a $0 line (found by fuzzing) S79 · A percent coupon on a proration charge comes off the rounded gross: 28542 x 25% = 7135.5 -> 7136 (found by fuzzing) S80 · Flexible: pause mid-period, resume a month later; the unused-time credit rides on the resumption invoice and the cycle restarts S81 · Flexible: resume with billing_cycle_anchor unchanged; nothing is invoiced at resume, the rest of the cycle is prorated onto the next renewal S82 · Flexible: pause with invoicing_behavior invoice; the credit is its own invoice and becomes customer balance S83 · Flexible: pause without crediting unused time (bill_for.unused_time_from none) S84 · Flexible: pausing a discounted, multi-seat subscription mid-day credits gross and discount rounded apart S85 · Flexible: a first-billing-date stub divides by the anchor-aligned period ending on the anchor, not one interval from the start (found by fuzzing) S86 · Flexible: after an unprorated price change, resuming in the same period charges nothing for the rest of it (found by fuzzing) S87 · Flexible: after an unprorated change, resuming in a later period charges the rest of that period as usual S88 · Flexible: the charge for resuming with an unchanged anchor takes a percent discount off the unrounded gross (found by fuzzing) S89 · Flexible: a proration charge takes its percent discount off the unrounded gross (found by fuzzing) S90 · Inclusive tax at an exact tie rounds half away from zero: 387 incl. 20% VAT is 64.5 -> 65 S91 · Flexible: after a pause that credited nothing, resuming restarts the cycle but bills only the time the old debit does not cover (found by fuzzing) S92 · Flexible: a pause that credited nothing, resumed in the same period with the anchor unchanged, charges nothing S93 · Flexible: inclusive tax is rounded at the invoice level from 12-decimal taxable amounts, 13892 where round(83355/6) = 13893 (found by fuzzing) S94 · Flexible: exclusive tax is one computation on the invoice total, not per line (found by fuzzing) S95 · A renewal claims a once coupon when it is drafted, so a plan change at that same instant is not discounted by it (found by fuzzing) S96 · Trial ends without a card, end behavior cancel: the subscription is canceled at trial end and nothing is invoiced S97 · Classic: trial ends without a card into a pause; resuming with anchor unchanged prorates the rest of the cycle onto the next renewal S98 · Flexible: trial ends without a card into a pause; resuming with anchor now invoices a full new period at once and moves the anchor S99 · Classic: resuming a trial pause two cycles later charges only the part of the current cycle that is left S100 · Resuming charges the rest of the cycle with a once coupon, which uses it up: the next renewal is not discounted (found by fuzzing) S101 · Flexible: a resume charge an amount_off coupon makes free is still a $0 debit and uses up the once coupon (found by fuzzing) S102 · Flexible: switching to yearly with no proration before the first billing date renews the yearly price on that date (found by fuzzing) S103 · A customer balance credit is applied to the next invoice S104 · Balance debits and credits net out; a credit larger than an invoice carries to the next one S105 · An invoice created within the hour after a renewal is finalized before the renewal draft, which then takes its carried cent (found by fuzzing) S106 · A first-billing-date stub an amount_off coupon makes free is still invoiced at $0 and uses up the once coupon (found by fuzzing) S107 · Flexible: resuming with an unchanged month-end anchor prorates that period in monthly segments from its start day (found by fuzzing) S108 · Flexible: an anchor reset's remaining-time charge uses up a once coupon, so the next renewal is full price (found by fuzzing) S109 · Inclusive tax at an exact half-cent tie with a credit line: each line's tax is truncated at 12 decimals, so 849.5 rounds to 850 (found by fuzzing) S110 · Inclusive tax at an exact half-cent tie on a negative invoice: lines are rounded down at 12 decimals, so -12150.5 rounds to -12151 (found by fuzzing) S111 · Canceling with a final invoice at the renewal instant finalizes the renewal draft first: it is paid in full and the final credit stays on the customer balance (found by fuzzing) S112 · A first-billing-date stub a once coupon made free is credited at what was paid, $0, not at full price (found by fuzzing) S113 · Flexible: a month-end first billing date prorates its stub in monthly segments from the shorter month (found by fuzzing) S114 · Flexible: pausing with always_invoice when nothing is left to credit opens no invoice (found by fuzzing) S115 · Flexible: resuming with an unchanged anchor exactly on a billing date charges the whole period with the next renewal (Stripe probe) S116 · Flexible: after an anchor reset with proration none, an unchanged resume in the new period charges nothing (found by fuzzing) S117 · Flexible: a once coupon applied while paused prices the resume charge and is used up by it (Stripe probe) S118 · Metered usage inside the second tier: no line for the untouched third tier (Stripe probe) S119 · Metered with no usage: one 0-unit tier-1 line (Stripe probe) S120 · Metered to licensed on day 20: no unused-time line, the usage is dropped (Stripe probe) S121 · Licensed to metered on day 20: credit only, then usage at renewal (Stripe probe) S122 · Metered cancel_now with always_invoice invoices the usage so far (Stripe probe) S123 · Flexible: metered cancel_now with always_invoice invoices the usage so far (Stripe probe) S124 · Metered cancel at period end bills the period's usage on the final invoice (Stripe probe) S125 · Volume tiers: 5000 units all at the second tier rate (Stripe probe) S126 · Volume tiers: 12346 units all at the third tier rate, half a cent each (Stripe probe) S127 · Volume tiers with no usage: one 0-unit tier-1 line (Stripe probe) S128 · Tier flat fees: no usage still pays the first tier's $5 (Stripe probe) S129 · Tier flat fees on all three tiers at 12346 units (Stripe probe) S130 · Metered cancel at period end with no usage in the last period: a $0 final invoice (fuzz seed 9002) 1 Date Event Subscribe Start trial Change price Change quantity Apply coupon Report usage Cancel at period end Resume (undo cancel, or unpause) End trial now Cancel immediately Reset billing anchor to now Remove coupon Cancel on a date Pause (flexible mode) Adjust customer balance (minor units, negative = credit) Advance clock to price — starter_m — $29.00/mo pro_m — $79.00/mo pro_y — $290.00/yr team_seat_m — $12.00/mo starter_m_eur — €29.00/mo basic_m_jpy — ¥3,000/mo premium_m_jpy — ¥8,000/mo api_metered_m — metered, tiered api_volume_m — metered, tiered api_flat_m — metered, tiered quantity coupon — SAVE20 — 20% off once FOREVER25 — 25% off forever TENOFF3 — $10.00 off for 3 months FIFTYOFF — $50.00 off once tax rate — tax10_ex — 10% exclusive vat20_in — 20% inclusive billing mode — classic flexible billing cycle anchor proration behavior — create_prorations always_invoice none ✕ 2 Date Event Subscribe Start trial Change price Change quantity Apply coupon Report usage Cancel at period end Resume (undo cancel, or unpause) End trial now Cancel immediately Reset billing anchor to now Remove coupon Cancel on a date Pause (flexible mode) Adjust customer balance (minor units, negative = credit) Advance clock to price — starter_m — $29.00/mo pro_m — $79.00/mo pro_y — $290.00/yr team_seat_m — $12.00/mo starter_m_eur — €29.00/mo basic_m_jpy — ¥3,000/mo premium_m_jpy — ¥8,000/mo api_metered_m — metered, tiered api_volume_m — metered, tiered api_flat_m — metered, tiered quantity proration behavior — create_prorations always_invoice none ✕ 3 Date Event Subscribe Start trial Change price Change quantity Apply coupon Report usage Cancel at period end Resume (undo cancel, or unpause) End trial now Cancel immediately Reset billing anchor to now Remove coupon Cancel on a date Pause (flexible mode) Adjust customer balance (minor units, negative = credit) Advance clock to ✕ + Add event Copy share link Verify in Stripe