inv_). It carries the amount requested from
the customer, the payment attempt history, and the payment link sent by email.
The invoice object
The fields that matter for a subscription (camelCase):
string
Identifier, prefixed
inv_.string | null
Sequential number, set at finalization.
null on a proration invoice.string
draft, open, paid, void, uncollectible. See below.string
Why the invoice exists:
subscription_create (first period, API creation without a trial — and first paid period after a trial),
subscription_cycle (renewal), proration (mid-period quantity increase),
subscription_update, manual (outside a subscription).string | null
The subscription,
sub_….string | null
The customer,
cus_….string
Currency, lowercase.
number
The line totals.
number
Customer credit applied to this invoice.
number
total − appliedBalance: what is actually requested from the customer.number
Collected and remaining.
string | null
The period covered.
…
Payment attempt history and the reason for the last failure.
string | null
The date of each step.
string | null
The payment link sent to the customer (hosted page).
string | null
The PDF, once generated.
array
The lines:
description, quantity, unitAmount, amount, taxAmount, priceId, periodStart, periodEnd.The statuses
Listing a subscription’s invoices
status, customer_id, subscription_id, from,
to.
Read, download, close
Previewing the next invoice
200
?subscription_item_id=si_...&quantity=5, the preview simulates a quantity change:
billingReason becomes proration, a proration line for the rest of the current period is
added, and the discount is not spread (discountTotal: 0). The real amount is computed at the
time of the change — see Change the quantity.
Customer balance
A credit granted to the customer (POST /v1/customers/{id}/balance/credit) is applied
automatically to the next cycle invoice: appliedBalance goes up, amountDue goes down, and
if the credit covers everything, no payment request goes out. See
Customers.