VerifactuMidAPI/documentacion/verifactu.md

103 lines
2.1 KiB
Markdown

# 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):
```yaml
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