New tools across 13 categories: - Email/Newsletter: beehiiv, klaviyo, postmark, brevo, activecampaign - Data Enrichment: clearbit, apollo - CRO/Testing: hotjar, optimizely - Analytics: plausible - Scheduling: calendly, savvycal - Forms: typeform - Messaging: intercom - Social: buffer - Video: wistia - Payments: paddle - Affiliate: partnerstack - Reviews: trustpilot, g2 - Push: onesignal - Webinar: demio, livestorm Each tool includes a zero-dependency CLI and integration guide. Registry and CLI README updated with all new entries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
212 lines
4.3 KiB
Markdown
212 lines
4.3 KiB
Markdown
# 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](../clis/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=true` env var for sandbox.
|
|
|
|
## Common Agent Operations
|
|
|
|
### List products
|
|
|
|
```bash
|
|
GET https://api.paddle.com/products
|
|
```
|
|
|
|
### Create 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/customers
|
|
```
|
|
|
|
### Create 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=active
|
|
```
|
|
|
|
### Get 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}/pause
|
|
```
|
|
|
|
### List transactions
|
|
|
|
```bash
|
|
GET https://api.paddle.com/transactions
|
|
```
|
|
|
|
### Create 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/events
|
|
```
|
|
|
|
### List event types
|
|
|
|
```bash
|
|
GET https://api.paddle.com/event-types
|
|
```
|
|
|
|
## Key Metrics
|
|
|
|
### Transaction Metrics
|
|
- `totals.total` - Total amount charged
|
|
- `totals.tax` - Tax amount
|
|
- `totals.subtotal` - Amount before tax
|
|
- `totals.discount` - Discount applied
|
|
- `currency_code` - Transaction currency
|
|
|
|
### Subscription Metrics
|
|
- `status` - active, canceled, paused, past_due, trialing
|
|
- `current_billing_period` - Current period start/end
|
|
- `next_billed_at` - Next billing date
|
|
- `scheduled_change` - Pending changes (cancellation, plan change)
|
|
|
|
### Product/Price Metrics
|
|
- `unit_price.amount` - Price in lowest denomination
|
|
- `billing_cycle` - Interval and frequency
|
|
- `trial_period` - Trial duration if set
|
|
|
|
## Parameters
|
|
|
|
### List Filtering
|
|
- `status` - Filter by status (e.g., active, archived)
|
|
- `after` - Cursor for pagination
|
|
- `per_page` - Results per page (default: 50)
|
|
- `order_by` - Sort field and direction
|
|
|
|
### Subscription Cancel Options
|
|
- `effective_from` - `immediately` or `next_billing_period`
|
|
|
|
### Price Billing Cycle
|
|
- `interval` - `day`, `week`, `month`, `year`
|
|
- `frequency` - Number of intervals between billings
|
|
|
|
### Tax Categories
|
|
- `standard` - Standard tax rate
|
|
- `digital-goods` - Digital goods tax rate
|
|
- `saas` - 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
|