Skip to main content
Glama

whmcs_update_invoice

Modify invoice details in WHMCS, including status, dates, payment method, notes, and publication settings.

Instructions

Update an existing invoice

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
invoiceidYesInvoice ID to update
statusNoNew status
paymentmethodNoPayment method
dateNoInvoice date (YYYY-MM-DD)
duedateNoDue date (YYYY-MM-DD)
notesNoInvoice notes
publishNoPublish draft invoice
publishandsendemailNoPublish and send email

Implementation Reference

  • src/index.ts:325-347 (registration)
    Registration of the whmcs_update_invoice MCP tool, including input schema definition and thin handler wrapper that delegates to WhmcsApiClient.updateInvoice
    server.registerTool( 'whmcs_update_invoice', { title: 'Update Invoice', description: 'Update an existing invoice', inputSchema: { invoiceid: z.number().describe('Invoice ID to update'), status: z.enum(['Draft', 'Unpaid', 'Paid', 'Cancelled', 'Refunded', 'Collections']).optional().describe('New status'), paymentmethod: z.string().optional().describe('Payment method'), date: z.string().optional().describe('Invoice date (YYYY-MM-DD)'), duedate: z.string().optional().describe('Due date (YYYY-MM-DD)'), notes: z.string().optional().describe('Invoice notes'), publish: z.boolean().optional().describe('Publish draft invoice'), publishandsendemail: z.boolean().optional().describe('Publish and send email'), }, }, async (params) => { const result = await whmcsClient.updateInvoice(params); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }], }; } );
  • Input schema (Zod) for validating parameters to the whmcs_update_invoice tool
    { title: 'Update Invoice', description: 'Update an existing invoice', inputSchema: { invoiceid: z.number().describe('Invoice ID to update'), status: z.enum(['Draft', 'Unpaid', 'Paid', 'Cancelled', 'Refunded', 'Collections']).optional().describe('New status'), paymentmethod: z.string().optional().describe('Payment method'), date: z.string().optional().describe('Invoice date (YYYY-MM-DD)'), duedate: z.string().optional().describe('Due date (YYYY-MM-DD)'), notes: z.string().optional().describe('Invoice notes'), publish: z.boolean().optional().describe('Publish draft invoice'), publishandsendemail: z.boolean().optional().describe('Publish and send email'), },
  • Core handler implementation in WhmcsApiClient: the updateInvoice method that executes the WHMCS API 'UpdateInvoice' action with the provided parameters via the generic call method.
    /** * Update an invoice */ async updateInvoice(params: { invoiceid: number; status?: 'Draft' | 'Unpaid' | 'Paid' | 'Cancelled' | 'Refunded' | 'Collections'; paymentmethod?: string; taxrate?: number; taxrate2?: number; date?: string; duedate?: string; datepaid?: string; notes?: string; itemdescription?: string[]; itemamount?: number[]; itemtaxed?: boolean[]; newitemdescription?: string[]; newitemamount?: number[]; newitemtaxed?: boolean[]; deletelineids?: number[]; publish?: boolean; publishandsendemail?: boolean; }) { return this.call<WhmcsApiResponse & { invoiceid: number }>('UpdateInvoice', params); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scarecr0w12/whmcs-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server