Skip to main content
Glama

create_itemized_invoice

Constructs a multi-item invoice checkout link. Captures itemized product lines, per-unit pricing, quantities, and billing, then returns a hosted payment URL.

Instructions

Constructs a multi-item commercial invoice checkout link containing itemized product line descriptions, per-unit pricing, item quantities, total tax calculations, and customer billing details. Returns the generated hosted invoice payment URL and itemized receipt breakdown.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of structured invoice line items detailing goods or services, unit quantities, and individual unit prices.
currencyNoThree-letter ISO 4217 currency code applied across all line items and total invoice settlement (e.g., "USD", "INR", "EUR"). Defaults to "INR".
providerNoPayment gateway adapter used to issue and host the invoice checkout link. If omitted, smart routing selects the optimal gateway based on total invoice volume.
customerEmailYesCustomer email address to which the official invoice payment notification and digital itemized receipt will be dispatched.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv0.1.3
    • changedInput schema / properties / currency / description
      Previous value: -"Currency code"New value: +"Three-letter ISO 4217 currency code applied across all line items and total invoice settlement (e.g., \"USD\", \"INR\", \"EUR\"). Defaults to \"INR\"."
    • changedInput schema / properties / customerEmail / description
      Previous value: -"Customer email"New value: +"Customer email address to which the official invoice payment notification and digital itemized receipt will be dispatched."
    • addedInput schema / properties / items / description
      Added value: +"Array of structured invoice line items detailing goods or services, unit quantities, and individual unit prices."
    • addedInput schema / properties / items / items / properties / name / description
      Added value: +"Descriptive title or name of the individual product, license, or service line item."
    • addedInput schema / properties / items / items / properties / quantity / description
      Added value: +"Total number of units purchased for this line item (positive integer >= 1)."
    • changedInput schema / properties / items / items / properties / unitAmount / description
      Previous value: -"Price per unit in minor units"New value: +"Price per individual unit specified in minor currency units (e.g., 2500 for $25.00 or ₹25.00)."
    • addedInput schema / properties / provider / description
      Added value: +"Payment gateway adapter used to issue and host the invoice checkout link. If omitted, smart routing selects the optimal gateway based on total invoice volume."
  2. First observedv0.1.2

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosing side effects. It correctly states that it constructs a checkout link and returns a URL and receipt breakdown, but it does not disclose whether the customer is charged immediately, whether an email is sent (though the schema mentions notification dispatch under customerEmail), or whether this is an idempotent creation. These are meaningful behavioral gaps for a mutation tool.

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

Conciseness5/5

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

The description is two tight sentences with no fluff. The first sentence packs the essential capabilities (multi-item, line descriptions, pricing, quantities, tax, billing details) and the second states the return value. Every phrase contributes to the agent's understanding.

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?

Given the tool's moderate complexity (4 parameters, one nested object, no output schema) and no annotations, the description covers the core purpose and return output well. It does not explain provider smart routing, default currency behavior, or payment flow timing, but these are partially covered by the schema. Overall, it gives a solid contextual picture for selection and invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with thorough descriptions for items, currency, provider, and customerEmail. The tool description adds no new parameter-level meaning beyond the schema's already detailed explanations, so the baseline score of 3 is appropriate. The mention of 'total tax calculations' is a computed feature, not a parameter, and does not enhance parameter understanding.

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 a specific verb ('Constructs') and resource ('multi-item commercial invoice checkout link'), and immediately distinguishes itself from the generic sibling 'create_payment_link' by emphasizing itemized line items, per-unit pricing, and tax calculations. This makes the tool's unique purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage through its itemized invoice focus, but it never explicitly states when to prefer this over 'create_payment_link' or other siblings. It lacks phrases like 'use this when' or 'for simple payments, use create_payment_link instead.' The usage context is clear but not differentiated.

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