We’re progressively moving towards a country-based approach to our apps, which is why you will find these steps under the “Spain” app. You can expect our current TicketBAI and VERI*FACTU functionality to be grouped under this app in the future. We will ensure no changes will be required for your existing workflows.
- Description
- Limitations
- Actions
- Workflows
- Documents
- API Endpoints
Invopop’s Spain app provides comprehensive integration with Spanish tax agencies, centralizing all compliance requirements for electronic invoicing and tax reporting in Spain. This unified app includes tax ID verification through the AEAT census, invoice reporting via SII (Suministro Inmediato de Información), and will progressively incorporate TicketBAI, VERI*FACTU, and other Spanish e-invoicing systems to provide a complete solution for Spanish tax compliance.AEAT Lookup Key Features
- Tax ID verification: Verify that NIF/CIF tax IDs exist in the AEAT census for both companies and individuals.
- Name matching: For individuals, confirm that the provided name matches the tax ID on record with AEAT.
- Name normalization: Automatically update party names to the official AEAT format, ensuring consistency across your system.
- Workflow integration: Add verification steps to both invoice and party workflows to validate data at the right time.
- Flexible configuration: Configure which parties to verify in invoice workflows (supplier, customer, or both).
- Workflow Automation: This app makes several workflow actions available to report invoices and onboard suppliers.
- SII Reporting: Invoices are reported directly to the AEAT through the SII system API, ensuring compliance with Spanish tax reporting requirements for issued and received invoice registries (with limitations).
- Supplier Registration & Verification: This app will generate a registration link where suppliers will upload their identity documents and sign an agreement to report invoices under their name (also available through the API).
- White-Label: The process allows reporting on behalf of clients (white-label) or directly as an organization, according to user needs.
SII Implementation Scope
Our SII implementation is under active development and focuses on core functionality for the most common use cases. If these limitations affect your business requirements, please contact us to discuss your specific needs and our implementation roadmap.
Supported Registry Books
We currently support the two most commonly used VAT registry books:- Libro de Registro de Facturas Expedidas (Issued Invoices Registry)
- Libro de Registro de Facturas Recibidas (Received Invoices Registry) - with specific limitations
Unsupported Registry Books
The following VAT registry books are not supported at the moment:- Libro de Registro de Bienes de Inversión (Investment Goods Registry)
- Libro de Registro de Determinadas Operaciones Intracomunitarias (Specific Intra-Community Operations Registry)
- Other registries such as cash payments (pagos en metálico), travel agency operations (operaciones de agencias de viajes), etc.
Received Invoices Limitations
When reporting to the Libro de Registro de Facturas Recibidas, the following key limitations apply:- Deductible VAT matching: The deductible VAT amount (cuota deducible) always equals the charged VAT amount (cuota repercutida). Invoices where the deductible VAT is lower than the charged VAT cannot be reported.
- Investment goods flag: Invoices cannot be marked as investment goods (bienes de inversión) within the received invoices registry.
- Deduction period alignment: The deduction period must match the settlement period. Deduction periods that differ from the liquidation periods cannot be specified.
Regional Endpoints
Currently, only the AEAT (Agencia Estatal de Administración Tributaria) endpoint is supported for SII reporting. This covers businesses operating under the standard Spanish tax framework.Support for the Canary Islands, Navarra and the Basque Country regional endpoints is coming soon.The following workflow actions will be available once you install and enable this app:AEAT Lookup actions
1
Verify that a Spanish tax ID (NIF/CIF) exists in the AEAT census. For companies, this confirms the tax ID is valid. For individuals, it also verifies that the name matches the tax ID on record.
1
Verify the tax ID and normalize names using AEAT data. For companies, it sets the official name; for individuals, it applies the AEAT-returned format.Facturae actions
1
Convert GOBL invoices into Spanish Facturae 3.2.2 XML files.SII actions
2
Record issued invoices in the the SII system.
2
Record received invoices in the the SII system.



