# Corregir facturas

Corrige, reembolsa o anula una factura emitida sin reescribir su historial.

Las facturas emitidas son inmutables: cambiar el cliente o eliminar una línea después no puede alterar lo emitido. Cuando necesites corregir algo, crea una rectificación sobre la factura original. FiscalRail registra el motivo y crea de forma atómica los documentos necesarios.

## Elige la corrección

El motivo determina lo que crea FiscalRail:

| Motivo | Cuándo usarlo | Resultado |
| --- | --- | --- |
| `refund` | Se reembolsa una parte o la totalidad de la operación. | Abono completo y, opcionalmente, una sustituta de menor importe. |
| `discount` | Se concede un descuento después de la emisión. | Abono completo y, opcionalmente, una sustituta de menor importe que conserva cantidades y tratamiento fiscal. |
| `incorrect_customer_details` | Los datos no fiscales del cliente eran incorrectos. | Abono completo y sustituta obligatoria para el mismo cliente y NIF. |
| `incorrect_lines` | Eran incorrectos los conceptos, cantidades o precios. | Abono completo y sustituta obligatoria que conserva el tratamiento fiscal. |
| `incorrect_tax` | Eran incorrectos el tratamiento o tipo impositivo. | Abono completo y sustituta obligatoria que conserva los datos comerciales de las líneas. |
| `customer_identification` | Hay que añadir el destinatario o corregir su identidad fiscal. | Abono completo y sustituta obligatoria con el cliente identificado correctamente. |
| `issued_by_mistake` | La operación nunca ocurrió y la factura no debería existir. | Anula la factura sin crear abono ni sustituta. |

`issued_by_mistake` no es un atajo para reembolsos o errores ordinarios. En cuentas españolas crea un registro de anulación de VERI*FACTU para la factura original.

## Emite la rectificación

Este ejemplo corrige las líneas y emite una sustituta. Da por hecho que `INVOICE_ID` contiene la factura que quieres corregir.

### cURL

```bash
curl "https://api.fiscalrail.com/v1/invoices/$INVOICE_ID/amendments" \
  --request POST \
  --header "Authorization: Bearer ak_test_..." \
  --header "Idempotency-Key: 607943a8-c7a9-48bb-a27a-87995250af0f" \
  --header "Content-Type: application/json" \
  --data '{
    "reason": "incorrect_lines",
    "replacement": {
      "lines": [{
        "description": "Consulting",
        "quantity": "2",
        "unit_price": "70.00",
        "taxes": [{"tax": "vat", "rule": "general"}]
      }]
    }
  }'
```

La respuesta es un `invoice_amendment` con referencias a la original, el abono completo y la sustituta. El abono revierte por completo la original; la sustituta expresa el resultado comercial corregido.

La operación entera es atómica. Si alguno de los documentos generados no es válido, no se emite ninguno ni se consume ningún número de serie.

## Reintenta de forma segura

Envía siempre un `Idempotency-Key`. Si la conexión falla después de confirmar la rectificación, repite exactamente la misma petición con la misma clave. FiscalRail devuelve el resultado original en lugar de rectificar dos veces.

Cada documento solo se puede rectificar una vez. Si la sustituta necesita otra corrección, crea la siguiente rectificación sobre la sustituta y no sobre la primera factura.

## Sigue el resultado

La original, el abono y la sustituta siguen siendo facturas que se pueden consultar por separado. Sus campos `preceding_invoice` conservan la relación, mientras que la entrada compartida en `amendments` expone la operación completa.

Se emite un evento `invoice.amended` para la rectificación y cada factura generada emite su propio `invoice.issued`. La entrega de webhooks no está ordenada, así que los consumidores deben usar los identificadores y relaciones en lugar de suponer qué evento llegará primero.

Las cuentas españolas también generan los registros de alta, rectificación o anulación correspondientes en VERI*FACTU. Suscríbete a los eventos `invoice.verifactu_registration.*` para conocer el resultado final.

Consulta la [referencia de la API de facturas](/en/docs/api/invoices) para ver todas las validaciones específicas de cada motivo y los campos de respuesta.
