Skip to main content
Glama

Red by Big Red Cloud

Update Sales Invoice

brc_update_sales_invoice
Destructive

Updates a sales invoice. Supplied monetary changes must be explicit and reconciled. Requires a valid routeToken issued for the matching action workflow. The token remains valid through lookup, preview and the permitted transaction. Placeholder tokens are invalid. A routeToken does not bypass preview or explicit-confirmation requirements. A call without confirmWrite: true returns confirmation_required and a payload preview. confirmWrite: true applies the previewed change after explicit confirmation. Passing preflight is not confirmation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesSales invoice id.
noteNoOptional. BRC "Note" field on the sales document (JSON field `note`). Leave blank to default it to the customer name (BRC customer "Name" / JSON `name`). Do not use the product name as the note. Only set this when the user explicitly provides a note.
totalNo
detailsNo
procDateNoProcessing date. Historical dates are permitted as an attempted update; BRC may accept or reject them.
totalNetNo
totalVATNo
entryDateNoEntry date. Historical dates are permitted as an attempted update; BRC may accept or reject them.
referenceNoOptional. BRC "Reference" field (JSON field `reference`). BRC "Our Ref" (JSON `ourReference`) and BRC "Your Ref" (JSON `yourReference`) default to this value when not supplied separately.
saleRepIdNo
vatTypeIdNo
customerIdNo
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something. Nothing is written to Big Red Cloud until you confirm.
ourReferenceNo
productTransNoComplete BRC productTrans collection. Use this when changing invoice lines, quantities, unit prices, VAT or line amounts.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
yourReferenceNo
bookTranTypeIdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • addedInput schema / properties / bookTranTypeId
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / customerId
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / details
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / entryDate
      Added value: +{
      +  "description": "Entry date. Historical dates are permitted as an attempted update; BRC may accept or reject them.",
      +  "type": "string"
      +}
    • addedInput schema / properties / ourReference
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / procDate
      Added value: +{
      +  "description": "Processing date. Historical dates are permitted as an attempted update; BRC may accept or reject them.",
      +  "type": "string"
      +}
    • addedInput schema / properties / productTrans
      Added value: +{
      +  "description": "Complete BRC productTrans collection. Use this when changing invoice lines, quantities, unit prices, VAT or line amounts.",
      +  "items": {
      +    "additionalProperties": {},
      +    "propertyNames": {
      +      "type": "string"
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / saleRepId
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / total
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / totalNet
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / totalVAT
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / vatTypeId
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / yourReference
      Added value: +{
      +  "type": "string"
      +}
  2. Changed13 schema fields changed
    • removedInput schema / properties / bookTranTypeId
      Removed value: -{
      -  "maximum": 9007199254740991,
      -  "minimum": -9007199254740991,
      -  "type": "integer"
      -}
    • removedInput schema / properties / customerId
      Removed value: -{
      -  "maximum": 9007199254740991,
      -  "minimum": -9007199254740991,
      -  "type": "integer"
      -}
    • removedInput schema / properties / details
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / entryDate
      Removed value: -{
      -  "description": "Entry date. Historical dates are permitted as an attempted update; BRC may accept or reject them.",
      -  "type": "string"
      -}
    • removedInput schema / properties / ourReference
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / procDate
      Removed value: -{
      -  "description": "Processing date. Historical dates are permitted as an attempted update; BRC may accept or reject them.",
      -  "type": "string"
      -}
    • removedInput schema / properties / productTrans
      Removed value: -{
      -  "description": "Complete BRC productTrans collection. Use this when changing invoice lines, quantities, unit prices, VAT or line amounts.",
      -  "items": {
      -    "additionalProperties": {},
      -    "propertyNames": {
      -      "type": "string"
      -    },
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / saleRepId
      Removed value: -{
      -  "maximum": 9007199254740991,
      -  "minimum": -9007199254740991,
      -  "type": "integer"
      -}
    • removedInput schema / properties / total
      Removed value: -{
      -  "type": "number"
      -}
    • removedInput schema / properties / totalNet
      Removed value: -{
      -  "type": "number"
      -}
    • removedInput schema / properties / totalVAT
      Removed value: -{
      -  "type": "number"
      -}
    • removedInput schema / properties / vatTypeId
      Removed value: -{
      -  "maximum": 9007199254740991,
      -  "minimum": -9007199254740991,
      -  "type": "integer"
      -}
    • removedInput schema / properties / yourReference
      Removed value: -{
      -  "type": "string"
      -}
  3. Changed13 schema fields changed
    • addedInput schema / properties / bookTranTypeId
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / customerId
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / details
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / entryDate
      Added value: +{
      +  "description": "Entry date. Historical dates are permitted as an attempted update; BRC may accept or reject them.",
      +  "type": "string"
      +}
    • addedInput schema / properties / ourReference
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / procDate
      Added value: +{
      +  "description": "Processing date. Historical dates are permitted as an attempted update; BRC may accept or reject them.",
      +  "type": "string"
      +}
    • addedInput schema / properties / productTrans
      Added value: +{
      +  "description": "Complete BRC productTrans collection. Use this when changing invoice lines, quantities, unit prices, VAT or line amounts.",
      +  "items": {
      +    "additionalProperties": {},
      +    "propertyNames": {
      +      "type": "string"
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / saleRepId
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / total
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / totalNet
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / totalVAT
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / vatTypeId
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / yourReference
      Added value: +{
      +  "type": "string"
      +}
  4. Changed2 schema fields changed
    • addedInput schema / properties / routeToken
      Added value: +{
      +  "description": "Opaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "companyName",
      -  "id"
      -]New value: +[
      +  "companyName",
      +  "id",
      +  "routeToken"
      +]
  5. Changed2 schema fields changed
    • removedInput schema / properties / routeToken
      Removed value: -{
      -  "description": "Opaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.",
      -  "minLength": 1,
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "companyName",
      -  "id",
      -  "routeToken"
      -]New value: +[
      +  "companyName",
      +  "id"
      +]
  6. Changed2 schema fields changed
    • addedInput schema / properties / routeToken
      Added value: +{
      +  "description": "Opaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "companyName",
      -  "id"
      -]New value: +[
      +  "companyName",
      +  "id",
      +  "routeToken"
      +]
  7. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already mark destructiveHint true and readOnly false, and the description adds essential context: token validity through lookup/preview/transaction, invalid placeholder tokens, no bypass of preview/confirmation requirements, and the exact response behavior for a call without confirmWrite. 'Passing preflight is not confirmation' is a valuable guard against premature writes.

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 dense but every sentence earns its place: purpose, token constraints, monetary reconciliation, and confirmation semantics are all loaded early. There is no filler or repetition of the title.

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 destructive 20-parameter transaction tool with no output schema, the description covers the crucial workflow—routeToken, preview, and explicit confirmation—and mentions the confirmation_required response. It is still not fully complete because it does not describe the success response or broader error cases, and it leaves some parameter semantics to the schema.

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?

The schema documents half of the 20 parameters, and the description adds only a general constraint that supplied monetary changes must be explicit and reconciled. It reinforces routeToken and confirmWrite semantics but does not explain undocumented fields such as details, bookTranTypeId, or saleRepId, leaving the schema to carry most parameter meaning.

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?

Opens with 'Updates a sales invoice,' a specific verb and resource that immediately distinguishes it from create/get/list/delete invoice siblings. The rest of the description reinforces the update workflow rather than blurring the purpose.

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?

Clearly states the required routeToken workflow and the preview-then-confirm pattern: without confirmWrite:true the call returns confirmation_required, and confirmWrite:true only applies after explicit confirmation. It does not name alternatives such as brc_create_sales_invoice or brc_delete_sales_invoice, so it falls just short of full guidance.

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.