Validador de Fatoora UUID y Hash ZATCA (Arabia Saudita)
Valide la autenticidad, estructura y dígito de control de Fatoora UUID y Hash ZATCA (Arabia Saudita).
Acerca de la Validación de Fatoora UUID y Hash ZATCA (Arabia Saudita)
El proyecto Fatoora es la plataforma de facturación electrónica de Arabia Saudita (ZATCA). La Fase 2 exige que cada factura esté firmada con certificado X.509 y contenga un hash criptográfico secuencial encadenado a la factura anterior.
Se requiere un UUID v4 (`8-4-4-4-12` hex) en `<cbc:UUID>` del XML UBL 2.1 y un hash SHA-256 en Base64 (44 caracteres) en `<ext:UBLExtensions>`.
Anatomía y Estructura del QR Fatoora (TLV Base64) — Arabia Saudita
El código QR de la factura electrónica codifica 5 etiquetas TLV:
| Posición | Campo | Tamaño | Significado y Regla | Ejemplo |
|---|---|---|---|---|
| Tag 1 | Razón Social | Variable | Nombre legal del emisor en UTF-8 | Acme Corp |
| Tag 2 | Número de IVA | 15 dígitos | VAT de 15 dígitos con prefijo y sufijo 3 | 300123456700003 |
| Tag 3 | Fecha y Hora | ISO 8601 | Timestamp de la transacción | 2024-01-15T12:00:00Z |
| Tag 4 | Total de la Factura | Decimal | Importe total con IVA | 115.00 |
| Tag 5 | Importe de IVA | Decimal | Monto del impuesto | 15.00 |
Codificación TLV y Base64 (ZATCA Fatoora)
Algoritmo de codificación del código QR fiscal:
Concatenación TLV en binario + Codificación Base64
- 1. Para cada etiqueta (1 a 5), escriba el número de tag (1 byte).
- 2. Escriba la longitud en bytes (1 byte).
- 3. Escriba los bytes del valor en UTF-8.
- 4. Convierta el buffer concatenado a Base64.