get_subscription_external_invoices
Retrieve e-commerce orders (external invoices) linked to a subscription. Supports pagination and optional attribute inclusion.
Instructions
List e-commerce orders (external invoices) linked to a subscription. GET /subscriptions/{subscriptionId}/external-invoices. Returns paginated external invoice records. Optional: include, pageNo, itemPerPage.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| include | No | Attributes to include | |
| pageNo | No | Page number (default: 1) | |
| itemPerPage | No | Items per page (default: 25) |
Implementation Reference
- Handler function that parses args, validates with zod schema, then calls the service to fetch external invoices for a subscription.
async function handler(client: Client, args: Record<string, unknown> | undefined) { const parsed = schema.safeParse(args); if (!parsed.success) { return errorResult(parsed.error.errors.map((e) => e.message).join("; ")); } const { subscriptionId, include, pageNo, itemPerPage } = parsed.data; return handleToolCall(() => subscriptionService.getSubscriptionExternalInvoices(client, subscriptionId, { include, pageNo, itemPerPage, }) ); } - Service function that makes the GET /subscriptions/{subscriptionId}/external-invoices API call with optional query params (include, pageNo, itemPerPage).
/** External (e-commerce) orders linked to the subscription. GET /subscriptions/{id}/external-invoices */ export async function getSubscriptionExternalInvoices( client: Client, subscriptionId: string, params?: SubscriptionExternalInvoicesParams ): Promise<PaginatedResponse<unknown>> { const search = new URLSearchParams(); if (params?.include) search.append("include", params.include); if (params?.pageNo != null) search.append("pageNo", String(params.pageNo)); if (params?.itemPerPage != null) search.append("itemPerPage", String(params.itemPerPage)); const q = search.toString(); return client.get<PaginatedResponse<unknown>>( `/subscriptions/${subscriptionId}/external-invoices${q ? `?${q}` : ""}` ); } - Zod schema defining input validation: subscriptionId (required string), optional include, pageNo, itemPerPage.
const schema = z.object({ subscriptionId: z.string().min(1, "subscriptionId is required"), include: z.string().optional(), pageNo: z.number().int().min(1).optional(), itemPerPage: z.number().int().min(1).optional(), }); - Exported Tool object with 'definition' (name, description, inputSchema) and 'handler'.
export const getSubscriptionExternalInvoicesTool: Tool = { definition, handler, }; - src/tools/subscriptions/index.ts:38-49 (registration)Tool is included in the registerSubscriptionTools() array, and re-exported on line 60.
getSubscriptionExternalInvoicesTool, listSubscriptionRatePlansTool, getSubscriptionRatePlanTool, addSubscriptionRatePlanTool, updateSubscriptionRatePlanTool, removeSubscriptionRatePlanTool, getSubscriptionRatePlanChargeTool, addSubscriptionRatePlanChargeTool, updateSubscriptionRatePlanChargeTool, removeSubscriptionRatePlanChargeTool, ]; }