E-Invoice Corrections: Why You Can’t Just Cancel It

Once an invoice has cleared a tax authority, it is immutable. You cannot edit it. In most systems you cannot cancel it either, and where you can, the window is measured in hours and closing. What you get instead is a third verb: supersede. Issue a new document that points at the old one, and let the tax authority reconstruct the graph.

This is the part of e-invoicing that product teams model last and pay for first. The send is the easy bit — one document, one API call, one status. The lifecycle is a directed graph of documents that reference each other, some of which your counterparty creates, some of which lock others, and all of which are separately reportable.

Cancellation is a narrow exception, and it’s disappearing

India is the clearest illustration because its cancellation rule has a reason nobody expects. An e-invoice can be cancelled on the Invoice Registration Portal only within 24 hours of the IRN being generated — and the reason commonly given is that the IRP doesn’t store e-invoices for longer than that. The window on a legal operation is set by an infrastructure retention policy. After it closes, the portal simply blocks the option.

Three further constraints stack on top:

  • Amendment doesn’t exist at all. Once the IRN is generated the data is locked. Taxable value, tax rate, buyer details — none of it can be changed on the original. Changes are made when filing GSTR-1, and those get flagged to the officer, who may come back asking questions.
  • Partial cancellation is impossible. It’s the whole invoice or nothing.
  • A downstream document can veto it. If an e-way bill is active against the IRN, the IRP will not permit cancellation. The goods are moving; the invoice is pinned.

That last one is the shape of the whole problem. Your invoice is not a leaf node. Something else is holding a reference to it, and that reference removes an operation from your state machine.

Greece removes the operation differently, and SAP Hellas’s August 2024 implementation guide records it precisely: because the solution uses a service provider under the Greek YPAHES framework, the cancel function is no longer available, and companies must issue credit notes as a substitute for cancellations. Read the causation carefully — cancellation wasn’t banned outright, it was removed by the compliance route. The same SAP framework offers submission, cancellation, resubmission and deletion, with deletion only possible while the document is still in created status. Pick the service-provider path and one of those verbs quietly goes away.

Which means the available lifecycle operations are a function of the country and the architecture, not of your product. You do not get to decide whether your users can cancel.

Everything else is a new document pointing at the old one

The universal fallback is the credit note, and it’s worth being precise about what it is: not an edit, not a reversal flag, but a separate fiscal document with its own identity that references the original.

In India, once the 24 hours have passed, a credit note (for a reduction) or debit note (for an increase) referencing the original IRN is the only route — and that note must itself be e-invoiced where the supplier is inside the mandate threshold, generating its own IRN. The correction is recursive: fixing a reported document produces another reported document. In Italy, credit notes (TD04) and debit notes (TD05) go through the SdI referencing the original, on the same clearance path as the invoice itself.

ViDA then does something that makes this explicit in EU law. From 1 July 2030, Article 226 gains point 16: the sequential number of the corrected invoice, on a corrective invoice. The pointer becomes a mandatory legal field. And Article 264 puts point 16 inside the ten data points transmitted to the tax authority for a cross-border supply — so the edge of the graph is itself reported. The authority isn’t inferring the relationship from your reference field. It’s receiving it.

The simplified-invoice rule (Article 226b) has carried the same logic for years: a corrective document needs a specific and unambiguous reference to the initial invoice and to the specific details being amended. Note the second half. Not just “which invoice” — “what changed”.

What ViDA conspicuously does not add is a cancellation message. There is no “unsend” in the reporting model. Corrections are documents, and documents are all the authority sees.

Two countries, one question, opposite answers

Here’s the finding that should kill any attempt at a single global correction policy.

When Italy’s SdI rejects an invoice with a notifica di scarto, the invoice is legally treated as never issued, and the sender has five days to correct and resubmit — reusing the same invoice number and date to avoid penalties. The number must be reused, because as far as the law is concerned nothing was ever issued under it.

In India, after cancelling an IRN, you must not reuse the invoice number to generate a new one. The number is burned.

Same engineering question — is a document number reusable after a failed attempt? — and two mandates give opposite answers, both mandatory, both penalised. If your sequence generator has a global policy on reuse, it is wrong in at least one jurisdiction. This has to be per-country configuration, and it has to sit at the point where numbers are minted, which is usually the last place anyone wants country logic.

The graph has edges you don’t control

The lifecycle isn’t only yours to drive. Three examples, all live:

