Rechazos de ZATCA Phase 2: los errores más comunes y cómo corregirlos (SAP Business One)

Por Zain Abbas, Kodenova · Actualizado el

Respuesta cortaLa mayoría de los rechazos de ZATCA Phase 2 vienen de los datos maestros y de las reglas de cálculo, no de la conexión. Las causas habituales son campos de dirección del comprador faltantes (BR-KSA-63), un formato incorrecto del número de IVA del comprador (BR-KSA-44), IVA por línea o totales que no cuadran (BR-KSA-50, BR-CO-10), notas de crédito sin referencia y una cadena hash de facturas rota. Una factura rechazada nunca se edita y se reenvía: se corrige la causa y se envía un documento nuevo con su propio contador, UUID y hash.

Primero, identifique qué flujo falló

Phase 2 tiene dos flujos, y un rechazo significa cosas distintas en cada uno.

TemaFactura tributaria estándar (B2B)Factura tributaria simplificada (B2C)
Proceso de ZATCAClearance (en tiempo real)Reporting (dentro de 24 horas)
Cuándo se verificaAntes de que el comprador reciba la facturaDespués de la venta
Quién la sellaZATCA, que además devuelve el código QRSu sistema, con su CSID
Estado de fallaNOT_CLEAREDNOT_REPORTED
Qué significa un rechazoLa factura no puede llegar al comprador tal como estáLa factura no es válida y debe reenviarse como un documento nuevo

La respuesta de ZATCA separa los errores de las advertencias (warnings). Un error rechaza el documento. Una advertencia llega con un documento aceptado. En una respuesta NOT_CLEARED real verá un bloque validationResults con un código, una categoría y un mensaje, por ejemplo:

BR-KSA-39: The invoice must contain the seller VAT registration number (BT-31) and/or seller group VAT registration number (KSA-18).

(Es decir: la factura debe contener el número de registro de IVA del vendedor y/o el del grupo de IVA del vendedor.) El código de regla al inicio es lo que debe buscar. Casi todos los rechazos llevan a uno de los grupos siguientes.

1. Campos de dirección del comprador (B2B)

Es el más común que vemos en SAP Business One.

El estándar XML exige una dirección postal del comprador en todas las facturas, excepto en las facturas simplificadas y sus notas (regla BR-10). Además, BR-KSA-63 dice que cuando el país del comprador es SA, estos campos son obligatorios: nombre de la calle, número del edificio, código postal, ciudad, distrito y país. Las reglas de dirección también esperan un número de edificio de 4 dígitos y un código postal de 5 dígitos.

En SAP B1, la dirección de facturación del cliente suele tener calle y ciudad pero no distrito, o el número del edificio está escrito en la línea de la calle. Qué campo de SAP corresponde a qué campo de ZATCA depende de su integración, así que revise su documento de mapeo.

Solución: limpie las direcciones de facturación de todos los clientes saudíes antes de la salida en vivo, y agregue una validación en SAP B1 para que no se pueda crear una factura de clientes para un cliente B2B saudí con el distrito vacío o con un código postal que no tenga 5 dígitos.

2. Formato del número de IVA

BR-KSA-44 verifica el número de IVA del comprador cuando está presente y la factura no es de exportación: debe tener 15 dígitos, empezar y terminar en 3. En SAP B1 normalmente viene del campo Federal Tax ID (número de identificación fiscal) del socio de negocios. Espacios, guiones, un dígito faltante o un número de CR antiguo en ese campo harán que falle.

Para las facturas de exportación la regla es la contraria: BR-KSA-46 dice que el número de IVA del comprador no debe enviarse.

Las facturas estándar siguen necesitando un identificador del comprador cuando este no tiene número de IVA. ZATCA acepta otros esquemas de identificación, como el registro comercial (CRN) o el documento nacional de identidad (NAT), según BR-KSA-14 y BR-KSA-81.

