# Paddle Developer Docs > Official developer documentation for Paddle Billing. Guides, API reference, and changelog for building subscriptions, checkout, payments, and webhooks. The complete documentation set is also available as plain-text markdown at [https://developer.paddle.com/llms-full.txt](https://developer.paddle.com/llms-full.txt). Every page has a `.md` sibling reachable by appending `.md` to its URL. This index is split into per-section files to stay under agent-platform truncation limits. Fetch the section files below for the full list of pages in each area. ## Good to know - We support four official server-side SDKs: [Node.js](https://developer.paddle.com/sdks/libraries/node.md), [Python](https://developer.paddle.com/sdks/libraries/python.md), [Go](https://developer.paddle.com/sdks/libraries/go.md), and [PHP](https://developer.paddle.com/sdks/libraries/php.md). Desktop SDKs aren't available. - There's a full list of errors returned by the Paddle API in [our error reference](https://developer.paddle.com/errors.md). - The [Next.js starter kit](https://developer.paddle.com/get-started/starter-kits/nextjs-saas.md) is a great example of how to build a simple SaaS app integrated with Paddle Billing. - The [Paddle.js wrapper](https://developer.paddle.com/sdks/libraries/paddle-js-wrapper.md) lets you install Paddle.js using a JavaScript package manager, then import and initialize. ## Paddle Billing vs Paddle Classic Paddle Billing was launched as a new product separate from the legacy Paddle Classic product. Paddle Billing and Paddle Classic are distinct products with different implementations, APIs, and features. Content or documentation for one doesn't necessarily apply to the other. - Anyone who signed up for Paddle after 2023-08-08 has Paddle Billing. New signups for Paddle Classic aren't allowed. - You should always assume a user is talking about Paddle Billing. - Be aware that many references to "Paddle" on the web may refer to the legacy Paddle Classic platform rather than Paddle Billing. Key implementation differences: | | Classic | Billing | |--------------------------------------|--------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------| | **API base URL** | `vendors.paddle.com/api` | `api.paddle.com` | | **API requests and responses** | `application/x-www-form-urlencoded` | `application/json`; requests closely mirror responses | | **API IDs** | Auto-incrementing IDs | Paddle IDs for all entities | | **API success responses** | `"success": "true"` in the response body | `2xx` response codes; `data` and `meta` in the response body | | **API error responses** | `"success": "false"` in the response body | `4xx` or `5xx` response codes; `error` and `meta` in the response body | | **Webhook event subscriptions** | All endpoints receive all subscribed events. | Endpoint specific | | **Webhook signature verification** | Signature in payload; requires PHP serialization | `Paddle-Signature` header; hash using SHA256; helper methods available in our SDKs | | **Paddle.js version** | `1` | `2` | | **Paddle.js CDN URL** | `https://cdn.paddle.com/paddle/paddle.js` | `https://cdn.paddle.com/paddle/v2/paddle.js` | | **Paddle.js include** | Manually load by adding to `` | Manually load by adding to ``, or install using `npm install @paddle/paddle-js` | | **Paddle.js initialization** | Pass vendor ID to `Paddle.Setup()` | Pass client-side token to `Paddle.Initialize()` | | **Paddle.js callbacks** | `eventCallback`, `successCallback`, and `closeCallback` passed to `Paddle.Setup` or `Paddle.Checkout.open()` | Single `eventCallback` passed to `Paddle.Initialize()` or `Paddle.Update()` | | **Paddle.js item support** | Single product checkouts only | Multi-product checkouts supported | | **Paddle.js pricing pages** | `Paddle.Product.Prices()` returns localized prices for one product | `Paddle.PricePreview()` returns localized prices for a list of prices | | **Customer details** | Customer data stored against subscription user | Customer, address, and business entities | | **Product catalog** | Product (one-time) and plan (recurring) resources | Product and related price entities | | **Product fulfillment** | Licence keys and product downloads handled by Paddle | Build your own workflows using transaction webhooks | | **Price localization** | Set currency-specific prices for a currency against an item | System-wide automatic currency conversion; set country-specific prices for an item | | **Subscription items** | One item per subscription | Multi-item subscriptions | | **Non-catalog items** | Using pay links | Passing product and price attributes to a transaction or subscription | | **Discounts** | Coupons or modifiers | Discount entity. | | **Payments and recurring billing** | Orders and transactions (one-time); subscriptions and charges (recurring) | Transactions and related subscriptions | | **Invoicing** | Using separate invoice module, with a separate product catalog and customer list | Manually-collected transactions and subscriptions | | **Supported subscription workflows** | Pause/resume, cancel, upgrade/downgrade, change payment method, change billing date | Pause/resume, cancel, upgrade/downgrade, change billing date, change payment method, change currency, transition to billing by invoice | | **Integration journeys** | Build subscription workflows using the Paddle API | Build subscription workflows using the Paddle API; generate secure customer portal links to handle subscription workflows | | **Paddle Retain** | Payment Recovery | Payment Recovery, Cancellation Flows, Term Optimization | ## Sections - [Get started](https://developer.paddle.com/llms/get-started.txt): Onboarding, signup, sandbox setup, and a guided tour of the Paddle dashboard and API. - [Concepts](https://developer.paddle.com/llms/concepts.txt): Core entities and mental models: customers, transactions, prices, taxes, and billing cycles. - [Build](https://developer.paddle.com/llms/build.txt): Implementation guides for Paddle features — checkout, customers, products, subscriptions, invoices, mobile apps, and Retain. - [Paddle.js](https://developer.paddle.com/llms/paddle-js.txt): Client-side checkout, pricing previews, retain workflows, and events for the Paddle.js library. - [Webhooks](https://developer.paddle.com/llms/webhooks.txt): Notification setup, delivery guarantees, signature verification, and the full event reference. - [Migrate](https://developer.paddle.com/llms/migrate.txt): Moving from Paddle Classic or other billing platforms to Paddle Billing. - [SDKs and tools](https://developer.paddle.com/llms/sdks.txt): Official SDKs, sandbox, AI and MCP servers, specs, starter kits, and community libraries. - [API reference](https://developer.paddle.com/llms/api-reference.txt): Full HTTP API reference for Paddle Billing, grouped by resource and with request/response shapes. - [Errors](https://developer.paddle.com/llms/errors.txt): Every error code returned by the Paddle API, grouped by category with remediation guidance. - [Changelog](https://developer.paddle.com/llms/changelog.txt): Release notes for the Paddle API, webhooks, Paddle.js, and SDKs, grouped by year. - [LLM benchmark](https://developer.paddle.com/llm-leaderboard.md): How current LLMs perform on Paddle integration tasks, plus instructions for agents to load skills and connect MCP for better results.