ValidateFin
Volver al blog
·Actualizado 11 mar 2026·UBL·Por Eliel Nicaise

Errores comunes de UBL y Peppol BIS 3.0 y cómo corregirlos

Guía práctica sobre los errores de validación UBL más comunes y las reglas Peppol BIS 3.0, incluyendo códigos de error BR y correcciones.

Por qué los archivos UBL no pasan la validación Peppol

Las facturas UBL (Universal Business Language) transmitidas a través de la red Peppol deben pasar tres capas de validación: esquema XSD UBL 2.1, reglas de negocio EN 16931 (códigos BR) y reglas CIUS Peppol BIS 3.0 (códigos PEPPOL).

Cada capa puede rechazar una factura. Esta guía cubre los errores más comunes que encuentran los equipos al generar o enviar facturas Peppol en producción.

Los códigos de error siguen un patrón estructurado: BR-XX para reglas de negocio EN 16931, PEPPOL-XX para reglas específicas de Peppol y UBL-SR-XX para reglas de sintaxis UBL.

Errores comunes y correcciones

Los errores de validación UBL/Peppol más frecuentemente reportados:

BR-01: La factura debe tener un identificador de especificación

El elemento <cbc:CustomizationID> falta o está vacío. Para Peppol BIS 3.0 debe contener exactamente: urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0

BR-02: La factura debe tener un número de factura

El elemento <cbc:ID> falta o está vacío. El número de factura debe ser único y no puede consistir solo de espacios.

BR-04: La fecha de factura es obligatoria

<cbc:IssueDate> falta. La fecha debe especificarse en formato YYYY-MM-DD, p.ej. 2026-01-15. El formato DD/MM/AAAA no es aceptado.

Errores de estructura y formato

Blog.post12.s3.intro

Campos obligatorios faltantes en proveedores/compradores

Tanto AccountingSupplierParty como AccountingCustomerParty deben contener PartyName, PostalAddress (con CountryIdentificationCode) y PartyTaxScheme (con TaxSchemeID=VAT y CompanyID).

ID de TaxScheme no válido

El elemento TaxScheme/ID debe contener exactamente 'VAT', no 'IVA', 'TVA', 'MwSt' u otras variantes locales.

Cálculo del total de línea de factura

LineExtensionAmount debe ser igual a Quantity × Price.PriceAmount (menos cualquier descuento). La suma de todas las líneas debe coincidir con TaxExclusiveAmount en LegalMonetaryTotal.

Errores de IVA e impuestos

Blog.post12.s4.intro

Código de categoría de IVA no válido

UBL/EN 16931 define códigos de categoría específicos: S (Estándar), Z (Tasa cero), E (Exento), AE (Inversión del sujeto pasivo), K (Suministro intracomunitario CE), G (Exportación fuera de la UE), O (No imponible), L (Islas Canarias), M (Ceuta/Melilla). No uses un código que no esté en esta lista.

Desglose de IVA faltante

El elemento TaxTotal debe contener al menos un TaxSubtotal para cada categoría de IVA distinta aplicada. Una factura con tasas de IVA mixtas necesita entradas TaxSubtotal separadas para cada una.

Blog.post12.s4.e3.label

Blog.post12.s4.e3.desc

Valida tus facturas UBL gratuitamente

ValidateFin realiza una validación completa en tres fases: esquema XSD, reglas de negocio EN 16931 y reglas CIUS Peppol BIS 3.0. Los errores se muestran con su código BR/PEPPOL y la ruta XML incorrecta.

Abrir validador UBL

Preguntas frecuentes

¿Cuál es la diferencia entre los códigos de error BR y PEPPOL?

Los códigos BR (p.ej. BR-01, BR-CO-15) provienen de la norma EN 16931 y se aplican a todas las facturas electrónicas conformes en Europa. Los códigos PEPPOL (p.ej. PEPPOL-EN16931-R004) son reglas adicionales específicas de Peppol BIS 3.0 que solo aplican para transmisiones a través de la red Peppol.

¿Puedo enviar una factura UBL sin la red Peppol?

Sí. UBL puede enviarse directamente a través de API, correo electrónico, portal u otros canales. Las reglas Peppol BIS 3.0 solo aplican para la red Peppol. Para otros canales, puede que solo necesites cumplir con EN 16931 y los CIUS nacionales.

¿Cómo redondeo correctamente los importes de IVA en UBL?

EN 16931 permite una tolerancia de redondeo de ±0,01€ por línea. Para el total, debes sumar todos los importes de las líneas y luego redondear a 2 decimales. Evita usar aritmética de punto flotante para cálculos financieros.

¿Es CustomizationID obligatorio para todas las facturas UBL?

CustomizationID es obligatorio para Peppol BIS 3.0. Para otros CIUS (como XRechnung o implementaciones Peppol nacionales) se requiere un valor diferente. Siempre verifica el CIUS específico de tu país de destino.

Blog.post12.faq.q5

Blog.post12.faq.a5

Blog.post12.faq.q6

Blog.post12.faq.a6

Blog.post12.faq.q7

Blog.post12.faq.a7

Blog.post12.faq.q8

Blog.post12.faq.a8

Blog.post12.faq.q9

Blog.post12.faq.a9

Blog.post12.faq.q10

Blog.post12.faq.a10