Skip to content

Customize Invoices Fresh

Control branding, numbering, custom fields, languages, PDF size, and more on your Stripe invoices.

Branding

Configure in Dashboard → Settings → Branding.

SettingApplies to
IconEmails, Checkout, Customer portal, Hosted Invoice Page, Invoice PDFs
LogoCheckout, Invoice PDFs (overrides icon in supported locations)
Brand colorEmails, Customer portal, Hosted Invoice Page, Invoice PDFs
Accent colorEmails (background), Checkout, Customer portal, Hosted Invoice Page

Assets must be JPG or PNG, less than 512 KB, and at least 128×128 pixels.

Invoice numbering

Stripe auto-generates invoice numbers with a prefix and sequential suffix (e.g., MYSHOP-1203).

Two schemes available:

SchemeHow it worksDefault for
Customer-levelUnique prefix per customer, sequential per customerMost countries
Account-levelSame prefix for all customers, sequential across accountEU, UK (required by law)

Stripe selects the default based on your account country. You can override in Dashboard → Settings → Billing → Invoices.

Switching schemes or updating prefixes only affects future invoices — existing invoices are not changed.

Customer-level prefix

Set a 3–12 character prefix per customer. Must be unique across all customers (including inactive ones).

bash
curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}} \
  -u "sk_test_YOUR_KEY:" \
  -d "invoice_prefix=TYPGRA"

Result: TYPGRA-0001, TYPGRA-0002, etc.

Account-level prefix

Set in Dashboard → Settings → Billing → Invoices → Account prefix. 3–12 characters, cannot match any customer prefix.

Connect account prefixes

When creating invoices with on_behalf_of, the connected account is the merchant of record and maintains its own invoice sequence. Each connected account's sequence starts at 0001.

Starting invoice number

To continue from an existing system (e.g., migrating at invoice 123, resume at 124):

  • Customer-level: set next_invoice_sequence on the Customer object
  • Account-level: set in Dashboard → Settings → Billing → Invoices → Next invoice sequence

Maximum allowed invoice number: 1,000,000,000.

Invoice fields

Memo

A notes field that appears in invoice PDFs, emails, and the Hosted Invoice Page. Commonly used to thank customers or provide context.

Set a default in Dashboard → Settings → Billing → Invoices, or on individual invoices via the description parameter.

Optional text block in invoice PDFs. Used for legally required information (e.g., UK Companies House registration number).

Set a default in Dashboard → Settings → Billing → Invoices. Cannot be updated after an invoice is finalized.

Custom fields

Up to 4 key-value pairs displayed in the invoice header. Set per invoice or inherited from the customer.

bash
curl https://api.stripe.com/v1/invoices \
  -u "sk_test_YOUR_KEY:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "custom_fields[0][name]=PO number" \
  -d "custom_fields[0][value]=12345" \
  -d "custom_fields[1][name]=VAT" \
  -d "custom_fields[1][value]=GB123456789"

Common uses: PO numbers, contractor numbers, VAT registration numbers, tax compliance fields.

Custom fields set at the customer level apply to all future draft invoices for that customer. They can be modified while the invoice is a draft but are locked after finalization.

Tax IDs

Display tax IDs (VAT numbers, EIN, etc.) on invoice PDFs and email receipts.

Manage in Dashboard → Settings → Billing → Invoices → Invoice tax information.

  • Set one or more as defaults to include on all invoices automatically
  • Select different IDs for individual invoices
  • Tax IDs cannot be changed after creation — delete and recreate to update

PDF page size

Two options: a4 (8.27×11.69 inches) or letter (8.5×11 inches).

Default: A4 for Japanese locale customers, Letter for all others. Set auto to restore locale-based defaults.

bash
curl https://api.stripe.com/v1/invoices \
  -u "sk_test_YOUR_KEY:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "rendering[pdf][page_size]=a4"

Applies to both new invoices and finalized invoice PDFs.

Group line items

Categorize invoice line items under named groups to help customers understand their bill. Groups appear in invoice PDFs, the Hosted Invoice Page, and invoice emails.

You can also hide groups — only the group subtotal is visible to the customer.

Default payment terms

Configure in Dashboard → Settings → Billing → Invoices → Default payment terms:

  • Due date (number of days after sending)
  • Whether to include a payment page link in the invoice email
  • Accepted payment methods

Customer preferred languages

Stripe localizes invoice emails, invoice PDFs, receipt emails, receipt PDFs, and credit note PDFs to the customer's preferred language.

Set via API:

bash
curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}} \
  -u "sk_test_YOUR_KEY:" \
  -d "preferred_locales[0]=fr"

preferred_locales is an array — list multiple in preference order.

Supported languages

Bulgarian, Chinese (Hong Kong), Chinese (Simplified), Chinese (Taiwan), Croatian, Czech, Danish, Dutch, English (United Kingdom), English (United States), Estonian, Filipino, Finnish, French (Canada), French (France), German, Greek, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Malay (Malaysia), Malayalam, Maltese, Norwegian, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian, Russian, Slovak, Slovenian, Spanish (Latin America), Spanish (Spain), Swedish, Thai, Turkish, Vietnamese.

42 languages supported total.

Billing and shipping addresses

Billing address

Stripe uses the customer's address field as the billing address on invoice PDFs. If not set, the shipping address is used as a fallback.

Update via Dashboard on the Customer details page or via the API:

bash
curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}} \
  -u "sk_test_YOUR_KEY:" \
  -d "address[line1]=123 Main St" \
  -d "address[city]=San Francisco" \
  -d "address[state]=CA" \
  -d "address[postal_code]=94111" \
  -d "address[country]=US"

Shipping address

Set shipping_details on the invoice to render shipping details on the PDF:

bash
curl https://api.stripe.com/v1/invoices \
  -u "sk_test_YOUR_KEY:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "shipping_details[name]=Jenny Rosen" \
  -d "shipping_details[address][line1]=456 Elm St" \
  -d "shipping_details[address][city]=Portland" \
  -d "shipping_details[address][state]=OR" \
  -d "shipping_details[address][postal_code]=97201" \
  -d "shipping_details[address][country]=US"

If shipping_details is not set on the invoice, Stripe falls back to the shipping address on the Customer object.

Public support information

Invoices include public information from Dashboard → Settings → Public business information:

  • Support email address
  • Business website
  • Support phone number (optional)
  • Business address

These appear in invoice PDFs and emails.

Invoice templates

Create reusable templates in Dashboard → Settings → Billing → Invoice templates to apply consistent memo, footer, custom fields, and other settings across groups of customers.

Templates are applied when creating invoices — not retroactively applied to existing invoices.

Stripe API Reference - Self-contained docs reference, refreshed 2026-05-18