The Paddle Node.js SDK integrates Paddle Billing with server-side JavaScript and TypeScript apps. It ships with TypeScript definitions, iterator-based pagination, and helpers for webhook signature verification.
Latest: v3.8.0 · 2026-04-21View source code and report issues on GitHub.
View and install on npm.
See recent releases and changes.
To open checkouts, pricing pages, and integrate Retain on the client-side, use Paddle.js or the Paddle.js wrapper.
Requirements
Node.js 18 or later.
Install
pnpm add @paddle/paddle-node-sdkyarn add @paddle/paddle-node-sdknpm install @paddle/paddle-node-sdkAuthenticate
Create an API key in Paddle > Developer tools > Authentication, then pass it when you instantiate the client.
API keys are environment-specific. Use a sandbox key for sandbox, a live key for production.
import { Paddle, Environment } from '@paddle/paddle-node-sdk';
const paddle = new Paddle(process.env.PADDLE_API_KEY!, { environment: Environment.sandbox,});Omit the environment option, or set it to Environment.production, to use the live API.
Make your first request
List the first page of products in your catalog:
import { Paddle, Environment } from '@paddle/paddle-node-sdk';
const paddle = new Paddle(process.env.PADDLE_API_KEY!, { environment: Environment.sandbox,});
const products = paddle.products.list();const firstPage = await products.next();
for (const product of firstPage) { console.log(product.id, product.name);}paddle.products.list() returns an iterator. Call next() to fetch the first page, check products.hasMore to see whether more pages are available, or use for await (const product of paddle.products.list()) to iterate every product across all pages.
Naming conventions
The Paddle API uses snake_case. The Node.js SDK uses camelCase to match JavaScript conventions. Field names on requests and responses are camelCase. For example, customData rather than custom_data.
Next steps
- Understand shared patterns for pagination, idempotency, retries, and error handling across SDKs.
- Browse the API reference for every resource and operation the SDK exposes.
- Work against sandbox while you build, then follow the go-live checklist to switch environments.