2.1 KiB
VeriFactu - Protocolo AEAT
Qué es VeriFactu
Sistema mandatory de facturación electrónica de la AEAT (Agencia Estatal de Administración Tributaria) de España.
Obligatoriedad
A partir de certain fecha, todas las facturasemitidas deben registrarse en VeriFactu, independientemente del formato (紙 o digital).
Operaciones
Alta
Registrar una factura nueva en el sistema.
Tipos de factura:
- F1: Factura completa
- F2: Factura simplificada (ticket)
- R1-R5: Rectificativas
Anulación
Cancelar una factura previamente registrada.
Subsanación
Corregir errores en facturas ya registradas.
Consulta
Buscar facturas previamente enviadas.
Encadenamiento de Hash
Cada factura incluye el hash de la anterior:
Hash(N) = SHA256(Datos(N) + Hash(N-1))
Esto garantiza la integridad del registro histórico.
URLs
Testing (Preproducción)
https://prewww2.aeat.es/.../SistemaFacturacion
Producción
https://www2.agenciatributaria.gob.es/.../SistemaFacturacion
Formato
SOAP 1.1 sobre HTTPS con:
- Certificado cliente cualificado
- XML con namespaces específicos
- Response con CSV (Código de Verificación)
CSV
Código de Verificación de 13 caracteres (o hash SHA-256 en desarrollo) que acredita el registro en Hacienda.
Fallback Local
Cuando AEAT no está disponible (error de red, servidor caído, etc), la API guarda la factura localmente:
- Genera el hash localmente
- Guarda en
./data/(hash storage) - Devuelve el hash como CSV temporal
- Estado: "Correcto (local)"
Esto permite seguir operando sin conexión a AEAT.
Certificado Cliente
La AEAT requiere certificado cliente para aceptar requests (mTLS):
certificates:
storage_path: ./data/certs/
cert_file: ./data/certs/personal.p12
cert_password: tu_contraseña
Sin certificado válido, la API cae en fallback local.
Datos Obligatorios
- NIF del emisor
- Número de serie
- Fecha de expedición
- Tipo de factura
- Base imponible IVA
- Cuota IVA
- Importe total
Límites
- Máximo 1000 facturas por request
- Rate limit: consultar documentación AEAT