tools/integrations/paddle.md
SaaS billing and payments platform with built-in tax compliance, acting as merchant of record for global sales.
| Integration | Available | Notes |
|---|---|---|
| API | ✓ | REST API for products, prices, subscriptions, transactions |
| MCP | - | Not available |
| CLI | ✓ | paddle.js |
| SDK | ✓ | Node.js, Python, PHP, Go |
Authorization: Bearer {api_key}https://api.paddle.comhttps://sandbox-api.paddle.comPADDLE_SANDBOX=true env var for sandbox.GET https://api.paddle.com/products
POST https://api.paddle.com/products
{
"name": "Pro Plan",
"tax_category": "standard",
"description": "Professional tier subscription"
}
POST https://api.paddle.com/prices
{
"product_id": "pro_01abc...",
"description": "Monthly Pro",
"unit_price": {
"amount": "2999",
"currency_code": "USD"
},
"billing_cycle": {
"interval": "month",
"frequency": 1
}
}
GET https://api.paddle.com/customers
POST https://api.paddle.com/customers
{
"email": "[email protected]",
"name": "Jane Smith"
}
GET https://api.paddle.com/subscriptions?status=active
GET https://api.paddle.com/subscriptions/{subscription_id}
POST https://api.paddle.com/subscriptions/{subscription_id}/cancel
{
"effective_from": "next_billing_period"
}
POST https://api.paddle.com/subscriptions/{subscription_id}/pause
GET https://api.paddle.com/transactions
POST https://api.paddle.com/discounts
{
"amount": "20",
"type": "percentage",
"description": "20% off first month",
"code": "WELCOME20"
}
POST https://api.paddle.com/adjustments
{
"transaction_id": "txn_01abc...",
"action": "refund",
"reason": "Customer requested refund",
"items": [{"item_id": "txnitm_01abc...", "type": "full"}]
}
GET https://api.paddle.com/events
GET https://api.paddle.com/event-types
totals.total - Total amount chargedtotals.tax - Tax amounttotals.subtotal - Amount before taxtotals.discount - Discount appliedcurrency_code - Transaction currencystatus - active, canceled, paused, past_due, trialingcurrent_billing_period - Current period start/endnext_billed_at - Next billing datescheduled_change - Pending changes (cancellation, plan change)unit_price.amount - Price in lowest denominationbilling_cycle - Interval and frequencytrial_period - Trial duration if setstatus - Filter by status (e.g., active, archived)after - Cursor for paginationper_page - Results per page (default: 50)order_by - Sort field and directioneffective_from - immediately or next_billing_periodinterval - day, week, month, yearfrequency - Number of intervals between billingsstandard - Standard tax ratedigital-goods - Digital goods tax ratesaas - SaaS-specific tax rate