Skip to main content

Introduction

The Spanish Tax Agency (AEAT) requires that companies and self-employed individuals (autónomos) formally authorize Invopop to issue invoices on their behalf. To comply with this regulation, the company’s legal representative or autónomo must sign an agreement granting Invopop consent to generate and manage invoices in their name. This signed authorization ensures that all invoicing activities carried out by Invopop are legally valid and recognized by the AEAT. For this process, the supplier can sign the agreement PDF with a valid digital certificate, such as one issued by the FNMT, or a handwritten signature with a company stamp (sello de empresa), in which case the user must provide a valid ID such as DNI, NIE or passport. In the case of self-employed individuals (autónomos) a company stamp is not required. This guide will…
  1. Walk you through the process of creating the workflows necessary to onboard yourself and/or your suppliers (in a white-label setup)
  2. The process of completing the supplier onboarding wizard,
  3. Explaining the approval process and what to do in case of rejection.

Set-up

1

Connect the VERI*FACTU app

  1. Go to ConfigurationApps in the Console.
  2. Find VERI*FACTU Spain in the app list.
  3. Click Connect to activate the app.
VERI*FACTU app connected
2

Create a supplier registration workflow

Create a new workflow for registering suppliers. Start with the template below:

Create a supplier entry

Whether you issue invoices on behalf of third parties (white label) or under your own name, the process is essentially the same.
1

Upload a supplier

Use the Create an entry endpoint to upload a new supplier party (example below). Strictly required fields are company name and tax_id (the supplier will be able to supplement the information as required by the AEAT). To reduce user input errors, it’s recommended filling the fields as required by the AEAT:
Supplier example for Spain
{
  "$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"
                }
            ]
        }
    ],
  "addresses": [
    {
      "num": "42",
      "street": "Calle Pradillo",
      "locality": "Madrid",
      "region": "Madrid",
      "code": "28002",
      "country": "ES"
    }
  ],
  "emails": [
    {
      "addr": "[email protected]"
    }
  ]
}
Set the folder to suppliers to have the party appear in this section. It should appear with an Empty status unless set otherwise.
Upload supplier to Invopop

Upload supplier to Invopop

2

Send the supplier to the registration workflow

  • Via API - Send the supplier to the registration workflow using the Create a job endpoint using the IDs of the silo entry and supplier registration workflow.
  • Via Console - From the Silo Entry select “Run workflow” and select the supplier registration workflow.
The supplier’s status will change to Processing while waiting for supplier registration and verification.
3

Complete the registration workflow

Within the silo entry in console, select Meta and then click verifactu.invopop.com. This will launch the registration wizard for your company.
Supplier entry meta
4

Wait for approval

The supplier will be entitled to issue invoices as soon as they submit their documentation, and will only be revoked if there was a problem with their documentation.Invopop’s commitment is to review agreement documentation in less than 72 hours. However, in practice this will happen in less than 24 hours if the wizard is completed in workdays.Once registration wizard has been completed, the supplier’s status will change to Registered. If not successful because the supplier did not complete the process or their documentation was rejected, the status will change to Rejected, and you can inspect the job history of this document to see the reason.
Supplier registered

Supplier registered successfully

If a supplier’s agreement documentation is rejected and you need to onboard them again, follow the instructions in what happens if a supplier validation is rejected

How VERI*FACTU supplier registration works

The process is best explained looking at the workflow steps:
Supplier Registration Workflow

Supplier Registration Workflow

  1. Register supplier will generate a unique URL and add it into a url key value within the meta property. You would add a webhook after this step to notify the supplier.
  2. Set State to Processing labels the silo entry so you know it’s in process of registration.
  3. Wait for supplier registration waits for the supplier to upload the required documents (signed agreement and ID). The supplier will be entitled to issue invoices through VERI*FACTU immediately after the documents are uploaded.
  4. Set State to Registered labels the silo entry so you know registration is complete.
  5. Wait for supplier approval In live environments, Invopop will review the documents provided by the supplier in less than 72 hours. In sandbox, you can configure the workflow step to accept or reject providers. Open rejection the workflow will error with a KO and the reason for rejection can be reviewed in the Supplier or in the executed job. The supplier’s invoice issuing entitlement will be revoked immediately.
In sandbox “Wait for supplier approval” can be configured to accept or reject suppliers.
Error flow: if the supplier’s documentation is rejected, or the supplier does not complete the registration within the job’s time limit (100 days) a KO will be generated, triggering the error flow. Then these steps will be run:
  1. Unregister VERI*FACTU will clean up all registration processes and entitlements. You will be able to re-register the party later.
  2. Set State to Rejected labels the silo entry so you know the registration was rejected (due to timeout or incorrect documentation).

Register a Supplier

Suppliers need to provide the following documents for Invopop to issue invoices on their behalf:
  1. A signed direct representation agreement. If the supplier is a self-employed individual (autónomo), stamping is unnecessary.
  2. A copy of signatory’s fiscal ID (DNI/NIE or passport in the case of non-residents) if the agreement is not signed with a valid digital certificate such as one from the FNMT.
These documents can be collected through a multi-step web form (wizard) which enabled through the Supplier registration workflow created during setup or sent via the API if you wish to have control over the process.

Onboard suppliers through the supplier registration wizard

