VerifactuMidAPI/documentacion/verifactu.md

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