Your buyer can report you. Italy introduced document type TD29 in version 1.9 of the FatturaPA specification in April 2025, letting a buyer flag a supplier’s omitted or irregular invoice through the SdI — shifting part of the compliance responsibility onto the buyer. TD20 already allowed buyers to self-invoice omitted or irregular supplies. Your invoice’s lifecycle now has state transitions initiated by someone else’s finance team.

The counterparty’s clock is different from yours. In India, if an IRN is cancelled after the data has auto-populated into GSTR-1, the supplier amends GSTR-1 and the buyer’s GSTR-2B adjusts in the next cycle, generated on the 14th of the following month. The correction is instant on your side and up to a month late on theirs. Anything you build that assumes both parties see the same state at the same time is modelling a system that doesn’t exist.

Delivery failure creates obligations, not retries. Italy’s mancata consegna means the invoice is legally issued but the buyer’s channel was unreachable; the SdI parks it in their portal area, and the sender must retain the notification as proof and tell the customer. That’s a lifecycle branch whose next step is a phone call.

Payments and financing hang off the same document

The graph extends past tax. The Euro Retail Payments Board’s 2016 report defines a Request To Pay as a subset extracted from the invoice — the minimum needed to initiate payment, with a link back to the underlying invoice, and usually no tax detail or line items at all. That’s a fourth representation of the same transaction, with its own lifecycle, joined to the invoice by a reference.

Financing adds a fifth. OASIS built UBL as a general trade format aligned with ISO 20022 and designed to carry invoice financing, factoring and letters of credit. When an invoice is factored, a third party acquires a claim against a document that the tax authority may later treat as never having existed. The credit note that fixes your VAT position is also an event in somebody’s receivables book.

None of this is exotic. It’s the ordinary consequence of one document being referenced by several systems with different rules about what “cancelled” means.

What to model

Immutable documents, mutable graph. Never update a cleared invoice record. Append documents and edges. The tax authority’s view is a log, not a table — model yours the same way and reconciliation gets much easier.

Make the reference a first-class field, not a note. From 1 July 2030 the corrected invoice’s number is a legally mandated field that gets transmitted. Treat “which document does this supersede, and what changed” as structured data from the start; you’ll need both halves.

Model operations as per-country capabilities. Can this document be cancelled? For how long? Can the number be reused? Is a downstream document blocking it? Those are configuration, not code paths — India blocks cancellation with an active e-way bill, Greece removes cancel entirely on the service-provider route, Italy requires number reuse where India forbids it.

Assume corrections are recursive and reportable. A credit note against a reported invoice is itself a reported document with its own identifier and its own failure modes. If your reporting pipeline treats corrections as a special case outside the main flow, you have two pipelines and one of them is undertested.

Give the correction a reason, and keep it. Italy’s ravvedimento operoso lets businesses correct voluntarily and cut penalties substantially, but only where the correction is made before the authority opens a formal inspection — so the timestamp on your correction has money attached. Under ViDA, Article 138(1a) removes the exemption on an intra-Community supply where transmitted data is wrong, unless the failure can be duly justified. “Duly justified” is a field you either populated at the time or cannot reconstruct later.

Frequently asked questions

Can I edit an e-invoice after sending it?

No. In India the data is locked once the IRN is generated and amendment on the portal doesn’t exist. In clearance systems generally, the cleared document is the record; changes come through a new document that references it. Where a portal offers “amendment”, it usually means amending your return, not the invoice — and in India those amendments get flagged for the officer’s attention.

What’s the difference between cancelling and issuing a credit note?

Cancellation removes the invoice from existence, which is why it’s tightly time-boxed or unavailable. A credit note leaves the original standing and reverses its effect with a second document. India permits cancellation for 24 hours, then only credit notes. Greece, on the service-provider route, has no cancellation at all — credit notes substitute for it entirely.

Can I reuse the invoice number after a rejection?

It depends on the country, and the two big mandates disagree. Italy requires you to resubmit a rejected invoice with the same number and date within five days. India forbids reusing the number of a cancelled IRN. Make this configurable per jurisdiction.

Does a credit note need to be e-invoiced too?

Generally yes. In India a credit or debit note must itself be e-invoiced where the supplier is inside the mandate threshold, producing its own IRN. In Italy, TD04 credit notes and TD05 debit notes go through the SdI like any other document. Corrections are not a side channel.

Why can’t I cancel an invoice that has an e-way bill?

Because a downstream document is referencing it. India’s IRP refuses IRN cancellation while an e-way bill is active against it — the goods are in transit under that invoice, so the invoice can’t be unmade. It’s the clearest example of the general rule: your document’s available operations depend on what else in the graph points at it.