API pricing & limits
What the API costs, which tier each plan grants, and the per-tier caps on requests, API keys and webhook endpoints.
The public API and the MCP server are included in every paid Factuarea
plan. There is no add-on to buy and no access request: create a key from
Dashboard → Developers → API Keys
and start calling /v1.
What you can pay for is capacity. Your plan grants a rate-limit tier; if you need a higher one without changing plans, subscribe to a capacity boost. The price column below is the price of that boost — never the price of access.
Tiers
| Tier | Boost price | Per minute | Per month | Active API keys | Webhook endpoints |
|---|---|---|---|---|---|
| Free | Not for sale (trial tier) | 10 rpm | 100 | 1 | 0 |
| Starter | €4.90 / month | 30 rpm | 5,000 | 3 | 1 |
| Pro | €19.90 / month | 300 rpm | 50,000 | 25 | 10 |
| Scale | Sales-led | Custom | Custom | Unlimited | Unlimited |
Figures verified against the backend tier configuration on 2026-07-31.
For how the quotas behave — sliding window, X-RateLimit-* headers, the
429 code and the back-off strategy — see Rate limits.
What your plan already grants
| Your plan | Tier granted at no extra cost |
|---|---|
| Trial (no active subscription yet) | Free |
| Emprendedor | Starter |
| Empresario | Pro |
| Enterprise | Scale |
The tier follows the plan on its own: it is not chosen per key or per request, and it changes as soon as your plan does.
Capacity boost
A boost buys a tier strictly higher than the one your plan already grants — for example Starter → Pro on the Emprendedor plan. Subscribe from Dashboard → Developers → Upgrade; billing is monthly. While the boost is active, every key of the company uses the boosted tier.
Because the plan already grants a tier, buying one that is equal to or lower than it is rejected — see Rate limits → Capacity boost for the rule and the error it returns.
Caps that are not requests
Two limits are counted per company rather than per request.
Active API keys
A key counts while it is neither revoked nor expired; revoking one frees a
slot immediately. Creating one past the cap responds 422 with
code: max_api_keys_exceeded, naming the tier and the cap. To get past it,
revoke a key you no longer use or move to a higher tier.
Webhook endpoints
An endpoint counts while it is live (active or degraded); a disabled or
deleted endpoint does not. Creating one past the cap responds 422 with
code: business_rule_violation and subcode: max_webhook_endpoints_reached.
On the Free tier the cap is 0, so the first endpoint already fails —
with 402 addon_required instead of the 422 above, because there is
nothing to free up. Webhooks need a paid plan (Starter or higher) or a
capacity boost.
Test mode is not a cheaper tier
A fact_test_ key carries the same tier as your live keys, so the same
per-minute and monthly quotas apply to sandbox traffic. No rate limit is
waived in test mode.
What the sandbox removes is the real-world effect, not the quota: VeriFactu records are created locally and never transmitted to the AEAT, document emails are not delivered to real recipients, and events are recorded but not delivered to your endpoints. See Test mode & sandbox for the full list.
One cap does behave differently: test keys live in a separate sandbox company, so they count against that company's own key allowance instead of your live one.
High volume
Scale has no published price — the caps are agreed case by case. Write to info@factuarea.com from the email associated with your company in Factuarea, with the request volume you expect and the endpoints you will hit. What the tier carries: custom per-minute and monthly quotas, unlimited active keys and webhook endpoints, a service-level agreement and a dedicated account manager.
Checking what you consume
Dashboard → Developers → Usage
shows your consumption against the current tier. Every API response also
carries the X-RateLimit-* headers, which is the cheapest way to spot that
you are approaching the limit before you hit it — see
Rate limits for how to read them.