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 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
TicketBAI Invoicing
View guide ›
SII Invoicing
View guide ›
Facturae
View guide ›
TicketBAI Suppliers
View guide ›
SII Suppliers
View guide ›
Tax ID Lookup
View guide ›
| Feature | TicketBAI | SII |
|---|---|---|
| Scope | Basque Country (Álava, Gipuzkoa, Bizkaia) | Rest of Spain (AEAT) |
| Workflow automation | Issue invoices and onboard suppliers | Report invoices and onboard suppliers |
| Compliant documents | XML generation and PDF with QR codes | Invoice reporting to AEAT via SII API (with limitations) |
| Supplier registration | Registration wizard and agreement signing | Registration wizard and agreement signing |
| White-label | Issue on behalf of clients or directly | Report on behalf of clients or directly |
| Tax ID verification | Via AEAT Lookup | Via AEAT Lookup |
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.TicketBAI actions
1
Convert GOBL Invoices into TicketBAI XML format and send to the tax agency in Spain.
1
Generate a TicketBAI XML document from a GOBL invoice.



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
Send TicketBAI (Spain)
Generate TicketBAI (Spain)
Cancel TicketBAI Invoice
Send a cancel request for a previously sent TicketBAI invoice.
Register with TicketBAI
Register TicketBAI parties before issuing invoices on their behalf.
Wait for Upload TicketBAI
Block the job while waiting for the end-user to complete their registration steps.
Wait for Approval TicketBAI
Wait for approval that the uploaded documentation is correct.
Unregister with TicketBAI
Disables a previously registered party from issuing invoices.
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.
TicketBAI invoice workflows
TicketBAI party workflows
Facturae workflows
SII invoice workflows
SII party workflows
TicketBAI issue invoice
TicketBAI issue invoice
TicketBAI cancel invoice
TicketBAI cancel invoice
TicketBAI register party
TicketBAI register party
TicketBAI unregister party
TicketBAI unregister party
Facturae generate invoice
Facturae generate invoice
SII issue invoice
SII issue invoice
SII record received invoice
SII record received invoice
SII register party
SII register party
SII unregister party
SII unregister party
Supplier
Supplier
Spain supplier example
{
"$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"
}
]
}
B2B Invoice
B2B Invoice
In this example, we’re issuing a standard B2B invoice from a Basque supplier to a customer in Madrid.Scenario details:
- The supplier is based out of Bilbao in Bizkaia, using the sandbox data provided by TicketBAI.
- The customer is in Madrid.
- They’re selling software development services with standard VAT.
- The series for the invoice is “F1”.
- the minimal version (
ticketbai-b2b.min.mdx) contains only the essential fields required to create the invoice, - we’re applying the
es-tbai-v1addon to ensure GOBL’s TicketBAI validation checks are applied, - there is no
currencynorissue_date, as these will be assigned automatically, - there is no invoice
codeas this will be assigned by the workflow, - TicketBAI requires a general note, so we’ve added one at the bottom,
- when running
gobl build, the system automatically calculates totals, assigns the$regimetoES, sets thees-tbai-regionextension toBI(Bizkaia) based on the supplier’s address, applies the standard VAT rate (21%), and assigns thees-tbai-productextension toservicesbased on the item unit, - the built version (
ticketbai-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.
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": ["es-tbai-v1"],
"series": "F1",
"supplier": {
"name": "HFPn5yhXZ9tdD4pHRbvwymaVPrGZQr",
"tax_id": {
"country": "ES",
"code": "A99805194"
},
"addresses": [
{
"num": "42",
"street": "San Frantzisko",
"locality": "Bilbo",
"region": "Bizkaia",
"code": "48003",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"customer": {
"name": "Receive One S.L.",
"tax_id": {
"country": "ES",
"code": "B98602642"
},
"emails": [
{
"addr": "billing@example.com"
}
],
"addresses": [
{
"num": "42",
"street": "Calle Pradillo",
"locality": "Madrid",
"region": "Madrid",
"code": "28002",
"country": "ES"
}
]
},
"lines": [
{
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"notes": [
{
"key": "general",
"text": "Invoice for development services"
}
]
}
B2C Simplified Invoice
B2C Simplified Invoice
In this example, we’re issuing a simplified B2C invoice from a Basque supplier for an in-person sale.Scenario details:
- The supplier is based out of Bilbao in Bizkaia, using the sandbox data provided by TicketBAI.
- There is no customer.
- Physical goods are being sold with a standard VAT rate.
- The series for the invoice is “FS1”.
- the minimal version (
ticketbai-b2c.min.mdx) contains only the essential fields required to create the simplified invoice, - there is no
customerobject, - the
taxobject contains theprices_includevalue set toVAT, which will ensure all totals will be calculated assuming that prices include VAT, - the line item includes a
es-tbai-productextension with the valuegoods, - TicketBAI requires a general note, in this case we’ve added a generic message,
- when running
gobl build, the system automatically calculates the tax-included totals (splitting the €25.10 price into €20.74 base + €4.36 VAT), assigns the$regimetoES, sets thees-tbai-regionextension toBI(Bizkaia), applies the standard VAT rate (21%), and normalizes all fields, - the built version (
ticketbai-b2c.mdx) shows the normalized document with calculated totals including tax-included calculations, 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.
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$addons": ["es-tbai-v1"],
"series": "FS1",
"tax": {
"prices_include": "VAT"
},
"supplier": {
"name": "HFPn5yhXZ9tdD4pHRbvwymaVPrGZQr",
"tax_id": {
"country": "ES",
"code": "A99805194"
},
"addresses": [
{
"num": "42",
"street": "San Frantzisko",
"locality": "Bilbo",
"region": "Bizkaia",
"code": "48003",
"country": "ES"
}
],
"emails": [
{
"addr": "billing@example.com"
}
]
},
"lines": [
{
"quantity": "1",
"item": {
"name": "Advanced screwdriver set",
"price": "25.10",
"ext": {
"es-tbai-product": "goods"
}
},
"taxes": [
{
"cat": "VAT",
"rate": "standard"
}
]
}
],
"notes": [
{
"key": "general",
"text": "In person sale"
}
]
}
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
{
"$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
{
"$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)
{
"$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.
{
"$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.
{
"$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.
{
"$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.
{
"$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.
{
"$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.
{
"$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.
{
"$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.
{
"$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
{
"$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
{
"$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 →