Connector guide11-minute read57 MCP tools7 languages

Paddle Billing to MCP: Subscriptions, Transactions, Invoices and MRR in any AI Agent

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions with previews, pause and resume, transactions and PDF invoices, refunds and credits, CSV reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox; cancelling and one-time charges install switched off.

HCBy HelpCode teamUpdated 11 min read Open-source on GitHub

No credit card · 7-day trial · Self-host alternative available

Paddle Billing

Paddle Billing

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions (update, pause, resume, cancel, previews), transactions and PDF invoices, refunds and credits, reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox.

tools

57

Region

INTL

Category

Payments

Authentication

Bearer Token

Required env vars

PADDLE_API_KEYPADDLE_API_URL
Install in one click on Cloud

7-day free trial · No credit card

  • 7-day free trial
    No credit card required
  • GDPR & SOC 2 ready
    EU data residency, audit logs
  • Open-source on GitHub
    Open source · AGPL-3.0
  • Works with ChatGPT, Claude, Gemini
    Any MCP-compatible client

Skip the install. Get this working in under 2 minutes.

Start a free trial on cloud.anythingmcp.com, add the Paddle Billing in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.

Start free trial

Summary

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions with previews, pause and resume, transactions and PDF invoices, refunds and credits, CSV reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox; cancelling and one-time charges install switched off.

Try asking

Example prompts for Paddle Billing

Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.

Paddle Billing · live via MCP
Share
Opus 4.7

Claude is AI and can make mistakes. Please double-check responses.

💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Paddle Billing, paste your credentials, mint an MCP API key and you're done. No Docker, no git clone, no local server.

Paddle Billing

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions with previews, pause and resume, transactions and PDF invoices, refunds and credits, CSV reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox; cancelling and one-time charges install switched off.

Setup

Setting up takes about 2 minutes. You need a Paddle Billing account, live or sandbox, and the right to create API keys in it.

  1. In Paddle open Developer tools, Authentication, API keys and create a key.
  2. Give the key the permissions the tools need: read for products, prices, discounts, customers, addresses, businesses, subscriptions, transactions, adjustments, reports, notifications and events, and write only for the entities the AI should change. A call on an entity the key has no permission for answers 403.
  3. Paste the key into PADDLE_API_KEY, without quotes or a Bearer prefix. Live keys start with pdl_live_apikey_, sandbox keys with pdl_sdbx_apikey_.
  4. Set PADDLE_API_URL to https://api.paddle.com for the live account or https://sandbox-api.paddle.com for a sandbox account, without a trailing slash. A key only works on the host of its own environment.
  5. Install the connector and run paddle_list_event_types: it needs no ids and confirms the key.

The connector sends the key as a bearer token and pins API version 1 with the Paddle-Version header. It covers Paddle Billing only, not Paddle Classic.

What it reads: the catalog, that is products with their prices, prices with billing cycle, trial period, country overrides and quantity limits, and discounts with code, type, usage limit, times used and expiry; customers (search by email or text) with their addresses, businesses (company name, company number, VAT number, invoice contacts) and credit balances per currency; subscriptions with status, items, billing period, next billing date and any scheduled pause, cancellation or resume, optionally with a preview of the next charge; transactions (checkouts, renewals, invoices) with totals, tax breakdown, payments with error codes and invoice number, filtered by customer, subscription, status, invoice number or billed or created date; adjustments (refunds, credits, chargebacks) with their approval status; earlier reports; daily net revenue, MRR and active subscribers as shown on the Paddle dashboard; events from the last 90 days; notification destinations, the webhook and email notifications sent and every delivery attempt with the HTTP status and body your endpoint returned.

What it writes: creates and updates products, prices, discounts, customers, addresses and businesses (archive them with status: archived; nothing is deleted in Paddle); updates subscriptions (plan or quantity changes with a proration_billing_mode, discount, billing date, address, collection mode), pauses and resumes them and activates a trialing subscription, which collects the first payment at once; creates and updates transactions, either a checkout for the customer to pay (its checkout.url) or an invoice with collection_mode: manual and status: billed; refunds or credits a transaction with paddle_create_adjustment (refunds start as pending_approval until Paddle has reviewed them); creates customer portal links, requests CSV reports and replays notifications. A scheduled pause or cancellation is removed with paddle_update_subscription and scheduled_change: null.

Preview first: paddle_preview_subscription_update, paddle_preview_transaction and paddle_preview_prices calculate charges, tax and totals without saving anything. Before a plan change the AI runs the preview, shows you the immediate charge and waits for your yes. On the live host, billed transactions, subscription updates, activations and refunds move real money.

Switched off at install: paddle_cancel_subscription (an immediate cancellation is final) and paddle_create_subscription_charge (bills a one-time charge on the saved payment method). A workspace admin turns them on deliberately.

Data formats: every answer has data and meta.request_id. Ids carry a prefix: pro_ product, pri_ price, dsc_ discount, ctm_ customer, add_ address, biz_ business, sub_ subscription, txn_ transaction, adj_ adjustment, rep_ report, ntf_ notification. Amounts are strings in the lowest currency unit: "1999" in USD is 19.99, and JPY has no decimals. The totals of a transaction are in details.totals (subtotal, discount, tax, total, grand_total), per item in details.line_items. Dates are RFC 3339 in UTC. Filters with several values are comma-separated.

