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.

The custom fields field cannot be updated once 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.

Note: The footer fields field cannot be updated after an invoice finalized.

Invoice prefix and number

Stripe automatically generates invoice numbers to help track and reconcile invoices. This includes text that prefixes the number. Invoice requirements vary by jurisdiction but in some countries you can modify the default behavior. This includes setting the prefix at the customer or account level, and setting the next invoice number.

The default behavior depends on the country that your Stripe account is based in. In European Union (EU) member countries and the United Kingdom (UK), account level prefixes are required. All other countries default to customer level prefixes because they don’t publicly expose your total number of invoices. You can still use account level prefixes but you should consult with an accounting professional for guidance on your specific use case.

If you modify the default behavior, only future invoices use the new settings. Existing invoices aren’t impacted.

Setting customer and account level prefixes

You can use the Stripe Dashboard to set the prefix at the customer or account level. If set at the customer level, each invoice number includes an autogenerated prefix that is unique to that customer. For example, 586A2ED-0001. 586A2ED is the customer prefix and 0001 is the number.

You can override the autogenerated prefixes to make it easier to trace invoices back to customers. For example, if one of your customers is a business named Typographic, you might want to set the prefix to TYPOGR. You can set prefixes on the Customer Detail page in the Stripe Dashboard or with the API using the invoice_prefix attribute.

At the account level, all your customers see the invoice prefix set in the Stripe Dashboard, and suffixes aren’t specific to customers. For example, if your first invoice is MYSHOP-0001, then your second invoice would be MYSHOP-0002 regardless of the customer. If you want to modify the prefix for your account, you can change it in the Stripe Dashboard.

Setting the next invoice number

By default, invoice numbers start at 0001 but 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 your previous system, you can set their first invoice on Stripe to be 0128. You can set this number on the Customer Detail page or with the API using the customer.next_invoice_sequence attribute.

Manually setting the number on a customer has some restrictions. After manually setting the number once, you can change it again but it has to be higher than the last value. You can’t set the number to a value less than or equal to the last number used on an invoice

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.

There is a cap of 1,000,000,000 on invoice numbers regardless of how you set them. When manually setting invoice numbers, use the lowest value possible so that you don’t reach this cap.

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

Since brand settings are applied to your whole account, there are multiple places where they take effect:

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, their content can be extensively customized with custom fields, Footers, and other content.

Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.
You can unsubscribe at any time. Read our privacy policy.