Skip to main content
Glama

sevdesk

Create a draft invoice

sevdesk_create_draft_invoice
Destructive

Create a normal invoice (type RE) with its line items, ALWAYS saved as a DRAFT (status 100): it is not sent, not booked and stays editable in sevdesk. contact_person_id is the sevdesk USER responsible for it — copy contactPerson.id from any existing invoice (sevdesk_get_invoice). Bookkeeping 2.0 accounts use tax_rule_id (1 = taxable sales in Germany, the usual choice); 1.0 accounts pass tax_type instead (check sevdesk_get_bookkeeping_system_version). sevdesk: POST /Invoice/Factory/saveInvoice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
headerNoInvoice header/title line.
addressNoComplete recipient address with line breaks. Omit to leave it empty.
currencyNoISO-4217 currency code. Default EUR.EUR
show_netNoIf true (default), position prices are net.
tax_textNoVAT text printed on the invoice. Default 'Umsatzsteuer 19%'.Umsatzsteuer 19%
tax_typeNoBookkeeping 1.0 only — leave unset on 2.0 accounts.
foot_textNoText below the line items (some HTML allowed).
head_textNoText above the line items (some HTML allowed).
positionsYesLine items (at least one).
contact_idYesThe contact (customer)'s numeric id.
tax_rule_idNoBookkeeping 2.0 VAT rule id. 1 taxable sales (Umsatzsteuerpflichtige Umsätze), 2 exports, 3 intra-EU supplies, 4 tax-free §4 UStG, 5 reverse charge §13b, 11 small business §19 (Kleinunternehmer), 17 not taxable in Germany, 18-20 One Stop Shop, 21 reverse charge §18b. Default 1.1
time_to_payNoPayment term in days.
invoice_dateYesInvoice date as dd.mm.yyyy.
delivery_dateNoDelivery / service date as dd.mm.yyyy (must not be after invoice_date for a normal invoice).
small_settlementNoTrue if the account uses the small-business scheme (no VAT).
contact_person_idYesId of the sevdesk user (SevUser) acting as contact person — e.g. contactPerson.id of an existing invoice.
address_country_idNosevdesk StaticCountry id of the billing address (1 = Germany). Default 1.
customer_internal_noteNoReference / order number field.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Adds substantial behavior beyond the destructiveHint annotation: the record is always a draft, never sent or booked, and stays editable. This meaningfully reframes the risk profile of a write operation. It stops short of emphasizing that a persistent record is still created (relevant given destructiveHint=true) or noting auth/permission needs.

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?

Front-loads the single most important fact (draft, never sent/booked) before parameter guidance, and every clause carries information. Sentence flow is dense with em-dashes and parentheticals, which slightly hurts scannability but there is no filler.

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 an 18-parameter mutation with no output schema and only a bare destructiveHint annotation, the description covers the tricky semantics (status, contact_person_id, tax rule selection) well. It does not state what the call returns (invoice id), which is the only notable omission.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning on top: it clarifies contact_person_id is a sevdesk USER (not the contact) sourced from an existing invoice, and explains the tax_rule_id vs tax_type split with '1 = the usual choice'. These clarifications resolve ambiguities the schema alone leaves open.

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?

States a specific verb (create), resource (invoice type RE), and the crucial scope constraint that it is ALWAYS saved as a DRAFT (status 100). An agent immediately knows this produces an editable, unsent invoice rather than a finalized one, which is the key distinction for this tool.

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 concrete when-to-use routing: use tax_rule_id on 2.0 accounts and tax_type on 1.0 accounts, checking via sevdesk_get_bookkeeping_system_version, and retrieve contact_person_id via sevdesk_get_invoice. It lacks any explicit when-not-to-use or alternative-tool exclusion, but provides clear operational context.

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.