Skip to main content
Glama

Create invoice

wave_create_invoice

Create a customer invoice from product line items, saving it as a draft by default and applying default taxes unless overridden. Use it to prepare billing records without sending email.

Instructions

Create an invoice for a customer. Created as DRAFT unless status=SAVED (approved). Number, dates, title and notes default to the business's invoice settings. Taxes default per product; pass taxIds:[] for none. Nothing is emailed.

Input Schema

NameRequiredDescriptionDefault
memoNoNotes shown to the customer
itemsYes
titleNo
footerNo
statusNo
dueDateNoDate, YYYY-MM-DD
subheadNo
currencyNoISO 4217 currency code, e.g. CAD or USD
hideNameNo
hideUnitNo
poNumberNo
discountsNo
hidePriceNo
itemTitleNo
unitTitleNo
businessIdNoBusiness ID; defaults to the one wave_get_context reports
customerIdYes
hideAmountNo
priceTitleNo
amountTitleNo
invoiceDateNoDate, YYYY-MM-DD
exchangeRateNoBusiness currency per document currency (foreign-currency documents only)
invoiceNumberNo
hideDescriptionNo
disableAmexPaymentsNo
disableBankPaymentsNo
disableCreditCardPaymentsNo
requireTermsOfServiceAgreementNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations, the description discloses important behavior: default DRAFT status, defaulting of invoice number/dates/title/notes from business settings, per-product tax defaults, and that no email is sent. It does not cover return shape or permission requirements, but it adds substantial context for a mutation tool.

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?

The description is four short sentences with no wasted wording. It front-loads the core action and follows with the most decision-relevant defaults and side effects.

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 28-parameter creation tool, the description covers the key behavioral facts an agent needs: draft versus saved state, tax defaults, defaulted invoice fields, and no email. The richer schema fills in many parameter details, though the description could say more about the created object's return.

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 low at 21%, so the description must compensate. It adds meaning for status, tax handling, and several defaulted fields, but it leaves many of the 28 parameters, such as discounts, currency, exchange rate, and the hide/disable flags, unexplained.

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: create an invoice for a customer. It also distinguishes the operation from sending by explicitly saying nothing is emailed, so an agent can tell it apart from wave_send_invoice and wave_mark_invoice_sent.

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 gives clear context for use: the invoice is created as DRAFT unless status=SAVED, and nothing is emailed. It does not explicitly name alternatives such as wave_send_invoice or wave_approve_invoice, but the intended usage is clear.

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