Customize invoices

Customize invoices

Stripe Billing provides a suite of features that allow you to customize the content and branding of invoices to match the tax, legal, branding, and compliance needs of your business.

You can customize an invoice’s content and language to meet the needs of your business:

Custom fields

Use custom fields to enhance your invoice PDF documents and help you comply with your business practice and tax reporting obligations. Custom fields allow you to provide up to four key-value pairs, to be rendered in the invoice header.

Custom fields

Your custom fields will render in the top-right of your invoice and receipt PDFs.

Common example use cases of custom fields are:

  • Purchase Order (PO) numbers
  • Contractor numbers
  • Tax compliance

You can set up to four custom field key-value pairs in the Invoice editor or with the Invoice API.

Custom field inheritance

Custom fields inheritance

You can set custom invoice fields on both the Customer and the Invoice.

Any custom fields set at the customer level apply to all draft invoices generated for that customer. You can modify these inherited custom fields while the invoice is still a draft.

You can only set Customer custom fields via the API. You can set custom fields for any invoice in both the API and the Dashboard editor.

You can’t update the custom fields after an invoice has been finalized.

Memo field

The memo is included in invoice PDFs, invoice emails, and the Hosted Invoice Page.

Memos are commonly used as a notes section, thanking the invoiced customer for their business, or giving more context around the invoice such as a note from the salesperson who might have talked to the customer.

Memo field inheritance

Memo inheritance

You can set the memo field for your whole account, on the subscription, and on the invoice in the Dashboard and the API.

  • Default memo—You can set the memo’s default value on the Billing Settings page. This value will be used for any newly created invoices which do not override the memo.
  • Subscription memo override—You can set the subscription memo field in the Dashboard when creating a subscription. It automatically applies to all new invoices generated by that subscription and supersedes any memo set at the account level.
  • Invoice memo override—You can set a memo on a per-invoice basis. This will override the memo values set at the account settings and subscription level. You can set the invoice-level memo via the API or the dashboard when creating or updating a draft invoice.

Invoice PDFs can optionally include a footer text block, often used for contractual or legally required text.

A common use case is displaying legally required company registration information, such as a UK Companies House registration number.

Footer inheritance

Similar to memo settings, you can set the footer’s default value on the Billing Settings page. This value will be used for any newly created invoices that do not override the footer.

You can also set a footer on a per-invoice basis through the dashboard or API. This will override the default footer value.

You can’t update the footer fields after an invoice has been finalized.

Invoice numbering schemes

Stripe automatically generates invoice numbers to help track and reconcile invoices. Invoice numbers have a prefix and suffix, such as 586A2E-0139 or MYSHOP-1203.

Two invoice numbering schemes are supported:

  • Account-level: The same prefix is used for every customer and invoices are numbered sequentially across your entire account.
  • Customer-level: Each customer has a unique prefix and invoices for a given customer are numbered sequentially.

The full invoice number is guaranteed to be unique across your account in both schemes.

Stripe chooses a default behavior based on the country your Stripe account is based in. In European Union member countries and the United Kingdom, account level sequencing is typically required. All other countries default to customer level sequencing as it does not expose the total number of invoices.

When switching between schemes or updating prefixes, only future invoices use the new settings. Existing invoices aren’t impacted.

Using customer level prefixes

When configured to use customer-level numbering, each invoice number begins with the customer’s unique invoice prefix.

For example, if one of your customers is a business named Typographic, you might set the prefix to TYPGRA. The first invoice number for Typographic would be TYPGRA-0001, the second would be TYPGRA-0002 and so on.

Prefixes can be overridden to make it easier to trace invoices back to your customers. You can set prefixes on the Customer Detail page in the Stripe Dashboard or with the API using the invoice_prefix parameter. Prefixes have to be between 3 and 12 characters and they cannot match any other customer prefix, including prefixes that are no longer in use.

Using account level prefixes

When configured to use account-level numbering, each invoice number starts with a common prefix and has a sequential number.

For example, if your business is named Rocket Rides, you might set the prefix to RKTRIDE. Your first invoice would be RKTRIDE-0001, a second invoice to a different customer would be RKTRIDE-0002, another invoice to the first customer would be RKTRIDE-0003, and so on.

The account-wide prefix is automatically assigned and can be overridden to make it clearer that these invoices come from you. If you want to modify the prefix for your account, you can change it in the Stripe Dashboard. This requires that your account’s default API version is at least 2020-03-02. Prefixes have to be between 3 and 12 characters and they cannot match any customer prefix, including prefixes that are no longer in use.

Setting the next invoice number

By default, invoice numbers start at 0001. There are scenarios where you might want to use a different number. For example, if you’re migrating to Stripe Billing with existing customers, you might want to continue where your old system left off. If a customer’s last invoice was 0127 on a previous system, you can set their first invoice on Stripe to be 0128.

You can set the number on the Customer Detail page or with the API using the next_invoice_sequence parameter. If you’re using account level prefixes, you can set the next invoice number in the Next invoice sequence field in the Stripe Dashboard on the invoice template page.

You can only set the next invoice number to numbers greater than any numbers used on an invoice. The maximum allowed invoice number is 1,000,000,000 regardless of how you set it. Use the lowest value possible so that you don’t reach this limit.

Customer preferred language (localization)

Use the Language property on a Customer to set the preferred language. This language will be used to localize Invoice emails and PDFs, Receipt emails and PDFs, as well as Credit Note PDFs.

Customer preferred language

The Update customer invoice details modal showing the Language field.

You can also update the language through the API’s preferred_locales field.

Customizing Branding

Stripe allows customization of customer-facing emails and UIs on the Branding Settings page.

The following brand settings are available:

  • Icon—a square, digital friendly icon/logo.
  • Logo—a non-square logo to override some uses of the Icon.
  • Accent color—used as a background on emails and pages.

Brand settings screenshot

Customize your branding on the Branding Settings Dashboard page.

Icons and logos must be in JPG or PNG format, less than 512kb in size, and equal to or greater than 128px by 128px.

Where brand settings are applied

Because brand settings apply to your whole account, they take effect in many places:

Setting Emails Hosted Invoice Page Checkout Page Invoice PDFs
Icon Yes Yes Yes No
Logo No No Yes No
Accent color Yes, as background color Yes, as background color No No

While the generated PDF invoices contain no branded elements, you can customize their content extensively with custom fields, footers, and other content.

Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.