Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

FavCRM

REMOTE · API.FAVCRM.IO · SCANNED AUG 4

Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.

Available components

+7 this week 82 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability85
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 18916 tokens (~82/item across 228 items; 223 tools + 5 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
  • Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · api.favcrm.io

# add to Claude Code
claude mcp add --transport http io-favcrm-favcrm https://api.favcrm.io/mcp
# ~/.codex/config.toml
[mcp_servers.io-favcrm-favcrm]
url = "https://api.favcrm.io/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-favcrm-favcrm": {
      "type": "remote",
      "url": "https://api.favcrm.io/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-favcrm-favcrm --url https://api.favcrm.io/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  io-favcrm-favcrm:
    url: "https://api.favcrm.io/mcp"
// mcp.json
{
  "mcpServers": {
    "io-favcrm-favcrm": {
      "type": "http",
      "url": "https://api.favcrm.io/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +4
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 74

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Aug 2026 · Probed https://api.favcrm.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=favcrm.io CN=WE1,O=Google Trust Services,C=US 13 Jun 2026 11 Sept 2026 ECDSA 256 ECDSA-SHA256 8b36e4b5d46a89d8137da5f9739177d7
SANs: favcrm.io, api.favcrm.io, *.api.favcrm.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC insecure

Validation of api.favcrm.io. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
favcrm.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200
Header Value
strict-transport-security max-age=31536000
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy no-referrer

Protected resource metadata

Retrieved No
Problem no_resource_metadata
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.favcrm.io/mcp Verified 200
http (plaintext) http://api.favcrm.io/mcp HTTPS enforced 301 https://api.favcrm.io/mcp
MCP tools — 223 exposed · ~18,806 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
switch_company ~65

Switch the current session to a different company/organisation. Returns a new access token scoped to the target company. All subsequent tool calls will operate on the new company.

NameTypeReqDescription
companyIdstringyesThe company ID to switch to (use list_my_companies to find available IDs)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_account ~208

Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.

NameTypeReqDescription
accountIdstringyesThe account ID to update
assignedToAssigned team member user ID, or null to clear
dateOfBirthYYYY-MM-DD date of birth, or null to clear
emailstringEmail address
firstNameFirst name for individual accounts
genderstringGender
lastNameLast name for individual accounts
lifeStagestringCRM life stage
memberCodeMerchant member code, or null to clear
namestringAccount/customer display name
notesstringInternal notes
phonestringPhone number
referredByAccountIdReferrer account ID, or null to clear
sourcestringAcquisition source
typestringAccount type
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_booking_settings ~298

Update global booking settings. Pass only the fields you want to change.

NameTypeReqDescription
allowMemberCancellationbooleanAllow members to cancel bookings from the customer portal
blockUntilFinishedbooleanBlock customers from booking again while they have active bookings
bookingReminderEnabledbooleanSend the default pre-booking reminder
bookingReminderLeadHoursintegerHours before booking start for the default reminder
calendarStylestringBooking flow calendar presentation
cooldownMessageOptional message shown when cooldown blocks a booking
globalCooldownDaysMinimum days between customer bookings, or null to disable
hideUnavailableTimeslotsbooleanHide unavailable timeslots instead of showing them as full
memberCancellationCutoffHoursHours before booking start when member cancellation closes, or null for no cutoff
minimumAdvanceBookingMinutesMinutes before slot start when customer booking closes. null/0 = no cutoff; set > 0 to require advance notice
requireBookingConfirmationbooleanRequire merchant confirmation before bookings are confirmed
sameDayReminderEnabledbooleanSend an additional same-day reminder before booking start
sameDayReminderLeadHoursintegerHours before booking start for the same-day reminder
showAccessPassbooleanShow access pass/package options in booking flow
showCouponbooleanShow coupon field in booking flow
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_campaign ~131

Update an existing campaign. Channel cannot be changed after creation. Pass only fields to change.

NameTypeReqDescription
campaignIdstringyesCampaign ID
channelConfigobjectFor email, use subject + htmlBody + optional plainTextBody. Legacy html is normalized to htmlBody.
namestringName
recipientIdsarrayExplicit recipient user IDs
recipientSourcestringRecipient source: segment | tier | manual
scheduledAtScheduled timestamp (ISO 8601)
segmentIdSegment ID
statusstringStatus filter
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_category ~61

Update a CMS post category.

NameTypeReqDescription
categoryIdstringyesCategory ID
descriptionDescription
namestringName
slugstringURL slug
sortOrdernumberSort order (lower = earlier)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_contact ~75

Update fields on an existing contact.

NameTypeReqDescription
contactIdstringyesThe contact ID
emailstringEmail address
isPrimarybooleanMark as the primary contact
jobTitlestringJob title
namestringName
phonestringPhone number
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_custom_field ~98

Update a custom field definition label, type, options, required flag, or sort order.

NameTypeReqDescription
definitionIdstringyesCustom field definition ID
fieldLabelstringHuman-readable label
fieldTypestringField type
isRequiredbooleanWhether this field is required
optionsarrayAllowed values for select/multiselect fields
sortOrdernumberDisplay order
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_deal ~174

Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.

NameTypeReqDescription
accountIdLinked CRM account ID, or null to clear
amountDeal amount, or null to clear
closingDateExpected closing date, or null to clear
contactIdLinked contact ID, or null to clear
dealIdstringyesThe deal ID
dealTypeDeal type/category, or null to clear
descriptionDeal notes or description, or null to clear
namestringDeal name
ownerIdOwner user/team member ID, or null to clear
probabilityWin probability, or null to clear
stagePipeline stage, or null to clear
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_deal_stage ~66

Move a deal to a different pipeline stage.

NameTypeReqDescription
dealIdstringyesThe deal ID
lostReasonstringRequired when moving to lost
probabilitystringOptional win probability (percent string)
stagestringyesNew pipeline stage
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_order_status ~47

Update the status of a shop order (e.g. confirm, ship, cancel).

NameTypeReqDescription
orderIdstringyesThe order UUID
statusstringyesNew order status
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_outlet ~108

Update an existing shop outlet/location by ID.

NameTypeReqDescription
acceptsOrdersbooleanWhether outlet accepts online orders
addressStreet address
idstringyesOutlet ID (UUID)
isActivebooleanWhether outlet is active
latitudeLatitude
logoUrlLogo URL
longitudeLongitude
namestringOutlet name
phoneContact phone
sortOrderintegerDisplay sort order
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_post ~343

Update an existing CMS post (any post type). Only provided fields are changed.

NameTypeReqDescription
blocksarrayReplaces the entire ordered block array. Use append_post_block / replace_post_block / remove_post_block / reorder_post_blocks for per-block edits. Each block: { id, version, type, data }. Types: para…
categoryIdsarrayCategory IDs
excerptstringPlain-text summary only — never JSON. Omit to leave unchanged.
featuredImagestringCover image URL
metaobjectCustom field values; merged shallowly with existing meta. Use this for structured data, not excerpt.
parentIdParent post ID for nested types.
postIdstringyesThe post ID
publishedAtPublish timestamp (ISO 8601)
seoDescriptionstringSEO description override
seoTitlestringSEO title override
slugstringURL slug (must be unique per company+type).
sortOrdernumberSort order (lower = earlier)
statusstringPost status
tagIdsarrayTag IDs to sync (replaces existing tags)
titlestringPost title
typestringChange post type (e.g. blog_post → treatment). Slug is re-checked for uniqueness under the new type.
visibilitystringVisibility
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_post_type ~151

Update a custom post type. Built-in types (blog_post, page) cannot be modified.

NameTypeReqDescription
iconIcon name or URL
labelstringDisplay label
labelPluralstringPlural display label
postTypeIdstringyesPost type ID
sortOrdernumberSort order (lower = earlier)
supportsBlocksbooleanAllow content blocks (rich body)
supportsCategoriesbooleanAllow categories on this post type
supportsExcerptbooleanAllow an excerpt field
supportsFeaturedImagebooleanAllow a featured image
supportsNestingbooleanAllow parent/child nesting
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_post_type_field ~187

Update a field on a post type schema. Changing fieldType or flipping required=true is blocked when posts already use the field unless force=true is passed.

NameTypeReqDescription
fieldIdstringyesField ID
fieldTypestringField type
fieldsChild fields for fieldType="repeater".
forcebooleanOverride safety guards. Required to change fieldType or flip required=true on a field that already has data in posts.
helpTextHelp text shown next to the input
labelstringDisplay label
optionsFor URL fields, { uploadable: true } enables file upload while preserving a URL string in meta.
postTypeIdstringyesPost type ID
requiredbooleanWhether the field is required
sortOrdernumberSort order (lower = earlier)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_product ~119

Update an existing product. Only provided fields are changed.

NameTypeReqDescription
categoryIdsarrayCategory IDs (first is primary). Replaces all existing categories.
descriptionstringProduct description
discountPricestringDiscounted price
memberPricestringMembers-only price
namestringProduct name
pricestringPrice as decimal string
productIdnumberyesThe product ID
skustringSKU code
statusstringProduct status
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_promotion ~132

Update an existing promotion. Pass only the fields you want to change.

NameTypeReqDescription
codestringPromotion code
endsAtEnd timestamp (ISO 8601)
namestringName
promotionIdstringyesPromotion ID
startsAtStart timestamp (ISO 8601)
statusstringStatus filter
typestringType
usageLimitPerCustomerUsage limit per customer
usageLimitTotalTotal usage limit across all customers
valuestringDiscount value (numeric or decimal string)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_segment ~87

Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.

NameTypeReqDescription
criteriaReplace dynamic criteria, or null to clear criteria
descriptionstringNew segment description
namestringNew segment name
segmentIdstringyesThe segment ID to update
segmentTypestringChange segment type
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_service ~241

Update an existing booking service. Pass only the fields you want to change.

NameTypeReqDescription
capacitynumberParticipants per slot
categoryIdCategory ID
commissionCurrencyCommission currency (ISO code)
commissionTypeCommission type: "fixed" or "percentage"
commissionValueCommission amount as decimal string
cooldownMinutesnumberCooldown minutes between bookings
descriptionstringDescription
durationMinutesnumberDuration of one booking in minutes
namestringName
pricestringDecimal string, e.g. "80.00"
requireLoginbooleanIf true, guests cannot book without an account
requiresConfirmationbooleanIf true, bookings start pending and need explicit confirmation
requiresResourcebooleanWhether the service requires a resource (room/equipment)
requiresStaffbooleanWhether the service requires staff assignment
serviceIdstringyesService ID to update
statusstringStatus filter
visibilitystringVisibility: public | members_only | hidden
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_service_package ~139

Update an existing service package. Pass only the fields you want to change.

NameTypeReqDescription
applicableItemsarrayItem IDs the package can be redeemed against
applicableTypestringWhat this package applies to: services | products | both
descriptionDescription
namestringName
packageIdstringyesService package ID to update
pricenumberDecimal string, e.g. "80.00"
sessionCountintegerNumber of sessions in the package
statusstringStatus filter
validDaysintegerValidity period in days
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_service_schedule ~183

Update a service schedule window. Pass only fields to change.

NameTypeReqDescription
byWeekdayWeekdays (0=Mon..6=Sun) for weekly recurrence
datestringDate (YYYY-MM-DD)
endTimestringEnd time (HH:mm)
maxCapacitynumberMaximum capacity for this slot
notesFree-form notes
recurrencestringRecurrence rule: none | daily | weekly | monthly
recurrenceEndDateRecurrence end date (YYYY-MM-DD)
recurrenceIntervalnumberRecurrence interval (e.g. every N weeks)
resourceIdResource ID (room/equipment)
scheduleIdstringyesSchedule ID
staffIdStaff member ID
startTimestringStart time (HH:mm)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_survey ~150

Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.

NameTypeReqDescription
closeAtOptional ISO datetime when the survey closes
descriptionSurvey description
openAtOptional ISO datetime when the survey opens
questionBlocksarrayOrdered survey question blocks
settingsobjectSurvey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage
slugstringURL slug
statusstringSurvey status
surveyIdstringyesSurvey ID
titlestringSurvey title
visibilitystringSurvey access mode
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_tag ~52

Rename or recolor an existing CRM tag.

NameTypeReqDescription
colorNew color, or null to clear
namestringNew tag name
tagIdstringyesThe tag ID to update
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_task ~96

Update a task (status, priority, assignee, due date, completion).

NameTypeReqDescription
assigneeIdstringAssignee user ID
descriptionstringDescription
dueDatestringDue date (ISO 8601)
prioritystringPriority
statusstringStatus filter
taskIdstringyesThe task ID
titlestringTitle
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

update_ticket_status ~40

Update the status of an existing support ticket.

NameTypeReqDescription
statusstringyesNew status
ticketIdstringyesThe ticket ID to update
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

upload_post_cover_from_url ~115

Download an external image URL into R2 and attach it as the post's featuredImage. Replaces the manual flow of pasting external URLs (which break when the source goes down). Validates content-type starts with `image/` and rejects payloads larger than 20 MB. No AI credits charged — only standard storage.

NameTypeReqDescription
postIdstringyesThe post ID
sourceUrlstringyesPublic http(s) URL to fetch the image from. Must respond with an image/* content-type.
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

upsert_survey_workflow ~93

Create or update a survey automation workflow, usually triggered by survey_response_submitted.

NameTypeReqDescription
graphobjectyesWorkflow graph definition
namestringyesWorkflow name
statusstringWorkflow status
surveyIdstringyesSurvey ID
triggerstringTrigger name, default from graph.trigger
workflowIdstringExisting workflow ID when updating
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

validate_campaign ~42

Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.

NameTypeReqDescription
campaignIdstringyesCampaign ID to validate
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

validate_promotion ~105

Check if a promotion code is valid for a given order. Returns isValid, discount amount, and an error code/message if invalid. Use before applying to a checkout.

NameTypeReqDescription
accountIdstringCustomer account ID — used for per-customer usage limits
amountnumberyesOrder subtotal in major units (dollars, not cents)
channelstringyesWhere the promo is being applied
promotionCodestringyesThe code customer entered
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

void_invoice ~55

Void an invoice. Destructive — invoice can no longer be paid or edited; existing payments are preserved as history. Cannot void invoices that are already PAID or VOIDED.

NameTypeReqDescription
invoiceIdstringyesInvoice ID to void
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.