API VeriFactu para tu software de facturación

Un POST con los datos de la factura. La API valida, firma, encadena y remite el registro a la AEAT, y devuelve el código QR en la misma respuesta.

  1. Validación previa al envío
  2. QR y URL de verificación
  3. Firma (XAdES, SHA) y encadenado
  4. Envío a AEAT o Haciendas Forales
  5. Notificación por Webhook
  6. Factura Registrada

Empresas que ya emiten con VeriBai

  • Darwinex Zero
  • Eco Laundry
  • System2pay
  • Recalpres

El contrato, en una llamada.

Una petición, una respuesta y una confirmación. Sin SDK obligatorio y sin certificados propios. Los ejemplos van recortados; el contrato campo a campo vive en la documentación.

Petición

POST /v1/verifactu/crear
x-api-key: 

{
  "version": "1.0",
  "cabecera": {
    "serie": "A", "numero": "882",
    "fechaExpedicion": "03-04-2026",
    "tipoFactura": "F1"
  },
  "emisor": { "nif": "B76116342",},
  "detalleDesglose": [
    { "baseImponible": "100.00",
      "tipoImpositivo": "21.00",}
  ],
  "totales": {
    "cuotaTotal": "21.00",
    "importeTotal": "121.00"
  }
}

Respuesta

// 200 OK

{
  "idFactura": "…",
  "estado": "pendiente_proceso",
  "serieNumero": "A882",
  "importeTotal": "121.00",
  "urlValidacion": "https://…",
  "qrBase64": "…"
}

Webhook

// factura.registrada

{
  "evento": "factura.registrada",
  "datos": {
    "estadoFactura": "registrada",
    "csvAeat": "…",
    "hashVerifactu": "…"
  }
}

Referencia completa de VeriFactu

Lo que ocurre en cada llamada.

Entre tu JSON y la confirmación de la AEAT hay cinco etapas, y las cinco están resueltas.

1

Validación previa al envío

Los datos pasan las reglas de la AEAT antes de salir. Un NIF mal formado o un desglose que no cuadra se detecta en tu formulario, no en la remisión.

2

Código QR en la misma respuesta

El QR y su URL de verificación llegan en la respuesta del alta, listos para incrustar en tu plantilla de factura.

3

Conversión, firma y encadenado

El JSON se convierte al esquema oficial y el registro queda enlazado con el anterior del mismo emisor mediante una huella SHA-256.

4

Remisión a la Agencia Tributaria

El envío viaja por SOAP a la AEAT, con colas de reintento. Si la administración no responde, el registro se reenvía y no se pierde.

5

Confirmación por webhook

Cuando la AEAT confirma el registro, tu sistema recibe un POST firmado con HMAC.

Qué incluye la integración.

  • Todos los tipos de factura

    F1 completa, F2 simplificada, F3 emitida en sustitución y R1 a R5 rectificativas.

  • Subsanación y anulación

    Endpoints propios para corregir un registro ya remitido o para retirar el que no debió existir.

  • Alta de emisores por API

    Cada NIF con su propia cadena de registros, con numeración y encadenado independientes de los demás.

  • Validación de NIF contra el censo

    NIF y razón social del destinatario comprobados ante la AEAT antes de construir la factura.

  • Webhooks firmados

    El estado final de cada registro llega a tu sistema sin que tengas que consultarlo.

  • Evidencia durante siete años

    La petición y la respuesta de la administración, tal como llegaron, de cada registro.

Sin certificados que gestionar.

VeriBai está registrado como Colaborador Social de la AEAT. Nuestro certificado firma cada registro y lo remite en nombre de tus clientes, así que ni tú ni ellos tenéis que solicitar, instalar ni renovar certificados digitales.

Tu única tarea es una firma. El Anexo I de la AEAT, el documento que autoriza a VeriBai a remitir por ti, llega generado y listo: cada emisor lo firma una vez y no vuelve a pensar en certificados.

Cómo funciona la representación

La acreditación de VeriBai como colaborador social ante la AEAT y una única firma tuya, el modelo de representación, convergen en el certificado de VeriBai, que firma y remite cada registro: el resultado es cada factura firmada y remitida.

  • VeriBai · Registrado

    Colaborador Social

    AEAT · VeriFactu

  • Tú · una vez

    Modelo de Representación

    Anexo I de la AEAT, generado por VeriBai

