VAT return with NAV eÁFA (eVAT M2M)

The Hungary - eVAT (eÁFA M2M) VAT Return (l10n_hu_evat) module files the Hungarian VAT return through the eÁFA machine-to-machine interface of NAV instead of an ÁNYK form. Odoo builds the VAT analytics of the period from the posted journal entries (one line per source document, classified with the standard tax codes of NAV), validates them with the rules and the XML schema published by NAV, uploads them in the background, follows the processing at NAV, and finally an approver submits the legally binding return. Self-revisions and corrections of submitted returns are supported.

Note

  • The module requires eyssen_l10n_hu and uses the technical user of the NAV Online Számla reporting.

  • Returns can only be generated for companies whose currency is HUF.

  • The module is independent of the ÁNYK form packages; use one of the two methods for a given period. The domestic recapitulative M sheets and the EC recapitulative statement (A60) are not part of this module: the partner-level data travel in the analytics lines, and the recapitulative statement is prepared with the ÁNYK form package.

Configuration

Access rights

Two access rights are available in the Hungarian eVAT category of the user form:

  • eVAT User: create, generate, validate and upload returns, reopen aborted returns, and fetch the NAV documents;

  • eVAT Approve: everything above, plus delete draft returns and submit the return to NAV. The administrator receives this right at installation.

The configuration menus require the Administrator accounting access right.

Settings

Go to Accounting ‣ Configuration ‣ Settings, section Hungarian eVAT:

  • eVAT M2M Enabled: enables the interface for the company;

  • eVAT Software ID: the 18-character identifier (digits and capital letters) of the software, pre-filled;

  • NAV Mode: displays the Test/Production mode selected in the NAV Data Reporting settings; the matching user name, password and signing key of those settings are used;

  • eVAT VPID: the 12-digit customs identifier, needed only if a tax account transfer line credits a customs-related tax type.

screenshot: finance-fl-hungary-evat-settings
menu
Accounting ‣ Configuration ‣ Settings
shows
Settings page scrolled to the "Hungarian eVAT" section with "eVAT M2M Enabled" ticked, the software ID, the read-only NAV mode and the empty VPID field, and the sentence about the NAV technical user below.
highlight
The "eVAT M2M Declaration" setting block (red frame).
data
Demo company "YourCompany HU"; NAV mode "Test".
module
l10n_hu_evat
notes
English UI, light theme, 1440px width, crop to the section.

Standard tax codes

Every analytics line carries a NAV standard tax code, which describes the type of the transaction and its VAT rate.

  • Accounting ‣ eVAT ‣ Configuration ‣ Standard Tax Codes contains the catalogue published by NAV. Sync from NAV downloads new codes and closes expired ones.

  • On each tax, set the default code in the eVAT tab, field eVAT Standard Tax Code.

  • Accounting ‣ eVAT ‣ Configuration ‣ Mapping Rules handles the exceptions. A rule has Conditions (Taxes, Move Types, Partner Status, Fiscal Positions, Product Categories, Products) and a Result: the eVAT Standard Tax Code and the Taxpoint Strategy (Default, Delivery date, Accounting date or Period end). The first matching rule wins; if no rule matches, the default code of the tax is used.

A document whose tax has neither a rule nor a default code is skipped and reported on the Validation tab of the return (code GEN0001).

Other tables

  • MNB Base Rates: the central bank base rate series used to compute the self-revision surcharge. The historical rates are preloaded; add a new row whenever the base rate changes.

  • VTSZ Tariff Mapping: maps the VTSZ prefixes of domestic reverse-charge goods (agricultural products, steel, gas) to the product category and unit of measure required on sheets 07 and 08.

Prepare and file a return

