Validateur de UUID et Hash Fatoora ZATCA (Arabie Saoudite)
Validez l'authenticité, la structure et la clé de contrôle de UUID et Hash Fatoora ZATCA (Arabie Saoudite).
À propos de la Validation de UUID et Hash Fatoora ZATCA (Arabie Saoudite)
Le projet Fatoora est la plateforme nationale de facturation électronique d'Arabie Saoudite (ZATCA). La Phase 2 impose que chaque facture soit signée numériquement et intègre un hachage cryptographique séquentiel lié à la facture précédente.
La spécification exige un UUID v4 canonique dans `<cbc:UUID>` du schéma XML UBL 2.1 et un hachage SHA-256 encodé en Base64 (44 caractères) dans `<ext:UBLExtensions>`.
Anatomie et Structure du QR Code Fatoora (TLV Base64) — Arabie Saoudite
Le QR code de facture électronique encode 5 balises TLV obligatoires :
| Position | Champ | Taille | Signification et Règle | Exemple |
|---|---|---|---|---|
| Tag 1 | Nom du Vendeur | Variable | Raison sociale en UTF-8 | Acme Corp |
| Tag 2 | Numéro de TVA | 15 chiffres | TVA à 15 chiffres avec 3 au début et à la fin | 300123456700003 |
| Tag 3 | Horodatage | ISO 8601 | Horodatage au format AAAA-MM-JJTHH:mm:ssZ | 2024-01-15T12:00:00Z |
| Tag 4 | Montant Total | Décimal | Total TTC | 115.00 |
| Tag 5 | Montant de TVA | Décimal | Montant de la taxe | 15.00 |
Encodage TLV et Base64 (ZATCA Fatoora)
Algorithme d'encodage du QR code fiscal :
Concaténation TLV binaire + Encodage Base64
- 1. Pour chaque champ (1 à 5), écrire le numéro de tag (1 octet).
- 2. Écrire la longueur en octets (1 octet).
- 3. Écrire les octets du texte en UTF-8.
- 4. Concaténer tous les blocs et convertir le tampon binaire en Base64.