DrPlugin

PDF invoices

Updated October 24, 2026

Issue numbered PDF invoices for completed orders, with EU VAT and reverse charge wording, and let customers download them. This needs TierMint Pro.

How invoicing works

When an order completes, TierMint Pro creates a numbered PDF invoice, attaches it to the purchase receipt and keeps a copy on your server. A customer with an account on your site can download it again from their account page.

Invoice numbers run in an unbroken series for each year, such as INV-2026-00001, INV-2026-00002 and so on. EU tax authorities expect no gaps, no reuse and no renumbering. The document carries the fields EU invoicing rules ask for, including the reverse charge wording on a sale to a business in another member state.

What invoicing does not do:

  • It does not create credit notes. A refunded sale keeps the invoice it was issued.
  • It does not re-issue or renumber. An invoice's number, date and seller details are fixed once it exists. If you change your address, older invoices keep the old one.
  • It does not file anything. Your VAT return comes from VAT reporting.

The tax engine is not required. TierMint issues invoices with or without VAT. With tax calculation on, the invoice also states the rate, the taxable amount and the VAT.

Fill in your seller details

Do this before your first sale.

  1. Open TierMint → Settings → Invoices.
  2. Fill in the fields below.
  3. Click Save.
Field What it does
Seller name Your trading name on the invoice. Leave it blank to use your site title, which the help text shows. Up to 120 characters.
Seller address Your address, one line per address line. Up to 8 lines of up to 120 characters each. Blank lines are ignored. It prints under your name in the seller block.
VAT number on invoices Leave it blank to use Your VAT number from the tax settings, which the help text shows. Set it only if you invoice under a different registration from the one you check buyers' VAT numbers with.
Company register number Your trade register entry, which some countries require on business documents. Leave it blank if yours does not. Up to 120 characters.
Invoice footer note One line under the totals, for payment terms or a legal mention. Up to 500 characters.
Show the buyer's billing address on invoices On by default. Prints the buyer's billing address in the buyer block. While it is on, the checkout requires a billing address (the address line and the city), whatever Collect a billing address under TierMint → Settings → General says. Turn it off to let that setting decide.

The single-line fields refuse line breaks.

The invoice settings with the seller name, address, register number, footer note and the buyer address option

Changing Show the buyer's billing address on invoices affects invoices issued from then on. An invoice that already exists does not change.

When an invoice is created

TierMint issues an invoice when it sends the purchase receipt for a completed order, or when you click Download invoice on an order that has none yet. Nothing else creates one. Opening the account page, downloading and a privacy export do not.

This keeps the series in order. An invoice belongs to the year it was issued in, and its date is the moment its number was given out.

What follows from this:

  • Orders completed before you installed Pro have no invoice. If you click Download invoice on one, the invoice is issued then, with today's date and the current year's number.
  • A pending, failed or abandoned order never gets an invoice.
  • A refund does not undo an invoice. The number stays used, the file stays on your server, and no credit note is made.
  • After a full refund, the invoice leaves the customer's Invoices tab and their download link stops working. A partly refunded order keeps both. You can still download the invoice from the order screen.
  • A receipt email that fails to send still leaves an invoice issued. The number is used and the file is on your server, but the buyer has nothing. TierMint does not resend it.

Get an invoice to a buyer who did not receive it

  1. Open TierMint → Orders and open the order.
  2. Click Download invoice at the top of the order details.
  3. Send the buyer the saved file. It is named after the invoice number, for example INV-2026-00042.pdf.

The button shows on completed, partly refunded and refunded orders, for users who can manage TierMint. On a completed or partly refunded order with no invoice yet, the first click issues one and uses the next number. On an order that cannot be invoiced, it says "No invoice was issued for this order. Invoices are issued when an order completes."

