La Phase 2 de ZATCA (Phase d'Intégration) a remplacé la Phase 1 (Phase de Génération) pour la première vague de contribuables en janvier 2023. Trois ans et vingt-quatre vagues plus tard, toute entreprise immatriculée à la TVA dans le Royaume est dans le périmètre. Si vous facturez en SAR, vous facturez via Fatoora.
Ce que les règles exigent vraiment
- Les factures fiscales standard (B2B) doivent être clearées en temps réel — soumises à ZATCA, validées, estampillées d'un UUID, et seulement ensuite envoyées à l'acheteur.
- Les factures fiscales simplifiées (B2C) suivent un modèle de reporting — émises d'abord avec un QR encodé en TLV, déclarées à ZATCA sous 24 heures.
- Chaque facture doit inclure un hash cryptographique chaîné qui la relie à la facture précédente, plus une signature numérique avec un CSID (Cryptographic Stamp Identifier) émis par Fatoora.
- Le XML doit se conformer à UBL 2.1 avec les extensions spécifiques à ZATCA définies dans la spécification d'implémentation de la Phase 2.
Le QR TLV de ZATCA
Le QR de la Phase 1 survit en Phase 2 sous la forme d'une chaîne base64 au format TLV (Tag-Length-Value). Cinq tags obligatoires : nom du vendeur, numéro de TVA, horodatage ISO 8601, total TTC, et montant de TVA. La Phase 2 en ajoute trois — le hash XML, la signature numérique et la clé publique. L'app mobile de ZATCA les valide, donc tout champ mal encodé fait échouer la vérification du QR côté acheteur, même après que la facture a été clearée.
Les pièges opérationnels principaux
- Dérive horaire. Les factures dont l'horodatage dévie de plus de 30 secondes par rapport à l'horloge de référence ZATCA sont rejetées. Utilisez NTP, pas l'horloge de votre laptop.
- Ruptures de chaîne de hash. Si vous émettez une facture en oubliant d'inclure le hash de la précédente, la chaîne est cassée et tout le dispositif doit être réenrôlé avec un nouveau CSID.
- Gestion multi-taux. Des biens à 15 % mélangés à des exportations à taux zéro dans une même facture demandent des blocs <cac:TaxSubtotal> séparés par taux ; les fusionner dans un seul subtotal fait partie des trois premières causes de rejet.
La MENAStrategy d'Invocie implémente tout cela — génération d'UUID, chaînage de hash, QR TLV, UBL 2.1 avec extensions ZATCA — pour que vous vous concentriez sur l'émission des factures, pas sur l'analyse du spec d'implémentation.