ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

NAV Online Számla XSD schema evolution

Hungarian RTIR is built on a versioned XSD schema, published and maintained by NAV. Four major versions have marked its evolution since 2018 — each adding new fields, fixes, or scope expansions. Understanding this timeline is essential to debug rejections and plan version upgrades.

v1.0 — July 2018, the bootstrap

First operational version, published in May 2018 and in force from 1 July 2018. Scope limited to domestic B2B with a 100,000 HUF VAT threshold:

  • Namespace: http://schemas.nav.gov.hu/OSA/1.0/data
  • Root elements: InvoiceData, ModifyInvoiceData, CancelInvoiceData
  • Mandatory fields: invoiceNumber, supplierTaxNumber, customerTaxNumber, invoiceIssueDate, deliveryDate, invoiceCategory, currencyCode, invoiceSummary, lines
  • Known limitations: no self-billing, no explicit intra-EU, no B2C, very constrained line structure (single VAT rate per line), no support for accessory charges (shipping, packaging) in structured blocks.

v1.1 — July 2019, corrections

Intermediate version published to fix operational issues identified during the first year:

  • Namespace: http://schemas.nav.gov.hu/OSA/1.1/data
  • Key changes. Addition of missing ISO 3166-1 alpha-2 country codes, UN/CEFACT Recommendation 20 measurement unit codes aligned, bug fixes in Schematron validation of Hungarian VAT rates (5/18/27%).
  • Compatibility. v1.0 remained accepted until 31 December 2019, with a 6-month coexistence period. After that, automatic rejection of v1.0 submissions.
  • No business-breaking change. v1.0 → v1.1 migration essentially a namespace remap.

v2.0 — April 2020, intra-EU

First major version upgrade. Accompanies the removal of the 100,000 HUF threshold (in force 1 July 2020) and extends scope to intra-EU operations:

  • Namespace: http://schemas.nav.gov.hu/OSA/2.0/data
  • New blocks. vatRateEU for intra-EU operations subject to Hungarian VAT, communityVatNumber with EU country prefix for the customer, thirdStateTradeIndicator boolean.
  • Line restructuring. A line can now carry several sub-elements (structured accessory charges), simplifying complex invoices. The lineNature block explicitly distinguishes PRODUCT and SERVICE.
  • Breaking change. The customerTaxNumber field becomes conditional based on operation type (B2B HU mandatory, intra-EU replaced by communityVatNumber, B2C optional). Many integrations rejected validation after a poorly anticipated upgrade.
  • Coexistence window. v1.1 accepted until 30 June 2020. From 1 July 2020, only v2.0 is valid.

v3.0 — January 2021, universal

Currently in-force version. Accompanies the 3rd wave: universalisation to B2C, exports and self-billing. Largest technical jump in the timeline:

  • Namespace: http://schemas.nav.gov.hu/OSA/3.0/data
  • New B2C blocks. customerInfo can now omit adószám for individuals, with customerVatStatus = PRIVATE_PERSON. For non-taxable EU persons, OTHER with address.
  • Self-billing. selfBillingIndicator added at invoice level. The recipient (buyer) must report the invoice in place of the issuer (seller).
  • Exports. exportIndicator block and customs codes, addition of thirdState for non-EU operations. Link with EUR.1 declarations.
  • Simplified invoices. egyszerusitettAdattartalom (simplified data content), provided by art. 176 ÁFA for invoices < €100, with a reduced subset of mandatory fields.
  • Improved VAT granularity. The summaryByVatRate block details taxable bases by rate (5%, 18%, 27%, 0%, AAM reverse charge, NAM out of scope).
  • Parallel migrations. For cross-period operations (invoices issued December 2020 / reported January 2021), NAV accepted v2.0 until 31 March 2021. From 1 April 2021, only v3.0 is valid.
