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.
- Validación previa al envío
- QR y URL de verificación
- Firma (XAdES, SHA) y encadenado
- Envío a AEAT o Haciendas Forales
- Notificación por Webhook
- Factura Registrada
Empresas que ya emiten con VeriBai
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": "…"
}
}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.
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.
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.
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.
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.
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ónLa 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én | Obligado desde |
|---|---|
| Contribuyentes del Impuesto sobre Sociedades | 1 de enero de 2027 |
| Autónomos y demás obligados | 1 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.
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.
Lo que dicen los equipos que ya están en producción.
«Hemos integrado las más de 5.000 máquinas de nuestros clientes en menos de dos semanas. La documentación y el soporte han sido extraordinarios.»
«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.»
«Hemos integrado las más de 5.000 máquinas de nuestros clientes en menos de dos semanas. La documentación y el soporte han sido extraordinarios.»
«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.»
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.
Tú construyes el producto.
Del cumplimiento nos ocupamos nosotros. Cuenta gratuita, entorno de pruebas completo, producción cuando tú decidas.