ERPNext v16 is the first major release since v15 in October 2023. Frappe says it is up to 2x faster, and it brings a new desk, a Chrome-based PDF engine, and deeper accounting and manufacturing features. It also needs newer runtimes: Python 3.14 and Node 24. Both versions are free and open source under GPLv3.
Short answer
ERPNext v15 (October 2023) was a stability release. ERPNext v16 (final release 12 January 2026) is a bigger step: up to 2x faster by Frappe's figure, a rebuilt desk, Chrome-based PDF rendering, formula-driven financial reports, an MRP workflow, inward subcontracting, and a newer runtime stack. Frappe plans to support v15 until the end of 2027 and v16 until the end of 2029, so both are valid choices today.
Every major version brings the same question from clients: is the jump worth the disruption? I lead ERPNext and Frappe implementations at MithTech, a team of Frappe specialists in Bengaluru, and I have set up and upgraded both versions for trading, manufacturing, financial services and multi-company clients. This post compares the differences you feel in daily use, not the release bullets.
My take: the "50+ new features" matter less than three changes that touch every install: the performance work, the PDF engine and the raised runtime requirements.
What actually changed between ERPNext v15 and v16?
The direction changed. ERPNext v15 stabilised the platform after a large framework migration, tightening existing modules rather than adding many new ones. ERPNext v16 moves to performance and functional depth: a faster core, a new desk, a new PDF engine, and additions across accounting, manufacturing and stock.
9 rows · click a column to sort
| ERPNext v16 | ||
|---|---|---|
| Release focus | Stability and consolidation | Performance, usability, functional depth |
| Performance | Baseline | Up to 2x faster (Frappe's figure) |
| Desk and workspaces | v15 workspace layout | New desktop, persistent sidebar, revamped navigation |
| PDF engine | wkhtmltopdf | Chrome (Chromium) for new print formats; classic formats still run |
| Accounting | Standard reports | Formula-driven report templates, purchase expense booking |
| Manufacturing | Subcontracting, work orders | MRP workflow, inward subcontracting |
| Runtimes | Python 3.10+, Node 18+ | Python 3.14, Node 24+ |
| Support (planned) | Until end of 2027 | Until end of 2029 |
| Licence | Free, open source (GPLv3) | Free, open source (GPLv3) |
If you want the upgrade steps rather than the comparison, skip to how to upgrade from v15 to v16.
Skimmable summary: v15 stabilised the platform; v16 makes it faster and deeper. Performance, the PDF engine and the runtime stack change on every install; the rest depends on the modules you use.
When were ERPNext v15 and v16 released?
ERPNext v15.0.0 was tagged on GitHub on 20 October 2023, so by 2026 it is a settled, widely deployed release. Frappe scheduled the v16 beta for 15 November 2025 (the first beta tag is dated 17 November) and moved the final release from 6 December 2025 to 12 January 2026 to give the beta more testing.
Two years of work explains why v16 is a large release. Both lines keep shipping point releases: as of 12 October 2026 the latest are v16.50.0 (6 October 2026) and v15.122.0 (7 October 2026). Ecosystem apps and third-party integrations took months to catch up with v16, which is why many teams waited.
Skimmable summary: v15 shipped in October 2023; v16's beta came in November 2025 and the final release on 12 January 2026. Both lines still get point releases.
How much faster is ERPNext v16, and what else improved system-wide?
Frappe's v16 release announcement says "up to 2x faster performance", built on Frappe Framework v16: list views, report loads and background jobs are where you notice it. Two other platform changes reach every install, whichever modules you use.
The first is PDF generation. v15 renders PDFs with wkhtmltopdf, an older engine that handles modern CSS such as flexbox and grid poorly. v16 renders new print formats with Chrome (Chromium), so complex invoices and reports print the way they look on screen. Classic print formats keep working in v16, but Frappe's migration notes say new ones can no longer be created and they will stop working in v17. The server needs Chromium installed (bench setup-chrome); if PDFs time out after the switch, see the v16 Chrome PDF 504 fix.
The second is the new desk: a desktop of apps, a persistent sidebar and reworked navigation. The ERPNext v16 workspace guide covers the layout. Frappe v16 also adds early SQLite support for small Frappe apps; ERPNext itself still runs on MariaDB.
Skimmable summary: up to 2x faster by Frappe's figure, Chrome PDF rendering that handles modern CSS, and a new desk. These touch every install.
What new accounting and finance features arrived in v16?
In v15, customising a Profit & Loss or Balance Sheet meant working around fixed structures. v16 adds Financial Report Templates that turn those statements into formula-driven, customisable layouts, which helps multi-company groups, IFRS-style presentations and board packs.
Two more changes matter to Indian finance teams. Purchase Expense Booking captures purchase-side costs so Cost of Goods Sold needs less manual reconciliation. The TDS and Asset modules were reworked: tax withholding now records each deduction in a Tax Withholding Entry table, and item-wise tax details moved from a JSON field to a child table. Nothing from v15 is removed, but custom code that read the old fields must change.
Skimmable summary: formula-driven Financial Report Templates, Purchase Expense Booking for COGS, and reworked TDS and Asset modules: more reporting without custom code, and a check for any code that read the old tax fields.
What changed in manufacturing and inventory?
Manufacturing got the largest functional additions, and for manufacturers they are the strongest reason to move. They extend what the ERPNext manufacturing guide covers. v15 handles work orders, BOMs and subcontracting, but material planning often relied on manual analysis or custom reports. v16 adds an MRP workflow that combines forecasts, delivery schedules and lead times to say what to buy or make, and when.
Two more additions matter to factories and traders. Inward Subcontracting lets you receive raw material from a customer and make finished goods for them, the job-work pattern common in Indian manufacturing that needed workarounds before. On the stock side, v16 adds landed cost on stock entries and a Serial & Batch Traceability report, which traces back to the raw materials and batches in a product or forward to every customer it reached.
Skimmable summary: an MRP workflow, inward subcontracting for customer-supplied material, landed cost on stock entries and serial/batch traceability, all gaps v15 users filled by hand or with custom reports.
Do the system requirements change when moving to v16?
Yes, and this catches people out. Frappe v15 needs Python 3.10 or later and Node 18 or later. Frappe v16 needs Python 3.14 and Node 24 or later (from the framework's pyproject.toml and package.json on the version-16 branch, checked 12 October 2026). A server set up for v15 in 2023 or 2024 almost always needs both upgraded before v16 will build its assets.
Frappe's v16 migration notes list those runtime minimums and the code changes; they do not require a new server. So the order is: upgrade Python and Node on the server, rebuild the bench's Python environment on 3.14, then switch the apps to version-16 and migrate. Building a fresh bench (or a fresh server, on your own or on the Frappe/ERPNext platform) with the new runtimes and restoring your backup onto it is the cleaner path when the old box carries years of drift, but it is a choice, not a requirement.
Skimmable summary: v16 needs Python 3.14 and Node 24 (v15: 3.10+ and 18+). Upgrade the runtimes first; a fresh bench or server is optional, and cleaner on an old box.
Should you move from v15 to v16 now?
Let need drive it. Move to v16 when one of its additions solves a current problem (MRP, formula-driven financial reports, inward subcontracting, the Chrome PDF engine) and you can test the upgrade properly. If v15 runs your business well, staying put is sound: Frappe's support page plans v15 support until the end of 2027.
Let a new major release settle through its early point releases while the apps you depend on catch up, then upgrade on a tested staging copy. Like any x.0 release, v16 had bugs reported in its first builds; that makes it new, not bad. If you upgrade early, budget more testing time and keep a tested rollback.
Wait longer if you run heavy customisations or critical integrations, because that is what a major upgrade puts at risk. One major version behind on a supported release is a normal position, not technical debt. Plan the move for a quiet business period. If you want a second opinion on your setup, talk to us.
Skimmable summary: upgrade when a v16 feature solves a real problem and you can test first; otherwise stay on v15, supported until the end of 2027 (planned), and let v16 settle.
How do you upgrade from ERPNext v15 to v16?
Run the whole process on a staging copy of your live site first, never on production. The upgrade runs through bench; the risk is in your customisations, custom apps and integrations, which must work on v16 before you commit. This is the order I follow.
- Take a full backup (database and files) and check it restores. An untested backup is not a backup.
- Upgrade the runtimes. Install Python 3.14 and Node 24 on the server and rebuild the bench's Python environment on 3.14, or build a fresh bench with them (see above).
- Upgrade a clone first, never production. Restore the backup onto a staging site and do the whole run there.
- Switch to version-16 and migrate on the clone:
bench switch-to-branch version-16 frappe erpnext --upgrade(with your other apps on their v16 branches), thenbench update. Read the migration output rather than skimming it. - Fix custom apps and customisations. This is where upgrades stall, not in the core. Custom apps written against Frappe's APIs usually need small changes (the migration notes list them: permission hooks, default sort order, IIFE report scripts); edits made directly to core files are the ones that break.
- Retest integrations, reports and print formats: payment gateways, e-invoicing, GST and TDS reports, custom reports and print formats, especially any you move to the Chrome engine.
- Test the workflows that matter: invoicing, stock entries, payroll, with real data, not a fresh demo company.
- Schedule the production cut-over in a quiet window (a Sunday works for most Indian businesses): back up production again, run the upgrade, re-run the same test list and check before reopening, with the backup and rollback within reach.
To see what breaks in ERPNext v15 vs v16 for your own customisations, use the ERPNext upgrade impact preview. Tick the kinds you have built, and it lists the documented changes for each, with its source.
How long it takes depends far more on your customisations and integrations than on the core upgrade, which is quick. A lightly customised system upgrades and tests in a short window; a heavily customised, multi-integration system needs more time on staging. Budget for testing, not just the upgrade command. Share the ERPNext v16 workspace guide with your team before go-live so nobody is lost in the new navigation.
Skimmable summary: back up and check the restore, upgrade Python and Node, upgrade a staging clone with bench, fix custom apps, retest integrations and reports, then cut over production in a quiet window with a fresh backup.
Frequently asked questions
+What is the main difference between ERPNext v15 and v16?
Direction. v15 was a stability release that consolidated the platform; v16 is a performance and depth release: up to 2x faster by Frappe's figure, with a new desk, Chrome-based PDF generation, and new accounting and manufacturing features. Both are free and open source under GPLv3.
+When was ERPNext v16 released?
The beta was scheduled for 15 November 2025 and the final release came on 12 January 2026, moved from a 6 December 2025 target to allow more testing. ERPNext v15 was released in October 2023.
+Is ERPNext v16 stable enough for production?
Yes. It has been in final release since January 2026 and had many point releases since (v16.50.0 on 6 October 2026). Any x.0 release settles over its early point releases while apps and integrations catch up, so test it on a staging copy of your own data first.
+Can I upgrade directly from ERPNext v15 to v16?
Yes, but it is not a drop-in. v16 needs Python 3.14 and Node 24, so the server's runtimes must be upgraded first (or a fresh bench built with them), and every custom app must be tested on v16. Always run the upgrade on a staging copy before production.
+Should I upgrade to ERPNext v16 now or wait?
Upgrade when a v16 feature (MRP, financial report templates, inward subcontracting) solves a real current problem and you can test first. Otherwise there is no forced move: Frappe plans v15 support until the end of 2027, so upgrade on your own schedule.
+How long does an ERPNext v15 to v16 upgrade take?
It depends far more on your customisations and integrations than on the core upgrade, which is quick. A lightly customised system upgrades and tests in a short window; a heavily customised one needs more time to check custom apps, reports and integrations on staging.
+Is it safe to stay on ERPNext v15?
Yes, for now. Frappe's support page plans v15 support until the end of 2027 (v16 until the end of 2029). Plan your v16 move well before v15's end of life rather than after it.
+Does ERPNext v16 cost more than v15?
No. ERPNext is free and open source under GPLv3 in both versions; there is no licence fee. Your costs are hosting, implementation and any support you choose, and they depend on your setup, not the version number.
+Will my v15 customisations work on v16?
Core functionality carries over, but custom apps and integrations written for v15 may need changes, especially anything that reads the old item-wise tax JSON or TDS fields, relies on the old default sort order, or uses classic print formats. Custom apps usually need little change; edits made directly to core files are the ones that break. Test every customisation on staging before cut-over.
Comments & ratings
No comments yet. Start a new discussion.
Manoj · Published on 20 July 2026
Worked with us? Leave a Google review