Skip to main content
Glama
PaddleHQ
by PaddleHQ

create_report

Generate custom financial reports from Paddle Billing data for analysis, reconciliation, or export. Supports multiple report types with filter options to extract specific transaction, adjustment, product, or discount information.

Instructions

This tool will create a new report in Paddle.

Use this tool when detailed financial data for analysis, reconciliation, or export to spreadsheet applications is needed. Use this tool over listTransactions when trying to gather larger amounts of data from Paddle.

Reports are generated asynchronously - a report ID will be returned that can be used to check status. Reports initially have 'pending' status, then move to 'ready' when available to download. Reports are available in CSV format and can be downloaded once ready using the get_report_csv tool. Reports expire after a certain period and are no longer available to download after they expire.

There are different report types available:

  • adjustments: For information about refunds, credits, and chargebacks

  • adjustment_line_items: For information about refunds, credits, and chargebacks, broken down by line item level

  • transactions: For information about revenue received, past due invoices, draft and issued invoices, and canceled transactions

  • transaction_line_items: For information about revenue received, past due invoices, draft and issued invoices, and canceled transactions, broken down by line item level

  • products_prices: For information about the products and prices. May include non-catalog products and prices.

  • discounts: For information about the product and checkout discounts

Each report type has different filters which can be used:

  • action: adjustments and adjustment_line_items. Pass an array of strings containing any of 'refund', 'credit', 'chargeback', 'chargeback_reverse', 'chargeback_warning', 'chargeback_warning_reverse', 'credit_reverse' as values.

  • collection_mode: transactions and transaction_line_items. Pass an array of strings containing any of 'automatic' and 'manual' as values.

  • currency_code: adjustments, adjustment_line_items, transactions, and transaction_line_items. Pass an array of strings containing any valid supported three-letter ISO 4217 currency code.

  • origin: transactions and transaction_line_items. Pass an array of strings containing any of 'api', 'subscription_charge', 'subscription_payment_method_change', 'subscription_recurring', 'subscription_update', and 'web' as values.

  • product_status: products_prices. Pass an array of strings containing any of 'active' and 'archived' as values.

  • price_status: products_prices. Pass an array of strings containing any of 'active' and 'archived' as values.

  • product_type: products_prices. Pass an array of strings containing any of 'custom' and 'standard' as values.

  • price_type: products_prices. Pass an array of strings containing any of 'custom' and 'standard' as values.

  • product_updated_at: products_prices. Pass an RFC 3339 datetime string.

  • price_updated_at: products_prices. Pass an RFC 3339 datetime string.

  • status: adjustments, adjustment_line_items, transactions, transaction_line_items, and discounts. Pass an array of strings containing any valid value for the status field against an adjustment, transaction, or discount.

  • type: discounts and products_prices. Pass an array of strings containing any of 'custom' and 'standard' as values.

  • updated_at: adjustments, adjustment_line_items, transactions, transaction_line_items, and discounts. Pass an RFC 3339 datetime string. Use the operator parameter to specify the operator to use when filtering.

If successful, the response includes a copy of the new report entity.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYesType of report to create.
filtersNoFilter criteria for this report. If omitted, reports are filtered to include data updated in the last 30 days. This means `updated_at` is greater than or equal to (`gte`) the date 30 days ago from the time the report was generated.

Implementation Reference

  • The main handler function that executes the create_report tool by calling the Paddle SDK's reports.create method with the provided parameters.
    export const createReport = async (paddle: Paddle, params: z.infer<typeof Parameters.createReportParameters>) => { try { const report = await paddle.reports.create(params); return report; } catch (error) { return error; } };
  • The tool schema defining the method name, description, input parameters schema, and required actions for the create_report tool.
    method: "create_report", name: "Create a report", description: prompts.createReportPrompt, parameters: params.createReportParameters, actions: { reports: { write: true, create: true, }, }, },
  • src/api.ts:86-86 (registration)
    Registration of the createReport handler function to the CREATE_REPORT tool method in the central toolMap used by the PaddleAPI class.
    [TOOL_METHODS.CREATE_REPORT]: funcs.createReport,
  • Constant defining the string identifier for the create_report tool method in the TOOL_METHODS object.
    CREATE_REPORT: "create_report",

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/PaddleHQ/paddle-mcp-server'

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