VerifactuMidAPI/documentacion/formato_datos.md

94 lines
1.9 KiB
Markdown

# Formatos de Datos
## NIF (Número de Identificación Fiscal)
### Personas Físicas
- 8 dígitos + 1 letra final
- Ejemplo: `53950250R`
```
^[A-Z0-9]\d{7}[A-Z]$
```
### CIF (Identificación Fiscal Empresas)
- 1 letra + 8 dígitos + 1 letra
- Ejemplo: `A12345678`
## Fechas
Formato: `dd-mm-yyyy`
Ejemplo: `17-04-2026`
## Tipos de Factura
| Código | Descripción |
|--------|------------|
| F1 | Factura completa |
| F2 | Factura simplificada (ticket) |
| R1 | Rectificativa por diferencial |
| R2 | Rectificativa por sustitución |
| R3 | Rectificativa por descuento |
| R4 | Rectificativa por devolución |
| R5 | Rectificativa por otros motivos |
## Sistema Informático
| Campo | Descripción | Ejemplo |
|-------|------------|--------|
| Nombre | Nombre del sistema | Mi ERP |
| NIFProveedor | NIF del proveedor | 53950250R |
| Version | Versión del software | 1.0 |
| NombreSistema | Nombre técnico | Mi-ERP-v1 |
| NumeroInstalacion | Número de instalación | 1 |
| TipoUsoVerifactu | Tipo de uso VeriFactu | S |
## IVA
Cada entrada de IVA:
| Campo | Descripción |
|-------|------------|
| Base | Base imponible |
| Cuota | Cuota IVA |
| Tipo | Porcentaje (21.0, 10.0, 4.0) |
| ClaveRegimen | Clave de régimen (01=general) |
| Calificacion | Calificación (S1=sin inversa) |
## Ejemplo Completo
```json
{
"tipo": "alta",
"factura": {
"emisor_nif": "53950250R",
"num_serie": "FV2026/001",
"fecha_expedicion": "17-04-2026",
"tipo_factura": "F1",
"descripcion": "Factura de prueba",
"iva": [
{
"base": 100.00,
"cuota": 21.00,
"tipo": 21.0
}
],
"importe_total": 121.00
},
"sistema": {
"nombre": "Mi ERP",
"nif_proveedor": "53950250R",
"version": "1.0"
}
}
```
## Hash Encadenado
Cada factura incluye el hash SHA-256 de la anterior:
```go
hashactual = SHA256(datos_factura + hash_anterior)
```
Esto crea una cadena inmutable de facturas.