Skip to main content
Glama

qonto_create_credit_note

RÉSERVÉ AU STUDIO (token). Émet un avoir Qonto (A-…) sur une facture finalisée (unpaid/paid) : copie toutes ses lignes en quantité négative. Un avoir égal au total annule automatiquement la facture. Par défaut AUCUN email n'est envoyé au client (send_email=false). Anti-doublon : refuse si la facture a déjà un avoir (sauf force=true) ; request_id rend l'appel rejouable. Renvoie numéro, id et URL PDF signée.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "qonto_create_credit_note"
  }
}

Input Schema

NameRequiredDescriptionDefault
forceNoÉmettre même si la facture a déjà un avoir. Défaut false.
reasonNoMotif de l'avoir (obligatoire côté Qonto). Défaut : « Avoir sur la facture F-… ».
messageNoCorps de l'email si send_email=true (optionnel).
send_toNoDestinataire si send_email=true (défaut : email du client de la facture).
auth_tokenNo
invoice_idNoId Qonto de la facture (alternative à invoice_number).
request_idNoIdentifiant unique de CET appel : rejoué, le serveur renvoie la réponse d'origine sans recréer d'avoir.
send_emailNotrue = Qonto envoie l'avoir par email au client. Défaut false (correction interne, rien n'est envoyé).
invoice_numberNoNuméro de la facture (ex. F-2026-025).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior5/5

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

No annotations are supplied, so the description carries the whole burden and does so thoroughly: it discloses the token restriction, that all lines are copied at negative quantity, that a total-value credit note auto-cancels the invoice, that no email goes out by default, the anti-duplicate refusal rule with its force override, request_id idempotency, and the return payload (number, id, signed PDF URL). These are exactly the mutation risks an agent needs to know before calling.

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 scope restriction is front-loaded and each subsequent clause adds a distinct fact (line copying, cancellation, email default, duplicate guard, idempotency, return value). The semicolon-chained style and doubled emphasis ("AUCUN email" plus "send_email=false") are slightly redundant, but no sentence is wasted.

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 9-parameter mutating tool with no annotations and no output schema, the description covers permissions, side effects, idempotency, and even the return value, which is unusually complete. The remaining gap is the absence of required-parameter guidance (which of invoice_id/invoice_number/auth_token an agent must supply) and error behavior for non-finalized invoices.

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 89%, so the individual parameters (force, request_id, send_email, reason, invoice_id vs invoice_number) are already documented in the schema at the level the description provides. The description adds the aggregate semantics — negative-quantity line copy and total-value cancellation — but does not resolve the notable ambiguity that invoice_id and invoice_number are alternatives while the schema marks zero parameters as required, leaving the agent to infer that one of them is needed.

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?

"Émet un avoir Qonto (A-…) sur une facture finalisée" gives a specific verb (issue), resource (credit note), and target (finalized invoice), plus the naming convention of the result. The scope qualifier "(unpaid/paid)" distinguishes it from operations on draft invoices, so an agent can tell it apart from siblings like qonto_create_invoice or qonto_finalize_invoice without opening 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?

It states the precondition (invoice must be finalized in unpaid/paid state) and the side condition that a full-value credit note cancels the invoice, which tells the agent when this is the right tool. It also names force=true as the escape hatch for the duplicate guard. What it lacks is an explicit pointer to a sibling for the cases it does not handle (e.g. what to do for a draft invoice), so it stops short of full when/when-not routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources