Paddle Integration

Paddle API Operations

Browse all 87 operations available for Paddle workflow automation.

Addresses

4 operations
POST/customers/{customer_id}/addresses

Create a billing address for a customer

Create a new billing address for a customer. Addresses are used for tax calculation, fraud prevention, and compliance. Some countries require a postal code (e.g., ZIP codes in the US, postcodes in the UK). After creating an address, you can use it when creating transactions or subscriptions for that customer.

1 path params
GET/customers/{customer_id}/addresses/{address_id}

Get a billing address for a customer

Retrieve the full details of a customer's billing address including country, region, postal code, and status. Use this to verify address information before creating transactions or to display billing details in your application.

2 path params
GET/customers/{customer_id}/addresses

List addresses for a customer

Retrieve a paginated list of billing addresses for a customer. Addresses store country, region, and postal code information used for tax calculation and compliance. Filter by status to find active or archived addresses.

1 path, 6 query params
PATCH/customers/{customer_id}/addresses/{address_id}

Update a billing address for a customer

Update a customer's billing address. You can change the description, postal code, region, and other details. Use this when a customer moves or needs to correct their billing information. Changes affect future transactions only.

2 path params

Adjustments

3 operations
POST/adjustments

Create a refund or credit adjustment

Process a refund or credit for a transaction

adjustment.write
GET/adjustments/{adjustment_id}/credit-note

Get a PDF credit note for an adjustment

Retrieve a temporary download link for a credit note PDF associated with an adjustment. Credit notes are generated automatically for refunds and credits as an official record. The link expires after one hour, so generate a fresh link each time a download is needed.

1 path, 1 query params
GET/adjustments

List all adjustments

List all refunds and credits

adjustment.read
9 query params

Businesses

4 operations
POST/customers/{customer_id}/businesses

Create a business for a customer

Create a new business entity for a customer with company name, tax identifier, and contact details. Businesses are sub-entities of customers used for B2B transactions where invoices need to include company information and tax IDs.

1 path params
GET/customers/{customer_id}/businesses/{business_id}

Get a business for a customer

Retrieve the full details of a business associated with a customer, including company name, tax identifier, and contact information. Use this to verify business details before creating B2B transactions or generating invoices.

2 path params
GET/customers/{customer_id}/businesses

List businesses for a customer

Retrieve a paginated list of businesses associated with a customer. Businesses hold company name, tax identifier, and contact details used for B2B billing and invoicing. Filter by status to find active or archived business records.

1 path, 6 query params
PATCH/customers/{customer_id}/businesses/{business_id}

Update a business for a customer

Update a business entity's company name, tax identifier, or contact details. Use this when a customer's company information changes, such as a new tax ID or updated company name. Changes apply to future transactions only.

2 path params

Client tokens

4 operations
POST/client-tokens

Create a new client-side token

Create a client-side token to authenticate Paddle.js on your website. Each token is scoped to specific allowed domains for security. You need at least one active token to use Paddle.js checkout on your frontend.

GET/client-tokens/{client_token_id}

Get a client-side token by ID

Retrieve the details of a client-side token including its allowed domains and status. Use this to verify a token's configuration or check if it is still active.

1 path params
GET/client-tokens

List all client-side tokens

Retrieve a paginated list of client-side tokens used to authenticate Paddle.js in your frontend application. Client tokens control which domains can initialize Paddle.js checkout and are scoped to specific origins for security.

4 query params
PATCH/client-tokens/{client_token_id}

Update or revoke a client-side token

Update a client-side token's name or allowed domains, or revoke it by setting its status to revoked. Revoked tokens cannot be reactivated — create a new token instead. Use this to update domain restrictions or decommission tokens for old environments.

1 path params

Customers

7 operations
POST/customers/{customer_id}/portal-sessions

Create a customer portal session

Generate a self-service portal link for a customer

customer_portal_session.write
1 path params
POST/customers

Create a new customer

Create a new customer for billing and subscriptions

customer.write
POST/customers/{customer_id}/auth-token

Generate an authentication token for a customer

