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
- Example 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.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
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.
SII invoice workflows
SII party workflows
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": "[email protected]"
}
]
}
B2C Standard Invoice
B2C Standard Invoice
SII B2C Invoice
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": "[email protected]"
}
]
},
"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
SII B2B Invoice
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": "[email protected]"
}
]
},
"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)
SII B2B Invoice Services (EU)
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": "[email protected]"
}
]
},
"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)
SII B2B Invoice Goods (EU)
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": "[email protected]"
}
]
},
"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)
Built example
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": "[email protected]"
}
]
},
"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)
SII B2B Invoice Goods (No EU)
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": "[email protected]"
}
]
},
"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
SII B2B Exempt E1 Invoice
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": "[email protected]"
}
]
},
"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
SII B2C One Stop Shop Invoice
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": "[email protected]"
}
]
},
"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": "[email protected]"
}
]
},
"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": "[email protected]"
}
]
},
"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 →