Solución: valide el formato del Federal Tax ID en el maestro de socios de negocios, y marque con claridad a los clientes de exportación para que la integración sepa que no debe enviarlo.

3. Totales y redondeo

ZATCA vuelve a calcular su factura. Si sus cifras no coinciden con las suyas, el documento falla. Las reglas que detectan la mayoría de los casos de SAP B1:

  • BR-KSA-50: el IVA de la línea debe ser igual al importe neto de la línea × (tasa de IVA / 100).
  • BR-KSA-51: el importe de la línea con IVA debe ser igual al importe neto de la línea + el IVA de la línea.
  • BR-CO-10: la suma de los importes netos de las líneas debe ser igual al total de importes netos de líneas de la factura.
  • BR-CO-17: el IVA por categoría debe ser igual a la base imponible × tasa, redondeado a dos decimales.

El estándar XML exige redondeo half-up (hacia arriba desde 0,5), y el total de IVA del documento se calcula a nivel de documento, no sumando los IVA de línea ya redondeados. SAP B1 puede generar pequeñas diferencias aquí, sobre todo con descuentos a nivel de documento, precios con muchos decimales o configuraciones de redondeo en el documento. Una diferencia de 0.01 SAR basta para un rechazo.

Solución: haga que la integración construya los importes del XML con las fórmulas de ZATCA, y pruebe en el entorno de simulación facturas con descuentos, cantidades fraccionarias y tasas de IVA mixtas. Nuestra calculadora de IVA de Arabia Saudita ayuda cuando revisa una línea a mano.

4. Notas de crédito y de débito

En SAP B1, las notas de crédito de clientes a menudo se crean sin documento base, por ejemplo para un ajuste manual de precio. ZATCA no lo acepta. Esas líneas tienen RIN1.BaseType = -1; vea la tabla ORIN (nota de crédito de clientes) para una consulta que las encuentra.

  • BR-KSA-56: las notas de crédito (código 381) y de débito (código 383) deben llevar la referencia de facturación de la factura original.
  • BR-KSA-17: las notas deben indicar el motivo de emisión.

Solución: exija una factura de clientes base (o al menos un campo de referencia) y un motivo en cada nota de crédito que vaya a ZATCA.

5. Cadena hash, ICV y PIH

Cada unidad de facturación mantiene una sola cadena. Cada documento lleva un Invoice Counter Value (ICV), que aumenta de uno en uno, y un Previous Invoice Hash (PIH), que apunta al documento anterior. BR-KSA-61 hace obligatorio el PIH.

Las guías de ZATCA son estrictas en este punto:

  • El contador no debe reiniciarse, y no debe haber saltos en el contador ni en la secuencia de hash.
  • Un ICV no debe reutilizarse.
  • Los documentos rechazados también cuentan. Su hash y su contador no se modifican, y el PIH del siguiente documento apunta al documento inmediatamente anterior, aunque ese haya sido rechazado.

En SAP B1, los errores de cadena suelen venir de dos usuarios o dos servicios que envían en el mismo momento, de una base de datos restaurada desde un respaldo, o de una empresa de prueba copiada a producción con su contador.

Solución: emita el contador y el hash desde un solo lugar por unidad de facturación, bloquéelo durante el envío y nunca lo reinicie después de una restauración sin verificar el último valor que recibió ZATCA.

6. Firma, hash y QR

En las facturas simplificadas, su sistema firma el XML. Si el hash de la firma no coincide con el XML que recibe ZATCA, la factura falla. El estándar de seguridad de ZATCA define el hash como SHA-256 sobre un XML canonicalizado que excluye las extensiones UBL, el bloque de firma y el elemento QR. Cualquier cambio después de firmar, incluso reformatear espacios en blanco o reordenar elementos, lo rompe.

El código QR para B2C debe contener las 9 etiquetas en Base64 TLV, hasta 700 caracteres. Decodifique un ejemplo con nuestro decodificador de códigos QR de ZATCA para revisar los campos, y vea nuestra guía del código QR para saber qué contiene cada etiqueta.