Generate a temporary authentication token for a customer that you can pass to Paddle.js at checkout time. This lets customers use their saved payment methods without re-entering card details. Tokens are short-lived and should not be cached — generate a fresh token each time you open a checkout.

1 path params
GET/customers/{customer_id}

Get a customer by ID

Retrieve the full details of a customer including their email, name, locale, marketing consent status, and custom data. Use this to display customer information in your application or verify a customer's profile before creating transactions.

1 path params
GET/customers

List all customers

List all customers with optional filters

customer.read
7 query params
GET/customers/{customer_id}/credit-balances

List credit balances for a customer

Retrieve credit balances for a customer across all currencies. Each balance shows available, reserved, and used totals. Credits are added when adjustments are created as credits rather than refunds, and are automatically applied to future transactions. Use this to display a customer's credit balance or verify available credits before creating a transaction.

1 path, 1 query params
PATCH/customers/{customer_id}

Update an existing customer

Update a customer's name, email, locale, or custom data. Use this to keep customer records current when they update their profile in your application. Changes apply to future billing — existing subscriptions and completed transactions are not affected.

1 path params

Discount groups

4 operations
POST/discount-groups

Create a new discount group

Create a discount group to organize related discounts together. Groups make it easier to manage large numbers of discounts by categorizing them by campaign, purpose, or audience.

GET/discount-groups/{discount_group_id}

Get a discount group by ID

Retrieve the full details of a discount group including its name, description, and associated discounts.

1 path params
GET/discount-groups

List all discount groups

Retrieve a paginated list of discount groups. Discount groups let you organize related discounts together for easier management. Use this to view how your discounts are categorized or build a discount management interface.

4 query params
PATCH/discount-groups/{discount_group_id}

Update an existing discount group

Update a discount group's name, description, or configuration. Use this to rename groups, update descriptions, or reorganize your discount categorization.

1 path params

Discounts

4 operations
POST/discounts

Create a new discount

Create a new discount coupon or percentage-off code

discount.write
GET/discounts/{discount_id}

Get a discount by ID

Retrieve the full details of a discount including its type, amount, usage limits, expiration, and restricted products. Use this to verify a discount's configuration or display discount details in your application.

1 path, 1 query params
GET/discounts

List all discounts

List all discounts and coupons

discount.read
9 query params
PATCH/discounts/{discount_id}

Update an existing discount

Update a discount's description, code, amount, expiration, usage limits, or status. Use this to extend a promotion, increase usage limits, or archive a discount that is no longer needed. Checkout recovery discounts must be configured through the Paddle dashboard instead.

1 path params

Event types

1 operation
GET/event-types

List all available event types

Retrieve the complete list of event types that Paddle can generate. Use this to see which events are available when configuring notification settings (webhook destinations). The response is not paginated and returns all types in a single request.

Events

1 operation
GET/events

List recent events

Retrieve a paginated list of events from the last 90 days. Events represent notable things that happened in your Paddle system — subscription created, payment completed, customer updated, and so on. Use this as an event stream to process billing events sequentially or catch up on missed webhooks. Events older than 90 days are not retained.

4 query params

IP addresses

1 operation
GET/ips

Get Paddle IP addresses

Retrieve the list of IP addresses that Paddle uses to send webhooks and make outbound requests. Add these to your server's allowlist to ensure webhook deliveries are not blocked by your firewall. Returns addresses for the environment you are querying (sandbox or production).

Notification logs

1 operation
GET/notifications/{notification_id}/logs

List delivery logs for a notification

Retrieve a paginated list of delivery attempt logs for a specific notification. Each log entry includes the HTTP status code, response body, and timestamp of the delivery attempt. Use this to diagnose why a webhook delivery is failing — inspect response codes and error messages from your endpoint.

1 path, 2 query params

Notification settings

5 operations
POST/notification-settings

Create a new notification setting

Create a new webhook destination by specifying an endpoint URL and the event types you want to receive. Paddle will deliver matching events to your endpoint as they occur. Use this to set up webhook integrations programmatically instead of through the Paddle dashboard.

DELETE/notification-settings/{notification_setting_id}

