Évolution des schémas XSD NAV Online Számla
Le RTIR hongrois repose sur un schéma XSD versionné, publié et maintenu par NAV. Quatre versions majeures ont jalonné son évolution depuis 2018 — chacune apportant nouveaux champs, corrections ou élargissements de périmètre. Comprendre cette chronologie est indispensable pour debugger les rejets et planifier les montées de version.
v1.0 — juillet 2018, le bootstrap
Première version opérationnelle, publiée en mai 2018 et entrée en vigueur le 1ᵉʳ juillet 2018. Périmètre limité au B2B national avec seuil 100 000 HUF de TVA :
- Espace de noms :
http://schemas.nav.gov.hu/OSA/1.0/data - Eléments racines :
InvoiceData,ModifyInvoiceData,CancelInvoiceData - Champs obligatoires : invoiceNumber, supplierTaxNumber, customerTaxNumber, invoiceIssueDate, deliveryDate, invoiceCategory, currencyCode, invoiceSummary, lines
- Limitations connues : pas d'autofacturation, pas d'intra-UE explicite, pas de B2C, structure ligne très contrainte (un seul taux TVA par ligne), pas de support des frais accessoires (port, emballage) en bloc structuré.
v1.1 — juillet 2019, corrections
Version intermédiaire publiée pour corriger des problèmes opérationnels identifiés durant la première année :
- Espace de noms :
http://schemas.nav.gov.hu/OSA/1.1/data - Changements clés. Ajout de codes pays ISO 3166-1 alpha-2 manquants, codes unité de mesure UN/CEFACT Recommendation 20 alignés, correction de bugs dans la validation Schematron des taux TVA hongrois (5/18/27 %).
- Compatibilité. v1.0 reste accepté jusqu'au 31 décembre 2019, période de coexistence de 6 mois. Au-delà, rejet automatique des soumissions v1.0.
- Pas de breaking change métier. Migration v1.0 → v1.1 essentiellement un re-mapping d'espace de noms.
v2.0 — avril 2020, intra-UE
Première montée de version majeure. Elle accompagne la suppression du seuil 100 000 HUF (entrée en vigueur 1ᵉʳ juillet 2020) et étend le périmètre aux opérations intra-UE :
- Espace de noms :
http://schemas.nav.gov.hu/OSA/2.0/data - Nouveaux blocs.
vatRateEUpour les opérations intra-UE soumises à la TVA hongroise,communityVatNumberavec préfixe pays UE pour le client,thirdStateTradeIndicatorbooléen. - Restructuration des lignes. Une ligne peut désormais
porter plusieurs sous-éléments (frais accessoires structurés), ce
qui simplifie les factures complexes. Le bloc
lineNaturedistingue PRODUIT (PRODUCT) et SERVICE (SERVICE) explicitement. - Breaking change. Le champ
customerTaxNumberdevient conditionnel selon le type d'opération (B2B HU obligatoire, intra-UE remplacé par communityVatNumber, B2C optionnel). De nombreuses intégrations ont rejeté en validation après mise à jour mal anticipée. - Fenêtre de coexistence. v1.1 accepté jusqu'au 30 juin 2020. À partir du 1ᵉʳ juillet 2020, seul v2.0 est valide.
v3.0 — janvier 2021, universel
Version actuellement en vigueur. Accompagne la 3ᵉ vague : universalisation au B2C, aux exports et à l'autofacturation. Plus gros saut technique de l'historique :
- Espace de noms :
http://schemas.nav.gov.hu/OSA/3.0/data - Nouveaux blocs B2C.
customerInfopeut désormais omettre l'adószám pour les particuliers, aveccustomerVatStatus= PRIVATE_PERSON. Pour les non assujettis UE, OTHER avec adresse. - Autofacturation.
selfBillingIndicatorajouté au niveau invoice. Le destinataire (acquéreur) doit déclarer la facture en lieu et place de l'émetteur (vendeur). - Exports. Bloc
exportIndicatoret codes douaniers, ajout duthirdStatepour les opérations hors UE. Lien avec les déclarations EUR.1. - Factures simplifiées.
egyszerusitettAdattartalom(contenu de données simplifié), prévu par art. 176 ÁFA pour factures < 100 EUR, avec un sous-ensemble réduit de champs obligatoires. - Granularité TVA améliorée. Le bloc
summaryByVatRatedétaille les bases imposables par taux (5 %, 18 %, 27 %, 0 %, AAM auto-liquidation, NAM hors champ). - Migrations parallèles. Pour les opérations cross-period (factures émises décembre 2020 / déclarées janvier 2021), NAV a accepté v2.0 jusqu'au 31 mars 2021. À partir du 1ᵉʳ avril 2021, seul v3.0 est valide.
<?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>Példa 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> Fenêtres de migration et coexistence
| Transition | Coexistence | Effort intégrateur |
|---|---|---|
| v1.0 → v1.1 | 6 mois (juil-déc 2019) | Faible — remap namespace + codes |
| v1.1 → v2.0 | 3 mois (avr-juin 2020) | Moyen — restructuration lignes, intra-UE |
| v2.0 → v3.0 | 3 mois (janv-mars 2021) | Élevé — nouveaux blocs B2C, autofacturation, exports |
| v3.0 → v3.0 patches | Continue | Faible — clarifications codes |
Compatibilité ascendante et patches
Le schéma v3.0 reste en vigueur depuis janvier 2021 sans nouvelle majeure. NAV publie périodiquement des patches mineurs sous forme de fichiers ZIP horodatés :
- Patches doc only. Clarifications de la documentation, exemples XML supplémentaires, FAQ. Pas d'impact code.
- Patches code (rares). Ajouts non breaking : nouveaux codes énumérés (pays, devises, taux TVA), extension de longueur de champs string. Backward compatible.
- Annonces. Publiées sur onlineszamla.nav.gov.hu sous la rubrique « Hírek » (actualités), parfois aussi au Magyar Közlöny pour les éléments à portée juridique.
- Prochaine majeure prévue. Pas d'annonce officielle en mai 2026. NAV a indiqué en novembre 2025 vouloir aligner Online Számla sur ViDA d'ici 2030, ce qui devrait conduire à une v4.0 EN 16931-compliant.
Pièges courants
- Hardcoder l'espace de noms. En cas de montée de version, un namespace en dur dans le générateur XML provoque des rejets schéma à grande échelle. Toujours rendre le namespace paramétrable.
- Ignorer le bloc summaryByVatRate. En v3.0, le total des bases imposables par taux est obligatoire. NAV vérifie l'arithmétique : sum(line.netAmount par taux) doit égaler summaryByVatRate.vatRateNetAmount au HUF près.
- Saisir un adószám B2C. Pour B2C, le bloc
customerTaxNumberdoit être OMIS etcustomerVatStatus= PRIVATE_PERSON. Saisir un faux adószám (1111111-1-11 par défaut) déclenche un rejet de validation. - Mélanger v2.0 et v3.0. Une intégration partielle où certaines factures sortent en v2.0 et d'autres en v3.0 (selon le module ERP) déclenche des rejets aléatoires. Migration big-bang recommandée.
- Confondre patches XSD et changements business. Un patch XSD ne change pas le délai de 24h ni les sanctions. Inversement, une décision business (changer de partenaire) peut nécessiter un patch XSD si les codes ne sont plus reconnus.