get_subscription_upcoming_charges
Retrieve all upcoming charges for a subscription, including recurring, one-time, and usage fees with amounts and due dates.
Instructions
View all upcoming charges for a subscription. GET /subscriptions/{subscriptionId}/upcoming. Returns scheduled charges (recurring, one-time, usage) with amounts and dates. Optional: include.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| include | No | Attributes to include |
Implementation Reference
- The handler function that executes the get_subscription_upcoming_charges tool logic. It parses args (subscriptionId, optional include) and delegates to subscriptionService.getSubscriptionUpcomingCharges.
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 } = parsed.data; return handleToolCall(() => subscriptionService.getSubscriptionUpcomingCharges(client, subscriptionId, { include }) ); } - Zod schema for the tool's input: subscriptionId (required string) and include (optional string).
const schema = z.object({ subscriptionId: z.string().min(1, "subscriptionId is required"), include: z.string().optional(), }); - Tool definition (name 'get_subscription_upcoming_charges', description, and JSON Schema inputSchema).
const definition = { name: "get_subscription_upcoming_charges", description: "View all upcoming charges for a subscription. GET /subscriptions/{subscriptionId}/upcoming. Returns scheduled charges (recurring, one-time, usage) with amounts and dates. Optional: include.", inputSchema: { type: "object" as const, properties: { subscriptionId: { type: "string", description: "Subscription ID (required)" }, include: { type: "string", description: "Attributes to include" }, }, required: ["subscriptionId"], }, }; - The exported Tool object combining the definition and handler.
export const getSubscriptionUpcomingChargesTool: Tool = { definition, handler, }; - The service function that makes the actual API call: GET /subscriptions/{subscriptionId}/upcoming with optional include parameter.
/** Upcoming charges for the subscription. GET /subscriptions/{id}/upcoming */ export async function getSubscriptionUpcomingCharges( client: Client, subscriptionId: string, params?: SubscriptionUpcomingParams ): Promise<unknown> { const search = new URLSearchParams(); if (params?.include) search.append("include", params.include); const q = search.toString(); return client.get<unknown>(`/subscriptions/${subscriptionId}/upcoming${q ? `?${q}` : ""}`); }