Delete a notification setting

Permanently delete a webhook destination. Paddle stops sending events to the endpoint immediately, and all delivery logs for this setting are lost. This action cannot be undone — consider updating the setting to remove subscribed events instead if you want to preserve the configuration.

1 path params
GET/notification-settings/{notification_setting_id}

Get a notification setting by ID

Retrieve the full details of a notification setting including its endpoint URL, subscribed event types, and the secret key used for webhook signature verification. Use this to verify your webhook configuration or retrieve the signing secret for signature validation.

1 path params
GET/notification-settings

List all notification settings

Retrieve a paginated list of your notification settings (webhook destinations). Each setting defines an endpoint URL and the event types it subscribes to. Use this to review your webhook configuration or verify which events are being delivered to which endpoints.

5 query params
PATCH/notification-settings/{notification_setting_id}

Update a notification setting

Update a notification setting's endpoint URL, description, or subscribed event types. When updating subscribed events, send the complete list — omitted event types will be unsubscribed. Only the API version of a notification setting cannot be changed after creation.

1 path params

Notifications

3 operations
GET/notifications/{notification_id}

Get a notification by ID

Retrieve the full details of a notification including its status, payload, delivery attempts, and related event. Use this to inspect the exact payload that was sent to your webhook endpoint or debug delivery issues. Notifications older than 90 days are not retained.

1 path params
GET/notifications

List recent notifications

Retrieve a paginated list of notifications from the last 90 days. Notifications are webhook deliveries sent to your configured destinations when events occur. Use this to monitor delivery status, identify failed webhooks, or audit notification history. Notifications older than 90 days are not retained.

9 query params
POST/notifications/{notification_id}/replay

Replay a failed or delivered notification

Resend a notification that was previously delivered or failed. Paddle creates a new notification entity for the replay attempt, linked to the same original event. Use this to retry failed webhook deliveries or re-trigger processing after fixing a bug in your webhook handler.

1 path params

Payment methods

3 operations
DELETE/customers/{customer_id}/payment-methods/{payment_method_id}

Delete a saved payment method for a customer

Remove a customer's saved payment method so it is no longer presented for future purchases. Payment methods tied to active, trialing, paused, or past-due subscriptions cannot be deleted — update the subscription's payment method first, then delete the old one.

2 path params
GET/customers/{customer_id}/payment-methods/{payment_method_id}

Get a saved payment method for a customer

Retrieve the details of a specific saved payment method, including card type, last four digits, and expiration date. Use this to display payment method details or check if a stored method is still valid.

2 path params
GET/customers/{customer_id}/payment-methods

List saved payment methods for a customer

Retrieve a paginated list of payment methods that a customer has saved. Customers save payment methods by opting in during checkout. Use this to display saved payment options in your application or verify which methods are available before creating a transaction. Only returns methods that have not been deleted.

1 path, 5 query params

Prices

4 operations
POST/prices

Create a new price for a product

Create a new price for a product

price.write
GET/prices/{price_id}

Get a price by ID

Retrieve the full details of a price including its amount, currency, billing cycle, quantity limits, and trial configuration. Use the include parameter to fetch the related product in the same request. Useful for verifying a price's configuration or displaying pricing details.

1 path, 1 query params
GET/prices

List all prices

List all prices across products

price.read
9 query params
PATCH/prices/{price_id}

Update an existing price

Update a price's description, quantity limits, trial period, custom data, or status. Core pricing attributes like amount and currency cannot be changed after creation — create a new price instead. Use this to archive old prices, adjust quantity limits, or update labels.

1 path params

Pricing preview

1 operation
POST/pricing-preview

Preview price calculations

Preview localized price calculations with tax

transaction.read

Products

4 operations
POST/products

Create a new product

Create a new product in your billing catalog

product.write
GET/products/{product_id}

Get a product by ID

Retrieve the full details of a product including its name, description, tax category, and status. Use the include parameter to fetch related prices in the same request. Useful for verifying a product's configuration before creating prices or displaying product details in your application.

1 path, 1 query params
GET/products

List all products