Files and reports: paddle_get_transaction_invoice and paddle_get_adjustment_credit_note return a temporary PDF link that expires after about an hour. Reports run in the background: paddle_create_report, then paddle_get_report until the status is ready, then paddle_get_report_csv for a CSV link that expires after a few minutes. Report types are transactions, transaction line items, adjustments, adjustment line items, discounts, products and prices, balance, payout reconciliation, checkouts and subscriptions.

Paging: list tools return up to per_page items (50 by default, 200 at most). While meta.pagination.has_more is true, the AI takes the after value from the meta.pagination.next URL and passes it as after.

Limits: Paddle allows 240 requests per minute per IP address and answers 429 above that.

Common errors: errors come as error.type, error.code and error.detail, and error.errors lists the invalid fields. 401 means a wrong key, or a key of the other environment (a sandbox key on the live host or the reverse). 403 forbidden means the key lacks the permission for that entity: edit the key in Paddle and add it. 404 entity_not_found means a wrong id or an id from the other environment.

The connector deletes nothing, does not create or change notification destinations and does not work with Paddle Classic accounts.

Prerequisites: PADDLE_API_KEY, PADDLE_API_URL

Install the connector locally

curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d

Open http://localhost:3000/connectors/store, pick Paddle Billing and paste in the env vars listed under Prerequisites.

Available tools

