# Stripe: invoice_upcoming_none

> Stripe returns invoice_upcoming_none when a customer with no active subscription or pending items has no invoice to preview. Pass the items to preview.

Canonical: https://app369.com/fix/stripe-invoice-upcoming-none/
Last updated: 2026-11-09

invoice_upcoming_none is the Stripe error for an invoice preview on a customer who has nothing to bill next. Only customers with active subscriptions or pending invoice items have an upcoming invoice.

**Short answer**

To show a new customer what they will pay, call the preview with subscription_details.items along with the customer. For existing customers, check that the customer ID is the one that holds the subscription, and handle this code as “no upcoming invoice” in the billing screen.

Rather not fix it yourself? [**Stripe Billing Fix and Setup**](https://app369.com/fixed-price/stripe-billing-setup/) handles it at a fixed price, agreed before work starts.

## **Why there is nothing to preview, and the fix**

1. 01 ### **The customer has no active subscription**
  > “Only customers with active subscriptions or pending invoice items have invoices that can be previewed.” [**Stripe, Error codes (invoice_upcoming_none)**](https://docs.stripe.com/error-codes) A canceled subscription, or a customer who never subscribed, has no next invoice. Show a plain message on the billing page instead of an error.
2. 02 ### **The app previews a plan before signup**
  > “If not provided, but a subscription_details.items is provided, you will preview creating a subscription with those items.” [**Stripe, Create a preview invoice (subscription)**](https://docs.stripe.com/api/invoices/create_preview) A checkout page that previews price, tax or proration for a new plan needs the items in the request.```
const preview = await stripe.invoices.createPreview({
  customer: customerId,
  subscription_details: { items: [{ price: priceId }] },
});
```
3. 03 ### **The wrong customer ID is used** Apps that create a Stripe customer on every signup or checkout end up with duplicates for one email. Store the customer ID that owns the subscription and use that one.
4. 04 ### **Old code calls the upcoming endpoint** Also check: newer API versions replace the upcoming invoice call with createPreview. Upgrade the call when you upgrade the API version, and test both cases: with and without a subscription.

Checked against the vendor’s docs on November 9, 2026: [Stripe docs: Error codes](https://docs.stripe.com/error-codes); [Stripe API: Create a preview invoice](https://docs.stripe.com/api/invoices/create_preview).

## **Rather hand it over?**

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

- [$950**Stripe Billing Fix and Setup**Subscriptions, webhooks, customer portal and failed payments set up or fixed, tested in Stripe test mode.**See scope and start**](https://app369.com/fixed-price/stripe-billing-setup/)
- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)
- [from $450**AI-Built App Rescue**A Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.****No issues worth fixing, no charge.**** If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.**See scope and start**](https://app369.com/fixed-price/ai-app-rescue/)

[**All 127 Fiverr reviews**](https://app369.com/reviews/)

Related: [**Stripe canceled subscription still has access**](https://app369.com/fix/stripe-subscription-canceled-access-wrong/) · [**Stripe subscription past_due**](https://app369.com/fix/stripe-subscription-past-due/) · [**Stripe coupon_expired**](https://app369.com/fix/stripe-coupon-expired/) · [**Stripe invoice_not_editable**](https://app369.com/fix/stripe-invoice-not-editable/)

Questions

## **More on this error**

<details>

<summary>**Is a preview invoice a real invoice? **+</summary>

No. It isn’t created, can’t be paid or edited, and doesn’t show in invoice lists.

</details>

<details>

<summary>**Can a preview include a coupon? **+</summary>

Yes. Pass discounts in the request, or leave it out to inherit the discount from the subscription or customer.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

</details>

A different error?

## **Describe it and get a written quote**

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)