Send invoice JSON. Kreyo computes the SHA-256 chain, builds the registro, signs it with your certificate, and submits it to AEAT in real time — returning the CSV confirmation and QR URL.
Free tier — 50 registros/month, no certificate required.
One API call does it all: validate, chain, sign, submit to AEAT.
"issuer_nif": "B12345678", "issuer_name": "Acme Solutions S.L.", "invoice_series": "A", "invoice_number": "2026-0142", "invoice_date": "2026-03-15", "invoice_type": "F1", "description": "Desarrollo web", "recipient_nif": "A87654321", "taxes": [ "rate": 21.0, "base": 3120.00, "amount": 655.20 ], "tax_total": 655.20, "invoice_total": 3775.20, "certificate_id": "cert_abc123"
"id": "vf_7f3a9b2c", "chain_position": 1847, "huella": "A1B2C3D4E5F6...", "estado_envio": "aceptado", "csv_aeat": "3M7A2K1P9Q", "qr_url": "https://www1.aeat.es/wlpl/TIKE-CONT/ValidarQR?nif=B12345678&numserie=A%2F2026-0142&fecha=15-03-2026&importe=3775.20", "legend_required": "VERI*FACTU", "signed": true, "created_at": "2026-03-15T10:30:42Z"
RRSIF (Real Decreto-ley 15/2025) obliges all SIF software in the Spanish market. Non-compliance: up to €150,000 per product type.
All companies paying Impuesto de Sociedades must issue invoices through a VeriFactu-capable SIF. Date planned for October 2028 (pending regulatory approval).
Self-employed and businesses under IRPF, same date: planned for October 2028 (pending regulatory approval). Every SaaS serving autónomos is on the hook.
RRSIF penalizes SIF manufacturers — not end users. If your software issues invoices to Spanish customers, it must be VeriFactu-capable.
3–6 months of implementation work, collapsed into one API integration.
NIF check digits, IVA rate validation (0%, 4%, 10%, 21%), tax math consistency, date range (not older than 4 years, not in the future), F2 simplificada recipient rule. Returns specific AEAT error codes, not generic 500s.
Compute the SHA-256 huella over the AEAT-specified field order. Append to the cryptographic chain for this issuer NIF (Redis lock + PostgreSQL UNIQUE constraint prevent duplicates even under concurrent load).
Build the RegistroAlta or RegistroAnulacion XML per SuministroLR.xsd. Apply W3C XMLDSig enveloped signature using the customer's own .pfx certificate — RSA-SHA256, not XAdES. Your software remains the SIF.
Submit via SOAP 1.1 over HTTPS with mutual TLS using the customer's certificate. Parse the response: Correcto, AceptadoConErrores, Incorrecto, or SOAP fault. All AEAT traffic logged for audit.
AEAT has planned outages. If submission fails, the registro is queued for retry with exponential backoff: 1min → 5min → 15min → 1h → 6h. The chain continues — AEAT confirms this is correct behaviour per their FAQ.
Returns the AEAT CSV confirmation code, the QR URL formatted exactly per spec (URL-encoded serie, DD-MM-YYYY fecha, dot-decimal importe), and the mandatory legend "VERI*FACTU" for the visible invoice.
The spec is 200+ pages of AEAT PDFs. We read them so you don't have to.
Per-NIF cryptographic chain with the exact field ordering from AEAT spec v1.0.3. Golden-vector tested. Chain never breaks — even during AEAT outages.
W3C XML Digital Signature on each registro using your customer's certificate. RSA-SHA256, C14N canonicalization. Your certificate, your signature — Kreyo is not your representative.
Direct integration with AEAT's VerifactuSOAP endpoint via SOAP 1.1 + mutual TLS. Handles production and pre-production. Parses all response states including SOAP faults.
AEAT accepts up to 1,000 registros per SOAP call. POST /registros/batch chains, signs, and submits all of them in a single request. Ideal for high-volume SIFs.
The exact URL format AEAT requires for the QR code on the visible invoice. URL-encoded, DD-MM-YYYY dates, dot-decimal amounts. Production and sandbox variants.
Upload a .pfx certificate once. Stored encrypted (AES-256). Reuse across FacturaE and VeriFactu. Kreyo never signs on your behalf — you remain the SIF manufacturer.
Any SIF in the Spanish market serving companies or autónomos needs this before the deadline.
Talleres, clínicas, academias, hostelería, comercio — any vertical SaaS with Spanish customers billing IVA needs VeriFactu. One API, all product types (F1–F5, R1–R5).
Submit registros for multiple NIFs under a single API key. Each NIF has an independent chain. Each client uploads their own certificate.
Factoring platforms, expense management tools, and neobanks issuing invoices for autónomos. Batch endpoint handles 1,000 registros per call.
Compete with Holded and Quipu without a 6-month compliance sprint. Same JSON data model as your existing invoice flow.
Every Kreyo product runs on a single shared pool of operations — no separate plans per product.
Kreyo VeriFactu is a technical component. Your software is the Sistema Informático de Facturación (SIF) per RRSIF. As SIF manufacturer, you are responsible for filing the declaración responsable before AEAT. Kreyo does not act as representative or colaborador social — all submissions are made with your own digital certificate via mutual TLS. Kreyo provides technical infrastructure for VeriFactu compliance but does not replace your responsibility for tax compliance.
50 registros/month, no certificate required to start testing.
Invoicing the public sector (FACe) or exchanging FacturaE privately? Same certificate, same JSON. Check out Kreyo FacturaE → For the AEAT B2B mandate (UBL), see Kreyo B2B →
Need visible PDF invoices with the QR embedded? Check out Kreyo PDF →