ToolWhat it does
paddle_list_productsList products in the catalog with name, tax category, type, status and custom data
paddle_get_productGet one product by id (pro_...) with its name, description, tax category, image URL, status and custom data; include prices to list its…
paddle_create_productCreate a catalog product (what you sell)
paddle_update_productUpdate a product: name, description, tax category, image, custom data, or archive it with status archived
paddle_list_pricesList prices with their product id, unit price (amount in the lowest currency unit), billing cycle, trial period, quantity limits and status
paddle_get_priceGet one price by id (pri_...): product, description, unit price and overrides per country, billing cycle, trial period, tax mode and…
paddle_create_priceCreate a price for a product: amount and currency, optional billing cycle (subscription) and trial, country overrides and quantity limits
paddle_update_priceUpdate a price: description, name, amount, billing cycle, trial, overrides, quantity limits, custom data, or archive it
paddle_list_discountsList discounts with code, type (flat, flat_per_seat, percentage), amount, recurring settings, usage limit, times used, expiry and status
paddle_get_discountGet one discount by id (dsc_...): code, type, amount, currency, whether it recurs and for how many intervals, usage limit, times used…
paddle_create_discountCreate a discount: percentage or flat amount, optional checkout code, recurring behaviour, usage limit, product or price restrictions and…
paddle_update_discountUpdate a discount: amount, code, recurring settings, limits, restrictions, expiry, custom data, or archive it with status archived
paddle_list_customersList customers with name, email, locale, marketing consent and status
paddle_get_customerGet one customer by id (ctm_...): name, email, locale, marketing consent, status, custom data and timestamps
paddle_create_customerCreate a customer by email (unique per account) with optional name, locale and custom data
paddle_update_customerUpdate a customer: email, name, locale, custom data, or archive it with status archived
paddle_list_customer_addressesList the addresses saved for a customer (add_... ids): country, postal code, region, city and lines
paddle_create_customer_addressAdd an address to a customer
paddle_update_customer_addressUpdate a customer address: lines, city, postal code, region, country, custom data, or archive it
paddle_list_customer_businessesList the businesses saved for a customer (biz_... ids): company name, company number, tax identifier (VAT number) and contacts, used for…
paddle_create_customer_businessAdd a business to a customer for B2B billing: name, company number, VAT or tax id and invoice contacts
paddle_update_customer_businessUpdate a customer business: name, company number, tax identifier, contacts, custom data, or archive it
paddle_list_customer_credit_balancesCredit balances of a customer per currency: available, reserved and used credit created by adjustments (credits) on their subscriptions
paddle_create_customer_portal_sessionCreate authenticated links to the Paddle customer portal for a customer, where they can update payment methods, see invoices and cancel
paddle_list_subscriptionsList subscriptions with status, customer, address, items (price and quantity), currency, billing period, next billing date and any…
paddle_get_subscriptionGet one subscription by id (sub_...): status, customer, items, discount, billing cycle and current period, next billing date, scheduled…
paddle_preview_subscription_updatePreview what an update to a subscription would charge or credit, without changing it: immediate transaction, next transaction and the…
paddle_update_subscriptionUpdate a subscription: change items or quantities (upgrade, downgrade, add-ons) with a proration mode, apply a discount, change billing…
paddle_pause_subscriptionPause a subscription at the end of the billing period (default) or immediately, optionally with a date to resume automatically
paddle_resume_subscriptionResume a paused subscription now (effective_from immediately) or at a given date-time, or change the date of a scheduled resume
paddle_cancel_subscriptionCancel a subscription at the end of the billing period (default, can be undone by removing the scheduled change) or immediately (final)
paddle_activate_subscriptionEnd the trial of a trialing subscription now and start billing it: the first payment is collected immediately
paddle_create_subscription_chargeBill a one-time charge on a subscription (e.g. extra seats or a setup fee), now or with the next renewal
paddle_list_transactionsList transactions (checkouts, renewals, invoices) with status, customer, subscription, items, totals in the lowest currency unit, invoice…
paddle_get_transactionGet one transaction by id (txn_...): status, items, totals and tax breakdown (details.totals, amounts in the lowest currency unit)…
paddle_create_transactionCreate a transaction: a draft or ready checkout for a customer to pay (returns checkout.url), or an invoice for manual collection (status…
paddle_update_transactionUpdate a draft or ready transaction: items, customer, address, business, currency, discount, billing details, or set status billed or…
paddle_preview_transactionPreview a transaction without creating it: line items, tax, discounts and totals for given prices, customer or location
paddle_get_transaction_invoiceGet a temporary link to the PDF invoice of a billed or completed transaction
paddle_preview_pricesLocalized price preview for a list of prices: subtotal, tax, discount and total per item in the customer's currency and country, as on a…
paddle_list_adjustmentsList adjustments (refunds, credits, chargebacks) with action, status (pending_approval, approved, rejected, reversed), transaction…
paddle_create_adjustmentRefund or credit a billed or completed transaction, fully or for some items
paddle_get_adjustment_credit_noteGet a temporary link to the PDF credit note of an approved adjustment
paddle_list_reportsList reports you requested with type, status (pending, ready, failed, expired), filters, row count and expiry
paddle_create_reportRequest a CSV report: transactions, transaction_line_items, adjustments, adjustment_line_items, discounts, products_prices, balance…
paddle_get_reportGet one report by id (rep_...): type, status, filters, number of rows and when it expires
paddle_get_report_csvGet a temporary download link for a ready report as CSV
paddle_get_revenue_metricsNet revenue per day for a date range in the account balance currency, as shown in the Paddle dashboard (amounts in the lowest currency unit)
paddle_get_mrr_metricsMonthly recurring revenue per day for a date range, as shown in the Paddle dashboard (amounts in the lowest currency unit)
paddle_get_active_subscribers_metricsNumber of active subscribers per day for a date range, as shown in the Paddle dashboard metrics
paddle_list_event_typesList the event types Paddle can send (transaction.completed, subscription.canceled, ...) with a description and the API version of each
paddle_list_eventsList events (what happened in the account): event_type, occurred_at and the full entity in data
paddle_list_notification_settingsList notification destinations (webhook URLs and emails) with their subscribed event types, active flag and API version
paddle_list_notificationsList webhook and email notifications sent for events, with status (delivered, failed, needs_retry, not_attempted), times attempted and the…
paddle_get_notificationGet one notification by id (ntf_...): status, event payload, destination, attempts and last error
paddle_list_notification_logsList the delivery attempts of a notification with the HTTP status and response body your endpoint returned, to debug failing webhooks
paddle_replay_notificationSend a notification again to its destination, e.g. after fixing a failing webhook endpoint

Example prompts

  • "What were our net revenue and MRR per day last month, and how many active subscribers did we have at the end of it?"
  • "Find the customer [email protected] and show her subscriptions with status, items and next billing date."
  • "Preview moving this subscription to the annual price with prorated billing and show me the immediate charge before changing anything."
  • "List this week's past_due transactions with customer, amount and the payment error."
  • "Which webhook notifications failed in the last 24 hours, and what did our endpoint answer?"

Next steps

Was this guide helpful?

Your Paddle Billing agent is one click away.

Install the connector, paste the key, prompt your AI client. Free for 7 days, no credit card.

Related guides

Connectors

How to Connect Paddle Billing to ChatGPT via MCP

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions with previews, pause and resume, transactions and PDF invoices, refunds and credits, CSV reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox; cancelling and one-time charges install switched off.

Connectors

How to Connect Paddle Billing to Claude via MCP

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions with previews, pause and resume, transactions and PDF invoices, refunds and credits, CSV reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox; cancelling and one-time charges install switched off.

Connectors

How to Connect Paddle Billing to Microsoft Copilot via MCP

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions with previews, pause and resume, transactions and PDF invoices, refunds and credits, CSV reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox; cancelling and one-time charges install switched off.

Connectors

How to Connect Paddle Billing to Cursor via MCP

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions with previews, pause and resume, transactions and PDF invoices, refunds and credits, CSV reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox; cancelling and one-time charges install switched off.

Connectors

How to Connect Paddle Billing to Gemini via MCP

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions with previews, pause and resume, transactions and PDF invoices, refunds and credits, CSV reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox; cancelling and one-time charges install switched off.

Connectors

How to Connect Paddle Billing to Meta Muse via MCP

Paddle Billing, the merchant of record for software sales: products, prices and discounts, customers with addresses and businesses, subscriptions with previews, pause and resume, transactions and PDF invoices, refunds and credits, CSV reports, revenue and MRR metrics, events and webhook notifications. Live or sandbox; cancelling and one-time charges install switched off.