2 min readSep 7, 2026by jakub

Document Numbering

Give every invoice, shipment, credit memo and order a number your accountant will accept — one that follows the pattern your jurisdiction expects, never repeats, and can be explained line by line when someone asks where a gap came from.

Latest version: 1.0.0 — changelog

The Numbering Series grid, with the fiscal-aware actions column highlighted

Why it matters

  • Numbering that matches local rules. Build the number from date, store, website, document type and counter tokens instead of accepting Magento's single incrementing sequence.
  • Numbers that cannot collide. Every allocation passes through a claim ledger, so two documents issued at the same moment cannot take the same number.
  • A gap you can account for. The register records every allocation, reservation, conversion and failure, so a missing number has a recorded reason rather than a shrug.
  • Corrections that stay defensible. An assigned number can be changed by an authorized admin, with a mandatory reason, and the old number is retired permanently rather than silently reused.
  • Series you can retire safely. Once a series has issued its first document, its fiscal fields freeze — the rules stop moving under documents that already exist.

Features

FeatureBenefit
Numbering SeriesDefine one numbering scheme per document type and scope, instead of one global sequence for the whole store.
Format tokensCompose the number from date, store, website, document type and counter parts, so it reads the way your accountant expects.
Series matchersApply a series only to the store, website, customer group, country or currency it belongs to.
Strict and fast allocationChoose gapless numbering inside the document's own transaction, or faster throughput when contention matters more.
Per-scope countersRun a separate counter per store, per website or per token combination rather than one counter for everything.
Reset policiesRestart the counter daily, monthly or yearly — or never — without hand-editing anything.
Numbering RegisterRead an append-only record of every number issued, reserved, converted or refused.
Change an assigned numberCorrect a number after the fact, under ACL, with a reason recorded and the old number retired.
REST APIManage series from your own tooling or a deployment pipeline.
CLI commandsAudit the register, move a counter by hand, expire dead reservations, and renumber existing documents.

What sets it apart

  • API-first. Every series operation is available over REST, so numbering configuration can live in your deployment pipeline rather than in a screenshot of an admin form.
  • No third-party service. Counters, claims and the register live in your own database. Nothing about your sales documents leaves the store.

The Numbering Register, an append-only record of every numbering event

Supported versions

PHP 8.1, 8.2, 8.3, 8.4 and 8.5. Magento Open Source and Mage-OS on magento/framework ^103.0, with magento/module-sales ^103.0 or ^104.0.

Next steps

Document Numbering — Finance & Accounting — Extensions | qoliber Docs