This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+10 more
ReleasePort's take
Light signalERPNext v16.27.0 introduces several usability and stability enhancements across its UI components.
Why it matters: Bug‑fixes (severity 40) address double‑counting in credit notes, numeric attribute handling, and banking statement imports—critical for financial accuracy; new setup questions streamline module selection during installation.
Summary
AI summaryBroad release touches Bug Fixes, Other Changes, Performance Improvements, and https://github.com/frappe/erpnext/pull/56707.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Allows selecting Account and Cost Center values while editing Company even if user lacks normal access. Allows selecting Account and Cost Center values while editing Company even if user lacks normal access. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Medium |
Item form hides price and stock information for users without access to Item Price, Warehouse, or Bin, avoiding permission‑error pop‑ups. Item form hides price and stock information for users without access to Item Price, Warehouse, or Bin, avoiding permission‑error pop‑ups. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Adds a new setup step that asks business questions and preselects modules. Adds a new setup step that asks business questions and preselects modules. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Feature | Low |
Filters _Service Level Agreement_ field to show only agreements for the current document type. Filters _Service Level Agreement_ field to show only agreements for the current document type. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Feature | Low |
Allows creation of a Material Request from a Work Order for raw materials. Allows creation of a Material Request from a Work Order for raw materials. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Feature | Low |
Enables partial transfer of Pick List, creating multiple Stock Entries as stock moves in stages. Enables partial transfer of Pick List, creating multiple Stock Entries as stock moves in stages. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Feature | Low |
Adds note on Additional Discount Amount explaining fixed discount application order in Sales Order. Adds note on Additional Discount Amount explaining fixed discount application order in Sales Order. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Feature | Low |
Creates Multiple Variants dialog uses compact list for numeric ranges and rejects out‑of‑range values before creation. Creates Multiple Variants dialog uses compact list for numeric ranges and rejects out‑of‑range values before creation. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Adds check in Stock Balance report to avoid crashing when batch entries are mistaken for normal stock quantities. Adds check in Stock Balance report to avoid crashing when batch entries are mistaken for normal stock quantities. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Locks fields and line items in Journal Entry reversal drafts as read‑only while keeping Save/Submit buttons available. Locks fields and line items in Journal Entry reversal drafts as read‑only while keeping Save/Submit buttons available. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Uses customer’s default currency when creating a Quotation from Customer, filling in the exchange rate on the quote. Uses customer’s default currency when creating a Quotation from Customer, filling in the exchange rate on the quote. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Standard and item‑image print layouts now show letterhead footer (with page numbers) in PDFs. Standard and item‑image print layouts now show letterhead footer (with page numbers) in PDFs. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Purchase Receipt reserves stock only for Production Plan records with _Reserve Stock_ enabled; other plans stay out of reservation. Purchase Receipt reserves stock only for Production Plan records with _Reserve Stock_ enabled; other plans stay out of reservation. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
For internal transfers within the same company, Purchase Receipt and Purchase Invoice use source warehouse value on receiving side to avoid extra cost differences. For internal transfers within the same company, Purchase Receipt and Purchase Invoice use source warehouse value on receiving side to avoid extra cost differences. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Work Order carries over serial numbers or batches from one operation to the next for semi‑finished goods; Job Card transfers fill them automatically. Work Order carries over serial numbers or batches from one operation to the next for semi‑finished goods; Job Card transfers fill them automatically. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Stock Entry rows use _Cost Center_ from Item Group or Brand defaults when set, instead of always using company default. Stock Entry rows use _Cost Center_ from Item Group or Brand defaults when set, instead of always using company default. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Feature | Low |
Payment Reconciliation allows small rounding differences when matching amounts, avoiding error for tiny decimal mismatches. Payment Reconciliation allows small rounding differences when matching amounts, avoiding error for tiny decimal mismatches. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Bugfix | Medium |
Updates linked Sales Order when credit note is submitted from return Delivery Note, preventing double‑counting of returned items. Updates linked Sales Order when credit note is submitted from return Delivery Note, preventing double‑counting of returned items. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Bugfix | Medium |
Adds option to link Quality Inspection in Stock Entry when specific Purpose is selected. Adds option to link Quality Inspection in Stock Entry when specific Purpose is selected. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Bugfix | Medium |
Preserves formatting of translated banking text and uses custom formula parser for rule checks. Preserves formatting of translated banking text and uses custom formula parser for rule checks. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Bugfix | Medium |
Bank statement imports now ignore plus/minus signs on amounts and try an empty password for protected PDFs. Bank statement imports now ignore plus/minus signs on amounts and try an empty password for protected PDFs. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Bugfix | Medium |
Clears existing values when an Item Attribute is marked numeric, ensuring the setting applies correctly. Clears existing values when an Item Attribute is marked numeric, ensuring the setting applies correctly. Source: llm_adapter@2026-07-13 Confidence: high |
— |
| Bugfix | Medium |
Uses reversal date (or today) for reverse entries when Immutable Ledger is enabled, avoiding books‑closed errors on backdated vouchers. Uses reversal date (or today) for reverse entries when Immutable Ledger is enabled, avoiding books‑closed errors on backdated vouchers. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Bugfix | Medium |
Recalculates transferred quantities before updating Work Order status, allowing orders to leave 'Not Started' once material transfers are recorded. Recalculates transferred quantities before updating Work Order status, allowing orders to leave 'Not Started' once material transfers are recorded. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Bugfix | Medium |
Prevents changing a serialized Item to non‑serialized when a Serial and Batch Bundle still exists; bundle must be deleted or cancelled first. Prevents changing a serialized Item to non‑serialized when a Serial and Batch Bundle still exists; bundle must be deleted or cancelled first. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Bugfix | Medium |
Prevents Delivery Note and Sales Invoice from creating serial/batch entries for items not set up for tracking, avoiding save errors. Prevents Delivery Note and Sales Invoice from creating serial/batch entries for items not set up for tracking, avoiding save errors. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Bugfix | Medium |
Fixes "Show Incorrect Entries" filter in stock ledger report to list matching rows, stops false wrong markings for serial/batch entries without queue details, and uses correct rounding. Fixes "Show Incorrect Entries" filter in stock ledger report to list matching rows, stops false wrong markings for serial/batch entries without queue details, and uses correct rounding. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Bugfix | Medium |
Fixes Process Period Closing Voucher getting stuck in Running when another closing process starts; also speeds up related record lookup reducing errors during period close. Fixes Process Period Closing Voucher getting stuck in Running when another closing process starts; also speeds up related record lookup reducing errors during period close. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Bugfix | Low |
Clears _Clearance Date_ on amended reconciled Payment Entry, Journal Entry, Purchase Invoice, or Sales Invoice copies. Clears _Clearance Date_ on amended reconciled Payment Entry, Journal Entry, Purchase Invoice, or Sales Invoice copies. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
| Bugfix | Low |
Skips Onboarding Step entries linked to missing document types during upgrades, allowing update to continue. Skips Onboarding Step entries linked to missing document types during upgrades, allowing update to continue. Source: granite4.1:30b@2026-07-14-audit Confidence: low |
— |
Full changelog
Features
- Adds a new setup step that asks a few questions about your business and preselects modules based on the kind of work you do. (https://github.com/frappe/erpnext/pull/56707)
- The Service Level Agreement field now only shows agreements for the current document type. Existing Service Level Agreement fields also use the same filter after an update. (https://github.com/frappe/erpnext/pull/56956)
- Adds a way to create a Material Request from a Work Order for raw materials. (https://github.com/frappe/erpnext/pull/56980)
- A Pick List can now be transferred in parts, so you can create more than one Stock Entry from it as stock is moved in stages. It shows a Partially Transferred status until the full quantity is moved, and existing Pick List records that already have transferred stock stay completed. (https://github.com/frappe/erpnext/pull/56915)
- Adds a note on Additional Discount Amount in Sales Order that explains fixed discounts are applied to linked Delivery Note and Sales Invoice documents in creation order, rather than split evenly across them. It also points users to Additional Discount Percentage when they want the discount spread across item prices. (https://github.com/frappe/erpnext/pull/56436)
Bug Fixes
- Updates the linked Sales Order when a credit note is submitted from a return Delivery Note, so returned items are no longer counted in the billed amount. (https://github.com/frappe/erpnext/pull/56671)
- Fixes Stock Entry by adding the option to link a Quality Inspection when a specific Purpose is selected. (https://github.com/frappe/erpnext/pull/56672)
- Displays translated banking text with its formatting intact. Uses a custom formula parser when checking banking rules. (https://github.com/frappe/erpnext/pull/56647)
- Bank statement imports now ignore plus or minus signs on amounts in credit/debit columns. PDF bank statements marked as protected also try an empty password first if no password is entered, so some files open instead of showing a password error. (https://github.com/frappe/erpnext/pull/56694)
- Clears existing values when you mark an Item Attribute as numeric, so it saves with the numeric setting applied.
The "Create Multiple Variants" dialog now uses a compact list for numeric ranges instead of showing every value, and it rejects values outside the allowed range before creating variants. (https://github.com/frappe/erpnext/pull/56742)
- When Immutable Ledger is enabled, reverse entries now use the reversal date, or today's date if none is entered, instead of the original voucher date, for checks against closed accounting periods. This can prevent a books-closed error when canceling backdated vouchers in an open period. (https://github.com/frappe/erpnext/pull/56752)
- Adds a check in the "Stock Balance" report when Show Stock Ageing Data is enabled so a batch entry at the top of the stock list is not mistaken for a normal stock quantity. This prevents the report from crashing when some stock entries have batch details and others do not. (https://github.com/frappe/erpnext/pull/56764)
- Recalculates transferred quantities before updating Work Order status, so each order can leave 'Not Started' once the latest material transfers are recorded. (https://github.com/frappe/erpnext/pull/56753)
- Amending a reconciled Payment Entry, Journal Entry, Purchase Invoice, or Sales Invoice clears the Clearance Date on the amended copy, so the previous date does not carry over. (https://github.com/frappe/erpnext/pull/55970)
- Locks fields and line items in Journal Entry reversal drafts as read-only while keeping the "Save" and "Submit" buttons available. (https://github.com/frappe/erpnext/pull/56772)
- Prevents changing a serialized Item to non-serialized when a Serial and Batch Bundle still exists. The bundle must be deleted or cancelled first before the change can be saved. (https://github.com/frappe/erpnext/pull/56775)
- Uses the customer’s default currency when creating a Quotation from Customer, so the exchange rate is filled in on the quote. (https://github.com/frappe/erpnext/pull/56712)
- When editing a Company, you can now select Account and Cost Center values even if you do not normally have access to them. (https://github.com/frappe/erpnext/pull/56795)
- Adds a check during upgrades that skips Onboarding Step entries linked to missing document types, so the update can continue. (https://github.com/frappe/erpnext/pull/56805)
- Prevents Delivery Note and Sales Invoice from creating serial and batch entries for items that are not set up for serial or batch tracking. This avoids save errors on those documents. (https://github.com/frappe/erpnext/pull/56803)
- Several standard and item-image print layouts now show the footer from the letterhead in PDFs. Page numbers also appear in that footer. (https://github.com/frappe/erpnext/pull/56813)
- The "Show Incorrect Entries" filter in the stock ledger report now lists the matching rows again. The report also stops marking some serial and batch entries as wrong when no queue details are available, and it uses the correct rounding when comparing stock values and quantities. (https://github.com/frappe/erpnext/pull/56839)
- Updates Purchase Receipt so it reserves stock only for Production Plan records with Reserve Stock enabled. Plans without that option stay out of stock reservation when you receive goods. (https://github.com/frappe/erpnext/pull/56825)
- For internal transfers within the same company, Purchase Receipt and Purchase Invoice use the value from the source warehouse on the receiving side. This avoids extra cost differences when the receipt value differs from the source value. (https://github.com/frappe/erpnext/pull/56677)
- For semi-finished goods, Work Order now carries over the serial numbers or batches from one operation to the next. Job Card transfers and manufacturing entries fill them in automatically. (https://github.com/frappe/erpnext/pull/56861)
- Stock Entry rows now use the Cost Center from Item Group or Brand defaults when they are set instead of always using the company default. (https://github.com/frappe/erpnext/pull/56863)
- The Item form now hides price and stock information for users without access to Item Price, Warehouse, or Bin, instead of showing permission error pop-ups when the form opens. (https://github.com/frappe/erpnext/pull/56870)
- Fixes an issue where Process Period Closing Voucher can stay stuck in Running when another closing process starts before the first one finishes. It also finds related records faster, which reduces errors while closing periods. (https://github.com/frappe/erpnext/pull/56876)
- Updates Payment Reconciliation to allow small rounding differences when matching amounts. This avoids an error when totals differ by only a tiny decimal amount. (https://github.com/frappe/erpnext/pull/56938)
- Adds permission checks in the Payment Entry form for customer or supplier details and linked Account and Bank Account records. Users now see only records they can access. (https://github.com/frappe/erpnext/pull/56946)
- Adds a check in Pricing Rule that blocks saving a rule with both an item template and one of its variants. This avoids duplicate matches that can later show a false "Multiple Price Rules exist" message. (https://github.com/frappe/erpnext/pull/56940)
- Moves the Company custom field creation to a later step during updates, after the rest of the setup completes. (https://github.com/frappe/erpnext/pull/56965)
- When Frappe CRM is installed on the same site, CRM Settings show Allowed Users only for remote connections and clear any saved entries automatically. Customer creation on the same site now uses the usual site permissions, and Enable Frappe CRM Data Synchronization turns off when the app is removed. (https://github.com/frappe/erpnext/pull/56969)
- Changing the Routing on a BOM refreshes the Operations table with the selected routing’s operations instead of keeping the previous list. The updated operations stay in place after you save. (https://github.com/frappe/erpnext/pull/56998)
- Updates the Work Order status to In Process when only some of the required items are transferred from a Pick List. (https://github.com/frappe/erpnext/pull/56836)
- Adds a validation in Work Order that blocks saving when Planned End Date is earlier than Planned Start Date. (https://github.com/frappe/erpnext/pull/56996)
- When an abbreviation changes in Item Attribute, item variants that use that abbreviation are renamed to match the new Item Code. Their Item Name is updated too, even if the name was changed manually. (https://github.com/frappe/erpnext/pull/56988)
- When stock quantities are recalculated for serial and batch bundles, the system uses the quantity from the original stock transaction instead of the bundle’s recalculated total. This helps prevent later edits to bundle lines from changing the recorded quantity for that transaction. (https://github.com/frappe/erpnext/pull/56835)
- When Posting Date or Posting Time is missing, Serial and Batch Bundle uses the current date and time instead. It also accepts the usual form details when serial and batch records are saved, instead of running into an error. (https://github.com/frappe/erpnext/pull/57015)
- The "Stock and Account Value Comparison" report now reposts purchase entries from the original purchase record instead of by item and warehouse. This lets the report update the affected purchase record directly when its stock and accounting values differ. (https://github.com/frappe/erpnext/pull/56608)
- Skips Pick List items that are already fully delivered when creating a Delivery Note, so they do not appear again as empty lines. (https://github.com/frappe/erpnext/pull/57006)
- Trend reports now display translated headings for the columns used to group the data, so the report labels match your chosen language instead of staying in English. (https://github.com/frappe/erpnext/pull/57028)
- Updates Opening Invoice Creation Tool Item so Outstanding Amount uses the selected company’s default currency instead of the global default currency. This shows the matching currency symbol when you work with more than one company. (https://github.com/frappe/erpnext/pull/57009)
- When you create a Payment Entry from a Payment Request, the payment references section shows the invoice total and remaining balance instead of the payment request amount. (https://github.com/frappe/erpnext/pull/57042)
- The Payment Reconciliation form now respects your permissions on accounting dimensions and only shows the values you can use. (https://github.com/frappe/erpnext/pull/56560)
- Uses the quantity in stock when calculating prices that depend on quantity for items entered in a different unit of measure. This helps prevent the price from changing after the item is saved. (https://github.com/frappe/erpnext/pull/57052)
- The "Sales Person-wise Transaction Summary" report now keeps the Document Type filter separate from the other filters and applies the Sales Person, Item Group, and Brand filters only when they are selected. This avoids errors from filters that do not apply to the selected Document Type and skips loading every item when no item filter is selected. (https://github.com/frappe/erpnext/pull/56908)
- Rows with values in the segment columns are no longer treated as blank in the columnar "Balance Sheet" and "Profit and Loss" reports. (https://github.com/frappe/erpnext/pull/57053)
- Allows Bank Statement Import Log to accept negative Closing Balance values, so bank statements with a balance below zero can be imported. (https://github.com/frappe/erpnext/pull/57054)
- Sorts open tasks and events in the Activities section by date, so earlier items appear first. (https://github.com/frappe/erpnext/pull/57056)
- The Philippines Chart of Accounts template no longer marks Customer Deposits as a payable account. New companies created from this template now use Accounts Payable - Trade for supplier bills. (https://github.com/frappe/erpnext/pull/57061)
- Keeps the rows you entered in Opening Invoice Creation Tool when one invoice cannot be created, so you can correct the error and try again. Shows the success message only when there are no errors. (https://github.com/frappe/erpnext/pull/57058)
- Requires permission to view a document before showing its accounting and stock ledger previews. (https://github.com/frappe/erpnext/pull/57039)
- Adds Job Card handling when a Stock Entry is created from a Pick List linked to a Job Card, filling in WIP Warehouse and Project, linking the Stock Entry to the related Job Card, and marking it as
Material Transfer for Manufacture. It also marks Stock Entry records created from Work Order Pick Lists asMaterial Transfer for Manufacture. (https://github.com/frappe/erpnext/pull/57044) - Makes the Represents Company field in Purchase Invoice read-only and keeps it out of access checks, so invoices are not hidden by that field when company-based permissions are in use. (https://github.com/frappe/erpnext/pull/57075)
Performance Improvements
- Looks up stock quantities for Delivery Note items and packed items in bulk instead of checking them one by one. Saving delivery notes with many items can take less time. (https://github.com/frappe/erpnext/pull/56994)
- The automatic reorder process now looks up the warehouse structure once instead of loading each Warehouse record repeatedly. This reduces the time needed to check stock in warehouses with many levels. (https://github.com/frappe/erpnext/pull/57024)
Other Changes
- Limits the Item Variant Of filter to items that can have variants, so regular items and item variants no longer appear in the list. (https://github.com/frappe/erpnext/pull/57000)
Authors: @Sudharsanan11, @ruthra-kumar, @harisansari008, @rohitwaghchaure, @mihir-kandoi, @akhtarmohsin, @Jatin3128, @nabinhait, @diptanilsaha, @khushi8112, @nikkothari22, @Shllokkk, @barredterra, @ervishnucs, @raghavisruia, @umairsy, @Pandiyan5273, @rtdany10, @Nihantra-Patel
Reviewers: @IMS94, @github-code-quality[bot], @mihir-kandoi, @Abdeali099, @nikkothari22, @barredterra, @shahzeelahmed, @ruthra-kumar, @Jatin3128, @nabinhait, @diptanilsaha, @rohitwaghchaure
For these release notes, we used an LLM (OpenAI gpt-5.4-mini) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
Changes with the following labels were excluded:
- skip-release-notes
Changes with the following types were excluded:
- chore
- build
- style
- refactor
- docs
- test
- ci
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Related tools
Beta — feedback welcome: [email protected]