Test mode
Test your integration without touching production.
Test the real flow with isolated data and numbering. Nothing reaches the tax authority, FACe or your clients.
- Same contract for the main flow
- Separate data and numbering
- The prefix selects the environment
Compatible integrations and formats

WhatsApp

Anatomy of the key
The prefix decides the environment
Isolated sandbox company. External effects blocked.
Your real company. Real fiscal numbering, AEAT, emails and webhooks.
No request parameter can accidentally send a test call to production. The key you send decides the environment.
Check the connection
export FACTUAREA_API_KEY='fact_test_…'
curl https://api.factuarea.com/v1/account \
-H 'Authorization: Bearer $FACTUAREA_API_KEY'Store your fact_test_ key in the variable and run your first request.
The boundary
Everything runs. Nothing goes out.
Create the invoice, calculate taxes and move through its states. The sandbox keeps the result and neutralises only the outputs that would touch third parties.
- Test real responsesValidation, totals, states and errors use the same contract as the main flow.
- Isolate every outputAEAT stays local, email is not delivered, the event is stored and FACe returns a synthetic record.
- Know the two exceptionsPing does test connectivity and signature. Irreversible operations remain irreversible.
Invoice
201 · created
AEAT
local record only
not delivered
Webhook
livemode: false
Truly separate data
Test with your own numbering without touching the live sequence
The sandbox is another company with its own clients, documents and series. A live key never sees or consumes its resources.
- Separate numberingTest numbering uses the sandbox's own series. It never consumes or alters the sequence of your production series.
- Isolation by companyIt is not a filter over the same data: they are two companies. A live key does not see test resources, nor the other way round.
- Independent resourcesData created in test does not move to production. The sandbox validates the integration, not the data for your live launch.
fact_live_…
FRA 2026/0183
FRA 2026/0184
fact_test_…
FRA 2026/0006
FRA 2026/0007
From test to production
Switching environment means switching a variable
There is no second implementation for operations available in both environments. The request shape is identical: the key you send is what changes.
- Create the live keyWith the same scopes you already validated in test. The secret is returned in plaintext exactly once: store it right then.
- Swap the keyWherever you keep it: the environment variable, the secret manager, the deployment config. That is all.
- Leave the code aloneThe request shape is the same for operations available in both environments, so there is nothing to adapt in that flow.
24 h
The grace window when rotating
Previous secret
New secret
Rotating issues a new secret and returns it once. The previous one keeps being accepted for 24 hours, so you can roll out without downtime. Once the window closes, the previous one stops working.
Published surface
An integration that fits your stack
The OpenAPI contract, SDKs and MCP server share the same API. These figures are checked against the published surface so you can assess scope and maintenance before integrating.
- API operations
- 413
- resources
- 37
- MCP tools
- 391
- documentation pages
- 797
Compatible technologies and clients
TypeScript
PHP
OpenAPI
Cursor
Logos identify compatible technologies or clients; they do not imply a commercial relationship or endorsement.
Questions
Three questions before you start
No. A fact_test_ key operates on the sandbox company and uses that company's series. The sequence of your production series is neither touched nor consumed.
Test the integration with isolated data
Create a fact_test_ key and validate the full flow before enabling production.