eliDocs
Country Guides

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

Where Beliq fits

  • Generate ordinaria Facturae 3.2.2 XML via standard: "facturae" and default profile ordinaria.
  • Validate 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)

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 VeriFactu requirements for invoicing software phase in through 2027 (RD-Ley 15/2025): corporate income tax (IS) payers from 2027-01-01; personal income tax (IRPF) payers with economic activities, non-residents with a permanent establishment and entities under attribution of income from 2027-07-01. Taxpayers who keep their VAT record books through the AEAT’s Immediate Supply of Information (SII, article 62.6 of the VAT Regulation) are outside VeriFactu. Sending each billing record to the AEAT as it is issued (VERI*FACTU mode) is optional under RD 1007/2023. 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, and the consolidated text of Real Decreto 1007/2023 (BOE-A-2023-24840, last updated 3 December 2025) for who is covered on 3 November 2026. Official source.

Integration architecture (Beliq vs VeriFactu / FACe)

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 reads UBL and CII only) 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, and neither VeriFactu nor FACe is among its launch channels.

Generating Facturae ordinaria

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.

generate-facturae.sh
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

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.

Further reading

Further reading