Register your software or intermediary channel on the Agenzia delle Entrate portal at fatturapa.gov.it and obtain the WSDL and XSD files for the SDICoop Trasmissione service (currently at specification version 3.1).
Generate a client TLS certificate and a server TLS certificate (separate RSA key pairs) and upload the certificate signing requests through the portal; both certificates must be in place before the SDICoop channel can be activated.
Build a FatturaPA 1.2 XML document signed with an XAdES or CAdES digital signature; validate the XML against the official XSD before submission.
Invoke the SDICoop Trasmissione SOAP web service, attaching the signed invoice file; the service returns a receipt containing the SDI identifier (IdSdI) and receipt date.
Poll the SDICoop Ricezione service or check the portal for delivery notifications; the SDI will return one of: consegnata (delivered), mancata consegna (delivery failed — you must notify the recipient via alternative means), or scartata (rejected — resubmission required after correction).
Retain the SDI identifier, receipt date, and delivery notification for each invoice to satisfy the 10-year Italian archiving obligation.
Known gotchas
SDICoop requires two distinct TLS certificates (client and server) with separate key pairs — submitting both CSRs from the same private key will cause registration to fail.
For B2C invoices, the recipient code field must be set to 0000000; for B2B invoices it must contain the 7-character SDI recipient code or PEC address — an incorrect recipient code will cause mancata consegna.
Scartata (rejected) invoices must be corrected and resubmitted with a new document; you cannot patch an already-submitted FatturaPA document in-place.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp