Skip to main content
Glama
Storno CLI

Storno CLI

Official
by stornoro

invoices_update

Idempotent

Update draft invoices by UUID before issuance, including line items, dates, and payment terms. Replaces the entire lines array, so include all lines you want to keep.

Instructions

Update an existing draft invoice. Only invoices with status "draft" can be updated. When updating the lines array, the entire array is replaced — include all lines you want to keep. Once issued, use invoices_cancel instead.

Input Schema

NameRequiredDescriptionDefault
uuidYesInvoice UUID to update
linesNoInvoice line items. WARNING: replaces all existing lines — include every line you want to keep.
notesNoPublic notes visible to the client
dueDateNoPayment due date (YYYY-MM-DD)
clientIdNoClient UUID
currencyNoISO 4217 currency code
issuerIdNoIssuer ID number
languageNoDocument language for PDF generation (default: ro)
mentionsNoAdditional legal mentions
seriesIdNoInvoice series UUID
companyIdNoCompany UUID override (uses active company if not set)
issueDateNoInvoice issue date (YYYY-MM-DD)
deputyAutoNoDeputy vehicle registration
deputyNameNoDeputy/representative name
issuerNameNoName of person issuing the invoice
salesAgentNoSales agent name
orderNumberNoPurchase order number
plataOnlineNoEnable online payment via Stripe
platitorTvaNoWhether sender is VAT payer
receiverCifNoReceiver tax ID / CIF
vatIncludedNoWhen used with autoApplyVatRules, sets whether unit prices include VAT on all lines. Ensures correct totals after VAT rules change rates.
documentTypeNoDocument type
exchangeRateNoExchange rate relative to RON
internalNoteNoInternal note (not visible to client)
paymentTermsNoPayment terms description
receiverNameNoReceiver name (when no client entity exists)
taxPointDateNoTax point date (YYYY-MM-DD)
paymentMethodNoPayment method: bank_transfer, cash, card, cheque, other
tvaLaIncasareNoVAT on collection / TVA la încasare
ublExtensionsNoUBL extension fields for advanced e-Factura compliance. These map directly to UBL XML elements not covered by the standard invoice fields.
buyerReferenceNoBuyer reference identifier
contractNumberNoContract reference number
penaltyEnabledNoEnable late payment penalty
invoiceTypeCodeNoTax regime / invoice type code
deliveryLocationNoDelivery address
parentDocumentIdNoParent document UUID (for credit notes)
penaltyGraceDaysNoGrace period before penalty applies
projectReferenceNoProject reference number
taxPointDateCodeNoTax point date code
autoApplyVatRulesNoAuto-apply VAT rules (reverse charge for VIES-valid EU clients, OSS destination rate for non-VIES EU clients). Default: false.
showClientBalanceNoShow client balance on invoice
deputyIdentityCardNoDeputy ID card number
businessProcessTypeNoBusiness process type
penaltyPercentPerDayNoDaily penalty percentage
tenderOrLotReferenceNoTender or lot reference
despatchAdviceReferenceNoDespatch advice reference
buyerAccountingReferenceNoBuyer accounting reference
invoicedObjectIdentifierNoInvoiced object identifier
receivingAdviceReferenceNoReceiving advice reference

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.17

TDQS

A4.2/5.0
Behavior4/5

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

Annotations cover mutation and idempotency, but the description adds critical behavioral context: updates are limited to draft invoices and the lines array is fully replaced, requiring callers to include all lines to keep. It does not mention auth or rate limits, but adds meaningful operational detail beyond annotations.

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?

Three short sentences, front-loaded with the primary action and constraint, then the critical lines caveat and alternative. No wasted text.

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?

For a 49-parameter update tool with full schema descriptions and no output schema, the description covers the key operational caveats (draft-only, line replacement, alternative tool). It does not detail authentication or side effects beyond annotations, but is otherwise sufficient.

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 coverage is 100%, so the schema already documents all parameters. The description reinforces the lines replacement semantics but does not add new parameter-level meaning beyond what the schema provides.

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 states a specific verb and resource: update an existing draft invoice. It distinguishes from siblings by restricting to draft status and naming invoices_cancel for issued invoices.

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?

It clearly says when to use: only draft invoices, and points to invoices_cancel once issued. It does not mention other alternatives like invoices_delete for drafts or when to prefer invoices_create, but the main conditional guidance is explicit.

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

Deploy Server

Other Tools