Skip to main content
Glama
stornoro

Storno CLI

Official
by stornoro

payments_receipt_issue

Idempotent

Issues a cash receipt for an existing cash payment on an invoice, assigning a receipt series and date without duplicating the payment or altering balances.

Instructions

Issue the chitanță (cash receipt) for a cash payment already recorded on an issued invoice: a number from the receipt series (the company default, or seriesId) and a date (default: the payment date). The receipt documents the existing payment and never records a second one — the invoice balance and the cash register keep the same single payment. Idempotent: a payment that already has a receipt keeps it. 422 for non-cash payments, received invoices, or when no receipt series exists.

Input Schema

NameRequiredDescriptionDefault
dateNoReceipt date YYYY-MM-DD (default: the payment date)
seriesIdNoReceipt series UUID (type receipt); default: the company default receipt series
companyIdNoCompany UUID override (uses active company if not set)
invoiceIdYesInvoice UUID
paymentIdYesPayment UUID (from payments_list; paymentMethod must be cash)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.57

TDQS

A4.4/5.0
Behavior5/5

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

Well beyond the annotations: it states the side-effect boundary explicitly — the invoice balance and cash register keep the same single payment — which is the single most important thing to know before calling a mutation on payment data. It also restates idempotency in concrete terms (a payment that already has a receipt keeps it) and enumerates three 422 conditions, none of which appear in 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.

Conciseness5/5

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

Four sentences, front-loaded with the action and resource, then the behavioral guarantee, then the failure modes. The em-dash aside explains rather than repeats, and no sentence could be dropped without losing information an agent needs.

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 mutation with five params and no output schema, it covers side effects, defaults, idempotency and error conditions thoroughly. It leaves the response shape (e.g. whether the created receipt/number is returned) and any permission or series-exhaustion behavior unstated, which is a minor gap given no output schema exists to answer it.

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% and the schema already documents every parameter, including the same defaults the description mentions (payment date, company default receipt series) — so the description largely restates structured data. It adds no new semantics for invoiceId/paymentId beyond what the schema says. Baseline 3 applies when the schema carries the load.

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?

Names a specific verb (issue), a specific resource (chitanță / cash receipt), and pins the exact scope: a cash payment already recorded on an issued invoice. The clarification that it 'never records a second one' cleanly separates it from payments_create and from the standalone receipts_create/receipts_issue family without needing to open any schema.

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?

Gives a clear positive precondition (cash payment already recorded on an issued invoice) and hard exclusions via the 422 conditions (non-cash payments, received invoices, no receipt series) — an agent knows exactly when this call will fail. It stops short of naming a sibling alternative for those failure cases (e.g. where to go for a non-cash payment), so not a full 5.

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