The allocation number turns invoice issuance from a local write into a call that can fail. What that changes in your architecture, why the threshold is a moving target you must not hard-code, and the failure paths to design for.
Key takeaways
- The architectural change is the important part: issuing an invoice now depends on an external service that can be slow or down. Anything that previously assumed a local, always-succeeds write needs rethinking.
- Never hard-code the threshold. It has already changed more than once during 2026, and a number baked into code silently stops matching the law without anything failing.
- This is a threshold on the invoice, not on the customer. The same customer can generate invoices on both sides of it, so the check belongs per-document.
- Design the failure path before the happy path. An invoice that cannot get a number is a business decision - hold, retry, or issue differently - and it is not the developer's call.
The Israel Invoices model requires tax invoices meeting the statutory conditions to carry an allocation number issued by the Tax Authority. For a software system the implication is sharp: issuing an invoice stopped being a local operation that always succeeds and became dependent on an external service. That is an architectural change, not an extra field.
To be clear: this article describes engineering implications only. It is not tax advice and does not determine what applies to your business - for any question about applicability, thresholds or reporting obligations, the business's accountant is the address. For general context see also allocation numbers for developers.
What changes architecturally
Before the model, issuing an invoice was essentially a write: the system allocated a sequential number, wrote a record, produced a PDF. No external dependency, therefore no real failure path.
Now there is a call to an external service inside the flow. And everything true of an external call is true here:
- It can be slow. If it sits inside a customer's HTTP request, your response time depends on it.
- It can fail. And now a state exists that did not before: a paid order with no invoice.
- It can time out and still succeed. The familiar problem from every invoicing integration.
The practical conclusion: invoice issuance should leave the user's synchronous path. The customer pays, receives confirmation, and issuance happens in the background - with a queue, controlled retries, and an error queue a human sees. A system that issues an invoice inside the checkout request will fail on precisely the day the external service is slow.
The threshold - and why it must not be hard-coded
The obligation applies above a certain amount. That threshold has changed more than once during 2026, as part of a phased rollout.
I am deliberately not stating a number here: any figure I write may be inaccurate by the time you read it, and an inaccurate number in an article becomes an inaccurate number in code. Take the current threshold from the Tax Authority or from the business's accountant.
What does matter in engineering terms, and will not change:
- The threshold must be a configuration parameter, never a constant in code. A threshold change should be a settings update - not a deploy.
- A hard-coded value fails silently. If the threshold drops and the code still checks the old one, the system simply will not request a number for invoices that require it. Nothing crashes, nobody finds out - until an audit.
- The threshold is on the document, not the customer. The same customer can generate invoices above and below it. The check belongs at document level.
- Record which threshold was in force at the moment of issuance, alongside the document. In a later enquiry that is the evidence the system behaved correctly at the time.
Who actually makes the call
In most cases - not you.
If the business issues invoices through an invoicing system such as Morning, iCount, EZcount, Rivhit or SUMIT, that system handles issuance against the Tax Authority. You are not required to implement it, and you should not want to.
What is required of you:
- Confirm the system the client uses actually supports it and on which version or plan - a question for their support, in writing, before you quote.
- Handle the response. If issuance failed because no number was obtained, your system must know that and not treat it as success.
- Store what comes back alongside the rest of the document details.
If the business issues invoices from a system you built from scratch, that is an entirely different story requiring an accountant's involvement throughout rather than only at the end.
Failure paths - design them before the happy path
This is the most commonly skipped part. Three scenarios need an agreed answer before go-live:
1. The service is unavailable at issuance time
What do you do? Hold the document and retry? Issue without and correct later? Block the transaction?
That is a business and accounting decision, not a technical one. The developer should not choose it, and the system should not choose it alone. Get it in writing from the accountant.
2. A timeout that may have succeeded
The familiar problem: you sent a request, got no response, and do not know whether the document was issued. A timeout is not a failure - it is an absence of knowledge.
Do not retry automatically. Store your own unique reference on the order and check whether a matching document already exists before any retry. A missing document is fixed in a minute; a duplicate tax document needs a cancellation, an offsetting document and a paper trail.
3. Failures accumulating
If the service was down for an hour, there is now a queue of pending invoices. Somebody needs to know.
An error queue nobody checks is an error queue that does not exist. You need an alert when the queue exceeds a sensible size, and a person who looks at it in the morning.
Checklist
- Establish with the accountant what applies to the business - do not infer it from an article, including this one.
- Confirm in writing that the invoicing system in use supports issuance, and on which plan.
- Move issuance out of the synchronous path into a background queue.
- Threshold as a configuration parameter, never in code.
- Record with every document which threshold was in force.
- Get in writing what to do when the service is unavailable.
- Duplicate protection before issuing the first production document.
- An alert on a filling error queue.
Frequently asked questions
What does the allocation number requirement change in a software system?
It turns invoice issuance from a local write that always succeeds into a dependency on an external service that can be slow, fail, or time out while having succeeded. The main consequence is that issuance should move out of the user's synchronous request into a background queue with controlled retries and an error queue somebody actually monitors.
What is the allocation number threshold?
The threshold has changed more than once during 2026 as part of a phased rollout, so no article should be treated as the source for it - including this one. Take the current figure from the Tax Authority or from the business's accountant. What matters in engineering terms is that the threshold lives in configuration rather than in code, because a hard-coded value fails silently when the law moves.
Do I need to implement allocation number issuance myself?
Usually not. If the business issues invoices through an invoicing system such as Morning, iCount, EZcount, Rivhit or SUMIT, that system handles issuance. What is required of you is to confirm in writing that the system and plan in use support it, to handle a failed response rather than treating it as success, and to store what comes back with the document.
What should happen if an invoice cannot get an allocation number?
That is a business and accounting decision requiring written direction from the accountant - hold the document and retry, issue differently, or block the transaction. It is not a choice the developer or the system should make alone, and it needs an agreed answer before go-live rather than being improvised the first time the service is unavailable.
Is the allocation threshold checked per customer or per invoice?
Per document. The same customer can generate invoices on both sides of the threshold, so a check applied at customer level will produce wrong results in both directions. Record alongside each document which threshold was in force at the time it was issued - that is what demonstrates the system behaved correctly if the question arises later.
Keep reading
Related service
Integrations
Make the systems you already pay for talk to each other.
About the author
Yehonatan Saadia
Freelance automation, web & MVP engineer
I'm Yehonatan Saadia, a senior engineer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.
Work with meHave a project like this?
Tell me what you're trying to automate or build and I'll tell you the fastest reliable way to ship it.
