Skip to content

Development and Testing Checklist for Correct Veri*Factu Compliance

This checklist describes the development tasks and tests that must be performed to ensure full compliance with Veri*Factu.

Test Type Description
Obtain the data required for integration Persist this data in the Billing Software.
Include the responsible declaration The Billing Software must include access to the responsible declaration.
Consider Chaining The Billing Software must take into account the Chaining.
Fill in the canonical format with the invoice For CheckNewSales, NewSales, CorrectNewSales, CorrectModifySales.
Use of CheckNewSales Optional.
Preliminary step included in NewSales to validate invoice data.
Use of NewSales For issuing the invoice.
Test the types of invoices supported by the Billing Software:
- F1 or full invoices.
- F2 or simplified invoices or tickets.
- F3 or full invoices replacing already-issued F2 simplified invoices.
- Corrective invoices of types R1 to R5.

Remember the limit of 12 items in taxableBases, and test with different:
- Tax types.
- Regime keys.
- Exemption reasons.
- Non-subject reasons.
- Equivalence surcharge.
- ...

If applicable, test other invoice cases:
- Test domestic, intra-community, and extra-community invoices, with different document types for identifying third-party data.
- Deliveries from mainland Spain to Canary Islands companies and deliveries from the Canary Islands.
- With IRPF withholding.
- ...

It is good practice to maintain a bank of examples like the one provided in Canonical Format.
Printing of the QR code For invoices issued with NewSales, the QR code and text indicating Veri*Factu mode must be printed.
Use of QuerySales To consult the status of the invoice after using NewSales, CorrectNewSales, CorrectModifySales, DeleteSales, and CorrectDeleteSales.
Use of CorrectNewSales If correcting an invoice rejected by the administration.
Use of CorrectModifySales If correcting an invoice accepted with errors by the administration.
Use of DeleteSales If the Billing Software allows canceling already-issued invoices, this use must be included.
Use of CorrectDeleteSales Very uncommon. Used when DeleteSales is used and the invoice is also rejected by the administration.
Compliance with the legislation The Billing Software must comply with the legislation.
Offline tests (no connection to SDH) The Billing Software must take into account that “real” invoices cannot be registered without printing the QR provided by SDH.
Billing Software must avoid sending the same batch of requests in parallel The Billing Software must consider that sending the same batch in parallel may cause problems when processing the responses expected for that batch, since SDH may issue OK or KO messages independently depending on the processing pace of each request.

For example, if the Billing Software allows issuing the same batch of invoices (NewSales requests) several times with millisecond differences, SDH will process each request independently. Therefore, for the same invoice, the first attempt will be correct, but all parallel attempts for that invoice will result in validation errors.