What the invoice shows

  • Your seller block: name, address, VAT number and register number.
  • The buyer block. See The buyer block.
  • The invoice number, the date of issue, the date of supply (when the order completed) and the order reference.
  • One row per item: description, quantity, unit price before any discount and net amount. A discounted order adds a Line discount column.
  • The subtotal, any discount, the tax rows and the total.
  • Your footer note.

All dates on the invoice are in UTC, which keeps them in line with the year in the number.

The unit price is the line subtotal before any discount, divided by the quantity and rounded to the cent. On a line with more than one unit, it can be a cent off. The line amount is exact.

A PDF invoice with the seller and buyer details, one line item, and the taxable amount, VAT rate and VAT

The tax rows

Sale What the invoice shows
VAT was charged Taxable amount, VAT rate and VAT. The rate is left out when the charged VAT does not match it within rounding.
Reverse charge, to a confirmed business in another EU country Taxable amount, with no rate and no VAT figure, and the sentence "Reverse charge: VAT to be accounted for by the recipient, Article 196 of Council Directive 2006/112/EC."
Tax calculation on, to a country with no rate Taxable amount, a VAT rate of 0.00% and VAT of 0.00.
No tax engine, or an order with no tax record, such as a renewal No tax rows.

A reverse charge shows the wording instead of "VAT 0.00%". A zero rate would say the sale was taxed at zero, which is not the same as the buyer accounting for the tax. The buyer's VAT number prints in the buyer block.

A reverse charge PDF invoice with the buyer's VAT number, no VAT charged and the Article 196 wording

The buyer's VAT number and tax ID

The buyer's VAT number prints only when it counted as evidence: VIES confirmed it, or your outage policy accepted it. A number VIES said is not registered stays on the order but not on the invoice.

A tax ID that is not an EU VAT number prints as Tax ID, as TierMint stored it: spaces, dots and dashes removed and letters in capitals. That covers an Indian GSTIN, an Australian ABN, a Swiss UID or a UK VAT number. The checkout records a tax ID only when it shows the field: when Collect a VAT or tax ID is on under TierMint → Settings → General, or when tax calculation is set up, which shows the field without changing that setting. An EU VAT number never prints as a tax ID, and neither does a Northern Irish (XI) number, because XI counts as an EU prefix. It prints as a VAT number when the tax engine accepted it, and not at all otherwise.

The buyer block

The invoice names the buyer depending on how they bought:

  • An individual is named by first and last name. Without those, TierMint uses the combined name, and without any name, the email address.
  • A company purchase, where the buyer ticked I am buying as a company and gave a company name, names the company on the first line and the buyer on the second line when known.

With Show the buyer's billing address on invoices on, the billing address lines print in the buyer block. With it off, the block holds the name, the company contact name, country, email, VAT number and Tax ID only.

A developer can supply or replace the address lines with the tiermint_pro_invoice_buyer_address filter. It receives the collected address lines and the order, and returns the lines to print. Whatever it returns wins over the collected address. It runs with the option on or off. With the option off, it receives no collected lines.

Names in other scripts

The invoice uses the bundled DejaVu Sans font. It covers Latin, Greek, Cyrillic, Georgian, Armenian and Vietnamese. Hebrew and Arabic text does not lay out correctly: the invoice prints it left to right and does not join Arabic letters. Chinese, Japanese, Korean, Thai and Devanagari names print as empty boxes.

How customers get their invoices

Customers get their invoice attached to the purchase receipt, as a file named after the invoice number. With an account on your site, they can also download it from the Invoices tab of the customer dashboard.

The Invoices tab appears wherever the customer dashboard is, with nothing to add. To show the list on a page of its own, use the [tiermint_invoice_list] shortcode. Its title attribute sets the heading, which defaults to "Your invoices".

[tiermint_invoice_list title="Your invoices"]

The Invoices tab in the customer account with two invoices, their date, order, total and download link

Each row has a download link labeled with the invoice number. The link works for six hours from when the page loaded, and only for the logged-in customer it was made for. Reloading the page gives a fresh link. A link shared with someone else gives them nothing.

