BeeL
Get StartedVeriFactuStripeAPI Reference

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 sourceStripe (when Stripe Tax is enabled) → your account defaults (otherwise)
Does BeeL recalculateNever. The invoice total = the Stripe charge total
IRPF on Stripe invoicesAlways 0, regardless of your default IRPF setting
Where to override the fallbackSettings > Integrations > Stripe (per-connection inclusivity flag)
Where to set your account defaultSettings > 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:

  1. The connection's "Prices include tax" setting (override per Stripe integration)
  2. 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)

  1. Go to Settings > Integrations > Stripe
  2. Edit Prices include tax — controls the inclusivity flag used in the fallback path
  3. Save

Account-level (default tax)

  1. Go to Settings > Taxes
  2. Choose your main tax (IVA, IGIC, or IPSI) and the standard rate
  3. 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.

FieldValue
Taxable base100.00 €
IVA (21 %)21.00 €
IRPF0 €
Total121.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:

FieldValue
Taxable base82.64 €
IVA (21 %)17.36 €
IRPF0 €
Total100.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:

FieldValue
Taxable base100.00 €
IVA (21 %)21.00 €
IRPF0 €
Total121.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.