The supplier registration wizard walks you (or your customers) through the necessary legal requirements to issue VERI*FACTU invoices. Each issuer must submit a signed representation agreement between Invopop and the issuer, along with documentation proving their legal authority to enter into such an agreement. Once you run the Supplier Registration Workflow, you will find the link_url in the meta property of the supplier entry. Here is an example API response:
In console, you will find the link in the Meta tab in the right sidebar of the supplier’s entry. This wizard can be embedded as an iframe to onboard your customers without leaving your product or platform.
1

Welcome screen

Supplier registration wizard
Your customers will be met with the first page detailing the necessary documentation required for the process.
2

Information verification

Supplier registration wizard
The user can edit personal or company information. If the user is a self-employed individual, only the company information block will appear. Such individuals should enter their real name in the “Nombre” field, as this is matched by the AEAT against their tax id.
3

Download agreement

Supplier registration wizard
On the following page, the issuer can download and sign their agreement. The details from the previous page will auto-populate into the contract.The issuer (you, or your customer) will require the following:
  1. Self-employed individuals (autónomos)
  2. Companies
Please be advised that any certificate that is not issued by the FNMT is not valid. Self-signed and certificates issued by other authorities are not considered valid.
4

Upload signed agreement

Supplier registration wizard
Issuers select the type of signature they used and upload their document. If digital signature is selected, the following step will be skipped as a signature through a FNMT digital certificate counts as a proof of identification.
5

Upload ID

Supplier registration wizard
The legal representative or autónomo upload a scan or clear photo of their ID in a valid image format (JPG or PNG). The ID should ideally be a DNI/NIE, as passports are only used when the person is not entitled to have one.Both the front and reverse of the ID should be submitted here. If the ID is a passport (only valid for non-Spanish residents who are representatives of a company), they can upload the main page of their passport both times.
6

Review details

Supplier registration wizard
This page provides a summary of information so the user can verify they have submitted the correct data. Any corrections can be easily made through the edit function.
7

Confirmation screen

Supplier registration wizard
A green checkmark will indicate success, and the supplier will await approval from our team, which will be made in less than 72 hours.

Onboard suppliers through the API

If you have special needs regarding the onboarding of suppliers for VERI*FACTU (such as using third party identity verification services), it’s possible to implement your own onboarding process through the API. The process would be the following:
  1. Create a supplier entry /silo/v1/entries/{id}
    Besides the supplier’s basic information, the entry should contain a people object containing a person who will act as the legal representative of the supplier.
  2. Create a jobhttps://api.invopop.com/transform/v1/jobs/{id}
    Using the supplier registration workflow ID and Silo Entry ID.
  3. Generate agreement PDF apps/verifactu/v1/entry/:silo_entry_id/agreement
    The agreement file will be created with the supplier’s data.
  4. Upload agreement PDF apps/verifactu/v1/entry/:silo_entry_id/agreement
    Upload the agreement into the supplier’s silo entry.
  5. Upload identity images apps/verifactu/v1/entry/:silo_entry_id/identity
    Upload the ID into the supplier’s silo entry (can be DNI, NIE or Passport).
  6. Confirm Upload https://api.invopop.com/apps/verifactu/v1/entry/:silo_entry_id/confirm
    Call this endpoint to confirm that everything has been prepared correctly and the supplier is ready to start operating.

Unregister a supplier

Unregistering a supplier is essentially revoking their invoice issuing priviledges. You might need to unregister an entity because the supplier is no longer your client or because of a change in their Tax ID. To do so, use the following workflow template:
There is no official certification for VERI*FACTU from the AEAT (the Spanish tax agency). Instead, each developer, company, or provider that implements an invoicing software must provide an electronically signed declaration where they certify that their system meets all the requirements established in the regulations. This document is binding and must be kept available for the Tax Authority.The AEAT requires that this declaration be available and always visible within the system itself, and it must include certain control elements such as the installation number, issuer data, software version, and system ID.If you are a white label user of Invopop (you issue invoices in the name of third parties), you are required to display a link to this “declaración responsable” in your software. Here is the template from the AEAT, and our own for your reference: Declaración responsable VERI*FACTU - Invopop. Some of our customers have asked us if it is necessary to mention Invopop in their declaración responable. It is not required, but we appreciate it.
Digital signatures rely on certificates, but not all certificates serve as proof of identity. The Spanish Tax Agency (AEAT) accepts only qualified certificates—those issued by an authority that has verified the holder’s identity in advance.For individuals, this means using an official certificate from an accredited provider such as the FNMT. Obtaining that certificate requires submitting your ID and completing identity verification. Because this process already confirms who you are, the AEAT treats the resulting digital signature as legally binding identification. As a result, no additional identity check is needed during registration.In contrast, certificates generated directly by applications like Adobe Acrobat do not involve any identity verification. They are self-signed and therefore cannot be used for official submissions or as valid digital signatures in AEAT or government procedures.If you wish to obtain a certificate that is valid for most (if not all) Spanish government procedures, you can do so by following the procedure on certificates page of the FNMT. For instructions on how to make it available in Acrobat Reader to sign official documents, consult this PDF.Otherwise, we require the secondary procedure of signing the document by handwritten signature, and an official ID as proof of identity as required by the AEAT.

Spain Suppliers FAQ

Find answers to frequently asked questions about suppliers in Spain →

Participate in our community

Ask and answer questions about invoicing in Spain →