Territorial taxes (IVA, IGIC, IPSI)
When to use IVA, IGIC (Canary Islands), or IPSI (Ceuta & Melilla) — and which main_tax.type value to send.
Spain has three territorial IVA-equivalent taxes. The right one depends on where the operation is localised, not on the issuer's address. Most lines run on IVA; switch to IGIC or IPSI when the operation happens in those territories.
This page is the canonical reference for main_tax.type values and the rate menus per tax.
The three taxes
main_tax.type | Tax | Territory | AEAT impuesto code |
|---|---|---|---|
IVA | Impuesto sobre el Valor Añadido | Peninsula + Balearic Islands | 01 |
IPSI | Impuesto sobre la Producción, Servicios e Importación | Ceuta & Melilla | 02 |
IGIC | Impuesto General Indirecto Canario | Canary Islands | 03 |
OTHER | Other taxes | Rare — reserved for non-Spanish taxes carried on the invoice | 05 |
IVA is the default — you can omit main_tax.type or set it explicitly.
How you set it in the API
main_tax.type, main_tax.percentage, and main_tax.regime_key are sibling fields on each line:
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": "Importaciones Atlántico SL",
"nif": "B35987654",
"address": {
"street": "Avenida Marítima",
"number": "200",
"postal_code": "35001",
"city": "Las Palmas de Gran Canaria",
"province": "Las Palmas",
"country": "España"
}
},
"lines": [
{
"description": "Industrial air conditioning systems",
"quantity": 3,
"unit": "unit",
"unit_price": 3500,
"discount_percentage": 0,
"main_tax": { "type": "IGIC", "percentage": 7, "regime_key": "01" }
}
]
}'Rate menus per tax
IGIC (Canary Islands)
main_tax.percentage | Use |
|---|---|
0 | Tipo cero (essentials, intra-canary exports) |
3 | Tipo reducido (some food, transport) |
5 | Tipo reducido especial (temporary energy/utility measures) |
7 | Tipo general |
9.5 | Tipo incrementado (vehicles, mid-tier goods) |
15 | Tipo especial incrementado (luxury) |
20 | Labores del tabaco |
IPSI (Ceuta & Melilla)
Rates are set per municipality and per product category. Common ranges: 0.5 %, 3 %, 4 %, 8 %, 10 %. Check the Ordenanza Fiscal for the specific city.
{
"lines": [
{
"description": "Servicio en Ceuta",
"quantity": 1,
"unit": "service",
"unit_price": 200,
"discount_percentage": 0,
"main_tax": { "type": "IPSI", "percentage": 4, "regime_key": "01" }
}
]
}IVA
main_tax.percentage | Use |
|---|---|
0 | Exempt or out-of-scope (set exemption_reason — see Tax classification) |
4 | Tipo superreducido — basic foodstuffs, books |
5 | Temporary reduced rates (energy, some foods) |
10 | Tipo reducido — hospitality, transport |
21 | Tipo general |
Mixing taxes on the same invoice
Different lines on the same invoice can carry different taxes — for example, a service partly delivered in the peninsula (IVA) and partly in the Canary Islands (IGIC):
{
"lines": [
{ "description": "Consultoría en Madrid", "quantity": 1, "unit_price": 1000, "discount_percentage": 0,
"main_tax": { "type": "IVA", "percentage": 21, "regime_key": "01" } },
{ "description": "Consultoría en Tenerife", "quantity": 1, "unit_price": 1000, "discount_percentage": 0,
"main_tax": { "type": "IGIC", "percentage": 7, "regime_key": "01" } }
]
}BeeL groups the totals per main_tax.type in the response and submits each line under the correct AEAT impuesto code.
When to pick which
The decision tracks the place of supply of the operation, not the issuer's tax address:
- Goods physically delivered or services consumed in the Canary Islands → IGIC
- Goods or services consumed in Ceuta or Melilla → IPSI
- Everything else inside Spain → IVA
If you're a peninsular autónomo invoicing a Canary client for a service used in the Canaries, IGIC applies — not IVA. Likewise, a Canary issuer invoicing a peninsular client for a service consumed in the peninsula uses IVA.
BeeL doesn't auto-detect the place of supply — it trusts what you set. When the customer's address is in the Canaries, IPSI territory, or another EU country, double-check the line classification before issuing.
Mixed-territory regime (main_tax.regime_key: "08")
If the operation falls under "Operaciones sujetas a IPSI / IVA o IGIC", set main_tax.regime_key: "08" on the affected lines. This is rare — used mostly by businesses operating across both regimes simultaneously. See Regime keys.
Related
- Tax classification — applies the same way regardless of IVA / IGIC / IPSI (SSoT)
- Regime keys —
"08"for mixed-territory operations (SSoT) - createInvoice API reference — full line schema