Skip to main content
Glama
WYRE-AI

QuickBooks Online MCP Server

by WYRE-AI

qbo_invoices_void

Void an existing Invoice record. The transaction stays in QuickBooks with amounts set to zero. Id and SyncToken are required (fetch the record first). QuickBooks will not void an invoice that still has a payment applied.

Instructions

Void an existing Invoice record. The transaction stays in QuickBooks with amounts set to zero. Id and SyncToken are required (fetch the record first). QuickBooks will not void an invoice that still has a payment applied.

Input Schema

NameRequiredDescriptionDefault
SyncTokenYesCurrent SyncToken of the record (required by QBO to void; fetch the record first to obtain it)
invoiceIdYesThe Invoice ID to void

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.6.6

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the non-destructive nature of a void (record persists with zeroed amounts), the SyncToken precondition, and a hard failure condition. It omits permissions/auth requirements, idempotency, and any hint about the response, keeping it out of the top band.

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?

Three short sentences, front-loaded with the action and its semantics before the preconditions. Every sentence carries distinct information — effect, requirements, failure case — with 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 a two-parameter mutation tool with no annotations and no output schema, the description covers behavior, prerequisites, and the key blocker. It leaves minor gaps around auth requirements and what the caller receives back, but nothing that would cause a wrong invocation.

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%, so both parameters are already documented in the schema, and the description's SyncToken note ('fetch the record first') largely restates the schema text. No additional format, casing, or sourcing detail is added, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Void) and resource (Invoice) and clarifies the effect — the transaction remains with amounts set to zero — which implicitly separates it from a delete or an update. It does not name sibling tools such as qbo_invoices_update or qbo_invoices_get, so it falls short of full sibling differentiation.

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 prerequisite ('fetch the record first') and an explicit exclusion ('will not void an invoice that still has a payment applied'), which is real when-not-to guidance. It does not, however, point to the alternative action (e.g. update, credit memo, or payment void) an agent should take in that blocked case.

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