XSD+SCH Agenzia delle Entrate · 1.0.2, Specifiche tecniche 1.9.1

FatturaPA simplified 1.0.2

Fattura elettronica semplificata (FSM10) with the SdI checks

The Italian simplified e-invoice (fattura semplificata, art. 21-bis DPR 633/72) sent through the SdI, checked against the schema and the SdI's own checks on the file.

About

A simplified invoice is allowed for small amounts: up to 400 euros, except for sellers in the flat-rate regime (RF19) or the cross-border VAT exemption regime (RF20), and for corrections of an invoice already issued. It needs less data than an ordinary invoice: one amount and VAT figure per item, and the buyer's VAT number or tax code.

Its document types are TD07 (invoice), TD08 (credit note) and TD09 (debit note), in the FSM10 transmission format.

E-invoicing in Italy: the rules in short and how to check an invoice →

Good to know

  • The SdI checks are written by xmlvalid after Appendice 1 of the Specifiche tecniche 1.9.1 (31 March 2026), including the 400 euro limit (00460); they run only when the document matches the schema. Checks that need the SdI's records (00300 to 00327, 00404) are not run; our XV-IT rules check the check digits of the partita IVA and codice fiscale instead.
  • The schema is the one Agenzia delle Entrate publishes as Schema_VFSM10v_1.0.2.xsd; the XML Signature import points at a local copy.
  • The example is by xmlvalid.com, with made-up names and codes that have valid check digits.

Files

2 files · 32.8 KB

The validator loads all of these with their folder structure, so includes and imports resolve as published.

Business rules

Schematron · run in this order

The rules run after the schema check, only when the document matches the schema, and in your browser like the schema check (with SaxonJS by Saxonica). Each finding names its rule, such as BR-CO-15, and the line it points at; each rule has a page with what it checks.

Example document

IT12345678903_SM001.xml · 1.9 KB · passes the schema and the rules

In CI and from code

The same schema by its name, fatturapa-semplificata-1.0.2, through the API.

npx @xmlvalid/cli validate "**/*.xml" --schema fatturapa-semplificata-1.0.2
- uses: xmlvalid/validate-action@v1
  with:
    files: "**/*.xml"
    schema: fatturapa-semplificata-1.0.2
    api-key: ${{ secrets.XMLVALID_API_KEY }}
curl https://xmlvalid.com/api/v1/validations \
  -H "Authorization: Bearer $XMLVALID_API_KEY" \
  -F document={{ $schema->example ?? 'document.xml' }} -F schema=fatturapa-semplificata-1.0.2

Free accounts get 100 API validations a month. On Pro, a URL monitor can check a published document against this schema every hour and email you when it breaks. More CI setups