Go to Accounting ‣ eVAT ‣ Declarations and click New. Set the Period Start, the Period End and the Frequency (Monthly, Quarterly or Annual), then follow the steps below. The status bar shows the main steps: Draft, Generated, Finished and Submitted.

  1. Click Generate. The analytics lines are built from the posted entries of the period (taxes due on payment are included by payment date), the summary is computed, the local validation runs and the reverse-charge sheets 07/08 are filled in. Reset to Draft discards the generated data.

  2. Review the tabs:

    • Lines: the analytics lines with their source document, taxpoint date and partner;

    • Summary: payable, deductible, reclaimed and transferable tax in thousand HUF. Tick Lapsed Residual Tax if the amount carried forward from the previous period can no longer be used;

    • Statements: the Return Decision (No return, Full return or Tax account transfer), the Refund Entitlement Code and the procedure indicators of the return. Click Compute Summary after changing them;

    • Transfer (170): the transfer request lines, if the return decision is a tax account transfer;

    • Reverse charge (07/08): the domestic reverse-charge sheets, which can be regenerated with Regenerate 07/08 Sheets;

    • Validation: the messages of the local check (Critical, Error, Warning, Info). Correct the source documents or the tax code mapping, and click Generate again after a Reset to Draft. Validate reruns the check at any time.

  3. Optionally, click Export XML to download the analytics file (EVAT_<start>_<end>_v<version>.xml) for review.

  4. Click Upload to NAV. The return must be free of local validation errors. The status changes to Uploading, and a background job uploads the data about a minute later. If the upload fails, the return goes back to Generated and the reason is shown in the Error Note of the NAV tab.

  5. NAV processes the upload. A scheduled action checks the status every five minutes (ReceivedProcessingBEVFELD CheckFinished); Check Status Now checks it on demand. The messages of NAV are added to the Validation tab. If NAV rejects the data, the status becomes Aborted: click Reopen, correct the problem and upload again.

  6. When the status is Finished, every user with the eVAT Approve right receives a to-do activity Submit eVAT declaration to NAV. The Submission Deadline on the NAV tab shows until when the processed data is kept by NAV (30 days); after that the upload must be repeated.

  7. An approver clicks Submit to NAV. The dialog lists the high-priority warnings of NAV, which must be acknowledged with I acknowledge the warnings above, and reminds that submitting is the legally binding filing of the VAT return with NAV and cannot be undone. After the confirmation the status is Submitted and the return document received from NAV is attached.

screenshot: finance-fl-hungary-evat-declaration
menu
Accounting ‣ eVAT ‣ Declarations ‣ (declaration)
shows
eVAT declaration "eVAT 2026-08 v1" in status "Generated" with the buttons "Reset to Draft", "Compute Summary", "Validate", "Export XML", "Upload to NAV", the header fields (period, frequency, declaration method, version) and the "Lines" tab with a few analytics lines and their "NAV Match" badges.
highlight
The "Upload to NAV" button and the status bar (red frames).
data
Demo company "YourCompany HU", monthly period 2026-08-01 – 2026-08-31, ~10 lines.
module
l10n_hu_evat
notes
English UI, light theme, 1440px width, crop to the form sheet.

Tip

  • The taxpoint date of a document is its fulfillment date, unless a mapping rule sets another strategy. It can be overridden on the eVAT tab of the invoice (eVAT Taxpoint Date). The same tab lists the returns that contain the invoice, and Query NAV Tax Codes shows the codes NAV suggests for a posted invoice (for information only).

  • Vendor bills are identified by their Bill Reference; bills without a reference are skipped with a validation message.

Reconcile with the NAV data

On the NAV Documents tab, click Fetch NAV Documents to download the invoice data, cash register summaries and customs declarations that NAV holds for the period. The Reconciliation Summary and the NAV Match badge of the lines show which documents are Matched and which are Missing in Odoo, for example vendor bills that were not recorded yet.

Self-revision and correction

On a Submitted return, click Self-check (önellenőrzés) or Correction to create the next version for the same period, then generate, upload and submit it like a base return. The Changes tab compares it with the original return (summary differences and added, removed and changed lines).

For a self-revision, the Self-check (04) tab contains the self-revision surcharge (önellenőrzési pótlék). Select the Non-standard Calculation Reason if one applies, and click Compute Allowance: the surcharge is computed from the MNB base rate, from the day after the original deadline, with a 50% increase for a repeated self-revision. If the surcharge was computed on an earlier day than the submission, the submit dialog asks to acknowledge it.

Scheduled actions and limitations

Two scheduled actions are created: eVAT: poll NAV processing status (every 5 minutes) and eVAT: remove finished one-shot upload jobs (hourly).

The following are not supported in the current module version: the sheets for animal disease deferment, bad debt, chassis numbers and new means of transport; attachments to the return; and the automatic handling of lapsed residual tax. There is no PDF print of the return.