Hungary was running a real-time invoice data reporting obligation in production while most of the rest of Europe was still arguing about whether such a thing was proportionate. That is the least useful fact about it. The useful fact is that the obligation did not arrive finished: it started narrow, it widened in stages, and the taxpayers inside it had to keep pace with a data schema that kept moving underneath them.
Anybody implementing a newer mandate is looking at the first version of their own regime and quietly treating it as the final one. It will not be. So this piece is light on Hungarian specifics and heavy on what they imply, because the specifics are the part that changes.
Reporting, not invoicing
Start with what the obligation is not. It does not require a structured electronic invoice to be issued to the customer, and it does not put a platform between seller and buyer. The obligation runs sideways: structured data about the invoice goes to the tax and customs administration, machine to machine, immediately after the invoice is issued. What the customer receives can stay exactly as it was.
That distinction — an obligation on the data rather than on the document — is the one that separates e-invoicing from e-reporting, and it decides the shape of the project that follows. A reporting mandate can be met without changing anything a customer sees, which makes it look cheap. It is not cheap. It moves the cost onto the part of the business nobody demonstrates in a sales meeting: the accuracy of data you were already holding.
The scope that kept growing
The obligation did not begin as a general one. It applied at first to domestic business-to-business invoices, and only where the VAT charged exceeded a monetary threshold. That threshold was lowered, and then it was removed. The perimeter later widened beyond domestic supplies between businesses to take in invoices issued to private individuals and supplies to customers in other Member States, so that in substance every invoice issued under Hungarian invoicing rules ended up inside the regime.
Read that sequence as a design, not an accident. Starting narrow gives an administration a small population of large, well-resourced taxpayers against which to debug the interface. Removing the threshold afterwards is politically easier than a general obligation on day one, and it costs almost nothing, because by then the interface is proven. Every mandate now in front of you has the same incentive structure.
An exemption written into a launch specification stages the administration's workload; it is not a permanent concession. A business that builds its reporting filter around the current threshold is scheduling its own rework.
A schema is a subscription, not a purchase
The reporting interface is defined by a published data schema, and that schema has been through successive versions. Each one changes something: an element becomes mandatory, a code list gains values, a structure is reworked to carry a transaction type that was previously out of scope.
This is where "we are compliant" quietly stops being true. Compliance with a versioned interface is a state you are in on a given date, not a property you acquired. Where a transition period is offered — and it usually is — both versions work for a while, and that window is the whole of your available project time. It is routinely shorter than the internal approval cycle needed to fund a change to a finance system, which is why the work tends to happen late and under pressure. The consequence is a line in the operating budget rather than the capital budget, and a named person who reads interface release notes after everyone else has moved on.
The administration reads your data before you do
Near real time means what it says. A structured record of what you invoiced reaches the administration within minutes of issue and is validated on arrival. The month-end close that would once have caught a wrong tax category or an impossible total now runs weeks after somebody outside your business has already seen the error.
The defects are not new. Customer tax identifiers that were never checked, invoice numbering that restarts in a second system, tax codes chosen by a habit that predates a rate change — all of it existed before, and it survived because nothing outside the business ever looked at it in detail. Transmission is the thing that looks. And once an administration holds structured data from both sides of a domestic transaction, it can compare the two: a disagreement that used to be settled by a phone call becomes a discrepancy with a record attached.
Confirmation that a report was received and passed the interface's checks means the message was well formed and arrived. It says nothing about whether the supply was correctly treated for VAT.
What a newer mandate can take from a mature one
| Lesson from a mature regime | What it obliges you to do |
|---|---|
| The first perimeter is not the last | Build for every document type you issue, and record what you left out and why |
| Thresholds are transitional | Hold thresholds as configuration somebody can change, never as logic needing a release |
| Schema versions carry end dates | Fund maintenance, not a project, and name the person who reads the release notes |
| Reporting is immediate, correction is not | Staff a queue watched every working day, with authority to fix the source document |
| The administration keeps a second copy of your sales ledger | Reconcile reported against booked on a fixed cycle; treat each difference as a defect |
| Reporting obligations attract further obligations | Choose a provider on their record of tracking published changes, not on launch price |
The exception queue is where the running cost sits
Real-time reporting creates a class of failure that periodic filing does not have: the transmission that never went through. A network fault, an expired credential, a message refused for a structural fault introduced by an unnoticed change upstream — each leaves an invoice that exists in your ledger and not in the administration's copy of it.
None of that is dramatic on the day. It becomes dramatic in aggregate, because a queue nobody empties grows in one direction only, and because clearing a report that was never accepted takes more work than the original submission would have. The design questions are the ones set out in running an exception queue once volume is flowing: who watches it, during which hours, and with what authority to correct the underlying document.
Two ledgers, and only one of them is yours
After a year of live reporting, a business has two records of its own sales: the one in its accounting system, and the one the administration has accumulated. They will not agree. Invoices cancelled after transmission, corrections reported out of sequence, documents issued in a system that sat outside the original perimeter — the drift is small per item and unbounded over time.
Comparing what you reported against what you booked is unglamorous, and it is the strongest control in any reporting regime, because it is the only thing that finds silent divergence before an audit does. What that comparison should match on is the subject of reconciling reported data against your own ledger.
What this says about the mandate in front of you
The transferable lesson is not that real-time reporting works. It plainly does, or it would not still be running. The lesson is that a reporting regime is a long-lived operational relationship with a tax administration, and the version you implement is only the version that existed on the day you started.
That matters now, because the European direction of travel is towards digital reporting requirements defined at Union level, which will settle on top of national regimes rather than sweep them away. A business that treated its national obligation as finished work will meet that as a second project, with a second business case and a second fight for people. A business that already has an owner, a maintenance budget and a reconciliation control will meet it as a change request.
The distance between those two positions was never a matter of technology, and it was not decided by the platform. It was decided by whether anybody kept the lights on after go-live.