Skip to main content
Glama

list_invoices

Retrieve and filter invoices from the Visa Acceptance platform using pagination parameters to manage and review billing information.

Instructions

This tool will list invoices from Visa Acceptance.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitYesPagination limit (required)
offsetYesPagination offset (required)
statusNoFilter by status (optional)

Implementation Reference

  • The main execute handler for the 'list_invoices' tool. It uses Cybersource REST client to call getAllInvoices API with offset, limit, and optional status filter, applies masking, and returns the result.
    export const listInvoices = async ( visaClient: any, context: VisaContext, params: z.infer<ReturnType<typeof listInvoicesParameters>> ) => { try { const invoiceApiInstance = new cybersourceRestApi.InvoicesApi(visaClient.configuration, visaClient.visaApiClient); const opts: { status?: string } = {}; if (params.status != null && params.status !== '') { opts.status = params.status; } console.log('Sending request with params:', JSON.stringify({ offset: params.offset, limit: params.limit, opts })); const result = await new Promise((resolve, reject) => { invoiceApiInstance.getAllInvoices( params.offset, params.limit, opts, (error: any, data: any, response: any) => { if (error) { console.error('Error in listInvoices:', JSON.stringify(error)); reject(error); } else { console.log('Response from getAllInvoices:', JSON.stringify(response)); resolve(data); } } ); }); const typedResult = result as any; let maskedResult = maskInvoicesCustomerInfo(typedResult); return maskedResult; } catch (error) { console.error('Failed to list invoices:', error); return 'Failed to list invoices'; } };
  • Zod schema defining the input parameters for the list_invoices tool: offset (required number), limit (required number), status (optional string).
    export const listInvoicesParameters = ( context: VisaContext = {} as VisaContext ) => { return z.object({ offset: z.number().describe('Pagination offset (required)'), limit: z.number().describe('Pagination limit (required)'), status: z.string().optional().describe('Filter by status (optional)') }); };
  • Tool registration object defining the 'list_invoices' method, its name, description, parameters schema, actions permissions, and execute handler. Exported as default module.
    const tool = (context: VisaContext): Tool => ({ method: 'list_invoices', name: 'List Invoices', description: listInvoicesPrompt(context), parameters: listInvoicesParameters(context), actions: { invoices: { read: true, }, }, execute: listInvoices, }); export default tool;
  • Aggregates and registers the listInvoicesToolModule (imported from './invoices/listInvoices') along with other tools into a Tool[] array via createTools function.
    export function createTools(context: VisaContext): Tool[] { return [ createInvoiceToolModule(context), updateInvoiceToolModule(context), getInvoiceToolModule(context), listInvoicesToolModule(context), sendInvoiceToolModule(context), cancelInvoiceToolModule(context), createPaymentLinkToolModule(context), updatePaymentLinkToolModule(context), getPaymentLinkToolModule(context), listPaymentLinkToolModule(context) ];

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/visaacceptance/agent-toolkit'

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