Kreyo FacturaE

Generate signed FacturaE XML from JSON — one API call, legally compliant.

Send invoice data, get FacturaE 3.2.2 XML signed with XAdES. Validated against official XSD. Ready for FACe.

Free tier — 50 invoices/month, no credit card required.

JSON in — real FacturaE XML out

Edit the JSON and generate live. No API key, no certificate — real FacturaE 3.2.2 XML, validated against the official XSD.

POST /facturae/demo/generate
→
factura.xml
Press “Generate” to call the live API and see the signed, XSD-valid XML.

The hell you don't have to live through

Every one of these is a week you don't spend reading AEAT PDFs. Kreyo handles them all behind one endpoint.

01

XAdES-EPES signing & canonicalization

Enveloped XAdES-EPES signature, exclusive C14N canonicalization, signed properties, the facturae_3_1 signature policy with its exact digest. Get one byte wrong and FACe rejects the whole invoice.

02

XSD validation against the official schema

The FacturaE 3.2.2 schema is strict about element order, types and totals. We validate every document before it leaves, plus NIF check digits and IVA math, so invalid XML never reaches Hacienda.

03

Certificate & signature policy handling

Load a .pfx, build the certificate chain, reference the right signature policy, embed signing time and signer role. All the parts of the spec that have no good examples online.

04

FACe SOAP submission with DIR3

The FACe web service is SOAP, needs DIR3 codes (oficina contable, órgano gestor, unidad tramitadora) and returns a registro number and a status lifecycle. We wrap it in a single REST call.

Why not build it yourself?

You can. Here's what it actually costs.

In-house
  • 3–6 months reading AEAT specs and reverse-engineering examples
  • A senior dev who understands XML digital signatures
  • Ongoing maintenance every time the schema or policy changes
  • You own every FACe rejection and edge case
With Kreyo
  • One API call: JSON in, signed valid XML out
  • Maintained against schema and policy changes for you
  • Free tier to integrate today, no certificate needed to start
  • FACe submission and status tracking included

A deep-dive on signing FacturaE with XAdES-EPES in .NET is coming to the blog. The short version: it's the kind of work you want to do once, well — or not at all.

Spain is moving to mandatory e-invoicing

B2G is already mandatory. B2B has dates: 2027 and 2028. VeriFactu is planned for October 2028 (pending regulatory approval).

B2G — Already mandatory

Public sector invoices

All invoices to Spanish public administrations must be FacturaE, submitted via FACe. No exceptions.

B2B — Oct 2027 (>€8M) / Oct 2028 (rest)

Business-to-business invoices

The B2B mandate is fulfilled before the AEAT in UBL EN 16931 format, not FacturaE. FacturaE remains valid for public administrations (FACe) and for private exchange agreed between the parties. For the B2B mandate: Kreyo B2B →

VeriFactu — Oct 2028 (planned)

Real-time AEAT reporting

Real-time invoice reporting to the AEAT, planned for October 2028 (pending regulatory approval).

Are you ready?

Start with the free tier today

50 invoices/month free. No certificate required for unsigned XML. Add signing when you're ready.

Get your API key →

Everything for compliant Spanish e-invoicing

From JSON to signed XML to FACe submission in a single integration.

📄

JSON in, signed XML out

Same invoice JSON as Kreyo PDF. No XML knowledge needed. The output of Kreyo Extract feeds directly in.

🔏

XAdES digital signature

Upload your .pfx certificate once. Every invoice signed automatically with XAdES-EPES and the facturae_3_1 policy.

✅

XSD validated, always

Every XML validated against the official FacturaE 3.2.2 schema before delivery. Invalid XML never reaches FACe.

🏛️

FACe submission built-in

Submit to FACe with DIR3 codes. Track status: registered → validated → accepted → paid. Full history.

🛡️

Smart validation

NIF check digits, IVA rate validation, math consistency, business rules. Catches errors before Hacienda does.

🔄

Works with Kreyo Extract

Extract data from a received invoice → generate compliant XML. Full document cycle in two API calls.

Who builds with Kreyo FacturaE

From ERP integrations to gestorías, anyone who needs compliant XML at scale.

ERP developers

Add FacturaE in a weekend

Add FacturaE compliance to your product with one API integration. No XML parsing in your codebase.

Gestorías

Bulk XML generation

Generate compliant XML for all your clients automatically. Sign with each client's certificate.

Public sector suppliers

Direct FACe submission

Submit FacturaE to FACe without building the pipeline yourself. Track status and get registro number.

SaaS products

e-Invoicing for your users

Offer electronic invoicing to your Spanish customers. One integration, compliant for all your clients.

One subscription. One API key.

Every Kreyo product runs on a single shared pool of operations — no separate plans per product.

Free
€0/mo
100 operations/month, all products
  • Shared pool across all products
  • 5 req/min rate limit
  • Unsigned XML (no certificate)
Get started free
Pro
€49/mo
10,000 operations/month, all products
  • Shared pool across all products
  • 60 req/min rate limit
  • Unlimited certificates
Activation coming soon — email us if you need it now

Get your free API key

50 invoices/month, no certificate required to start.

Need visual PDF invoices too? Same JSON, different output. Check out Kreyo PDF →

Receiving invoices? Extract data with AI. Check out Kreyo Extract →