List all products in your catalog

product.read
8 query params
PATCH/products/{product_id}

Update an existing product

Update a product's name, description, image, tax category, or custom data. Use this to keep your product catalog current when offerings change. Updating a product does not affect existing subscriptions or completed transactions — changes apply to future billing only.

1 path params

Reports

4 operations
GET/reports/{report_id}/download-url

Download a report as CSV

Retrieve a temporary download URL for a completed report's CSV file. Only available for reports with a status of ready. The download link expires after 3 minutes, so generate a fresh link each time a download is needed.

1 path params
POST/reports

Generate a new report

Generate a revenue or transaction report

report.write
GET/reports/{report_id}

Get a report by ID

Check the status of a report and retrieve its details. Reports move from pending to ready when processing is complete. Poll this endpoint to know when a report is ready for download.

1 path params
GET/reports

List all reports

Retrieve a paginated list of reports generated in your Paddle system. Reports provide downloadable CSV files with detailed data about transactions, subscriptions, and other billing activity. Filter by status to find pending, ready, failed, expired, or deleted reports.

4 query params

Simulation types

1 operation
GET/simulation-types

List available simulation types

Retrieve the list of simulation types (events and scenarios) available for testing your webhook integrations. Use this to see what kinds of simulated events you can trigger before creating a simulation.

Simulations

10 operations
POST/simulations

Create a new simulation

Create a simulation to test your webhook integrations by sending simulated events to a notification destination. You can populate simulated payloads with real entity data by providing entity IDs. The API key must have read permissions for any entities referenced. Use this to verify your webhook handler processes events correctly before going live.

GET/simulations/{simulation_id}/runs/{simulation_run_id}/events/{simulation_event_id}

Get a simulated event by ID

Retrieve the full details of a simulated event including the payload that was sent and the delivery response from your webhook endpoint.

3 path params
GET/simulations/{simulation_id}

Get a simulation by ID

Retrieve the details of a simulation including its type, configuration, and notification destination. Use this to review a simulation's setup before running it.

1 path params
GET/simulations/{simulation_id}/runs/{simulation_run_id}

Get a simulation run by ID

Retrieve the details of a simulation run including its status and delivery results. Use the include parameter to fetch related event entities in the same request.

2 path, 1 query params
GET/simulations

List all simulations

Retrieve a paginated list of simulations. Simulations let you test your webhook integrations by sending simulated events to your notification destinations. Use this to manage and review your testing configurations.

6 query params
GET/simulations/{simulation_id}/runs/{simulation_run_id}/events

List events for a simulation run

Retrieve a paginated list of simulated events from a specific run. Each event shows the payload that was sent and the delivery status. Use this to inspect what was delivered to your webhook endpoint.

2 path, 4 query params
GET/simulations/{simulation_id}/runs

List runs for a simulation

Retrieve a paginated list of runs for a simulation. Each run represents an attempt to send simulated events to your webhook destination. Use the include parameter to fetch related entities in the same request.

1 path, 5 query params
POST/simulations/{simulation_id}/runs/{simulation_run_id}/events/{simulation_event_id}/replay

Replay a simulated event

Resend a simulated event to your webhook endpoint. Paddle creates a new delivery log for the replay attempt. Use this to re-test your webhook handler after making changes to your endpoint logic.

3 path params
POST/simulations/{simulation_id}/runs

Run a simulation

Trigger a new run of a simulation to send simulated events to your webhook destination. Use this to test your webhook handler with specific event payloads and verify it responds correctly.

1 path params
PATCH/simulations/{simulation_id}

Update an existing simulation

Update a simulation's name, configuration, or entity references. For scenario simulations, you can update the entities used to populate simulated payloads with real data. The API key must have read permissions for any referenced entities.

1 path params

Subscriptions

11 operations
POST/subscriptions/{subscription_id}/activate

Activate a trialing subscription

Activate a subscription that is currently in a trial period to begin billing immediately. Only automatically-collected subscriptions with a status of trialing can be activated. On activation, Paddle bills right away and recalculates future billing dates based on the activation date. Use this when a trial customer is ready to convert to a paid plan early.

