Introducción
Verifactu API convierte cada factura que emite tu programa en un registro de facturación VERI*FACTU, lo remite a la AEAT y te devuelve lo que tienes que imprimir. Esta documentación explica cómo funciona la consola y cómo integrar tu software.
Qué es Verifactu API
Desde 2027, todo programa de facturación usado en España tiene que ser un sistema informático de facturación (SIF) conforme al Reglamento VERI*FACTU (RD 1007/2023 y Orden HAC/1177/2024): cada factura genera un registro con huella SHA-256 encadenada al anterior, se remite a la AEAT en el momento y el documento lleva un código QR de cotejo y unas leyendas obligatorias.
Verifactu API es ese SIF, ofrecido como servicio. Tu ERP, CRM o programa de facturación sigue haciendo lo que hacía —numerar, calcular, maquetar, cobrar— y en el momento de emitir hace una llamada HTTP. La API se encarga del registro, del encadenado, de la remisión con certificado electrónico, de los reintentos, de las subsanaciones y de avisarte del resultado.
Las piezas
| Pieza | Para qué sirve | Quién la usa |
|---|---|---|
| La API | Emite registros de alta y anulación, los remite a la AEAT, devuelve QR y leyendas, expone el estado de cada registro y notifica por webhook. | Tu software, con una clave de integración. |
| La consola | Da de alta tu cuenta y tus obligados, carga el certificado, crea claves y webhooks y muestra cada registro con lo que la AEAT respondió. | Las personas: quien administra la cuenta y quien concilia. |
| La referencia OpenAPI | Todos los endpoints, cuerpos y respuestas, con un cliente interactivo para probar llamadas. | Quien programa la integración. |
Un concepto atraviesa las tres: el obligado tributario. Es el NIF que factura. Una cuenta puede tener varios (una gestoría, un grupo de empresas), cada uno con su certificado, sus series y su propia cadena de registros. Todo lo demás —claves, webhooks, registros— cuelga de la cuenta y se acota por obligado.
Direcciones
| Qué | URL |
|---|---|
| API (base de todas las llamadas) | https://verifactu-api.zctechpartners.cloud/v1 |
| Referencia OpenAPI interactiva | https://verifactu-api.zctechpartners.cloud/docs |
| Especificación OpenAPI (JSON) | https://verifactu-api.zctechpartners.cloud/openapi.json |
| Declaración responsable del SIF | https://verifactu-api.zctechpartners.cloud/sif/declaracion |
| Consola de gestión | https://verifactu.zctechpartners.cloud/login |
| Esta documentación | https://verifactu.zctechpartners.cloud/docs |
Preproducción y producción comparten la misma URL. Lo que decide contra qué entorno de la AEAT se trabaja es la clave con la que te autenticas y el entorno del obligado al que va dirigida cada factura. Está explicado en Entornos y claves.
De cero a la primera factura
- 1
Crea tu cuenta en la consola
En Crear cuenta: nombre de la empresa, tu nombre, correo y contraseña. La cuenta nace con una clave administrativa que la propia consola guarda cifrada; no tienes que copiar nada. - 2
Da de alta el obligado en preproducción
En Obligados → Nuevo: el NIF que factura, la razón social y la vía de representación. Elige Preproducción. Si el obligado firma con su propio certificado, cárgalo (fichero.p12y su contraseña) en la ficha del obligado. Con un certificado válido el obligado pasa a Activo. - 3
Crea una clave de integración de preproducción
En Claves API → Nueva: perfil Integración, entorno Preproducción. Obtendrás una clavevf_test_…que se muestra una sola vez. Es la que va en tu software. - 4
Emite una factura desde tu software
UnPOST https://verifactu-api.zctechpartners.cloud/v1/facturascon la clave enAuthorization: Bearer, unaIdempotency-Keyy el cuerpo de la factura. La respuesta trae el identificador del registro, su huella, la URL del QR y las leyendas. Detalle en Integrar tu software. - 5
Mira el resultado en la consola
En Registros verás la factura, su estado de remisión y, cuando la AEAT responda, si la aceptó, la aceptó con errores o la rechazó. Suscribe un webhook para que tu sistema se entere solo. - 6
Pasa a producción
Da de alta el mismo NIF en Producción, carga su certificado, crea una clavevf_live_…y cámbiala en tu software. La numeración la sigues poniendo tú. Producción se contrata: escribe a accounts@zctechpartners.com.
curl -X POST https://verifactu-api.zctechpartners.cloud/v1/facturas \
-H "Authorization: Bearer vf_test_…" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"obligado_nif": "B21778451",
"num_serie_factura": "FAC-2027-0001",
"fecha_expedicion": "2027-01-07",
"tipo_factura": "F1",
"destinatario": { "nif": "12345678Z", "nombre_razon": "CLIENTE SL" },
"lineas": [{ "base": 1000.00, "tipo_iva": 21, "cuota": 210.00, "calificacion": "S1" }],
"cuota_total": 210.00,
"importe_total": 1210.00
}'Qué no hace
- No es un programa de facturación: no numera, no calcula importes, no maqueta el PDF ni cobra. Eso lo hace tu software; la API registra y remite lo que tu software ya decidió.
- No toca tu base de datos ni pide acceso a ella. Todo entra y sale por HTTP.
- No cubre la factura electrónica B2B del RD 238/2026 (formato UBL, plataforma pública). Es una obligación distinta y está en la hoja de ruta.
- No opera en «modo no VERI*FACTU»: todos los registros se remiten a la AEAT.