Validador de facturas ZATCA Fase 2
Pegue o suba el XML de una factura electrónica saudí y vea lo que ZATCA probablemente rechazaría: reglas BR-KSA, número de IVA, totales, el código QR y el hash de la factura, con la ruta del campo y la corrección de cada problema.
Herramienta
Se ejecuta en su navegador. El archivo nunca se sube.
Esta herramienta frente al SDK oficial y el portal para desarrolladores de ZATCA
Use esta página para una revisión previa rápida mientras desarrolla o depura. Use las herramientas propias de ZATCA para la verificación autorizada antes del onboarding.
| Este validador (Kodenova) | ZATCA Compliance and Enablement Toolbox SDK | |
|---|---|---|
| Qué revisa | Estructura UBL 2.1, reglas de negocio BR-KSA, números de IVA, totales y redondeo, el código QR y el hash de la factura según BR-KSA-27. No verifica la firma ECDSA ni la cadena de certificados. | ZATCA indica que el SDK verifica que las facturas electrónicas, notas de crédito y notas de débito generadas cumplan con el Reglamento de Facturación Electrónica. |
| Dónde se ejecuta | En su navegador. El XML no se sube a ningún lugar. | Se descarga de zatca.gov.sa y se ejecuta en su propio equipo, con un manual de usuario. |
| Cuándo usarlo | Revisiones rápidas de archivos XML individuales mientras mapea campos en SAP Business One o en su ERP. | El paso oficial de verificación antes del onboarding. ZATCA señala que superarlo no significa que ZATCA haya aprobado las facturas. |
Fuente: ZATCA, Compliance and Enablement Toolbox: Download SDK. ZATCA también ofrece un E-Invoicing Developer Portal para desarrolladores de sistemas. Revisado en octubre de 2026.
Errores comunes y cómo corregirlos
Diez causas de rechazo que provienen directamente de las reglas del ZATCA XML Implementation Standard v1.2, con la corrección de cada una.
| Regla | Qué sale mal | Cómo corregirlo |
|---|---|---|
| BR-KSA-40 | El número de IVA del vendedor no tiene 15 dígitos que empiecen y terminen en 3. | Copie el número de IVA exactamente como aparece en el certificado de registro de IVA, sin espacios. |
| BR-KSA-27 | El XML se editó, se reindentó o se volvió a guardar después de firmarlo, por lo que el hash ya no coincide con el digest firmado ni con el QR. | Firme el XML final y envíelo byte por byte. No cambie nada después de firmar. |
| BR-KSA-26 / 61 | Falta el hash de la factura anterior (PIH) o no es el hash de la factura anterior de la misma unidad EGS. | Guarde el hash de cada factura que envía y úselo como PIH de la siguiente. |
| BR-KSA-33 / 34 | El contador de facturas (ICV) falta, no es numérico o se reinició. | Mantenga un único contador consecutivo por unidad EGS y nunca reutilice un valor. |
| BR-KSA-37 / 66 | El número de edificio del vendedor no tiene 4 dígitos o el código postal no tiene 5 dígitos. | Complete los campos de la dirección nacional saudí en los datos maestros de la empresa. |
| BR-KSA-63 | Factura estándar a un comprador saudí sin la dirección completa del comprador (calle, edificio, código postal, ciudad, distrito). | Complete la dirección nacional del socio de negocios antes de facturar. |
| BR-KSA-06 | InvoiceTypeCode/@name no es un código de transacción de 7 dígitos como 0100000 o 0200000. | Asigne a cada tipo de documento el código correcto y active solo los indicadores que correspondan. |
| BR-KSA-68 | Falta TaxCurrencyCode, o no hay un TaxTotal con el IVA en SAR. | Envíe siempre TaxCurrencyCode SAR y un TaxTotal que contenga solo el importe del IVA en SAR. |
| BR-KSA-23 / 24 / 69 | Líneas de tasa cero, exentas o fuera de alcance sin un código de motivo de exención VATEX-SA. | Agregue TaxExemptionReasonCode y TaxExemptionReason a cada desglose Z, E u O. |
| BR-KSA-51 / BR-CO-15 | El importe de línea con IVA o los totales del documento no cuadran después del redondeo. | Redondee el IVA de cada línea a 2 decimales y luego sume las líneas para obtener los totales de cabecera. |
Especificaciones con las que revisa esta herramienta
- ZATCA Electronic Invoice XML Implementation Standard v1.2 (reglas BR-KSA, BR-DEC y BR-CO, hash BR-KSA-27)
https://zatca.gov.sa/ar/E-Invoicing/SystemsDevelopers/Documents/20230519_ZATCA_Electronic_Invoice_XML_Implementation_Standard_%20vF.pdf - Esquema de factura OASIS UBL 2.1 (UBL-Invoice-2.1.xsd)
https://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-Invoice-2.1.xsd - W3C Canonical XML 1.1 (C14N 1.1), usado para el hash de la factura
https://www.w3.org/TR/xml-c14n11/
Las copias de estos archivos, con sus sumas de verificación SHA-256, se guardan junto con el código fuente de la herramienta. Esta herramienta revisa conforme a las especificaciones publicadas por ZATCA; no está certificada por ZATCA y no es un validador oficial.
Tres pasos, sin registro
Pegue o suba el XML
Use el XML firmado de una factura estándar (B2B) o simplificada (B2C), nota de crédito o nota de débito, o cargue un ejemplo.
Lea el informe
Errores, advertencias e información aparecen agrupados, cada uno con el identificador oficial de la regla (BR-KSA-…), la ruta XML y cómo corregirlo.
Corríjalo antes que ZATCA
Corrija el campo en SAP Business One o en su ERP, vuelva a generar el XML y revíselo de nuevo. Descargue el PDF para su equipo.
Preguntas sobre esta herramienta
¿Qué revisa este validador ZATCA?
La estructura UBL 2.1 y las reglas de negocio KSA del ZATCA XML Implementation Standard v1.2: tipo de factura y código de transacción (KSA-2), UUID, fecha y hora de emisión, contador ICV y hash de la factura anterior (PIH), números de IVA del vendedor y del comprador, campos de la dirección nacional, fecha de suministro, códigos de motivo de exención, IVA de línea y redondeo, desgloses de IVA, totales del documento con redondeo a 2 decimales, el código QR y el hash de la factura según BR-KSA-27.
¿Cómo se calcula el hash de la factura?
Como lo describe BR-KSA-27: elimine ext:UBLExtensions, el cac:AdditionalDocumentReference con ID QR y cac:Signature, canonicalice el resto con C14N 1.1, calcule el hash SHA-256 y codifique el resultado en Base64. La herramienta lo compara con el digest de la firma y con la etiqueta 6 del QR.
¿Verifica la firma criptográfica?
No. Verifica que el sello esté presente y bien formado (SignedInfo, SignatureValue, certificado y propiedades firmadas) y que el digest firmado coincida con la factura. No verifica la firma ECDSA ni la cadena de certificados, así que un resultado APROBADO aquí no es un resultado de clearance ni de reporting de ZATCA.
¿Cuál es la diferencia entre una factura fiscal estándar y una simplificada?
El código de transacción en InvoiceTypeCode/@name empieza por 01 para una factura fiscal estándar (B2B), que ZATCA aprueba (clearance) en tiempo real, y por 02 para una factura simplificada (B2C), que debe llevar el sello criptográfico y el código QR y se reporta dentro de las 24 horas.
¿Es un validador oficial de ZATCA?
No. Es una herramienta independiente; Kodenova no está afiliada a ZATCA. Revisa conforme a las especificaciones publicadas por ZATCA. La verificación de cumplimiento autorizada es el Compliance and Enablement Toolbox SDK de ZATCA y su E-Invoicing Developer Portal, y la respuesta final siempre la da la plataforma Fatoora.
¿Se sube mi factura a algún lugar?
No. Su propio navegador lee y revisa el XML, y el informe PDF también se genera ahí. No se envía nada a Kodenova ni a nadie más.
Hechas para equipos de SAP Business One
¿ZATCA Fase 2 desde SAP Business One?
Conectamos SAP B1 con ZATCA: XML, cadena de hash, firma, QR, clearance y reporting, con registros y reintentos. Precio fijo, normalmente cotizado en 24 horas.
