Invoicing Fresh
Create and send professional invoices, automate billing, and collect payment via email or embedded payment forms.
Section overview
| Page | Description |
|---|---|
| Invoicing API | Create products, prices, customers, invoices, and invoice items via the API |
| Customize Invoices | Branding, numbering, custom fields, languages, PDF page size |
How invoicing works
Stripe Invoicing supports two main flows:
- Send invoice — Stripe emails the invoice to your customer with a payment link. Customer pays via the Hosted Invoice Page.
- Charge automatically — Stripe immediately charges the customer's default payment method when the invoice finalizes.
Invoice lifecycle
Draft → Finalized → Sent → Paid
↘ Past Due → Voided / Uncollectible- Draft — editable, not yet a legal document
- Finalized — legal document; monetary values and
collection_methodare locked - Sent — emailed to customer, auto-finalizes on send
- Paid — payment received
- Past Due —
days_until_dueexceeded with no payment - Voided — created in error; creates a $0 credit note
- Uncollectible — written off; stays in reporting
Core objects
| Object | Purpose |
|---|---|
| Product | What you're selling |
| Price | How much and in what currency |
| Customer | Who you're billing |
| Invoice | The bill sent to the customer |
| InvoiceItem | Line items on an invoice (max 250) |
| PaymentIntent | Created when invoice finalizes |
Key parameters
| Parameter | Values | Notes |
|---|---|---|
collection_method | send_invoice, charge_automatically | Determines billing flow |
days_until_due | Integer (days) | Required for send_invoice; sets past-due threshold |
auto_advance | true, false | false keeps invoice in draft for editing |
Webhook events
| Event | When it fires |
|---|---|
invoice.created | Draft invoice created |
invoice.finalized | Invoice finalized (locked) |
invoice.sent | Invoice emailed to customer |
invoice.paid | Payment received (including out-of-band) |
invoice.payment_failed | Payment attempt failed |
invoice.payment_succeeded | Payment succeeded (not fired for out-of-band) |
invoice.marked_uncollectible | Invoice written off |
invoice.voided | Invoice voided |
One-off vs subscription invoices
- One-off invoices — Created manually or via API. No subscription required.
- Subscription invoices — Auto-generated by Stripe at each billing cycle. You cannot manually create subscription invoices; they are triggered by subscription events.
Test cards
| Card number | Behavior |
|---|---|
4242 4242 4242 4242 | Succeeds immediately |
4000 0000 0000 0002 | Declined |
4000 0025 0000 3155 | Requires 3D Secure |