The tab shows the 20 most recent invoices, taken from the customer's 50 most recent orders.

Invoice numbers

  • Each calendar year has its own series, starting at 1 in January (UTC): INV-2026-00001.
  • The series has no gaps. TierMint reserves a number before stamping it on an order, so a failure halfway cannot use up a number. The next invoice takes the reserved number instead.
  • A number is never reused or moved. An order keeps its number, also when its file is rebuilt.
  • A developer can change the INV prefix with the tiermint_invoice_number_prefix filter. Change it before your first invoice: a change in the middle of a year makes the series look like two series.

Removing TierMint Pro does not reset the counter. The numbers already issued stay with your orders in the free plugin's data, and a reset counter would print numbers you had already sent. Deleting the free plugin with Delete all data on uninstall on removes the counter with the rest of TierMint's data.

Where invoices are stored

TierMint stores invoices under wp-content/uploads/tiermint/invoices/, in a folder for each year. Guard files protect the folder: deny-all rules for Apache (.htaccess) and IIS (web.config), and an index.php with only a comment so the folder cannot be listed. Each invoice file also has a name that cannot be guessed: the order ID, a dash and 32 random characters. On NGINX, which ignores the guard files, the name is the only protection.

TierMint checks that the guard files are in place before it writes an invoice. If it cannot confirm them, it refuses to store the invoice and logs the reason.

Include this folder in your backups. TierMint can rebuild a missing file under its original number and date, but it builds it from your current seller details and the buyer's current record. The rebuilt file may differ from the copy the buyer has.

Privacy requests

  • Tools → Erase Personal Data does not delete invoices. The report says TierMint kept them: a seller must keep issued invoices for six to ten years, depending on the country, and the buyer's details are a required part of the document.
  • Tools → Export Personal Data lists each invoice's number, date, order and total, with a note that the PDF was attached to the receipt and can be downloaded from the account page. The PDF itself is not in the export. For a fully refunded order the account page no longer offers the invoice, so that buyer has to ask you for it.

Limits

  • The account page shows the 20 most recent invoices from the 50 most recent orders. A long-standing customer cannot reach older ones there.
  • A refund does not produce a credit note.
  • There is no bulk "invoice everything" action, and no list of invoices in wp-admin.

Common questions

Why are no invoices created at all, with nothing in the log?

Check that Send purchase receipts is on under TierMint → Settings → Emails. Invoicing runs while the receipt is built, and a switched-off email does nothing and logs nothing.

A receipt went out without an invoice. Where is the reason?

In TierMint's log table, tiermint_logs with your database prefix. Each failure to attach an invoice is logged with its reason, and the receipt still goes out, because it carries the license keys and download links.

The log says the invoice store refuses to write. What do I fix?

TierMint could not create or confirm the guard files. Most often a file permission or an open_basedir limit blocks wp-content/uploads/tiermint/invoices/. Fix the permissions. TierMint never falls back to writing an unprotected file.

The log mentions a font or a temporary folder. What do I fix?

The PDF engine needs a folder it can write to under uploads. Fix the permissions on the uploads folder.

A customer says their Invoices tab is empty, or an invoice is missing. Why?

Check these, in order:

  1. They have no completed orders yet.
  2. They are logged in to an account that is not linked to the customer record that bought. A purchase made with another email address shows this on the order screen.
  3. The order was fully refunded, which removes the row and stops the link. The invoice and its number still exist for you.
  4. Their 50 most recent orders carry no invoice, which hides older invoices.

Reload the account page and click again. Links work for six hours, and logging out and in again also stops them. If it still fails, check that they are logged in to the account that bought, and that the order was not fully refunded.

Why did invoices stop at a certain number?

Check the log for invoice numbering errors. A lock protects the counter, so a database problem shows up as a failure to issue, never as a duplicate or a gap.