Certificado de VeriBai

Emitido, custodiado y renovado por nosotros.

Factura A-882

Tu cliente, S.L.

firmada y remitida

Una acreditación nuestra y una firma tuya: todo lo que hace falta para que cada registro salga firmado y remitido a la AEAT.

Los plazos de VeriFactu.

QuiénObligado desde
Contribuyentes del Impuesto sobre Sociedades1 de enero de 2027
Autónomos y demás obligados1 de julio de 2027

Las fechas las fija el Real Decreto-ley 15/2025. TicketBAI ya es obligatorio en Araba, Bizkaia y Gipuzkoa: si tu software tiene clientes allí, esa parte corre desde hoy. Integrar antes del plazo permite probar en Sandbox sin presión de calendario.

Ver la API de TicketBAI

Construirlo por dentro o integrarlo.

Construirlo es posible, y conviene saber qué entra en el presupuesto: firma electrónica, el esquema XML de cada administración, el encadenado de huellas, las colas de reintento cuando la administración no responde, y el mantenimiento cada vez que cambia la norma. Es trabajo especializado y no termina el día del lanzamiento.

VeriBai existe para que ese trabajo no viva en tu roadmap. El entorno Sandbox es gratuito y no caduca, así que la comparación se puede hacer con una integración real delante en vez de con una estimación.

Lo que cuesta

Sandbox gratuito, sin límite de tiempo y sin tarjeta. En producción el precio va por NIF activo: desde 16 € al mes por NIF en el plan Esencial, con 3.000 facturas incluidas por NIF y mes. Sin coste de alta ni permanencia.

Comparar los cuatro planes

Lo que dicen los equipos que ya están en producción.

«Queríamos llegar a 2027 con VeriFactu resuelto y capaz de gestionar los miles de facturas que emitimos cada mes. La integración fue cuestión de días.»
Alex CaricolCEO · RecalpresB2B Ecommerce

Preguntas sobre la API VeriFactu.

Un 200 con el identificador de la factura, el código QR en base64, su URL de verificación y el estado pendiente_proceso. El QR ya es válido para imprimirlo en la factura. La remisión a la AEAT se completa después, en segundo plano. El contrato campo a campo está en Crear factura (VeriFactu).

Por webhook. Cuando el registro alcanza su estado final, llega un POST firmado con HMAC a tu URL, con reintentos automáticos. Si prefieres consultar, GET /v1/facturas/{idFactura}/estado devuelve el estado en cualquier momento. Ver Webhooks y Consultar facturas y registros.

Con dos operaciones distintas. PUT /v1/verifactu/subsanar corrige los datos de un registro cuya operación es correcta. POST /v1/verifactu/anular retira un registro que no debió existir. Una factura rectificativa (R1 a R5) es otra cosa: un alta nueva que rectifica a la anterior. La tabla de cuándo usar cada una está en Rectificar y anular.

Sí. El entorno Sandbox es gratuito, no caduca y no pide tarjeta. Usa el mismo contrato que producción, así que lo que integras en Sandbox funciona igual en LIVE cambiando la clave y el dominio. Ver Entornos Sandbox y LIVE.

Con cualquiera que haga peticiones HTTPS. Es una API REST con JSON y autenticación por cabecera x-api-key, sin SDK obligatorio. Para Python hay un paquete oficial (pip install veribai) que añade reintentos seguros, errores tipados y espera de la respuesta de la administración. Ver Cliente de Python.

Nada se duplica. El alta es idempotente por emisor, serie, número y fecha de expedición: un reenvío idéntico devuelve 200 con el registro que ya existe, no uno nuevo. Por eso un 500 o un 503 se puede reintentar sin comprobar antes si la primera petición llegó. Si en el reintento cambia el importe total o el tipo de factura, la respuesta es 409 INVOICE_IDENTITY_CONFLICT: con ese número ya hay otra factura. Ver Errores.

Ver todas las preguntas frecuentes

Tú construyes el producto.

Del cumplimiento nos ocupamos nosotros. Cuenta gratuita, entorno de pruebas completo, producción cuando tú decidas.