Skip to main content
Glama
getpopapi
by getpopapi

Create SdI / FatturaPA Invoice (XML)

pop_create_sdi_invoice

Generate Italian FatturaPA e-invoices as XML, with optional submission to the SdI exchange system for B2B/B2C delivery.

Instructions

Generate an Italian FatturaPA electronic invoice in XML format and optionally submit it to the SdI (Sistema di Interscambio).

This tool creates a compliant FatturaPA XML document that satisfies Italian e-invoicing regulations (D.Lgs. 127/2015). The invoice can be generated locally (XML only) or submitted directly to SdI for B2B/B2C delivery.

Key facts:

  • Supports invoice types: TD01 (invoice) and TD04 (credit note)

  • Customer types: private, company, freelance, pa (Public Administration)

  • For Private customers: sdi_type must be '0000000' and tax_id_code (codice fiscale) is required

  • For PA customers: use version='FPA12' and the 6-char PA office code as sdi_type

  • VAT rates: 22%, 10%, 5%, 4%, 0% (with nature code required when 0%)

  • Submission to SdI requires Growth+ plan with active SdI via POP integration

Returns: XML document string when not submitting, or JSON with UUID when submitting.

Args:

  • data: Complete invoice data (transmitter, supplier, customer, line items, payment)

  • submit_to_sdi: Set true to automatically submit to SdI (requires active integration)

  • integration: Override integration config (sdi-via-pop, pop-to-webhook, fatture-in-cloud)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYesFull invoice data object
site_urlNoSite/shop URL
site_titleNoSite/shop title
environmentNoTarget environment (e.g. 'sandbox')
integrationNoIntegration configuration — use this to override the default behaviour or deliver via webhook/Fatture in Cloud. Overrides submit_to_sdi if set.
submit_to_sdiNoIf true, automatically submits the invoice to the Italian SdI (Sistema di Interscambio). Requires active SdI via POP integration (Growth+ plan).
plugin_versionNoCaller application version
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint=false) with possible external side effects (openWorldHint=true). The description adds substantial context: it creates a compliant XML document, can submit to SdI, requires a specific plan, and returns either an XML string or JSON with UUID. It also discloses supported invoice types and customer-specific requirements, all consistent with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a lead sentence, a 'Key facts' bullet list, a 'Returns' line, and an 'Args' section. It's moderately lengthy but every section serves a purpose given the tool's complexity, and it avoids repeating schema details verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description explicitly states return values ('XML document string when not submitting, or JSON with UUID when submitting') and covers generation, submission, integration options, and plan requirements. Minor omissions like explicit error conditions do not significantly impact completeness for this complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds semantic constraints beyond the schema: e.g., 'For Private customers: sdi_type must be ''0000000'' and tax_id_code (codice fiscale) is required', 'For PA customers: use version=''FPA12'' and the 6-char PA office code as sdi_type', and VAT rates with nature code required at 0%. These enrich parameter understanding beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Generate an Italian FatturaPA electronic invoice in XML format and optionally submit it to the SdI', which states a specific verb, resource, and scope. This distinguishes it from sibling tools like pop_create_ksef_invoice (Poland) or pop_create_zugferd_invoice (Germany) by explicitly targeting Italian FatturaPA e-invoicing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: Italian e-invoicing compliance (D.Lgs. 127/2015), support for B2B/B2C, customer types, and the Growth+ plan requirement for SdI submission. However, it does not explicitly name alternative tools or state when not to use this tool, so it falls short of full exclusionary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/getpopapi/pop-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server