Harvify PDF Invoices for WooCommerce
PDF invoices and credit notes for WooCommerce, with numbering your accountant can actually check — and an import that continues your existing numbers.
Solid choice
Harvify PDF Invoices for WooCom… is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 2 weeks ago, and scores 64/100 on our health check.
- Actively developed — last update 2 weeks ago
- Tested with the latest WordPress (7.1)
- Small user base (<10 active installs)
- Very few reviews so far
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where Harvify PDF Invoices for Wo… stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| credit note | >100 |
| invoice | >100 |
| Packing Slip | >100 |
| >100 | |
| woocommerce | >100 |
About Harvify PDF Invoices for WooCommerce
From the official readme · v0.14.11Description
Harvify PDF Invoices attaches a PDF invoice to the order emails WooCommerce already
sends, and issues a credit note whenever you refund.
The part that matters is not the PDF. It is the numbering.
Getting started
- Go to Harvify → PDF Invoices. The Settings screen opens.
- Under Invoice numbering, set the number format: a prefix such as
INV-{year}-
and how many digits the number has. - Under Attach to emails, tick the WooCommerce emails that should carry the
invoice. Most shops choose the completed-order email. - Fill in Your tax details so they print on every invoice, then click
Save settings. - Open Diagnostics to confirm nothing on your server needs attention.
- Complete an order: the invoice is attached to the email you chose, and the order
screen’s Harvify documents section opens it. Refund the order and a credit note is
issued.
If you are moving from another invoicing plugin, open Import first. It continues
your existing numbers instead of starting again at 1.
Every number is accounted for
- Numbers are allocated so that two orders placed at the same moment can never
receive the same one. The database itself enforces this, not a lucky read. - A number is never reused.
- A number never silently disappears. If a document fails after its number was
allocated, that number is recorded as void — with the reason and the time —
and stays visible in your numbering audit.
That is a stronger promise than “gapless”, and unlike “gapless” it is one that
survives two customers checking out in the same second. The numbering audit
screen shows you the whole sequence, per period, with every void explained, and
exports it as CSV. It is the screen you show your accountant.
Switching from another invoicing plugin
Most people never move invoicing plugins, because restarting numbering at #1
breaks the sequence their accountant and tax authority expect.
So this one continues your existing numbers. The importer reads your current
plugin, shows you a dry run first — “after import your next invoice will be
INV-2026-0004, the same number you would get today” — and only then writes
anything. Your historical numbers are preserved exactly as they were, your number
format is adopted, and the old plugin is never modified, so you can compare the two
side by side or back out entirely.
Imports from WooCommerce PDF Invoices & Packing Slips, from WebToffee
(beta), or from a CSV file of order_id,invoice_number,invoice_date — so you
can move from a plugin nobody has mapped, from a spreadsheet, or from a paper book.
If any line of the file cannot be read, nothing at all is imported and every problem
is listed: a half-imported invoice history is worse than none.
The WebToffee route is marked beta because it is newly verified: we checked it
against WebToffee 5.0.1 by having that plugin issue real invoice numbers and then
importing them, so we know it reads what WebToffee actually stores. Older WebToffee
versions we have not tested. The dry run protects you either way — it shows the
numbers you will end up with before anything is written, and the import can be
rolled back afterwards.
Dual run — try it without your customers seeing anything
Importing your history is one thing; trusting the next real order is another. Turn
on dual run and this plugin produces and numbers every document exactly as it
will in production — and attaches none of them to your customers’ emails. Your old
plugin carries on sending its own, so customers see no change at all, while you get
a side-by-side table of its invoice number and ours for every order placed since you
started.
It never ends on a timer. When the period you chose is up you are simply told;
nothing reaches a customer until you press the button yourself.
What you get
- PDF invoices, attached to the WooCommerce emails you choose
- Credit notes on refund — one per refund, on their own separate sequence
- Prefix, suffix and zero-padding, with {year} and {month} tokens
- Yearly or monthly restart — and earlier periods are never renumbered
- Numbering audit — with CSV export
- Numbers are immutable once issued — an order edit, a status change or a
refund never renumbers a document that has already been issued. - VOID tracking — a number is never reused and never silently disappears; a
failure records a VOID with its reason and timestamp. - Import your existing numbers — from WooCommerce PDF Invoices & Packing
Slips, WebToffee (beta) or a CSV file — with a dry run, a rollback and a
dual-run mode - Multiple tax rates per document, VAT number, reverse-charge note
- Diagnostics screen — a live test render, memory headroom, storage,
numbering health, the language a given order’s document will be produced in,
and font coverage checked against your own recent orders, each with the fix
stated - Fonts for non-Latin invoices — one-click download of the matching Noto
font, or upload your own - Bulk generate and bulk ZIP download — straight from the Orders list
- Customer self-service — your buyers download their own invoice from My
Account - WP-CLI — regenerate a document, export the numbering audit, check sequence
status
Pro — the Harvify Pro Bundle
- Visual template designer — logo, colours, type sizes, page margins, the
order of the blocks on the page, and your own CSS, with a live preview that
is real PDF output rather than an HTML approximation of one. A save is only
accepted if it renders: if the candidate template throws, the save is
refused and the documents your customers receive are left exactly as they
were. - More document types — proforma invoices, delivery notes and
dunning (payment reminder) letters, plus packing-slip customisation:
retitle it, drop the SKU column, hide the customer note or the shipping
method, add a footer line of your own. The basic packing slip stays free. The
three new documents are deliberately unnumbered — a quotation that never
becomes a sale must not consume an invoice number, because a number is never
reused and a gap is permanent. - Bulk generation at scale, and automation — Pro does not raise the free
bulk limit, it queues the work on Action Scheduler, one order per job, so
nothing renders inside the request and a run across thousands of orders cannot
time out. Plus per-status auto-attach rules — choose which of
WooCommerce’s own emails carry a document for orders in a given status. Rules
are evaluated at send time, so switching one off takes effect on the very next
email rather than after a queue drains. - Scheduled accountant export — a weekly, monthly or quarterly package of
the numbering audit CSV and that period’s documents, delivered to an email
address or an FTP server. Consecutive delivery failures pause the
schedule and say why, on the screen and in Diagnostics — because a monthly
export bouncing off a dead mailbox for a year is exactly the sort of thing
nobody notices. - Multi-language documents — the language follows the customer, not the
admin. — German, French, Spanish, Italian, Dutch, Portuguese and Polish ship
with the plugin, so documents translate on a shop with nothing else installed;
WPML and Polylang are honoured when present and never required. A language is
used only if it can translate every string on the document: a page reading
“Rechnung” above “Subtotal” is worse than English throughout, so the fallback
is the whole document rather than the missing phrase. The same order produces
the same language from the order screen, from WP-CLI and from the customer’s
own My Account download. - Per-document-type sequences and per-country legal blocks — where your
jurisdiction requires sequentially numbered delivery notes, give that type
its own series: it starts at 1 and never draws a number from the invoice
sequence. And attach the legal wording a given billing country requires,
printed in the document’s notice box rather than buried in footer grey.
Harvify Pro Bundle
One subscription unlocks the Pro features of every Harvify plugin. Install only
the tools your store needs.
What we translate, and what we do not
The seven bundled languages cover the wording of the document itself — its
headings, its column titles, its totals and its notices. The country name in the
customer’s address and WooCommerce’s own tax labels come from the WordPress and
WooCommerce language packs, so on a shop that has never installed the German pack
they stay in English however complete our translation is. The Languages screen
tells you which packs this site has. The date is the one thing we handle
ourselves: when a pack is missing it is printed numerically, so it never appears
in the wrong language.
Non-Latin invoices are refused, not mangled
The bundled font covers Latin, Greek and Cyrillic. If an order contains Japanese,
Arabic, Hebrew, Thai or Devanagari characters, most plugins render a document full
of empty boxes and nobody notices until a customer complains.
This one refuses to produce that document, names the script, and offers you the
font — one click to download it to your own server, or upload your own .ttf.
We never email your customers
Invoices reach buyers by being attached to WooCommerce’s own order emails. This
plugin has no path of its own for sending anything to a customer, so your
existing mail setup keeps working exactly as it does, and a delivery problem
stays a mail-configuration question rather than becoming ours.
There is exactly one thing this plugin sends, and it is not to a customer: the
Pro accountant export, which mails your own records to the address you type
in yourself. Nothing about what your customers receive changes.
What this does not claim
We generate invoices containing the fields commonly required for VAT and GST.
We do not claim to make you tax compliant, and you should confirm with your
accountant that the documents meet the requirements in your jurisdiction.
External services
This plugin connects to Freemius, the licensing and update service Harvify uses to
sell and deliver the Pro tier of its plugins.
Nothing is sent to Freemius unless you choose to send it. On activation you are shown
Freemius’s standard opt-in screen. Until you answer it a fresh install makes no
outbound request at all, and if you choose Skip the free tier stays fully usable
and still sends nothing. Data is transmitted only when you take one of these
actions:
- You click “Allow & Continue” on the Freemius opt-in screen. This sends your
site address, your administrator email address, and your WordPress, PHP and active
plugin/theme details, so Harvify can provide support and know which environments to
test against. Skipping that screen sends nothing and leaves the plugin working
normally. - You enter a Pro Bundle licence key. This sends the key together with your site
address so the licence can be activated for that site. While a licence is active the
site also re-checks periodically that it is still valid and whether a Pro update is
available.
Service provided by Freemius, Inc. – https://freemius.com/
Terms of service: https://freemius.com/terms/
Privacy policy: https://freemius.com/privacy/
Font downloads (optional, one click per script)
Invoices render in Latin scripts using fonts bundled with the plugin. If you need
Japanese, Arabic, Hebrew, Thai or Devanagari, the Fonts screen offers to download the
matching Noto font, and that download runs only when you click install for that
specific script.
Sent: a request to raw.githubusercontent.com for the font file itself. Like every
request WordPress makes, it carries WordPress’s standard User-Agent header, which
names your WordPress version and your site address, and GitHub sees your server’s
IP address. Nothing about your orders or your customers is included.
Fonts are the Noto family, hosted on GitHub – https://github.com/notofonts
Terms: https://docs.github.com/en/site-policy/github-terms/github-terms-of-service
Privacy: https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement
Accountant export
The Pro accountant export can upload documents to an FTP server that you configure.
It is part of the Pro tier and is not included in this free download.
Credits
This plugin bundles the following open-source libraries. Each ships with its own
licence file inside the plugin’s vendor directory.
- Dompdf (LGPL-2.1) — HTML to PDF rendering. https://github.com/dompdf/dompdf
- php-font-lib (LGPL-2.1-or-later) and php-svg-lib (LGPL-3.0-or-later),
by the Dompdf project - Masterminds HTML5 (MIT) — HTML parsing
- Sabberworm PHP CSS Parser (MIT) — CSS parsing
- DejaVu Sans — bundled font, released under a permissive
Bitstream Vera / Arev derived licence
Noto fonts, offered as an optional one-click download, are published by Google
under the SIL Open Font License 1.1 and are downloaded to your own server. They are
not bundled with this plugin.
Installation
- Install and activate. WooCommerce must be active.
- Go to Harvify → PDF Invoices → Settings and choose your number format and
which emails should carry the invoice. - Check Diagnostics — it will tell you if anything on your server needs
attention before the first document is issued.
Frequently asked questions
Will it change my existing invoice numbers?
No. The importer preserves every historical number exactly, and continues the sequence from where your current plugin left off. The dry run shows you the next number before anything is written, and you can roll the import back.
What happens if two orders are placed at exactly the same moment?
They receive different numbers. Allocation is enforced by a uniqueness constraint in the database, so a collision is impossible rather than unlikely.
Why was my invoice not created?
Check the Diagnostics screen — it reports the actual cause with the fix. The most common one is an order containing characters the installed fonts cannot draw, which is refused deliberately rather than rendered as empty boxes.
Does it work with HPOS (High-Performance Order Storage)?
Yes. All order data is read through the WooCommerce CRUD API rather than post meta.
Changelog
Pro adds per-document numbering (delivery notes can have their own sequence) and per-country legal text on documents.
0.14.11
- Admin messages no longer travel in the address bar. The bulk-action, Fonts and
Settings screens used to print their message from the URL, so a crafted link could
show any sentence on those screens. Messages are now kept for the user whose action
caused them, and shown once. - The Diagnostics order lookup now needs a security token and the WooCommerce
manager capability. Without both, the lookup is ignored. wp harvify-pdf export-audit --fileonly writes to the plugin’s protected folder
in your uploads directory. Only the file name you give is used.- The document translations used by Pro are no longer included in the free plugin.
- Readme: a formatting error in the feature list is fixed, and a Getting started
section is added.
0.14.10
- Fixed: the PDF Invoices settings screen could not be opened on a site with no
other Harvify plugin. The menu was registered too late to be built, so
WooCommerce stores that installed only this plugin saw “Sorry, you are not
allowed to access this page” instead of the settings.
0.14.9
- Fixed: deleting the plugin with “delete data on uninstall” switched on now
removes all of its settings. Twelve options survived an opted-in delete, among
them the main settings, the importer’s saved state and, on Pro, the accountant
export’s stored secret. Generated PDF files and the invoice numbers recorded on
your orders are still always kept, as the setting says. With the setting off
(the default) nothing is removed, as before. - Fixed: the External services section and the Fonts screen now say exactly what
a font download sends. The request goes to raw.githubusercontent.com and carries
WordPress’s standard User-Agent, which names your WordPress version and site
address. It was previously described as sending nothing about your site. - Changed: the External services section now describes the Freemius opt-in screen
shown on activation. Until you answer it a fresh install makes no outbound
request, and choosing Skip keeps the free tier fully usable and sends nothing. - Fixed: two lines on the Pro panels promised more than Pro does. Pro numbering
gives each document type its own prefix (padding and the reset period follow
your invoice settings), and the Automation screen lists recent background
failures rather than showing progress.
0.14.8
- Added: a single Support entry in the Harvify menu, so you can reach us from
inside WordPress. Until now no plugin offered a contact route at all. One entry for
the whole suite rather than one per plugin. - No behaviour changes.
0.14.7
- Added: an External services section to this readme, naming every third-party
service the plugin can contact, exactly what is sent, when, and each provider’s terms
and privacy policy. Required for WordPress.org submission. - Changed: the
Contributorsfield now names the correct WordPress.org account. - No behaviour changes.
0.14.6
- Fixed: deactivating or deleting the plugin now cancels queued document
generation and the scheduled accountant export. A bulk run could leave one
queued job per order behind, each firing against a plugin that was no longer
active.
Screenshots
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best Harvify PDF Invoices for WooC… alternatives
All credit note plugins →FAQ
Harvify PDF Invoices for WooCommerce: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Oct 16, 2026
Is Harvify PDF Invoices for WooCom… free?
Yes. Harvify PDF Invoices for WooCom… is free to download and use from the official WordPress.org plugin directory.
Is Harvify PDF Invoices for WooCom… safe to use in 2026?
Harvify PDF Invoices for WooCom… is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 2 weeks ago, and scores 64/100 on our health check.
How many websites use Harvify PDF Invoices for WooCom…?
Harvify PDF Invoices for WooCom… is active on <10 WordPress websites and has been downloaded 304 times since it launched in October 2026. It was downloaded 310 times in the last 30 days.
Does Harvify PDF Invoices for WooCom… work with WordPress 7.1?
Yes. The developer has tested Harvify PDF Invoices for WooCom… up to WordPress 7.1.3, the latest release. It requires WordPress 6.0 or newer.
What PHP version does Harvify PDF Invoices for WooCom… need?
Harvify PDF Invoices for WooCom… requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.
When was Harvify PDF Invoices for WooCom… last updated?
The latest version, 0.14.11, was released on October 3, 2026 (2 weeks ago).
Who makes Harvify PDF Invoices for WooCom…?
Harvify PDF Invoices for WooCom… is developed and maintained by harv.
What are the best alternatives to Harvify PDF Invoices for WooCom…?
The most popular alternatives to Harvify PDF Invoices for WooCom… are BulCommerce (10+ installs), LibraX Invoice (10+ installs) and DokumentenPilot (<10 installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card