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.
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. VeriFactu transport stays out of scope by product decision: Beliq is a format vendor, not a reporting operator.
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.