What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Prevent duplicate invoice numbers by enforcing uniqueness in the database on the key that matches your business rules, then assigning numbers through a concurrency-safe allocator. A sequence alone is not a uniqueness guarantee. Make invoice creation atomic, handle constraint violations, and make retried requests idempotent. Keep in mind that uniqueness does not necessarily mean gapless numbering; legal and accounting requirements depend on jurisdiction and configuration.
Define what “unique” means for your invoices
Before choosing a database key or numbering mechanism, decide the business scope in which an invoice number must be unique. It might be unique across the entire database, within a company or legal entity, or within a combination such as entity, fiscal year, and document type. Imports and externally numbered invoices may need to follow the same rule or a clearly separated one.
As an Amazon Associate I earn from qualifying purchases.
Model that scope directly in the database. If numbers may repeat across companies, for example, the rule might be represented by a composite unique key on (company_id, invoice_number). That is only an example: use it only if the business and applicable requirements allow the same number in different companies. Normalize identifiers consistently, and avoid relying on ad hoc concatenation whose formatting can vary.
Enforce the rule with a unique constraint
Create a database UNIQUE constraint or unique index over the invoice-number column or composite key. This is the final defense against duplicate values, including when two application servers or background workers write at the same time.
#1 Best Overall
A sequence can generate candidate numbers, but it does not itself guarantee that values stored in a table are unique. Microsoft’s SQL Server documentation puts it directly: “If sequence values in a table are required to be unique, create a unique constraint on the column.” See Microsoft’s SQL Server sequence-number guidance. Use a composite constraint if the business key is composite.
Allocate numbers safely under concurrency
Do not use “read the current maximum, add one, then insert” as an unprotected allocation method. Concurrent requests can read the same maximum and choose the same next number. A unique constraint will reject one of the writes, but it is better to use an allocator suited to your database and scope.
Rank #2
- 2-Part Carbonless: Each invoice form features a 2-part carbonless design, providing a duplicate copy without the mess of carbon paper.
- Consecutive Numbering: Forms are consecutively numbered for easy tracking and organization.
- Wrap-Around Cover: A wrap-around cover separates individual forms, ensuring clean copies and preventing impression transfer to subsequent forms.
- Compact Size: The book measures 5-9/16" x 8-7/16", making it portable and convenient for on-the-go invoicing.
- 50 Sets per Book: Includes 50 sets per book, providing ample forms for business transactions.
Use a sequence when gaps are acceptable
A database sequence is often a straightforward concurrent allocator. In SQL Server, sequence values are generated outside the current transaction and are consumed even if the transaction rolls back. Caching and other circumstances can also leave gaps. Microsoft documents these behaviors in its sequence-number documentation. Pair the sequence with the unique constraint; do not assume its generated values automatically make the table unique.
Use a serialized counter when allocation requires tighter control
If your numbering rules require a counter scoped to an entity, year, or document type, maintain that counter in a database row or table and update it atomically under appropriate transactional locking. The allocation logic must serialize competing writers for the same scope. This can reduce concurrency for that counter, so choose the scope deliberately and test the database-specific locking behavior.
Rank #3
- Fast Clean Stamping; self-inking design eliminates separate ink pads; delivers smooth, mess-free impressions with every press; ideal for high-volume tasks and repetitive numbering
- 13 Rotating Digits For Flexibility; create long number sequences, pricing codes, and serial numbers; rotating 0–9 digits plus symbols give you full control for changing needs
- Clear Readable Impressions; compact .125" x 1.3" imprint size keeps numbers sharp and easy to read; helps maintain professional-looking documents and packaging
- Built For Daily Use; durable construction stands up to repeated stamping; reliable performance for offices, warehouses, shipping stations, and admin tasks
- Saves Time And Reduces Errors; skip writing or manual numbering; quickly stamp consistent sequences on invoices, inventory tags, forms, and packaging
Make invoice creation atomic and handle conflicts
Allocate the candidate number and create or post the invoice as one controlled workflow. Use a transaction appropriate to the lifecycle: if an insert fails, the application must not report the invoice as successfully issued. The database’s unique constraint remains necessary even when allocation is serialized, because imports, other services, configuration mistakes, or future code paths can still submit a conflicting number.
When the database reports a uniqueness violation, handle it explicitly. Depending on the workflow, safely request a new number and retry, or return a conflict for a caller to resolve. Never silently overwrite an existing invoice number. Record enough operational detail to distinguish a rejected collision from a numbering gap.
Rank #4
- Easy to use: Easy-operation number stamp. Use the digit pen to push the numbers forward to choose the number you need. When stamping numbers, do not do it too hard in order to lengthen its lifespan
- Perfect Size: The number stamp is just 2.3x1.4x5.1”, easy to carry and save your desk space. The typed number size is 0.09x0.19”.The number stamp is a must-have daily work helper
- Heavy-duty: The Number Stamp is made of metal construction which is durable and recyclable. Replacement ink pads are available to further extend the life of your self-inking stamp
- Widely Application: The Self Inking number stamp is perfect for invoice numbers, part numbers, inspector codes, and identification numbers, confidential codes etc. Good for bank, company, government, accounting and paper work
- Package Included: 1 x Stamp Machine, 2 x Stamp Pads, 1 x Stylus. Warm Tips: For transportation safety, ink is not included. Thanks
Protect against retried requests
Database uniqueness prevents two invoices from sharing the constrained key, but it does not by itself prevent the same create request from producing two invoices with different numbers after a timeout or job redelivery. Where duplicate delivery is possible, give the request or job a stable idempotency key, persist its association with the resulting invoice, and return the original outcome on retry. The exact storage and retry design depends on the API and event-processing architecture.
Free tools Windows power users keep installed
One-click scans. No signup required.
Decide whether gaps are allowed
Unique numbering and gapless numbering are separate requirements. A SQL Server sequence value can be consumed even when the transaction using it rolls back, and cached values or unused allocations can also contribute to gaps. A gap does not prove that a duplicate exists, and a numbering scheme with no observed gaps does not prove uniqueness.
If issued documents must follow stricter numbering rules, define precisely when an invoice becomes issued or posted, use a mechanism designed for that requirement, and keep an audit trail for voids and cancellations rather than rewriting history. Validate the rules for the relevant jurisdiction and document type; generic sequence behavior does not establish what local law requires.
Check how accounting products define numbering scope
Commercial systems illustrate why the scope and lifecycle point matter, but their settings are product-specific rather than universal database rules.
Quick Recap
- SAP Business ByDesign: Its August 2026 documentation describes numbering formats that can vary by company, tax country, and document type. It also notes that further criteria may apply in some countries and that gap reporting is legally required in certain countries. See SAP’s numbering guidance.
- Salesforce Billing: Its documentation describes invoice and credit memo number assignment on posting. A number is not assigned when no active sequence policy matches or when multiple active policies match, so policy coverage and ambiguity need operational checks. The feature also depends on specified editions and Revenue Cloud Billing licensing; see Salesforce’s sequence assignment documentation.
- Oracle Receivables: Oracle documents automatic transaction numbering and document sequences, while noting that manual numbering can allow duplicate transaction numbers when that option is enabled. Its displayed last-number field can be approximate because of caching. Check the actual transaction-source settings rather than assuming numbering configuration enforces uniqueness everywhere. See Oracle’s transaction-numbering guidance.
- Sage Intacct: Its Accounts Payable configuration documents selectable responses to duplicate bill or adjustment numbers, including blocking submission or posting until the number is unique. The described check is per vendor, not a globally unique invoice-number rule. See Sage Intacct’s configuration reference.
Implementation checklist
- Write down the complete uniqueness scope, including company or legal entity, period, document type, and imported-number cases where relevant.
- Represent that scope with a database unique constraint or index on the normalized key.
- Choose a sequence or serialized counter that matches the scope and acceptable gap behavior; do not depend on an unprotected maximum-plus-one query.
- Make allocation and invoice creation or posting transactional as appropriate, and handle unique-key violations deliberately.
- Use stable idempotency keys for retriable API calls or jobs that can create invoices.
- Monitor constraint rejections, gaps, voids, and cancellations as different events; maintain an audit trail that explains numbering outcomes.
- Confirm local legal and accounting requirements before treating gaplessness or a particular numbering scope as mandatory.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