1 path params
POST/subscriptions/{subscription_id}/cancel

Cancel a subscription

Cancel a subscription immediately or at period end

subscription.write
1 path params
POST/subscriptions/{subscription_id}/charge

Create a one-time charge for a subscription

Bill a non-recurring item to an existing subscription. One-time charges use price entities where the billing cycle is null. The charge appears as an additional line item on the subscriber's next invoice. Use this for add-ons, overage fees, or any one-off charge that should be tied to a subscription relationship.

1 path params
GET/subscriptions/{subscription_id}/update-payment-method-transaction

Get a payment method update transaction

Retrieve a special transaction that you can pass to a Paddle checkout to let customers update their payment details for a subscription. The returned transaction depends on the subscription's status — for past-due subscriptions, it returns the overdue transaction so the customer can retry payment with new details. Only works for automatically-collected subscriptions.

1 path params
GET/subscriptions/{subscription_id}

Get a subscription by ID

Get full details of a specific subscription

subscription.read
1 path, 1 query params
GET/subscriptions

List all subscriptions

List all subscriptions with status filters

subscription.read
10 query params
POST/subscriptions/{subscription_id}/pause

Pause a subscription

Pause a subscription to temporarily stop billing

subscription.write
1 path params
POST/subscriptions/{subscription_id}/charge/preview

Preview a one-time charge for a subscription

Preview the calculations for a one-time charge without actually billing the customer. Returns the expected totals with tax and discount calculations. Use this to show customers the exact amount before confirming a one-off purchase tied to their subscription.

1 path params
PATCH/subscriptions/{subscription_id}/preview

Preview a subscription update

Preview what would happen if you updated a subscription, without actually applying changes. Returns the immediate transaction (proration charges), next scheduled transaction, and recurring transaction details. Use this to show customers the billing impact of plan changes before they confirm.

1 path params
POST/subscriptions/{subscription_id}/resume

Resume a paused subscription

Resume a paused subscription

subscription.write
1 path params
PATCH/subscriptions/{subscription_id}

Update a subscription

Update items, billing cycle, or payment method on a subscription

subscription.write
1 path params

Transactions

7 operations
POST/transactions

Create a new transaction

Create a checkout or invoice transaction

transaction.write
1 query params
GET/transactions/{transaction_id}/invoice

Get a PDF invoice for a transaction

Retrieve a temporary download link for an invoice PDF. For automatically- collected transactions, the PDF is a receipt confirming payment. For manually-collected transactions, it includes payment terms, purchase order number, and notes — functioning as a demand for payment. Links expire after a short time, so generate a fresh link each time.

1 path, 1 query params
GET/transactions/{transaction_id}

Get a transaction by ID

Retrieve the full details of a transaction including its status, line items, totals, payment information, and checkout URL. Use the include parameter to fetch related entities like customer, address, and business in a single request. Useful for displaying order details or verifying payment status.

1 path, 1 query params
GET/transactions

List all transactions

List all transactions with status and date filters

transaction.read
14 query params
POST/transactions/preview

Preview a transaction without creating it

Preview calculated totals for a transaction without creating a transaction entity. Returns line-item breakdowns with tax, discounts, and currency formatting. Use this for advanced, dynamic pricing pages where customers build custom plans. For simpler pricing pages, consider the preview prices endpoint which has higher rate limits. This endpoint supports the full range of transaction options including address-based tax calculation.

POST/transactions/{transaction_id}/revise

Revise customer information on a transaction

Correct customer, address, or business information on a billed or completed transaction. Use this to fix mistakes on invoices without changing the financial details of the transaction. You can update the customer's name, address, business details, and custom data. Paddle generates a revised invoice PDF with the corrected information.

1 path params
PATCH/transactions/{transaction_id}

Update a draft or ready transaction

Update a transaction's items, customer details, or billing configuration. Only draft and ready transactions can be updated — billed and completed transactions are immutable records. Use adjustments to modify completed transactions. For draft transactions, add missing fields to move them to ready status for billing.

1 path, 1 query params