# 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 nativo: `dd-mm-yyyy`

Ejemplo: `17-04-2026`

El formato Dolibarr acepta fechas ISO 8601 (`2024-09-13T00:00:00Z`) que se convierten automáticamente.

## 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) |

## Formatos de Entrada

La API detecta automáticamente el formato. Ver [formatos.md](formatos.md) para la lista completa y cómo añadir nuevos.

## 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.