How taxes are applied
The Fiscal Mirror rule — BeeL reflects the Stripe charge exactly, with a clean fallback when Stripe Tax isn't enabled.
When BeeL generates an invoice from a Stripe payment, it does not recalculate taxes. It reflects the Stripe charge exactly — total, breakdown, currency, everything. This is the Fiscal Mirror rule. This page is the practical version of that contract; the full mechanics live in Data conversion.
At a Glance
| Tax breakdown source | Stripe (when Stripe Tax is enabled) → your account defaults (otherwise) |
| Does BeeL recalculate | Never. The invoice total = the Stripe charge total |
| IRPF on Stripe invoices | Always 0, regardless of your default IRPF setting |
| Where to override the fallback | Settings > Integrations > Stripe (per-connection inclusivity flag) |
| Where to set your account default | Settings > Taxes (used only when Stripe Tax is off) |
How it works
When Stripe Tax is enabled
Every Stripe charge carries tax_amounts[] per line with rate, amount, and inclusivity. BeeL reads those and emits the invoice with the exact same numbers — your account-level tax defaults are not consulted.
Example: Stripe Tax says 21 % IVA, inclusive, on 121 EUR → BeeL emits a line with base 100.00 €, IVA 21.00 €, total 121.00 €.
When Stripe Tax is NOT enabled
The charge has no breakdown — just a total. BeeL falls back to your defaults:
- The connection's "Prices include tax" setting (override per Stripe integration)
- Your default tax (IVA / IGIC / IPSI) at the rate configured in Settings > Taxes
It then decomposes the Stripe total as inclusive of that rate. The decomposition is exact — no residual rounding.
Example: Stripe charges 121 €, your default is IVA 21 % inclusive → BeeL emits base 100.00 €, IVA 21.00 €, total 121.00 €.
IRPF is always 0 on Stripe invoices
Stripe Connect serves B2C flows (e-commerce, subscriptions to consumers, point-of-sale). These aren't subject to IRPF withholding under Spanish law, so applying your default professional IRPF would make the invoice diverge from the Stripe charge — violating Fiscal Mirror.
If you need an IRPF-withheld invoice for a B2B customer, issue it manually via the Invoicing API — don't route it through Stripe.
Recargo de equivalencia
If your account has recargo de equivalencia configured and the Stripe charge maps to a B2B retailer (mapping has the right flag), BeeL applies the surcharge automatically as part of the line classification. See Equivalence surcharge.
Where to change settings
Connection-level (per Stripe integration)
- Go to Settings > Integrations > Stripe
- Edit Prices include tax — controls the inclusivity flag used in the fallback path
- Save
Account-level (default tax)
- Go to Settings > Taxes
- Choose your main tax (IVA, IGIC, or IPSI) and the standard rate
- Save
Account-level defaults are used only when Stripe Tax doesn't expose a breakdown — when Stripe Tax is on, your defaults are bypassed.
Changes to either set of settings apply to new invoices only. Already-issued invoices are immutable once their VeriFactu submission is in flight.
Worked example
Imagine your Stripe customer pays 100 EUR:
Case A — Stripe Tax enabled (21 % inclusive)
Stripe says: line of 100 EUR base + 21 EUR IVA = 121 EUR total. Customer paid 121 EUR.
| Field | Value |
|---|---|
| Taxable base | 100.00 € |
| IVA (21 %) | 21.00 € |
| IRPF | 0 € |
| Total | 121.00 € |
Case B — Stripe Tax disabled, your default is IVA 21 % inclusive
Stripe says: total of 100 EUR. Customer paid 100 EUR.
BeeL decomposes inclusively:
| Field | Value |
|---|---|
| Taxable base | 82.64 € |
| IVA (21 %) | 17.36 € |
| IRPF | 0 € |
| Total | 100.00 € |
Case C — Stripe Tax disabled, your default is IVA 21 % exclusive
Stripe says: total of 100 EUR. You turned Prices include tax off on the connection. BeeL treats the 100 EUR as the base and adds the IVA on top:
| Field | Value |
|---|---|
| Taxable base | 100.00 € |
| IVA (21 %) | 21.00 € |
| IRPF | 0 € |
| Total | 121.00 € |
The customer paid 100 EUR but the invoice total is 121 EUR — a divergence. Only use the exclusive mode when your Stripe prices are net (rare in B2C). Otherwise leave Prices include tax on.
FAQ
Does BeeL use Stripe's tax rates?
Yes, when Stripe Tax is enabled. BeeL copies Stripe's breakdown verbatim — that's the Fiscal Mirror rule.
What happens if I change my default IVA rate?
It only matters when Stripe Tax is disabled on that connection. With Stripe Tax enabled, BeeL uses Stripe's rate, not yours. Either way, the change applies to new invoices only.
Can I have different taxes per Stripe customer?
The per-connection settings apply uniformly. For genuinely per-customer tax behaviour, enable Stripe Tax (which lets you configure tax codes per product / per customer) — BeeL will reflect Stripe's decision.
What about IGIC / IPSI?
If your default tax is IGIC or IPSI, BeeL uses it in the fallback path. With Stripe Tax enabled, BeeL uses whatever rate Stripe sends — make sure your Stripe Tax registrations match your invoicing reality.
Related
- Data conversion — full Fiscal Mirror specification
- Generated invoices — F1 vs F2 decision based on amount and customer data
- VeriFactu submission — when the resulting invoice goes to AEAT