Holograma de factura electrónica B2B obligatoria: red de nodos verdes que intercambian documentos de luz
Software / APIs

Factura Electrónica B2B Obligatoria: Normas y Plazos

Codezone
Codezone Empresa de Desarrollo Web y Software a Medida

La factura electrónica B2B obligatoria ya tiene reglamento: el Real Decreto 238/2026 desarrolla el artículo 12 de la Ley 18/2022 (Crea y Crece), y la Orden HAC/1028/2026, en vigor desde el 6 de octubre de 2026, ha puesto en marcha el plazo. Las empresas de más de 8 millones de euros tienen doce meses y el resto, veinticuatro. Tu ERP necesita integraciones de facturación a medida.

Hoy muchas empresas envían un PDF por correo y alguien lo teclea en contabilidad. Eso deja de cumplir: la factura será un mensaje estructurado y el destinatario comunicará la aceptación o el rechazo y después el pago en un máximo de cuatro días naturales, sin contar sábados, domingos ni festivos nacionales (artículo 10 del Real Decreto 238/2026).

Al terminar sabrás qué formato y qué vía de intercambio encajan con tu sistema y qué middleware entre ERP y plataformas de factura te hace falta.

Qué es la factura electrónica B2B obligatoria

La factura electrónica B2B obligatoria es la exigencia, fijada por el artículo 12 de la Ley 18/2022 y desarrollada por el Real Decreto 238/2026, de que toda factura entre empresarios y profesionales establecidos en España se emita como mensaje estructurado conforme a la norma europea EN 16931 y permita seguir su aceptación y su pago.

Las facturas simplificadas quedan fuera, salvo las cualificadas (artículo 4). La norma no sustituye a los requisitos de Verifactu para software a medida: Verifactu controla el registro de lo que emites y esta norma controla el formato y la entrega. El texto está en el Real Decreto 238/2026 en el BOE.

Dos torres holográficas verdes conectadas por un puente de luz por el que viajan sobres translúcidos sin texto
Cada factura viaja como dato estructurado entre dos sistemas.

Plazos de la factura electrónica B2B según el BOE

El calendario cuenta desde la entrada en vigor de la Orden HAC/1028/2026 de la solución pública, publicada el 5 de octubre de 2026 y en vigor al día siguiente (disposición final cuarta del Real Decreto 238/2026):

  • Volumen de operaciones superior a 8 millones de euros: doce meses, es decir, octubre de 2027. Durante el primer año acompañan cada factura con un PDF legible, salvo que el cliente acepte expresamente el formato original (disposición transitoria segunda).
  • Resto de empresarios y profesionales: veinticuatro meses, octubre de 2028. Los autónomos personas físicas de hasta 8 millones tienen doce meses más para informar de los estados (disposición transitoria tercera).
  • Plataformas privadas de intercambio: copia fiel e interconexión a los doce meses de la orden (disposición final cuarta, apartado 2).

Formatos admitidos: EN 16931, UBL y Facturae

El artículo 7 del Real Decreto 238/2026 admite cuatro sintaxis, todas ajustadas al modelo semántico EN 16931:

  • UBL: la única que acepta la solución pública de la AEAT (artículo 11.2). Peppol BIS vale en plataformas privadas porque usa UBL.
  • Facturae: admitida por su uso consolidado con las administraciones públicas, según el preámbulo.
  • CII y EDIFACT: completan la lista; EDIFACT por su penetración en muchos sectores.

Las plataformas privadas deben convertir entre todas y firmar con firma electrónica avanzada. Cada factura lleva un código único con NIF del emisor, serie y número y fecha (artículo 7.5).

Cubo holográfico esmeralda que se despliega en cuatro caras luminosas cubiertas de líneas abstractas
Cuatro sintaxis distintas comparten un mismo modelo semántico.

Solución pública o plataforma privada

El sistema español de factura electrónica combina la solución pública y gratuita de la AEAT con plataformas privadas interconectadas (artículos 5 y 11). Si no designas plataforma privada, recibes por la pública (artículo 6.1).

  • Solución pública si: ya trabajas en UBL y te basta con la descarga manual o automática que ofrece la AEAT.
  • Plataforma privada si: tus clientes piden Facturae o EDIFACT. Tu plataforma envía a la AEAT una copia fiel en UBL con cada emisión (artículo 6.2).

