# Equivalence surcharge (recargo de equivalencia)

When to add `equivalence_surcharge_rate` on B2B lines, the surcharge values BeeL. accepts and their periods, and how the line is sent to AEAT.

Recargo de equivalencia is a special IVA regime for retailers (minoristas) who sell unmodified goods. The supplier (you) adds the surcharge to the standard IVA on every line sold to a retailer who has opted into the regime; the retailer then doesn't file their own IVA returns.

## When you add the surcharge

You add it **only if the buyer has declared themselves a retailer under the equivalence surcharge regime**. The buyer must inform you in writing — you don't infer it from anything in their fiscal data.

If the buyer hasn't declared the regime, you invoice them with normal IVA and no surcharge.

> **Rules that apply here:** [SUR-001 · The surcharge rate matches the VAT rate of its line](/rules/surcharge#sur-001)

## Accepted surcharge values

A request's `equivalence_surcharge_rate` is one of `0`, `0.26`, `0.5`, `0.62`, `1`, `1.4`, `1.75` or `5.2`, each paired to a specific IVA rate and, for the temporary rates, to a period:

| Value | Pairs with IVA rate | Accepted on operations dated |
|---|---|---|
| `0` | — | Any: surcharge disabled on that line |
| `0.5` | 4 % | Any |
| `1.4` | 10 % | Any |
| `5.2` | 21 % | Any |
| `1.75` | 21 % | Any (tobacco products) |
| `0.5` | 5 % | 2022-07-01 to 2022-12-31 |
| `0.62` | 5 % | 2023-01-01 to 2024-09-30 |
| `0.26` | 2 % | 2024-10-01 to 2024-12-31 |
| `1` | 7.5 % | 2024-10-01 to 2024-12-31 |

Pairing is strict: a line with `main_tax.percentage: 10` must use `1.4`, never `0.5` or `5.2`. A combination outside the table is rejected with [`INVALID_IVA_SURCHARGE_PAIR`](/errors/INVALID_IVA_SURCHARGE_PAIR), and a pair outside its period with `422` [`SURCHARGE_RATE_NOT_ACCEPTED_ON_DATE`](/errors/SURCHARGE_RATE_NOT_ACCEPTED_ON_DATE). The date judged is the invoice's `operation_date`, or the issue date when there is none. [List tax types](/tax-configuration/listTaxTypes) publishes every pair with its `valid_from` / `valid_until`; the same surcharge can appear twice (`0.5` with 4 % and with 5 %), so key them by surcharge and VAT rate together.

When a line omits `equivalence_surcharge_rate` and the company is in the regime, the surcharge is derived from the line's VAT **on the operation date**: with VAT at 5 %, `0.5` up to 2022-12-31 and `0.62` from 2023-01-01.

The 5 % surcharge is `0.62`: `0.625` is not accepted in a request. An invoice issued with `0.625` keeps it when you read it. A draft saved with `0.625` that could not be recalculated is rejected at issue with `422` [`SURCHARGE_RATE_REQUIRES_RECALCULATION`](/errors/SURCHARGE_RATE_REQUIRES_RECALCULATION): edit its lines and issue it again.

The regime goes with it: a line with a surcharge must carry `main_tax.regime_key: "18"`, and a line under regime `"18"` must carry a surcharge (see [below](#whats-incompatible-with-the-surcharge)).

> **Rules that apply here:** [SUR-001 · The surcharge rate matches the VAT rate of its line](/rules/surcharge#sur-001)

## How to set it in the API

Add `equivalence_surcharge_rate` to the line and set `main_tax.regime_key: "18"`:

```bash
curl -X POST "https://app.beel.es/api/v1/companies/{company_id}/invoices" \
  -H "Authorization: Bearer $BEEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "STANDARD",
    "recipient": {
      "legal_name": "Tienda de Electrónica López",
      "nif": "B12345674",
      "address": {
        "street": "Calle Comercio",
        "number": "56",
        "postal_code": "08001",
        "city": "Barcelona",
        "province": "Barcelona",
        "country": "España"
      }
    },
    "lines": [
      {
        "description": "Producto vendido a minorista en RE",
        "quantity": 1,
        "unit": "unit",
        "unit_price": 200,
        "discount_percentage": 0,
        "main_tax": { "type": "IVA", "percentage": 21, "regime_key": "18" },
        "equivalence_surcharge_rate": 5.2
      }
    ]
  }'
```

BeeL. submits the right `clave_regimen: "18"` and AEAT codes to VeriFactu on your behalf.

## What's incompatible with the surcharge

| Setting | Reason |
|---|---|
| `exemption_reason: ISP_ART_84_2_*` | ISP shifts liability to the buyer; surcharge doesn't apply |
| Any `exemption_reason: EXENTA_*` / `NO_SUJETA_*` | Exempt and not-subject lines don't carry IVA → no surcharge |
| Any `main_tax.regime_key` other than `"18"` | The surcharge is only compatible with regime 18 ([`SURCHARGE_REQUIRES_REGIME`](/errors/SURCHARGE_REQUIRES_REGIME)); the reverse also holds, regime 18 without a rate is rejected ([`REGIME_REQUIRES_SURCHARGE`](/errors/REGIME_REQUIRES_SURCHARGE)) |
| Lines on a simplified (`type: SIMPLIFIED`) invoice | F2 is for B2C; retailers buy under F1 |

BeeL. rejects these combinations at issuance with a descriptive error.

For the `exemption_reason` values referenced here, see [Tax classification per line](/verifactu/tax-classification).

## The surcharge is per-line, not per-invoice

You can mix lines with and without the surcharge in the same invoice. Common case: the retailer buys some goods (surcharge applies) and you also charge them a transport fee that is a separate service (no surcharge, regime general).

```json
{
  "lines": [
    {
      "description": "Mercancía minorista",
      "quantity": 1,
      "unit_price": 200,
      "discount_percentage": 0,
      "main_tax": { "type": "IVA", "percentage": 21, "regime_key": "18" },
      "equivalence_surcharge_rate": 5.2
    },
    {
      "description": "Transporte",
      "quantity": 1,
      "unit_price": 30,
      "discount_percentage": 0,
      "main_tax": { "type": "IVA", "percentage": 21, "regime_key": "01" }
    }
  ]
}
```

> **Rules that apply here:** [SUR-002 · Supplies with the surcharge go on separate invoices](/rules/surcharge#sur-002)

## Related

<Related>

- [Tax classification](/verifactu/tax-classification) — the `exemption_reason` enum (SSoT)
- [Regime keys](/verifactu/regime-keys) — `"18"` and friends (SSoT)

</Related>

---

Full OpenAPI spec: https://docs.beel.es/api/openapi