---
title: Factura rectificativa por diferencias
description: Cuerpo JSON de una factura rectificativa que registra únicamente la diferencia respecto a la factura original.
---

El ejemplo corrige el precio de la [factura
básica](/examples/factura-basica), identificada como `A/2026-002`. La operación
debió tener una base imponible de 80,00 € en lugar de 100,00 €. Envía este
cuerpo mediante
[`POST /invoicing/invoices`](/api#tag/facturas/POST/invoicing/invoices).

:::warning[Elige un único método de rectificación]
Este ejemplo y la [rectificativa por
sustitución](/examples/factura-rectificativa-sustitucion) son dos alternativas
para corregir la misma factura. No envíes ambas peticiones.
:::

:::warning[Adapta los datos antes del envío]
Todos los datos del ejemplo son ficticios. El NIF y el territorio del emisor
deben coincidir con la empresa identificada por `X-Qbikode-ClientApiKey`. Usa
la fecha y hora reales de emisión, referencia la factura que vas a rectificar y
emplea los datos reales de encadenamiento TicketBAI.
:::

## Cuerpo de la petición

```json
{
  "sender_data": {
    "sender_ticketbai_territory_id": "dded8ad1-0574-4ee4-b4f7-36687cba73b9",
    "sender_is_individual": false,
    "sender_full_name": "Empresa Ejemplo S.L.",
    "sender_id_card_number": "B12345674"
  },
  "recipients": [
    {
      "tax_id_number": "B76543214",
      "full_name": "Cliente Ejemplo S.A.",
      "postal_code": "20004",
      "address": "Avenida de la Libertad 1"
    }
  ],
  "invoice_data": {
    "fiscal_year": 2026,
    "series_code": "A",
    "invoice_number": "2026-006",
    "invoice_datetime": "2026-07-22 12:30:00",
    "rectificative_reason_code": "R4",
    "rectificative_type_code": "I",
    "replaced_rectified_invoices": [
      {
        "series_code": "A",
        "invoice_number": "2026-002",
        "invoice_date": "2026-07-22"
      }
    ],
    "description": "Corrección del precio del servicio de consultoría",
    "total_amount": -2420,
    "vat_keys": [
      {
        "transaction_of_tax_significance_code": "01"
      }
    ],
    "concepts": [
      {
        "description": "Diferencia del servicio de consultoría",
        "quantity": 100,
        "unit_price": -2000000000,
        "total_price": -2420
      }
    ],
    "local_subject_not_exempt_items": [
      {
        "vat_not_exempt_type": "S1",
        "vat_breakdown_items": [
          {
            "taxable_amount": -2000,
            "tax_rate": 2100,
            "tax_quota": -420
          }
        ]
      }
    ]
  },
  "previous_invoice_data": {
    "signature_value": "firma-ficticia-factura-2026-005",
    "series_code": "A",
    "invoice_number": "2026-005",
    "invoice_date": "2026-07-22"
  }
}
```

:::note[Rectificación por diferencias]
`rectificative_type_code: "I"` indica que el desglose contiene únicamente la
diferencia respecto a la factura original. Al reducirse la base de 100,00 € a
80,00 €, se declaran -20,00 € de base, -4,20 € de cuota y -24,20 € de total.
No incluyas `rectified_base_amount`, `rectified_quota` ni
`rectified_equalization_tax_quota` en una rectificativa por diferencias.
:::

:::note[Motivo de la rectificación]
El ejemplo usa `R4` con fines ilustrativos para un error de precio. Selecciona
en cada caso el motivo que corresponda. Los códigos disponibles son:

- `R1`: artículos 80.1, 80.2 y 80.6 de la LIVA.
- `R2`: artículo 80.3 de la LIVA.
- `R3`: artículo 80.4 de la LIVA.
- `R4`: resto de causas.
- `R5`: rectificación de facturas simplificadas.

`R5` identifica el motivo de una factura rectificativa; no equivale a
`issued_in_substitution_of_simplified`, que se utiliza para emitir una factura
completa en sustitución de una simplificada.
:::

:::note[Factura rectificada y factura anterior]
`replaced_rectified_invoices` identifica la factura que se corrige, en este
caso `A/2026-002`. `previous_invoice_data` identifica la factura anterior de la
cadena TicketBAI, que en el ejemplo es `A/2026-005`. Son relaciones distintas.
`previous_invoice_data` puede omitirse cuando está activado el encadenamiento
automático.
:::

:::info[Conceptos según el territorio]
En Araba y Gipuzkoa, `invoice_data.concepts` es obligatorio y su total debe ser
coherente con `total_amount`. En Bizkaia puede omitirse.
:::