El pago completo o el rechazo se comunican siempre a la solución pública (artículo 12). La conciliación bancaria automática con agregadores y Norma 43 detecta el pago y puede disparar esa comunicación.

Cómo encaja con Verifactu y con tu ERP

El anexo I de la Orden HAC/1028/2026 incluye un grupo "QR fiscal" donde se consigna la URL del QR VERI*FACTU o TicketBAI. Tu ERP genera el registro de facturación y su QR, y después vuelca esa URL en el UBL.

Si trabajas con una integración del ERP con Sage, Holded u Odoo, decide primero qué datos de facturación sincroniza el ERP con el CRM. Las facturas recibidas llegan estructuradas, así que desaparecen los errores de extraer facturas con IA y el circuito de aprobación encaja en la automatización de procesos administrativos en Madrid.

Los datos de autónomos en cada factura siguen las reglas de tratamiento RGPD de los datos de facturación.

Escáner holográfico verde que recorre un documento flotante de líneas abstractas marcado con puntos ámbar
Validar antes de enviar evita rechazos comerciales.
CodeZone Pro Tip: valida un UBL antes de enviarlo para comprobar que trae los campos obligatorios y que el total cuadra con base más IVA.
import sys
import xml.etree.ElementTree as ET
from decimal import Decimal
NS = {"cac": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2",
      "cbc": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"}
NIF_VENDEDOR = "cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID"
# Términos 1..1 del anexo I de la Orden HAC/1028/2026: filtro previo, no validación completa
OBLIGATORIOS = {
    "BT-1 serie y número": "cbc:ID", "BT-2 fecha": "cbc:IssueDate",
    "BT-3 tipo": "cbc:InvoiceTypeCode", "BT-5 moneda": "cbc:DocumentCurrencyCode",
    "NIF del vendedor": NIF_VENDEDOR,  # el artículo 11.3 del RD 238/2026 exige ambos NIF
    "NIF del comprador": "cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID",
    "BT-109 base": "cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount",
    "BT-110 cuota IVA": "cac:TaxTotal/cbc:TaxAmount",
    "BT-112 total con IVA": "cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount",
    "BT-115 total a pagar": "cac:LegalMonetaryTotal/cbc:PayableAmount",
}

def validar(raiz: ET.Element) -> list[str]:
    v = {k: (raiz.findtext(x, namespaces=NS) or "").strip() for k, x in OBLIGATORIOS.items()}
    errores = [f"Falta {k}" for k, valor in v.items() if not valor]
    if not errores:
        # Un descuadre de céntimos acaba en rechazo comercial y en una rectificativa
        base, iva, total = (Decimal(v[k]) for k in ("BT-109 base", "BT-110 cuota IVA", "BT-112 total con IVA"))
        if base + iva != total:
            errores.append(f"Total {total} distinto de base {base} + IVA {iva}")
    return errores

if __name__ == "__main__":
    raiz = ET.parse(sys.argv[1]).getroot()
    fallos = validar(raiz)
    # Código único del artículo 7.5: NIF emisor, serie y número, fecha (el separador es nuestro)
    clave = "|".join((raiz.findtext(x, namespaces=NS) or "").strip() for x in (NIF_VENDEDOR, "cbc:ID", "cbc:IssueDate"))
    print("\n".join(fallos) if fallos else f"OK {clave}")
    sys.exit(1 if fallos else 0)

Este filtro va en el ERP antes de la plataforma. Una factura incompleta vuelve rechazada y te obliga a emitir otra con el cobro ya retrasado. Parada en origen, solo cuesta un aviso al equipo de administración.

Lo Que Pierdes Si Tu ERP No Habla Factura Electrónica

Sin integración, cada factura recibida obliga a alguien a comunicar su estado a mano dentro del plazo de cuatro días del artículo 10. Con integración, el ERP los comunica y tu equipo revisa solo excepciones.

Reloj de arena holográfico verde cuyas partículas caen sobre una pila de sobres luminosos sin texto
El plazo de cuatro días corre con cada factura recibida.

En Codezone conectamos ERP a medida y comerciales con la solución pública y con plataformas privadas. Escríbenos con tu volumen de facturas y te proponemos la vía de intercambio que encaja.