Skip to main content
Glama
PaddleHQ
by PaddleHQ

create_price

Create a new price in Paddle Billing to define how to charge for products, including setting base prices, country-specific overrides, billing cycles, and tax calculations.

Instructions

This tool will create a new price in Paddle.

Prices describe how to charge for products. Always include a productId in the request to relate the price to a product.

If the quantity object is omitted, Paddle automatically sets a minimum of 1 and a maximum of 100. This means the most units that a customer can buy is 100. Set a quantity to offer a different amount.

When selecting type, choose the one that best describes the use case:

  • custom: Non-catalog item. Typically created for a specific transaction or subscription. Not returned when listing or shown in the Paddle dashboard.

  • standard: Standard item. Can be considered part of the catalog and reused across transactions and subscriptions easily.

When selecting taxMode, choose the one that best describes how the tax should be calculated for the price:

  • account_setting: Price uses the setting from the account. Default.

  • external: Price is exclusive of tax. Common in European countries.

  • internal: Price is inclusive of tax. Common in countries like the United States and Canada.

When using unitPriceOverrides:

  • Group countries based on purchasing power parity (PPP), not just currency zones

  • Create separate overrides for countries with different economic conditions even if they share the same currency (e.g., Greece and Ireland should have different price points)

  • Adjust prices relative to local economic conditions - higher in wealthy markets, lower in developing economies

  • For optimal conversion rates, set prices using local market research and willingness-to-pay data

  • Use local currencies where preferred by the customer

Example unitPriceOverrides structure: [ { "countryCodes": ["GB"], "unitPrice": { "amount": "8500", "currencyCode": "GBP" } }, { "countryCodes": ["IE"], "unitPrice": { "amount": "9500", "currencyCode": "EUR" } }, { "countryCodes": ["GR"], "unitPrice": { "amount": "6500", "currencyCode": "EUR" } }, { "countryCodes": ["IN"], "unitPrice": { "amount": "30000", "currencyCode": "INR" } }, { "countryCodes": ["CN"], "unitPrice": { "amount": "20000", "currencyCode": "CNY" } } ]

Ensure you have all the information needed before making the call. Don't fabricate, imagine, or infer details and parameter values unless explicitly asked to. If anything is ambiguous, unknown, or unclear, ask the user for clarification or details before you proceed.

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
descriptionYesInternal description for this price, not shown to customers.
typeNoType of item. Standard items are considered part of the listed catalog and are shown in the Paddle dashboard.
nameNoName of this price, shown to customers at checkout and on invoices. Typically describes how often the related product bills.
productIdYesPaddle ID for the product that this price is for, prefixed with `pro_`.
billingCycleNoHow often this price should be charged. `null` if price is non-recurring (one-time). If omitted, defaults to `null`.
trialPeriodNoTrial period for the product related to this price. The billing cycle begins once the trial period is over. `null` for no trial period. Requires `billingCycle`. If omitted, defaults to `null`.
taxModeNoHow tax is calculated for this price.
unitPriceYesBase price. This price applies to all customers, except for customers located in countries where `unitPriceOverrides` are set.
unitPriceOverridesNoList of unit price overrides. Use to override the base price with a custom price and currency for a country or group of countries.
quantityNoLimits on how many times the related product can be purchased at this price. Useful for discount campaigns. If omitted, defaults to 1-100.
customDataNoAny structured custom key-value data needed outside of Paddle's standard fields. Occasionally used by third-parties.

Implementation Reference

  • The handler function that implements the core logic of the 'create_price' tool by invoking the Paddle SDK's prices.create method with the provided parameters.
    export const createPrice = async (paddle: Paddle, params: z.infer<typeof Parameters.createPriceParameters>) => { try { const price = await paddle.prices.create(params); return price; } catch (error) { return error; } };
  • src/tools.ts:82-93 (registration)
    Tool specification registration in the tools array, defining method name, description, schema (parameters), and required actions for the create_price tool.
    { method: "create_price", name: "Create a price", description: prompts.createPricePrompt, parameters: params.createPriceParameters, actions: { prices: { write: true, create: true, }, }, },
  • src/api.ts:15-15 (registration)
    Maps the CREATE_PRICE constant to the createPrice handler function in the toolMap used by PaddleAPI.run.
    [TOOL_METHODS.CREATE_PRICE]: funcs.createPrice,
  • Constant definition for the 'create_price' tool method string.
    CREATE_PRICE: "create_price",
  • src/toolkit.ts:69-85 (registration)
    Dynamic MCP tool registration in PaddleMCPServer, registering each tool (including create_price) with the MCP server using the method name, description, parameters schema, and handler that delegates to PaddleAPI.
    this.tool( tool.method, tool.description, tool.parameters.shape, annotations, async (arg: unknown, _extra: unknown) => { const result = await this._paddle.run(tool.method, arg); return { content: [ { type: "text" as const, text: String(result), }, ], }; }, );

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