---
title: "FatturaPA: parse + verifica anti-frode del fornitore"
method: POST
path: "/python/italian/fattura-pa/parse-verify"
tags: ["Tool"]
---

# FatturaPA: parse + verifica anti-frode del fornitore

`POST /python/italian/fattura-pa/parse-verify`

## Request

- Base URL: `https://imperioutils.com/api`
- URL: `https://imperioutils.com/api/python/italian/fattura-pa/parse-verify`
- Auth: API key in header `X-API-Key`

Estrae i dati strutturati da un XML FatturaPA/SDI E, nella stessa chiamata, verifica anti-frode la parte indicata (default: il CEDENTE, cioè il fornitore che incassa il bonifico). I dati verificati NON sono inferiti da un LLM: P.IVA, Codice Fiscale, ragione sociale e IBAN di pagamento sono estratti deterministicamente dall'XML, poi passati ai controlli: IBAN (checksum MOD-97 + banca dal codice ABI), P.IVA e CF (checksum) e — quando il servizio UE è raggiungibile — la ragione sociale reale via VIES live, confrontata con quella dichiarata in fattura. Restituisce il parse completo più `supplier_verification` con verdetto (ok / non_verificabile / attenzione / alto_rischio) e red flag puntuali; se la fattura riporta più IBAN distinti lo segnala e abbassa il verdetto. È la difesa contro la truffa del cambio-IBAN sulle fatture passive. Come `verify_payee` fa I/O esterno (una sola interrogazione VIES per chiamata, non una per riga): se VIES è giù o il budget condiviso è esaurito il verdetto degrada ONESTAMENTE ad "attenzione", mai a un falso "ok". NON sostituisce la verifica out-of-band (telefonata al fornitore su un numero già noto).

Costo: **5 crediti** per chiamata. Autenticazione: header `X-API-Key` (una chiave gratuita si ottiene da https://imperioutils.com/signup e si rigenera da https://imperioutils.com/settings/profile).

La stessa operazione è provabile **senza account** su `POST /registry/demo/fattura-pa-parser` con `action: "parse-verify"`.

## Request body

- object
  - `xml_content` string, required: Il contenuto XML della fattura elettronica (FatturaPA/SDI). Il .p7m va scompattato prima: qui si accetta XML testuale.
  - `party` 'cedente' | 'cessionario': Parte da verificare: 'cedente' = fornitore/chi riceve il pagamento (default, il caso anti-frode); 'cessionario' = cliente. L'IBAN viene raccolto solo per il cedente, perché è lui che incassa.
  - `expected_country` string: Paese atteso del fornitore in ISO2. Se omesso vale il paese dichiarato dalla fattura stessa (sede del cedente), e solo in sua mancanza 'IT'. Un IBAN estero su un fornitore atteso italiano è il campanello #1 della frode.

## Response `200`

Il JSON dello strumento, restituito così com'è.

## Other responses

- `401`: Nessuna credenziale o chiave rifiutata. Il corpo porta `details.header`, `details.docs` e `details.get_key`.
- `402`: Crediti esauriti.
- `429`: Tetto di richieste al minuto del piano superato.

---

[API](https://skmtc.dev/imperioutils/apis/imperio-utilities-api-fiscali-italiane.md) · [All operations](https://skmtc.dev/imperioutils/apis/imperio-utilities-api-fiscali-italiane/llms.txt) · [OpenAPI document](https://skmtc.dev/imperioutils/apis/imperio-utilities-api-fiscali-italiane/revisions/4b7a05d52f6c?raw)
