Todo lo que necesitas para integrar la firma VeriFactu en tu software, ERP o plataforma. Un endpoint, resultado instantáneo.
Puedes firmar tu primera factura con VeriFactu en menos de 2 minutos. Solo necesitas una API key y una llamada HTTP.
Regístrate en la página de planes para obtener tu clave. El trial de 14 días es gratuito y no requiere tarjeta.
La API devuelve en menos de 200ms el hash SHA-256, el código QR verificable en la AEAT, y el XML oficial.
Todas las peticiones requieren una API key enviada en la cabecera Authorization con el esquema Bearer:
Tu API key se genera al suscribirte a un plan. Si la pierdes o se compromete, puedes revocarla y generar una nueva desde el panel de control.
Un único endpoint que recibe los datos de la factura y devuelve la firma VeriFactu completa.
Content-Type: application/json
CORS: Habilitado (Access-Control-Allow-Origin: *). Soporta preflight OPTIONS.
Envía un objeto JSON en el body de la petición con los datos de la factura:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
nif | string | Sí | NIF o CIF del emisor. Se convierte a mayúsculas automáticamente. Ej: B12345678 |
nombre | string | No | Nombre o razón social del emisor. Default: "Emisor" |
numero | string | Sí | Número de factura. Ej: F-2026-001 |
fecha | string | Sí | Fecha de la factura en formato YYYY-MM-DD |
base_imponible | number | Sí | Base imponible en euros. Debe ser mayor que 0 |
tipo_iva | number | No | Porcentaje de IVA. Default: 21. Valores habituales: 21, 10, 4, 0 |
cliente | string | No | Nombre del cliente o destinatario |
cliente_nif | string | No | NIF del cliente (para facturas B2B) |
concepto | string | No | Descripción del servicio o producto. Default: "Prestacion de servicios" |
prev_hash | string | No | Hash de la factura anterior para encadenamiento. Ver encadenamiento |
base_imponible y tipo_iva.Cuando la firma es exitosa, la API devuelve un JSON con código 200:
| Campo | Tipo | Descripción |
|---|---|---|
ok | boolean | true si la firma fue exitosa |
hash | string | Hash SHA-256 de 64 caracteres hexadecimales. Este es el identificador único VeriFactu de la factura |
prev_hash | string | Hash de la factura anterior en la cadena (vacío si es la primera) |
timestamp | string | Fecha y hora de la firma en formato ISO 8601 con zona horaria |
verify_url | string | URL de la AEAT donde se puede verificar la factura escaneando el QR |
qr_png | string | Código QR en formato PNG codificado en base64. Listo para usar en un <img src="..."> |
qr_svg | string | Código QR en formato SVG vectorial |
xml | string | XML VeriFactu completo en formato SuministroLR compatible con la AEAT |
invoice | string | Número de factura procesado |
test_mode | boolean | false en producción, true en sandbox |
usage | object | Contador de llamadas del día y límite de tu plan |
Cuando algo falla, la API devuelve un JSON con ok: false y un mensaje descriptivo:
Authorization o el formato es incorrectoPOSTnif, numero, fecha, base_imponible (>0)limit y used en el bodyCopia y pega el ejemplo en tu lenguaje preferido. Sustituye TU_API_KEY por tu clave real.
El sistema VeriFactu exige que cada factura incluya el hash de la factura anterior, formando una cadena criptográfica imposible de manipular. Esto garantiza la integridad de toda tu secuencia de facturación.
Cuando firmas tu primera factura, el campo prev_hash está vacío. A partir de la segunda, debes enviar el hash de la factura anterior:
hash de cada respuesta en tu base de datos junto con la factura. Al crear la siguiente factura, recupera el último hash y envíalo como prev_hash.Si no envías prev_hash, la API firma la factura igualmente pero sin encadenar. Para cumplimiento legal completo con la AEAT, se recomienda siempre encadenar.
Cada API key tiene un límite de llamadas diarias según tu plan. El contador se reinicia a las 00:00 UTC cada día.
| Plan | Precio | Llamadas/día | Soporte | SLA |
|---|---|---|---|---|
| Básico | 19,99 €/mes | 500 | — | |
| Pro | 49,99 €/mes | 2.000 | Prioritario | 99,9% |
| Empresa | 99,99 €/mes | Ilimitado | Telefónico | 99,9% |
Todos los planes incluyen 14 días de prueba gratuita sin tarjeta de crédito. Empieza tu prueba ahora →
429 con los campos limit y used. Cada respuesta exitosa incluye el objeto usage para que puedas monitorizar tu consumo en tiempo real.Sí. Según el RD 1007/2023, las empresas deben cumplir desde el 1 de enero de 2027 y los autónomos desde el 1 de julio de 2027 (fechas aplazadas por RD-ley 15/2025).
Producción real. Nuestra API conecta directamente con el entorno de producción de la AEAT (www2.agenciatributaria.gob.es), que está abierto desde abril de 2025.
Técnicamente sí (CORS está habilitado), pero no lo recomendamos porque expondrías tu API key. Usa la API desde tu servidor backend.
Puedes empezar una nueva cadena enviando una factura sin prev_hash. No obstante, para cumplimiento legal completo, lo ideal es mantener la cadena continua.
Actualmente la API firma facturas ordinarias. Las facturas rectificativas y anulaciones estarán disponibles en la versión 1.1.
Todavía no, pero la API es un único endpoint REST estándar que funciona con cualquier cliente HTTP. Los ejemplos de esta documentación son copy-paste y funcionan directamente.
Escríbenos en el formulario de contacto o envía un email a gestion@securecore.es. Los planes Pro y Empresa tienen soporte prioritario.
14 días gratis, sin tarjeta. Tu primera firma en menos de 2 minutos.