Document Numbering
Configure how document codes like PO/2026-27/00042 are built and when they are assigned.
Document Numbering#
Every transactional document in Neriyam has a unique code — PO/2026-27/00042, SO/2026-27/00100. The Document Numbering settings page controls how those codes are composed, which documents use which series, and when the code is stamped on the document.
Read Document Numbering first for the concepts. This page documents the UI.
Settings › Document Numbering in the sidebar.
Two views#
The page has two views you switch between:
- Document Types (default) — the table mapping each document type to its numbering series
- Series Management (via a toggle/tab or
?view=seriesURL) — CRUD on the numbering series themselves
Document Types view#
The main table showing every document type and its assigned series.
Columns:
- Document Type — e.g., "Purchase Order", "Sales Order", "Goods Receipt Note"
- Series — the series currently assigned (click to change)
- Format — the template used by the series (e.g.,
PO/{FY_START,4}-{FY_END,2}/{SEQ,5}) - Preview — a live example of the next number the series will generate
- Reset Frequency — how often the counter resets
- Assign On — when the code is stamped on documents
- Used By — other document types sharing this series
- Actions — change the assigned series
Changing the series for a document type#
- Click the series cell for the row you want to change
- A dialog opens showing the current series + any other document types sharing it
- Pick a different existing series from the dropdown, or click + New Series to create one inline
- Save
Changing the series does not rename existing documents. Codes already assigned stay as they are. New codes use the new series.
Series Management view#
Each series is a numbering sequence with its own counter and formatting rules.
Series list#
Shows all existing series with:
- Identifier (e.g.,
PO,PO-EXPORT) - Name (human-readable)
- Format (template)
- Locked or Orphaned badges where applicable
- Actions — edit, delete
Locked vs. orphaned#
- Locked — at least one document has been generated using this series. Its format, reset frequency, and increment pattern cannot change (that would break historical codes). You can still edit its name and toggle auto-numbering.
- Orphaned — no document types are assigned to this series. You can safely delete it (unless also locked).
A legend on the page explains both states.
Creating or editing a series#
Fields:
| Field | Required | Notes |
|---|---|---|
| Identifier | Yes | Short unique code (e.g., PO) |
| Name | Yes | Human-readable (e.g., "Purchase Orders — 2026") |
| Format | Yes | Template string using placeholders |
| Auto Numbering | Yes | Toggle — generate numbers automatically vs. manual entry |
| Allow Override | No | Permit users to type their own number |
| Assign On | Yes | On Creation / On Submit / On Approval |
| Reset Frequency | Yes | Never, Fiscal Year, Calendar Year, Quarterly, Monthly, Weekly, Daily |
Format placeholders#
The Format field is a single template string that mixes placeholders with literal characters. Anything inside {...} is a placeholder; everything else (slashes, dashes, letters) is taken literally and appears as-is in the generated code.
Placeholders accept an optional width modifier using a comma — {SEQ,5} means "the serial, zero-padded to a minimum of 5 digits." The number after the comma is the minimum width / padding length.
| Placeholder | Resolves to | Width |
|---|---|---|
{DOC_ID} | The series' Identifier field (e.g., PO) | — |
{SEQ} / {SEQ,N} | Running serial number; padded to N digits | {SEQ,5} → 00042 |
{FY_START} / {FY_START,N} | Fiscal year start year, optionally truncated | {FY_START,4} → 2026 |
{FY_END} / {FY_END,N} | Fiscal year end year, optionally truncated | {FY_END,2} → 27 |
{YEAR} / {YEAR,N} | Calendar year, optionally truncated | {YEAR,2} → 26 |
{MONTH} | Month, zero-padded to 2 digits | — |
{DAY} | Day, zero-padded to 2 digits | — |
{QUARTER} | Calendar quarter (1–4) | — |
{WEEK} | ISO week number | — |
Click-to-insert buttons above the format input let you drop placeholders without typing the braces.
Worked example#
PO/{FY_START,4}-{FY_END,2}/{SEQ,5} produces:
PO/(literal)2026(FY_START, padded to 4 digits)-(literal)27(FY_END, truncated to 2 digits)/(literal)00042(SEQ, padded to 5 digits)
Final code: PO/2026-27/00042
Live preview#
As you type, Neriyam shows a live preview of the next number. If the format is incomplete or invalid, the preview shows a hint instead.
Assign On#
- On Creation — a real code is allocated the moment the record is saved as a draft. No draft ref appears; the counter advances immediately.
- On Submit — the code is allocated when you click Submit for Approval. Drafts carry a temporary draft ref until then.
- On Approve — the code is allocated at approval. Drafts and pending records carry a draft ref.
Most organizations pick On Submit for transactional documents (PR, PO, SO) and On Creation for masters (Items, Customers, Suppliers).
Reset Frequency#
Choose when the serial counter resets:
- Never — continuous sequence forever
- Fiscal Year — resets at the start of your fiscal year (most common in India)
- Calendar Year — resets on January 1
- Quarterly, Monthly, Weekly, Daily — less common; mostly used for logbooks
Deleting a series#
- Orphaned + no documents generated → can delete; confirmation dialog
- Locked (documents exist) → cannot delete; the dialog shows how many documents use it
Permissions#
| Action | Permission |
|---|---|
| View Document Numbering | TENANT.VIEW_TENANT or TENANT.MANAGE_TENANT |
| Create / edit series, change assignments | TENANT.MANAGE_TENANT |
Related#
- Document Numbering concept — the story behind the UI
- Approval workflow — where Assign On interacts with Submit and Approve
Last updated