Verify Spanish Tax ID (NIF/CIF)
Verify & Correct Tax Details
Generate Facturae XML
Record Issued Invoice with SII
Record Received Invoice with SII
Register with SII
Register SII parties before reporting invoices on their behalf.
Wait for Upload SII
Block the job while waiting for the end-user to complete their registration steps.
Wait for Approval SII
Wait for approval that the uploaded documentation is correct.
Unregister with SII
Disables a previously registered party from reporting invoices.
Facturae workflows
SII invoice workflows
SII party workflows
Facturae generate invoice
Facturae generate invoice
Example Facturae invoice workflow with states
Copy
Ask AI
{
"name": "Facturae Generate Invoice",
"description": "Generate a Facturae XML invoice",
"schema": "bill/invoice",
"steps": [
{
"id": "dc2d4780-0be4-11f1-99f1-2d47ed7bc202",
"name": "Add Sequential Code",
"provider": "sequence.enumerate",
"summary": "Dynamic · Facturae · 000001",
"config": {
"name": "Facturae",
"padding": 6,
"start": 1
}
},
{
"id": "e2d8e3f0-0be4-11f1-99f1-2d47ed7bc202",
"name": "Sign Envelope",
"provider": "silo.close"
},
{
"id": "ef9897c0-0be4-11f1-99f1-2d47ed7bc202",
"name": "Generate Facturae XML",
"provider": "gov-es.facturae.generate"
}
],
"rescue": []
}
SII issue invoice
SII issue invoice
Example SII issue invoice workflow with states
Copy
Ask AI
{
"name": "SII issue invoice",
"description": "Report a SII record for an issued invoice to the AEAT and generate a PDF",
"schema": "bill/invoice",
"steps": [
{
"id": "59f4dee0-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `processing`{.state .processing}",
"config": {
"state": "processing"
}
},
{
"id": "ec41cce0-0fc3-11f0-8a81-7911b3ecee3c",
"name": "Add Sequential Code",
"provider": "sequence.enumerate",
"summary": "Dynamic · SII · 000001",
"config": {
"name": "SII",
"padding": 6,
"start": 1
}
},
{
"id": "fc75e4f0-8721-11ef-a962-73e3f2037a52",
"name": "Sign Envelope",
"provider": "silo.close"
},
{
"id": "61661540-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Record issued invoice in SII",
"provider": "gov-es.sii.record.issued"
},
{
"id": "65312700-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Generate PDF",
"provider": "pdf",
"summary": "Spanish - A4",
"config": {
"date_format": "%Y-%m-%d",
"layout": "A4",
"locale": "es",
"logo_height": 60
}
},
{
"id": "6abb4de0-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `sent`{.state .sent}",
"config": {
"state": "sent"
}
}
],
"rescue": [
{
"id": "798b1d00-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `error`{.state .error}",
"config": {
"state": "error"
}
}
]
}
SII record received invoice
SII record received invoice
Example SII received invoice workflow with states
Copy
Ask AI
{
"name": "SII record received invoice",
"description": "Generate SII record for a received invoice and send it to the AEAT",
"schema": "bill/invoice",
"steps": [
{
"id": "59f4dee0-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `processing`{.state .processing}",
"config": {
"state": "processing"
}
},
{
"id": "ec41cce0-0fc3-11f0-8a81-7911b3ecee3c",
"name": "Add Sequential Code",
"provider": "sequence.enumerate",
"summary": "Dynamic · SII · 000001",
"config": {
"name": "SII",
"padding": 6,
"start": 1
}
},
{
"id": "fc75e4f0-8721-11ef-a962-73e3f2037a52",
"name": "Sign Envelope",
"provider": "silo.close"
},
{
"id": "61661540-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Record received invoice in SII",
"provider": "gov-es.sii.record.received"
},
{
"id": "6abb4de0-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `sent`{.state .sent}",
"config": {
"state": "sent"
}
}
],
"rescue": [
{
"id": "798b1d00-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `error`{.state .error}",
"config": {
"state": "error"
}
}
]
}
SII register party
SII register party
Example SII register party
Copy
Ask AI
{
"name": "SII register party",
"description": "Registers a party for SII reporting",
"schema": "org/party",
"steps": [
{
"id": "52f5d190-831c-11f0-9ba3-7d4deb7b9d0e",
"name": "Register party for SII reporting",
"provider": "gov-es.sii.register"
},
{
"id": "5bfc9c10-831c-11f0-9ba3-7d4deb7b9d0e",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `processing`{.state .processing}",
"config": {
"state": "processing"
}
},
{
"id": "627c94a0-831c-11f0-9ba3-7d4deb7b9d0e",
"name": "Wait for party upload for SII reporting",
"provider": "gov-es.sii.wait.upload"
},
{
"id": "6f84ea30-831c-11f0-9ba3-7d4deb7b9d0e",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `registered`{.state .registered}",
"config": {
"state": "registered"
}
},
{
"id": "78dabf10-831c-11f0-9ba3-7d4deb7b9d0e",
"name": "Wait for party approval for SII reporting",
"provider": "gov-es.sii.wait.approval"
}
],
"rescue": [
{
"id": "846415c0-831c-11f0-9ba3-7d4deb7b9d0e",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `rejected`{.state .rejected}",
"config": {
"state": "rejected"
}
},
{
"id": "d0e996c0-d9db-11f0-9b9a-5143ba8c831d",
"name": "Unregister party from SII reporting",
"provider": "gov-es.sii.unregister"
}
]
}
SII unregister party
SII unregister party
Example SII party registration
Copy
Ask AI
{
"name": "SII unregister party",
"description": "Revokes entitlement to report invoices to SII for a party.",
"schema": "org/party",
"steps": [
{
"id": "8a613610-67ba-11f0-bcaf-170efff782a9",
"name": "Unregister party from SII reporting",
"provider": "gov-es.sii.unregister"
},
{
"id": "96a6b0d0-67ba-11f0-bcaf-170efff782a9",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `void`{.state .void}",
"config": {
"state": "void"
}
}
],
"rescue": [
{
"id": "e8d2a6b0-67bb-11f0-bcaf-170efff782a9",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `error`{.state .error}",
"config": {
"state": "error"
}
}
]
}
Supplier
Supplier
Spain supplier example
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/org/party",
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"people": [
{
"name": {
"given": "Juan",
"surname": "Pérez González"
},
"identities": [
{
"key": "national",
"code": "123456789A"
}
],
"addresses": [
{
"num": "10",
"street": "Calle Ejemplo",
"locality": "Madrid",
"region": "Madrid",
"code": "28020",
"country": "ES"
}
]
}
],
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
}
Facturae B2B Invoice
Facturae B2B Invoice
A standard Facturae invoice from a Spanish supplier to a Spanish business customer.Notice:
- the
es-facturae-v3addon is required, - the
es-facturae-doc-typeandes-facturae-invoice-classtax extensions must be set, - both supplier and customer must have full address details and valid Spanish tax IDs.
Facturae B2G Invoice
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "ES",
"$addons": [
"es-facturae-v3"
],
"uuid": "01922b1e-e288-7ab9-82f3-0c8c8c7956bc",
"type": "standard",
"code": "TEST01001F",
"issue_date": "2021-12-08",
"currency": "EUR",
"tax": {
"ext": {
"es-facturae-doc-type": "FC",
"es-facturae-invoice-class": "OO"
}
},
"supplier": {
"name": "Hypeprop Sl",
"alias": "Hypeprop",
"tax_id": {
"country": "ES",
"code": "B23103039"
},
"people": [
{
"name": {
"given": "Paloma",
"surname": "Araujo"
}
}
],
"addresses": [
{
"num": "74",
"street": "Campo Real",
"locality": "Torrejón De La Calzada",
"region": "Madrid",
"code": "28023",
"country": "ES"
}
],
"emails": [
{
"addr": "rxazy27xfc@iname.com"
}
],
"telephones": [
{
"label": "office",
"num": "+34910730028"
}
]
},
"customer": {
"name": "Moniward Sl",
"tax_id": {
"country": "ES",
"code": "B77436020"
},
"addresses": [
{
"num": "35",
"street": "Plaza Horno",
"locality": "Nombela",
"region": "Toledo",
"code": "45083",
"country": "ES"
}
],
"emails": [
{
"addr": "bfn25xf3p@lycos.co.uk"
}
]
},
"lines": [
{
"i": 1,
"quantity": "20",
"item": {
"name": "Operations and development - day rate",
"price": "200.00"
},
"sum": "4000.00",
"taxes": [
{
"cat": "VAT",
"rate": "standard",
"percent": "21.0%"
}
],
"total": "4000.00"
},
{
"i": 2,
"quantity": "2",
"item": {
"name": "Additional Overtime",
"price": "101.00"
},
"sum": "202.00",
"taxes": [
{
"cat": "VAT",
"rate": "standard",
"percent": "21.0%"
}
],
"total": "202.00"
}
],
"payment": {
"terms": {
"key": "due-date",
"due_dates": [
{
"date": "2021-12-30",
"amount": "5084.42",
"percent": "100%"
}
],
"notes": "Some kind of payment term note"
},
"instructions": {
"key": "credit-transfer",
"credit_transfer": [
{
"iban": "ES25 0188 2570 7185 4470 4761",
"name": "Bankrandom"
}
]
}
},
"totals": {
"sum": "4202.00",
"total": "4202.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"base": "4202.00",
"percent": "21.0%",
"amount": "882.42"
}
],
"amount": "882.42"
}
],
"sum": "882.42"
},
"tax": "882.42",
"total_with_tax": "5084.42",
"payable": "5084.42"
},
"notes": [
{
"key": "general",
"text": "Thank you for your custom!"
}
]
}
Facturae Credit Note
Facturae Credit Note
A corrective invoice (credit note) referencing a previous Facturae invoice.Notice:
- the
typeis set tocredit-note, - a
precedingentry references the original invoice with thees-facturae-correctioncode, - the
es-facturae-invoice-classis set toOR(rectificativa).
Facturae Credit Note
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "ES",
"$addons": [
"es-facturae-v3"
],
"uuid": "01922b1e-e283-7860-96aa-c57af9ffe67b",
"type": "credit-note",
"code": "TEST01001R",
"issue_date": "2021-12-08",
"currency": "EUR",
"preceding": [
{
"type": "standard",
"issue_date": "2021-12-08",
"code": "TEST01001F",
"ext": {
"es-facturae-correction": "01"
}
}
],
"tax": {
"ext": {
"es-facturae-doc-type": "FC",
"es-facturae-invoice-class": "OR"
}
},
"supplier": {
"name": "Hypeprop Sl",
"alias": "Hypeprop",
"tax_id": {
"country": "ES",
"code": "B23103039"
},
"people": [
{
"name": {
"given": "Paloma",
"surname": "Araujo"
}
}
],
"addresses": [
{
"num": "74",
"street": "Campo Real",
"locality": "Torrejón De La Calzada",
"region": "Madrid",
"code": "28023",
"country": "ES"
}
],
"emails": [
{
"addr": "rxazy27xfc@iname.com"
}
],
"telephones": [
{
"label": "office",
"num": "+34910730028"
}
]
},
"customer": {
"name": "Moniward Sl",
"tax_id": {
"country": "ES",
"code": "B77436020"
},
"addresses": [
{
"num": "35",
"street": "Plaza Horno",
"locality": "Nombela",
"region": "Toledo",
"code": "45083",
"country": "ES"
}
],
"emails": [
{
"addr": "bfn25xf3p@lycos.co.uk"
}
]
},
"lines": [
{
"i": 1,
"quantity": "20",
"item": {
"name": "Operations and development - day rate",
"price": "200.00"
},
"sum": "4000.00",
"taxes": [
{
"cat": "VAT",
"rate": "standard",
"percent": "21.0%"
}
],
"total": "4000.00"
},
{
"i": 2,
"quantity": "2",
"item": {
"name": "Additional Overtime",
"price": "101.00"
},
"sum": "202.00",
"taxes": [
{
"cat": "VAT",
"rate": "standard",
"percent": "21.0%"
}
],
"total": "202.00"
}
],
"totals": {
"sum": "4202.00",
"total": "4202.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"base": "4202.00",
"percent": "21.0%",
"amount": "882.42"
}
],
"amount": "882.42"
}
],
"sum": "882.42"
},
"tax": "882.42",
"total_with_tax": "5084.42",
"payable": "5084.42"
},
"notes": [
{
"key": "general",
"text": "Thank you for your custom!"
}
]
}
Facturae FACe Invoice (with Administrative Centers)
Facturae FACe Invoice (with Administrative Centers)
An invoice addressed to a public administration via the FACe platform, including the three required DIR3 administrative centers.Notice:
- the customer includes an identity with
scope: "tax"for the Oficina Contable (DIR3 code01), delivery.receiverincludes the Órgano Gestor identity (DIR3 code02),ordering.buyerincludes the Unidad Tramitadora identity (DIR3 code03),- each public body publishes their DIR3 codes — look them up in the DIR3 directory.
Facturae FACe Invoice (B2G with Admin Centers)
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "ES",
"$addons": [
"es-facturae-v3"
],
"type": "standard",
"code": "TEST01002F",
"issue_date": "2021-12-08",
"currency": "EUR",
"tax": {
"ext": {
"es-facturae-doc-type": "FC",
"es-facturae-invoice-class": "OO"
}
},
"supplier": {
"name": "Hypeprop Sl",
"alias": "Hypeprop",
"tax_id": {
"country": "ES",
"code": "B23103039"
},
"people": [
{
"name": {
"given": "Paloma",
"surname": "Araujo"
}
}
],
"addresses": [
{
"num": "74",
"street": "Campo Real",
"locality": "Torrejón De La Calzada",
"region": "Madrid",
"code": "28023",
"country": "ES"
}
],
"emails": [
{
"addr": "rxazy27xfc@iname.com"
}
],
"telephones": [
{
"label": "office",
"num": "+34910730028"
}
]
},
"customer": {
"name": "Ayuntamiento de Madrid",
"tax_id": {
"country": "ES",
"code": "P2807900B"
},
"identities": [
{
"scope": "tax",
"code": "L01280796"
}
],
"addresses": [
{
"num": "4",
"street": "Plaza de la Villa",
"locality": "Madrid",
"region": "Madrid",
"code": "28005",
"country": "ES"
}
],
"emails": [
{
"addr": "facturacion@madrid.es"
}
]
},
"delivery": {
"receiver": {
"name": "Concejalía de Hacienda",
"identities": [
{
"code": "LA0007407"
}
],
"addresses": [
{
"num": "3",
"street": "Calle Alcalá",
"locality": "Madrid",
"region": "Madrid",
"code": "28014",
"country": "ES"
}
]
}
},
"ordering": {
"buyer": {
"name": "Departamento de Compras",
"identities": [
{
"code": "LA0007408"
}
],
"addresses": [
{
"num": "10",
"street": "Gran Vía",
"locality": "Madrid",
"region": "Madrid",
"code": "28013",
"country": "ES"
}
]
}
},
"lines": [
{
"quantity": "20",
"item": {
"name": "Services rendered",
"price": "200.00"
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"payment": {
"terms": {
"key": "due-date",
"due_dates": [
{
"date": "2021-12-30",
"amount": "4840.00",
"percent": "100%"
}
]
},
"instructions": {
"key": "credit-transfer",
"credit_transfer": [
{
"iban": "ES25 0188 2570 7185 4470 4761",
"name": "Bankrandom"
}
]
}
}
}
B2C Standard Invoice
B2C Standard Invoice
Simplified invoices are used for B2C transactions when the customer is not a business. The transaction amount should be under €400 (VAT included) with some exceptions in which this threshold is increased to €3,000.Notice:
- the minimal version (
sii-b2c.min.mdx) contains only the essential fields required to create the simplified invoice, - to create a simplified SII invoice, include the
simplifiedtag in your GOBL document with thees-sii-v1addon, - when running
gobl build, the system automatically calculates totals, assigns the$regimetoES, sets thees-sii-doc-typeextension toF2(Simplified invoice), applies the standard VAT rate (21%), and normalizes all fields, - the built version (
sii-b2c.mdx) shows the normalized document with calculated totals, line item sums, tax breakdowns, and automatically generated fields, and, - there are no totals or calculations in the minimal version; all these will be made automatically when uploading.
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"$tags": [
"simplified"
],
"series": "SAMPLE",
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"lines": [
{
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"rate": "general"
}
]
}
],
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a standard tax"
}
]
}
B2B Standard Invoice
B2B Standard Invoice
Regular invoices are used for B2B transactions. Regular invoices must be issued when:
- The customer is a registered business (has a tax identification number).
- The transaction amount is €400 VAT included or above, or the customer requires a full invoice.
- The customer needs a complete invoice with all tax details for accounting or tax purposes.
- the minimal version (
sii-b2b.min.mdx) contains only the essential fields required to create the standard B2B invoice, - to create a regular SII invoice, include the
es-sii-v1addon and ensure thecustomerfield contains valid tax identification details, - the
suppliermust be previously registered with the tax authority and thecustomerNIF or VAT ID must be valid, - when running
gobl build, the system automatically calculates totals, assigns the$regimetoES, sets thees-sii-doc-typeextension toF1(Standard invoice), applies the standard VAT rate (21%), and normalizes all fields, - the built version (
sii-b2b.mdx) shows the normalized document with calculated totals, line item sums, tax breakdowns, and automatically generated fields, and, - there are no totals or calculations in the minimal version; all these will be made automatically when uploading.
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"series": "SAMPLE",
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer",
"tax_id": {
"country": "ES",
"code": "B63272603"
}
},
"lines": [
{
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"rate": "general"
}
]
}
]
}
B2B Services EU Client (Reverse Charge)
B2B Services EU Client (Reverse Charge)
Reverse charge invoices are used for B2B services provided to customers in other EU member states. Reverse charge must be applied when:
- The customer is a registered business in another EU member state (has a valid EU VAT ID).
- The service is provided to a business customer (B2B), not a consumer.
- The service is subject to VAT but the customer accounts for the VAT in their own country.
- the minimal version (
sii-b2b-services-eu.min.mdx) contains only the essential fields required to create the reverse charge invoice, - to create a reverse charge SII invoice, use the tax key
reverse-chargein your invoice lines, - you also need to set the items
keytoservices, which will generate a breakdown by operation type required for this type of invoices, - with reverse charge, no VAT is charged by the supplier; the customer accounts for VAT in their own country,
- the
suppliermust be previously registered with the tax authority and thecustomerVAT ID must be valid and registered in the EU VIES system, - when running
gobl build, the system automatically sets the operation type toS2(Subject and Not Exempt - With reverse charge) when reporting the document to SII, applies the reverse charge tax treatment, and normalizes all fields, - the built version (
sii-b2b-services-eu.mdx) shows the normalized document with the reverse charge configuration, operation type breakdown, and automatically generated fields, and, - there are no totals or calculations in the minimal version; all these will be made automatically when uploading.
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"series": "SAMPLE",
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer",
"tax_id": {
"country": "DE",
"code": "111111125"
}
},
"lines": [
{
"quantity": "20",
"item": {
"key": "services",
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"key": "reverse-charge"
}
]
}
],
"notes": [
{
"key": "general",
"text": "This is a sample invoice with reverse charge"
}
]
}
B2B Goods EU Client (Intra-Community)
B2B Goods EU Client (Intra-Community)
Intra-community supply invoices are used for B2B goods delivered to customers in other EU member states. Intra-community supplies must be applied when:
- The customer is a registered business in another EU member state (has a valid EU VAT ID).
- Goods are physically delivered to another EU member state.
- The supply is exempt from VAT in the origin country (Spain) and subject to VAT in the destination country.
- the minimal version (
sii-b2b-goods-eu.min.mdx) contains only the essential fields required to create the intra-community supply invoice, - to create an intra-community supply SII invoice, use the tax key
intra-communityin your invoice lines, - you also need to set the items
keytogoods, which will report to SII a breakdown by operation type required for this type of invoices, - with intra-community supplies, no VAT is charged in Spain; the customer accounts for VAT in their destination country,
- the
suppliermust be previously registered with the tax authority and thecustomerVAT ID must be valid and registered in the EU VIES system, - when running
gobl build, thees-sii-v1addon automatically sets thees-sii-exemptextension toE5(Artículo 25 Ley de IVA) and thees-sii-regimeextension to02(Export), - the built version (
sii-b2b-goods-eu.mdx) shows the normalized document with the intra-community configuration, exemption codes, operation type breakdown, and automatically generated fields, and, - there are no totals or calculations in the minimal version; all these will be made automatically when uploading.
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"series": "SAMPLE",
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer",
"tax_id": {
"country": "DE",
"code": "111111125"
}
},
"lines": [
{
"quantity": "20",
"item": {
"key": "goods",
"name": "Goods",
"price": "90.00"
},
"taxes": [
{
"cat": "VAT",
"key": "intra-community",
"ext": {
"es-sii-regime": "02"
}
}
]
}
],
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a intra-community"
}
]
}
B2B Services No EU Client (Outside Scope)
B2B Services No EU Client (Outside Scope)
Outside scope invoices are used for B2B services provided to customers outside the EU.Notice:
- the minimal version (
sii-b2b-services-no-eu.min.mdx) contains only the essential fields required to create the outside scope invoice, - to create an outside scope SII invoice, use the tax key
outside-scopein your invoice lines, - services provided to non-EU customers are generally outside the scope of Spanish VAT,
- the
suppliermust be previously registered with the tax authority; customer tax identification is optional but recommended for record-keeping purposes, - when running
gobl build, thees-sii-v1addon automatically sets thees-sii-ootextension tolocationand normalizes all fields, - the built version (
sii-b2b-services-no-eu.mdx) shows the normalized document with the outside scope configuration and automatically generated fields, and, - there are no totals or calculations in the minimal version; all these will be made automatically when uploading.
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"series": "SAMPLE",
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer",
"tax_id": {
"country": "SG",
"code": "201312345A"
}
},
"lines": [
{
"quantity": "20",
"item": {
"key": "services",
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"key": "outside-scope"
}
]
}
],
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a outside-scope tax"
}
]
}
B2B Goods No EU Client (Export)
B2B Goods No EU Client (Export)
Export invoices are used for B2B goods delivered to customers outside the EU.Notice:
- the minimal version (
sii-b2b-goods-no-eu.min.mdx) contains only the essential fields required to create the export invoice, - to create an export SII invoice, use the tax key
exportin your invoice lines, - exported goods are exempt from Spanish VAT,
- the
suppliermust be previously registered with the tax authority; customer tax identification is optional but recommended for record-keeping purposes, - when running
gobl build, thees-sii-v1addon automatically sets thees-sii-exemptextension toE2(Artículo 21 Ley de IVA) and thees-sii-regimeextension to02(Export), - the built version (
sii-b2b-goods-no-eu.mdx) shows the normalized document with the export configuration, exemption codes, and automatically generated fields, and, - there are no totals or calculations in the minimal version; all these will be made automatically when uploading.
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"series": "SAMPLE",
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer",
"tax_id": {
"country": "SG",
"code": "201312345A"
}
},
"lines": [
{
"quantity": "20",
"item": {
"key": "goods",
"name": "Goods",
"price": "90.00"
},
"taxes": [
{
"cat": "VAT",
"key": "export"
}
]
}
],
"notes": [
{
"key": "general",
"text": "This is a sample invoice with an export"
}
]
}
B2B Exempt E1 Invoice
B2B Exempt E1 Invoice
Exempt
E1 invoices are used for B2B transactions that are exempt from VAT pursuant (Artículo 20 Ley de IVA), which covers exemptions in internal operations.Notice:- the minimal version (
sii-exempt-E1.min.mdx) contains only the essential fields required to create the exempt E1 invoice, - to create an exempt E1 SII invoice, use the tax key
exemptin your invoice lines, - exempt operations are not subject to VAT but must still be reported,
- the
suppliermust be previously registered with the tax authority and thecustomerNIF must be valid, - when running
gobl build, thees-sii-v1addon automatically sets thees-sii-exemptextension toE1and normalizes all fields, - the built version (
sii-exempt-E1.mdx) shows the normalized document with the exempt E1 configuration and automatically generated fields, and, - there are no totals or calculations in the minimal version; all these will be made automatically when uploading.
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"series": "SAMPLE",
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer",
"tax_id": {
"country": "ES",
"code": "B63272603"
}
},
"lines": [
{
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"key": "exempt"
}
]
}
],
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a exempt tax"
}
]
}
B2C One-Stop-Shop Invoice
B2C One-Stop-Shop Invoice
One-Stop-Shop (OSS) invoices are used for B2C distance sales of goods and services to consumers in other EU member states when the supplier is registered under the OSS scheme.Notice:
- the minimal version (
sii-b2c-oss.min.mdx) contains only the essential fields required to create the OSS invoice, - to create an OSS SII invoice, include the
simplifiedtag in your GOBL document with thees-sii-v1addon, - OSS allows suppliers to register for VAT in one EU member state and account for VAT on all EU distance sales through that single registration,
- the
suppliermust be previously registered with the tax authority and enrolled in the OSS scheme, - when running
gobl build, the invoice will be treated as a simplified invoice (es-sii-doc-typeextension set toF2) and VAT is accounted for through the OSS scheme in the destination country, - the built version (
sii-b2c-oss.mdx) shows the normalized document with the OSS configuration and automatically generated fields, and, - there are no totals or calculations in the minimal version; all these will be made automatically when uploading.
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"$tags": [
"simplified"
],
"series": "SAMPLE",
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"lines": [
{
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"rate": "general"
}
]
}
],
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a standard tax"
}
]
}
Credit Note
Credit Note
SII Credit Note
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"type": "credit-note",
"series": "CN",
"preceding": [
{
"type": "standard",
"issue_date": "2025-11-13",
"series": "SAMPLE",
"code": "004"
}
],
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer",
"tax_id": {
"country": "ES",
"code": "B63272603"
}
},
"lines": [
{
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"rate": "general"
}
]
}
],
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a standard tax"
}
]
}
Corrective Invoice
Corrective Invoice
SII Corrective Invoice
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": [
"es-sii-v1"
],
"type": "corrective",
"series": "CO",
"preceding": [
{
"type": "standard",
"issue_date": "2024-11-13",
"series": "SAMPLE",
"code": "004",
"tax": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"es-sii-regime": "01"
},
"base": "1800.00",
"percent": "21.0%"
}
]
}
]
}
}
],
"supplier": {
"name": "Invopop S.L.",
"tax_id": {
"country": "ES",
"code": "B85905495"
},
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Sample Consumer",
"tax_id": {
"country": "ES",
"code": "B63272603"
}
},
"lines": [
{
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"rate": "general"
}
]
}
],
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a standard tax"
}
]
}
The following API Endpoints are available when you enable this app:
🇪🇸 Invopop resources for Spain
🇪🇸 Invopop resources for Spain
Spain FAQ
Frequently asked questions about invoicing compliance in Spain →
Participate in our community
Ask and answer questions about the Spain App →