Solución: firme el XML final, guarde exactamente lo que se envió y nunca vuelva a generar el XML para imprimir.

7. Problemas con el CSID

Su CSID de producción es un certificado con fecha de vencimiento. El estándar de seguridad de ZATCA permite una validez de hasta 60 meses, y el portal envía un recordatorio antes de que termine. La renovación revoca el certificado anterior y emite uno nuevo. El certificado también debe verificarse antes de sellar, así que un CSID vencido o revocado detiene los envíos de esa unidad de facturación.

Un CSID de cumplimiento (compliance) solo funciona en las API de cumplimiento. Clearance y reporting necesitan el CSID de producción.

Solución: registre la fecha de vencimiento de cada CSID y planifique la renovación con bastante anticipación.

Cómo manejar una factura rechazada en SAP Business One

  1. Lea el código. Anote el ID de la regla y el mensaje de la respuesta, no solo “rechazada”.
  2. Encuentre la causa. Datos maestros (dirección, número de IVA), datos del documento (referencia, motivo) o cálculo (redondeo).
  3. Corrija el origen. Corrija el socio de negocios o la configuración, no solo el XML.
  4. No edite el documento rechazado. Permanece en la cadena con su contador y su hash.
  5. Envíe un documento nuevo. Recibe un nuevo ICV, UUID, hash y marca de tiempo. En B2B, debe estar autorizado (cleared) antes de llegar al cliente.
  6. Vigile la cola. Revise los documentos rechazados y pendientes todos los días, no cuando llega la declaración de IVA.

Nuestra página de facturación electrónica ZATCA cubre la configuración completa, y la lista de verificación de la Ola 25 le ayuda si va a salir en vivo en 2027. Si sus facturas de SAP Business One siguen siendo rechazadas, envíenos los códigos de error y le diremos dónde está la solución. Vea también nuestro servicio de integración de facturación electrónica.

Fuentes

Servicios relacionados

Preguntas frecuentes

Preguntas frecuentes

¿Cuál es la diferencia entre un error y una advertencia de ZATCA?

La guía técnica de ZATCA dice que un error es una falla de validación que rechaza el documento. Una advertencia (warning) acompaña a un documento que sí fue aceptado. Las advertencias deben corregirse para las facturas futuras, pero la factura en sí sigue siendo válida.

¿Puedo corregir y reenviar una factura rechazada por ZATCA?

No como el mismo documento. La guía de ZATCA indica que la factura corregida se envía como una factura nueva, con su propio valor de contador de facturas, UUID, hash y marca de tiempo. El hash y el contador del documento rechazado no se modifican ni se reutilizan.

¿Puedo enviar una factura B2B al cliente antes de que esté autorizada (cleared)?

No. Las facturas tributarias estándar deben ser autorizadas por ZATCA (clearance) antes de compartirse con el comprador. Las guías de ZATCA solo permiten una excepción cuando no se puede acceder a la plataforma, y la factura debe autorizarse en cuanto vuelva la conexión.

¿Cuánto tiempo es válido un CSID de ZATCA?

El estándar de seguridad de ZATCA permite una validez del certificado de hasta 60 meses. La fecha real de vencimiento está en su certificado, y el portal del contribuyente envía un recordatorio antes de que venza. La renovación revoca el certificado anterior y emite uno nuevo.

¿Qué pasa si se rechaza una factura simplificada (B2C)?

Corrija el error y envíe un documento nuevo para reporte (reporting). La guía técnica de ZATCA dice que la factura no se vuelve a emitir al cliente, y la transacción se sigue declarando en la declaración periódica de IVA.

¿Listo para empezar?

Cuéntenos lo que necesita. Recibirá una respuesta técnica clara, un alcance definido y un precio fijo, normalmente en 24 horas.