BeeL. API
Invoicing API for businesses in Spain with VeriFactu compliance.
BeeL is an invoicing platform for businesses in Spain. The API lets you programmatically manage the full invoice lifecycle — from creation to payment — with built-in VeriFactu compliance.
First steps
If you're new to BeeL, start here.
Authentication
Get an API key, pick an environment, make your first authenticated request.
Idempotency
Use Idempotency-Key to retry safely without duplicates.
API Reference
Browse every endpoint, schema, and enum value.
Highlights
VeriFactu
Spanish AEAT compliance — automatic chained submission, signed registros.
Stripe Connect
Auto-generate official invoices from Stripe payments. Fiscal Mirror — no recalculation.
Corrective invoices
R1–R5 rectificativas with PARTIAL/TOTAL flow and worked examples.
International customers
Intra-EU B2B, B2C with OSS, exports, services to non-EU — every scenario with payloads.
Webhooks
Real-time notifications: invoice.emitted, verifactu.status.updated, and more.
Glossary
Spanish ↔ English fiscal terms with the matching API field for each one.
At a glance
| Base URL | https://app.beel.es/api/v1 |
| Auth | Authorization: Bearer beel_sk_* |
| Format | JSON (REST) |
| Environments | Sandbox (beel_sk_test_*) + Production (beel_sk_live_*) — same URL, the key prefix routes |
VeriFactu mandatory from 2027
Submission to AEAT becomes mandatory for Corporate Tax payers on 2027-01-01 and for the rest of issuers (sole traders, professionals) on 2027-07-01. BeeL handles the chain, signature, and submission today — see Auto-submit policy.
Developer Plan required for full API access, webhooks, and idempotency support. Start with a 7-day free trial — see Pricing.
Quickstart in 60 seconds
curl https://app.beel.es/api/v1/invoices \
-H "Authorization: Bearer beel_sk_test_your_key_here"const response = await fetch('https://app.beel.es/api/v1/invoices', {
headers: { Authorization: `Bearer ${process.env.BEEL_API_KEY}` },
});
const { data } = await response.json();import os, requests
response = requests.get(
'https://app.beel.es/api/v1/invoices',
headers={'Authorization': f"Bearer {os.environ['BEEL_API_KEY']}"},
)
data = response.json()['data']HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://app.beel.es/api/v1/invoices"))
.header("Authorization", "Bearer " + System.getenv("BEEL_API_KEY"))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());Need help?
Reach the BeeL team
Write to it@beel.es — we typically respond within a few hours on business days. Developer Plan users get priority support.
- Status: status.beel.es — API uptime and incidents
- Changelog: /changelog — every breaking + non-breaking change