Spain
What Beliq produces for Spain's Facturae 3.2.2 XML, and where the VeriFactu / FACe boundary sits.
Spain’s national Facturae format is XML defined by the Ministerio de Asuntos Económicos (MINECO) and published at facturae.gob.es. Beliq targets Facturae 3.2.2 (the sole current version; there is no 4.0). This is not EN 16931 UBL/CII and there are no BR-* Schematron rule IDs on Beliq’s validation path.
Spain runs a continuous-reporting model (VeriFactu real-time reporting plus the FACe B2G portal), so Beliq does not count it among its pinned, authority-verified live-coverage countries. The engine can emit and validate Facturae XML, as described below, but treat that as a document-layer capability rather than verified coverage: MINECO publishes no authority sample corpus, so validation is best-effort against the XSD. VeriFactu reporting and FACe submission always stay with your intermediary.
Where Beliq fits
- Generate ordinaria Facturae 3.2.2 XML via
standard: "facturae"and default profileordinaria. - Validate and parse detected Facturae XML against the authority MINECO XSD vendored in the engine (bundle pin in API responses as
spainFacturaeRuntimeVersion).
What Beliq does not do (VeriFactu / FACe boundary)
Beliq is not a VeriFactu reporting operator or a FACe submission operator. It does not:
- Sign invoices (the XAdES enveloped signature required before AEAT / FACe accept the document).
- Submit XAdES-signed billing records to VeriFactu (AEAT real-time reporting), or generate the VeriFactu QR / cotejo verification artifacts.
- Submit invoices to FACe (the B2G portal SOAP web services) or register as a FACe sender.
You remain responsible for signing, routing, and transmission through your chosen intermediary (a registered FACe sender / VeriFactu-capable invoicing-software vendor) or in-house process.
VeriFactu phase-in (plan ahead)
The Spanish real-time reporting mandate phases in through 2027 (RD-Ley 15/2025): corporate income tax (IS) payers from 2027-01-01, self-employed / VAT-registered businesses from 2027-07-01. This is a compliance gate at your go-live, not a Beliq capability — integrate VeriFactu via your chosen intermediary.
Last verified against Real Decreto-ley 15/2025 of 2 December 2025 (BOE-A-2025-24446), which moved both dates back by a year on 24 August 2026. Official source.
Integration architecture (Beliq vs VeriFactu / FACe)
Beliq focuses on document correctness for the formats it supports:
| Concern | In Beliq today | Outside Beliq (your stack / partner) |
|---|---|---|
| Facturae 3.2.2 invoice XML | Generate, Validate, Parse | XAdES signing, archiving policy, transmission |
| VeriFactu real-time reporting (AEAT) | Not offered — see boundary above | XAdES-signed billing records, SOAP submission, QR / cotejo |
| FACe B2G submission | Not offered — see boundary above | FACe SOAP web services, directory lookup, status polling |
Authority documentation for the operational systems is published by AEAT (VeriFactu) and the FACe portal; Beliq does not embed or automate those transport protocols in this release. Beliq’s managed delivery is in build, targeting Q4 2026 and subject to certification, and neither VeriFactu nor FACe is among its launch channels.
Generating Facturae ordinaria
Use output: "xml" (hybrid PDF is only available for ZUGFeRD / Factur-X). Optional invoice.spain carries document-type and batch defaults — see the Generate reference for the field list aligned with the public API. Party tax-classification codes (PersonTypeCode, ResidenceTypeCode) are auto-derived from the VAT id and address country.
curl -X POST https://api.beliq.eu/v1/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"standard": "facturae",
"profile": "ordinaria",
"output": "xml",
"invoice": {
"number": "2026-0001",
"issueDate": "2026-05-24",
"currencyCode": "EUR",
"seller": {
"name": "Proveedor Test SL",
"vatId": "ESB12345674",
"address": { "street": "Calle Test 1", "city": "Madrid", "postalCode": "28001", "countryCode": "ES", "region": "MAD" }
},
"buyer": {
"name": "Comprador Test SL",
"vatId": "ESB87654321",
"address": { "street": "Calle Ejemplo 2", "city": "Barcelona", "postalCode": "08001", "countryCode": "ES", "region": "BCN" }
},
"lines": [
{
"description": "Servicios profesionales",
"quantity": 1,
"unitCode": "C62",
"unitPrice": 100.00,
"lineTotal": 100.00,
"vatRate": 21,
"vatCategoryCode": "S"
}
],
"taxSummary": [
{ "vatCategoryCode": "S", "vatRate": 21, "taxableAmount": 100.00, "taxAmount": 21.00 }
],
"totalNetAmount": 100.00,
"totalTaxAmount": 21.00,
"totalGrossAmount": 121.00
}
}'Validation behaviour
On /v1/validate and /v1/generate, structural failures surface with ruleId: "XSD" in the validation result (no EN 16931 Schematron layer for Facturae). Responses carry spainFacturaeXsdBundle + spainFacturaeRuntimeVersion instead of schematronVersion. CreditNote payloads are not yet supported for facturae.