Claude Code is an AI-powered coding assistant that helps you build features, fix bugs, and automate development tasks. It works as a CLI, IDE extension, or as part of the Claude Desktop app.
This guide runs through setting up Claude Code for the best possible experience when building with Paddle.
Before you begin
You'll need:
- A Paddle sandbox account
- A sandbox API key with any permissions you plan to use.
- Claude Code installed.
- A project, with a Paddle SDK installed.
Install the Paddle plugin
The Paddle plugin bundles Paddle agent skills with the docs MCP server. Agent skills add drop-in instructions for Paddle-specific workflows, while the docs MCP gives Claude real-time access to the latest Paddle docs for troubleshooting and planning.
Inside Claude Code, run:
/plugin marketplace add PaddleHQ/paddle-agent-skills/plugin install paddle@paddle-agent-skillsClaude Code automatically picks the relevant skill as you work. For example, paddle-webhooks when you ask it to set up webhook handling, paddle-checkout-web when adding checkout to a page, and so on.
To update later, run /plugin marketplace update paddle-agent-skills.
Install the Paddle MCP server
The Paddle MCP server lets Claude Code create and update entities in your Paddle account on your behalf.
Run this command from your terminal. Replace YOUR_API_KEY with a sandbox API key.
claude mcp add paddle -- npx -y @paddle/paddle-mcp \ --api-key=YOUR_API_KEY \ --environment=sandbox \ --tools=non-destructiveUse a sandbox API key while you're getting started. The --tools=non-destructive scope lets the agent create and read, but not update or archive. Widen to all only when you trust the workflow.
For manual setup, see the Paddle MCP server reference page.
Add Paddle conventions to your CLAUDE.md
Claude Code reads project conventions from CLAUDE.md at the project root. A focused Paddle section tells it which SDK to use, how to handle environments, and how to verify webhooks.
Create a CLAUDE.md file at the project root, or add it to your existing CLAUDE.md file.
## Paddle integration
When writing or modifying code that integrates with Paddle:
- Always check current Paddle documentation via the `paddle-docs` MCP server before suggesting code. The Paddle API and SDKs evolve frequently โ do not rely on training data alone.- Use the official Paddle SDK for the language in use: - Node.js โ `@paddle/paddle-node-sdk` - Python โ `paddle-python-sdk` (imports as `paddle_billing`) - Go โ `github.com/PaddleHQ/paddle-go-sdk/v5` - PHP โ `paddlehq/paddle-php-sdk`- All development uses the sandbox environment. Sandbox API keys contain `_sdbx`; sandbox client-side tokens are prefixed with `test_`.- Always verify webhook signatures before acting on the payload: - Node: `paddle.webhooks.unmarshal()` - Python: `Verifier().verify(request, secret)` - Go: `paddle.NewWebhookVerifier()` with `Middleware` - PHP: `(new Verifier())->verify($request, $secret)`- For destructive account changes (updating prices, archiving products, cancelling subscriptions), ask for explicit confirmation before calling the `paddle` MCP server.- API keys and webhook secrets live in environment variables โ never inline credentials into code.Adjust the SDK list to match the language(s) your project uses. Claude Code will read this every time you start a session.
Prompt your first integration
With the plugin installed, the Paddle MCP server connected, and your CLAUDE.md file in place, ask Claude Code to scaffold a Paddle integration.
Add a Paddle Checkout integration to this Next.js app. Use the paddle-docs MCP server to look up the current Paddle.js syntax. Then use the paddle MCP server to create three products in my sandbox account โ Starter ($10/mo), Pro ($30/mo), Enterprise ($300/mo) โ and generate a /pricing page that opens checkout for each tier. Wire up a /api/webhooks route that verifies the signature and logs transaction.completed events.Claude Code plans first, then uses the docs MCP for current syntax, the Paddle MCP to create the products in sandbox, and writes code that matches your CLAUDE.md conventions.
Best practices
- Mention Paddle and the relevant MCP server explicitly. "Use the paddle-docs MCP server to look up X" beats hoping the agent calls it on its own.
- Use Plan mode first. For complex integrations, enter plan mode to draft a plan before writing code. Approve, then run.
- Be specific in prompts. Concrete pricing, event names, and entity IDs work better than vague descriptions.
- Review changes before applying.
Claude Code shows pending tool calls before executing. Review every tool call, especially anything destructive. - Never commit API keys. Never commit API keys. Add
.cursor/mcp.jsonto.gitignoreif it contains secrets. - Create your own skills.
When you find yourself repeating the same instructions over and over, create a skill to help steer Claude Code. Run/skill-creatorto walk through the process with Claude.