Paddle
SaaS billing and payments platform with built-in tax compliance, acting as merchant of record for global sales.
Capabilities
| Integration | Available | Notes |
|---|---|---|
| API | ✓ | REST API for products, prices, subscriptions, transactions |
| MCP | - | Not available |
| CLI | ✓ | paddle.js |
| SDK | ✓ | Node.js, Python, PHP, Go |
Authentication
- Type: Bearer Token
- Header:
Authorization: Bearer {api_key} - Get key: Paddle dashboard > Developer Tools > Authentication
- Production URL:
https://api.paddle.com - Sandbox URL:
https://sandbox-api.paddle.com - Note: Version specified via header, not path. Set
PADDLE_SANDBOX=trueenv var for sandbox.
Common Agent Operations
List products
bash
GET https://api.paddle.com/productsCreate a product
bash
POST https://api.paddle.com/products
{
"name": "Pro Plan",
"tax_category": "standard",
"description": "Professional tier subscription"
}Create a price for a product
bash
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
}
}List customers
bash
GET https://api.paddle.com/customersCreate a customer
bash
POST https://api.paddle.com/customers
{
"email": "customer@example.com",
"name": "Jane Smith"
}List subscriptions
bash
GET https://api.paddle.com/subscriptions?status=activeGet subscription details
bash
GET https://api.paddle.com/subscriptions/{subscription_id}Cancel a subscription
bash
POST https://api.paddle.com/subscriptions/{subscription_id}/cancel
{
"effective_from": "next_billing_period"
}Pause a subscription
bash
POST https://api.paddle.com/subscriptions/{subscription_id}/pauseList transactions
bash
GET https://api.paddle.com/transactionsCreate a discount
bash
POST https://api.paddle.com/discounts
{
"amount": "20",
"type": "percentage",
"description": "20% off first month",
"code": "WELCOME20"
}Create a refund adjustment
bash
POST https://api.paddle.com/adjustments
{
"transaction_id": "txn_01abc...",
"action": "refund",
"reason": "Customer requested refund",
"items": [{"item_id": "txnitm_01abc...", "type": "full"}]
}List events
bash
GET https://api.paddle.com/eventsList event types
bash
GET https://api.paddle.com/event-typesKey Metrics
Transaction Metrics
totals.total- Total amount chargedtotals.tax- Tax amounttotals.subtotal- Amount before taxtotals.discount- Discount appliedcurrency_code- Transaction currency
Subscription Metrics
status- active, canceled, paused, past_due, trialingcurrent_billing_period- Current period start/endnext_billed_at- Next billing datescheduled_change- Pending changes (cancellation, plan change)
Product/Price Metrics
unit_price.amount- Price in lowest denominationbilling_cycle- Interval and frequencytrial_period- Trial duration if set
Parameters
List Filtering
status- Filter by status (e.g., active, archived)after- Cursor for paginationper_page- Results per page (default: 50)order_by- Sort field and direction
Subscription Cancel Options
effective_from-immediatelyornext_billing_period
Price Billing Cycle
interval-day,week,month,yearfrequency- Number of intervals between billings
Tax Categories
standard- Standard tax ratedigital-goods- Digital goods tax ratesaas- SaaS-specific tax rate
When to Use
- Managing SaaS subscription billing with tax compliance
- Creating products and pricing tiers
- Processing refunds and adjustments
- Handling subscription lifecycle (create, pause, cancel, resume)
- Global tax handling as merchant of record
- Discount and coupon management for promotions
Rate Limits
- 100 requests per minute
- Applies across all endpoints
- HTTP 429 returned when exceeded
Relevant Skills
- pricing-page
- saas-metrics
- churn-reduction
- launch-sequence
- monetization-strategy