Skip to main content
Glama
stornoro

Storno CLI

by stornoro

invoices_create

Creates a new draft invoice with required line items and client details, keeping it editable until finalized and issued with XML/PDF generation.

Instructions

Create a new draft invoice. Requires at least one line item and either a clientId or receiverName/receiverCif. The invoice starts in "draft" status and can be edited until issued. Use invoices_issue to finalize and generate XML/PDF.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
linesYesInvoice line items (at least one required)
notesNoPublic notes visible to the client
collectNoRecord an immediate payment. Pass true for full payment with defaults, or an object with value/type/issueDate/documentNumber/mentions for details.
dueDateNoPayment due date in ISO 8601 format (YYYY-MM-DD)
clientIdNoClient UUID (from clients_list). Either clientId or receiverName should be provided.
currencyNoISO 4217 currency code (default: RON)
issuerIdNoIssuer ID number
languageNoDocument language for PDF generation (default: ro)
mentionsNoAdditional legal mentions on the invoice
seriesIdNoInvoice series UUID (from document_series_list). Uses default if not provided.
companyIdNoCompany UUID override (uses active company if not set)
issueDateYesInvoice issue date in ISO 8601 format (YYYY-MM-DD)
deputyAutoNoDeputy vehicle registration number
deputyNameNoDeputy/representative name
issuerNameNoName of person issuing the invoice
salesAgentNoSales agent name
orderNumberNoPurchase order number
plataOnlineNoEnable online payment via Stripe (default: from company settings)
platitorTvaNoWhether sender is VAT payer (default: false)
receiverCifNoReceiver tax ID / CIF (used together with receiverName when no client entity exists)
vatIncludedNoWhen used with autoApplyVatRules, sets whether unit prices include VAT on all lines. Ensures correct totals after VAT rules change rates.
documentTypeNoDocument type (default: invoice)
exchangeRateNoExchange rate relative to RON (default: 1.0)
internalNoteNoInternal note (not visible to the client)
paymentTermsNoPayment terms description (e.g., "Net 30")
receiverNameNoReceiver name (used when no client entity exists). Either clientId or receiverName should be provided.
taxPointDateNoTax point date if different from issue date (YYYY-MM-DD)
paymentMethodNoPayment method: bank_transfer (default), cash, card, cheque, other
tvaLaIncasareNoVAT on collection / TVA la încasare (default: false)
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 (BT-10)
contractNumberNoContract reference number
idempotencyKeyNoIdempotency key to prevent duplicate creation
penaltyEnabledNoEnable late payment penalty (default: false)
invoiceTypeCodeNoTax regime / invoice type code. standard = default commercial invoice; reverse_charge = taxare inversa; the other values map to specific Romanian tax-code articles.
deliveryLocationNoDelivery address
parentDocumentIdNoParent document UUID (required for credit notes / refunds)
penaltyGraceDaysNoGrace period in days before penalty starts applying
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 (default: false)
deputyIdentityCardNoDeputy ID card number
businessProcessTypeNoBusiness process type (e.g., "urn:cen.eu:en16931:2017#compliant#urn:efactura.mfinante.ro:CIUS-RO:1.0.1")
penaltyPercentPerDayNoDaily penalty percentage (e.g., 0.05 for 0.05% per day)
tenderOrLotReferenceNoTender or lot reference
despatchAdviceReferenceNoDespatch advice reference
buyerAccountingReferenceNoBuyer accounting reference
invoicedObjectIdentifierNoInvoiced object identifier
receivingAdviceReferenceNoReceiving advice reference
Behavior3/5

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

No annotations are provided, so the description carries the disclosure burden. It states the invoice starts in 'draft' status and can be edited until issued, which is good behavioral context. However, it doesn't disclose the idempotencyKey behavior, collect (immediate payment) side-effects, or what the response/return value contains. The description also doesn't mention VAT calculation behavior, penalty handling, or UBL extensions even though these significantly affect behavior.

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 three sentences, tightly packed with the most essential information: required line items, client identification requirement, and draft-to-issue workflow. It's front-loaded with the primary action. It could mention additional critical requirements but doesn't waste words on trivial content. Slightly more substance than the minimum needed, but still concise.

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 complex 50-parameter tool with two required params and rich nested UBL extension structures, the description covers the essential creation semantics (draft status, editability, requirement constraints, issue follow-up). The schema handles parameter detail comprehensively. The main gap is no mention of return value/created invoice response, no idempotency guidance, and no note about validation behavior. Since output schema is absent, some return-value context would help, but overall it's reasonably complete given the schema richness.

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%, so all 50 parameters have descriptions within the schema itself. The schema is extremely detailed with descriptions for each parameter including examples, enums, and nested structures. The tool description itself adds only the clientId vs receiverName/receiverCif constraint, which is also largely covered in the schema. Baseline of 3 is appropriate since the schema does the heavy lifting.

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 clearly states the verb (create), resource (draft invoice), and key preconditions (requires line item and clientId or receiverName/receiverCif). It also distinguishes from the sibling tool invoices_issue by clarifying this creates a draft, while issue finalizes. This differentiates it from proforma_invoices_create and delivery_notes_create among siblings.

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

Usage Guidelines5/5

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

The description explicitly states required preconditions (at least one line item, either clientId or receiverName/receiverCif) and points to invoices_issue as the follow-up step for finalization and XML/PDF generation. It also clarifies the draft status behavior, giving clear when-to-use guidance versus the issue tool. However, it doesn't contrast with proforma_invoices_create, which could be a near-alternative.

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/stornoro/storno-cli'

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