- Description
- Actions
- Workflows
- Example documents
- API Endpoints
Invopop’s VERI*FACTU app is designed to support full compliance with Spain’s VERI*FACTU e-invoicing regulation. It provides endpoints and workflows to automate supplier onboarding, document upload, identity verification, and invoice generation, enabling businesses and intermediaries to issue e-invoices in accordance with Spanish law.

Example VERI*FACTU invoice with QR
- Workflow Automation: this app makes several workflow actions available to issue invoices and onboard suppliers.
- Legally compliant PDF invoices: VERI*FACTU requires QR codes to consult the status of a document with the AEAT. This app will automatically generate compliant PDF invoices.
- VERI*FACTU XML generation: this app will generate a legally compliant XML which is included as an attachment in the Silo Entry and sent to the tax agency when issuing an invoice.
- Supplier Registration & Verification: this app will generate a registration link where suppliers will upload their identity documents and sign an agreement to issue invoices under their name (also available through the API).
- White-Label: the process allows issuance on behalf of clients (white-label) or directly as an organization, according to user needs.
- QR Code: Generates the VERI*FACTU QR code according to the AEAT specifications.
The following workflow actions will be available once you install and enable this app:
1
Convert GOBL Invoices into VERI*FACTU XML format used in Spain.
1
Send a previously generated VERI*FACTU document to the tax agency in Spain.