xml invoiceData-v3.0-skeleton.xml
<?xml version="1.0" encoding="UTF-8"?>
<InvoiceData xmlns="http://schemas.nav.gov.hu/OSA/3.0/data"
             xmlns:common="http://schemas.nav.gov.hu/NTCA/1.0/common"
             xmlns:base="http://schemas.nav.gov.hu/OSA/3.0/base">
  <invoiceNumber>INV-2026/001234</invoiceNumber>
  <invoiceIssueDate>2026-05-19</invoiceIssueDate>
  <completenessIndicator>false</completenessIndicator>

  <invoiceMain>
    <invoice>
      <invoiceHead>
        <supplierInfo>
          <supplierTaxNumber>
            <base:taxpayerId>12345678</base:taxpayerId>
            <base:vatCode>2</base:vatCode>
            <base:countyCode>42</base:countyCode>
          </supplierTaxNumber>
          <supplierName>Sample Kft.</supplierName>
          <supplierAddress>...</supplierAddress>
        </supplierInfo>
        <customerInfo>...</customerInfo>
        <invoiceDetail>
          <invoiceCategory>NORMAL</invoiceCategory>
          <invoiceDeliveryDate>2026-05-19</invoiceDeliveryDate>
          <currencyCode>HUF</currencyCode>
          <exchangeRate>1</exchangeRate>
          <paymentDate>2026-06-18</paymentDate>
          <paymentMethod>TRANSFER</paymentMethod>
        </invoiceDetail>
      </invoiceHead>
      <invoiceLines>
        <line>
          <lineNumber>1</lineNumber>
          <lineDescription>...</lineDescription>
          <quantity>10</quantity>
          <unitOfMeasure>PIECE</unitOfMeasure>
          <unitPrice>1000</unitPrice>
          <lineAmountsNormal>...</lineAmountsNormal>
        </line>
      </invoiceLines>
      <invoiceSummary>...</invoiceSummary>
    </invoice>
  </invoiceMain>
</InvoiceData>

Migration windows and coexistence

TransitionCoexistenceIntegrator effort
v1.0 → v1.16 months (Jul-Dec 2019)Low — namespace remap + codes
v1.1 → v2.03 months (Apr-Jun 2020)Medium — line restructuring, intra-EU
v2.0 → v3.03 months (Jan-Mar 2021)High — new B2C, self-billing, exports blocks
v3.0 → v3.0 patchesContinuousLow — code clarifications

Backward compatibility and patches

The v3.0 schema has remained in force since January 2021 without a new major release. NAV periodically publishes minor patches as timestamped ZIP files:

  • Doc-only patches. Documentation clarifications, extra XML examples, FAQ. No code impact.
  • Code patches (rare). Non-breaking additions: new enumerated codes (countries, currencies, VAT rates), extension of string field lengths. Backward compatible.
  • Announcements. Published on onlineszamla.nav.gov.hu under "Hírek" (news), sometimes also in the Magyar Közlöny for elements with legal scope.
  • Next major release planned. No official announcement as of May 2026. NAV indicated in November 2025 its intent to align Online Számla with ViDA by 2030, which should lead to an EN 16931-compliant v4.0.

Common pitfalls

  • Hardcoding the namespace. On version upgrade, a hardcoded namespace in the XML generator triggers schema rejections at scale. Always make the namespace parameterizable.
  • Ignoring the summaryByVatRate block. In v3.0, the total of taxable bases by rate is mandatory. NAV checks the arithmetic: sum(line.netAmount per rate) must equal summaryByVatRate.vatRateNetAmount to the HUF.
  • Entering an adószám for B2C. For B2C, the customerTaxNumber block must be OMITTED and customerVatStatus = PRIVATE_PERSON. Entering a fake adószám (1111111-1-11 by default) triggers a validation rejection.
  • Mixing v2.0 and v3.0. A partial integration where some invoices come out in v2.0 and others in v3.0 (depending on the ERP module) triggers random rejections. Big-bang migration recommended.
  • Confusing XSD patches and business changes. An XSD patch does not change the 24h deadline or penalties. Conversely, a business decision (changing partner) may require an XSD patch if codes are no longer recognized.