## TL;DR

create_prorations generates line items for the unused old plan and the used new plan, charging or crediting the difference immediately; none makes the change with no money movement until the next renewal. Use create_prorations when the price difference should settle now, none when you want a clean switch at the next cycle. The default is create_prorations, so set it explicitly.

## Error

```text
```text
proration_behavior: create_prorations  # default
proration_behavior: none
```
```

## Steps

1. Decide the billing policy: immediate settlement vs next-cycle effect.
   Expected: The product decision is made before the API call.
2. For immediate settlement, update the subscription with proration_behavior create_prorations (or omit it, the default).
   Expected: Stripe creates proration line items and an invoice or credit.
3. For a clean switch, pass proration_behavior none on the update.
   Expected: The new price takes effect with no mid-cycle charge.
4. Preview either path first with the upcoming-invoice endpoint before committing.
   Expected: You and the customer see the exact money impact in advance.
5. Show the proration breakdown on the customer-facing invoice or receipt.
   Expected: Fewer support tickets about confusing charges.

## When to use

- A customer upgrades or changes plan mid-cycle
- You need to choose between immediate charge and deferred change
- Proration invoices confuse customers and need previewing

## When not to use

- You are downgrading at period end (use billing cycle anchors instead)
- The change is quantity-only on a metered plan (proration math differs)
- You want no proration lines at all on the invoice (none still changes the plan; it just moves no money)

## Compatibility

Stripe Billing; proration_behavior on subscription update since API 2018-08-23. Upcoming invoice preview endpoint available on all plans.

## Variant phrasings

### ### Stripe proration none vs create_prorations

### ### disable proration on subscription update

### ### mid-cycle upgrade charge immediately Stripe

## Root cause

Subscriptions bill in whole periods, so a mid-cycle change splits one paid period across two prices. Proration is the accounting for that split: credit the unused old-plan time, charge the used new-plan time. none skips the accounting entirely, which is simpler but less fair.

## Edge cases

- Proration line items use second-level precision and can produce odd-looking cent amounts
- Switching billing interval (monthly to yearly) always prorates in complex ways; preview first
- Coupons apply to proration invoices too, which can surprise finance

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_Zj0GpajkOtmfzS2HwIXCsA