Generate VERI*FACTU
Send VERI*FACTU
Cancel VERI*FACTU
Send a cancel request for previously sent VERI*FACTU Invoice.
Register with VERI*FACTU
Register VERI*FACTU parties before issuing invoices on their behalf.
Wait for Upload VERI*FACTU
Block the job while waiting for the end-user to complete their registration steps.
Wait for Approval VERI*FACTU
Wait for a approval that the uploaded documentation is correct.
Unregister VERI*FACTU
Disables a previously registered party from issuing invoices .
Invoice workflows
Party workflows
VERI*FACTU issue invoice
VERI*FACTU issue invoice
Example VERI*FACTU invoice workflow with states
Copy
Ask AI
{
"name": "VERI*FACTU issue invoice",
"description": "Generate and send VERI*FACTU to AEAT, then generate PDF with QR",
"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 · Verifactu · 000001",
"config": {
"name": "Verifactu",
"padding": 6,
"start": 1
}
},
{
"id": "fc75e4f0-8721-11ef-a962-73e3f2037a52",
"name": "Sign Envelope",
"provider": "silo.close"
},
{
"id": "ef2ce710-bc8e-11ef-8ca1-573cbe7db4cd",
"name": "Generate XML",
"provider": "verifactu.generate"
},
{
"id": "61661540-bc8f-11ef-8ca1-573cbe7db4cd",
"name": "Issue invoice",
"provider": "verifactu.send"
},
{
"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"
}
}
]
}
VERI*FACTU cancel invoice
VERI*FACTU cancel invoice
Example VERI*FACTU cancel workflow with states
Copy
Ask AI
{
"name": "VERI*FACTU cancel document",
"description": "Cancel a VERI*FACTU document and report it to AEAT",
"schema": "bill/invoice",
"steps": [
{
"id": "2f897e30-3c9c-11f0-8690-a921c0418914",
"name": "Cancel invoice",
"provider": "verifactu.cancel"
},
{
"id": "334ffc10-3c9c-11f0-8690-a921c0418914",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `void`{.state .void}",
"config": {
"state": "void"
}
}
],
"rescue": [
{
"id": "384cfe20-3c9c-11f0-8690-a921c0418914",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `error`{.state .error}",
"config": {
"state": "error"
}
}
]
}
VERI*FACTU register supplier
VERI*FACTU register supplier
Example VERI*FACTU supplier registration
Copy
Ask AI
{
"name": "VERI*FACTU supplier registration",
"description": "Enables suppliers to register for VERI*FACTU invoice generation",
"schema": "org/party",
"steps": [
{
"id": "52f5d190-831c-11f0-9ba3-7d4deb7b9d0e",
"name": "Register supplier",
"provider": "verifactu.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 supplier registration",
"provider": "verifactu.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 supplier approval",
"provider": "verifactu.wait.approval"
}
],
"rescue": [
{
"id": "8a613610-67ba-11f0-bcaf-170efff782a9",
"name": "Unregister supplier",
"provider": "verifactu.unregister"
},
{
"id": "96a6b0d0-67ba-11f0-bcaf-170efff782a9",
"name": "Set State",
"provider": "silo.state",
"summary": "Set state to `void`{.state .rejected}",
"config": {
"state": "rejected"
}
}
]
}
Unregister VERI*FACTU supplier
Unregister VERI*FACTU supplier
Example VERI/*FACTU supplier registration
Copy
Ask AI
{
"name": "VERI*FACTU unregister supplier",
"description": "Revokes invoice issuing entitlement for a VERI*FACTU supplier.",
"schema": "org/party",
"steps": [
{
"id": "8a613610-67ba-11f0-bcaf-170efff782a9",
"name": "Unregister supplier",
"provider": "verifactu.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"
}
}
]
}
VERI*FACTU B2B Invoice (essential)
VERI*FACTU B2B Invoice (essential)
VERI*FACTU B2B Invoice
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "ES",
"$addons": [
"es-verifactu-v1"
],
"uuid": "3aea7b56-59d8-4beb-90bd-f8f280d852a0",
"type": "standard",
"series": "SAMPLE",
"code": "004",
"issue_date": "2024-11-13",
"currency": "EUR",
"tax": {
"ext": {
"es-verifactu-doc-type": "F1"
}
},
"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": [
{
"i": 1,
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"sum": "1800.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "21.0%",
"ext": {
"es-verifactu-op-class": "S1",
"es-verifactu-regime": "01"
}
}
],
"total": "1800.00"
}
],
"totals": {
"sum": "1800.00",
"total": "1800.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"es-verifactu-op-class": "S1",
"es-verifactu-regime": "01"
},
"base": "1800.00",
"percent": "21.0%",
"amount": "378.00"
}
],
"amount": "378.00"
}
],
"sum": "378.00"
},
"tax": "378.00",
"total_with_tax": "2178.00",
"payable": "2178.00"
},
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a exempt tax"
}
]
}
VERI*FACTU B2B Invoice (complete)
VERI*FACTU B2B Invoice (complete)
VERI*FACTU B2B Invoice
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "ES",
"$addons": [
"es-verifactu-v1"
],
"uuid": "3aea7b56-59d8-4beb-90bd-f8f280d852a0",
"type": "standard",
"series": "SAMPLE",
"code": "004",
"issue_date": "2024-11-13",
"currency": "EUR",
"tax": {
"ext": {
"es-verifactu-doc-type": "F1"
}
},
"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": [
{
"i": 1,
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"sum": "1800.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "21.0%",
"ext": {
"es-verifactu-op-class": "S1",
"es-verifactu-regime": "01"
}
}
],
"total": "1800.00"
}
],
"totals": {
"sum": "1800.00",
"total": "1800.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"es-verifactu-op-class": "S1",
"es-verifactu-regime": "01"
},
"base": "1800.00",
"percent": "21.0%",
"amount": "378.00"
}
],
"amount": "378.00"
}
],
"sum": "378.00"
},
"tax": "378.00",
"total_with_tax": "2178.00",
"payable": "2178.00"
},
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a exempt tax"
}
]
}
VERI*FACTU Credit Note
VERI*FACTU Credit Note
VERI*FACTU B2C Invoice (essential)
VERI*FACTU B2C Invoice (essential)
VERI*FACTU B2C Invoice
Copy
Ask AI
{
"$schema": "https://gobl.org/draft-0/bill/invoice",
"$regime": "ES",
"$addons": [
"es-verifactu-v1"
],
"$tags": [
"simplified"
],
"uuid": "3aea7b56-59d8-4beb-90bd-f8f280d852a0",
"type": "standard",
"series": "SAMPLE",
"issue_date": "2024-11-13",
"currency": "EUR",
"tax": {
"ext": {
"es-verifactu-doc-type": "F2"
}
},
"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": [
{
"i": 1,
"quantity": "20",
"item": {
"name": "Development services",
"price": "90.00",
"unit": "h"
},
"sum": "1800.00",
"taxes": [
{
"cat": "VAT",
"key": "standard",
"rate": "general",
"percent": "21.0%",
"ext": {
"es-verifactu-op-class": "S1",
"es-verifactu-regime": "01"
}
}
],
"total": "1800.00"
}
],
"totals": {
"sum": "1800.00",
"total": "1800.00",
"taxes": {
"categories": [
{
"code": "VAT",
"rates": [
{
"key": "standard",
"ext": {
"es-verifactu-op-class": "S1",
"es-verifactu-regime": "01"
},
"base": "1800.00",
"percent": "21.0%",
"amount": "378.00"
}
],
"amount": "378.00"
}
],
"sum": "378.00"
},
"tax": "378.00",
"total_with_tax": "2178.00",
"payable": "2178.00"
},
"notes": [
{
"key": "general",
"text": "This is a sample invoice with a standard tax"
}
]
}
VERI*FACTU Supplier (complete)
VERI*FACTU Supplier (complete)
VERI*FACTU Supplier (essential)
VERI*FACTU Supplier (essential)
The following API Endpoints are available when you enable this app:
🇪🇸 Invopop resources for Spain
🇪🇸 Invopop resources for Spain
Participate in our community
Ask and answer questions about the VERI*FACTU Spain App →