Equivalence surcharge (recargo de equivalencia)
When to add equivalence_surcharge_rate on B2B lines, the surcharge values BeeL accepts, 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 recargo de equivalencia retailer. 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.
Accepted surcharge values
The BeeL API's equivalence_surcharge_rate is an enum with exactly five values, each one paired to a specific IVA rate:
| Value | Pairs with IVA rate | Notes |
|---|---|---|
0 | — | Surcharge disabled on that line |
0.5 | 4 % | Super-reduced |
0.625 | 5 % | RD-ley 11/2022 — temporary reduced |
1.4 | 10 % | Reduced |
5.2 | 21 % | Standard |
Pairing is strict: a line with main_tax.percentage: 5 must use equivalence_surcharge_rate: 0.625, never 0.5 or 1.4. BeeL rejects mismatched pairs at issuance.
Other rates (e.g. the 1.75 % tobacco surcharge) are not exposed in the public API today — open a request if you need one.
How to set it in the API
Add equivalence_surcharge_rate to the line and set main_tax.regime_key: "18":
curl -X POST "https://app.beel.es/api/v1/invoices" \
-H "Authorization: Bearer beel_sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"type": "STANDARD",
"issue_date": "2026-05-18",
"recipient": {
"legal_name": "Tienda de Electrónica López",
"nif": "12345678Z",
"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 |
main_tax.regime_key: "03" (REBU) | REBU has its own special treatment |
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.
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).
{
"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" }
}
]
}Related
- Tax classification — the
exemption_reasonenum (SSoT) - Regime keys —
"18"and friends (SSoT)
Regime keys (`main_tax.regime_key`)
The catalogue of VeriFactu regime codes BeeL supports, when each one is required, and how it pairs with `exemption_reason`.
International customers
Every cross-border scenario — intra-EU B2B, B2C with OSS, exports, services to non-EU — with the exact request shape BeeL accepts.