Paddle Integration
Paddle API Operations
Browse all 87 operations available for Paddle workflow automation.
Addresses
4 operations/customers/{customer_id}/addressesCreate 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.
/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.
/customers/{customer_id}/addressesList 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.
/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.
Adjustments
3 operations/adjustmentsCreate a refund or credit adjustment
Process a refund or credit for a transaction
/adjustments/{adjustment_id}/credit-noteGet 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.
/adjustmentsList all adjustments
List all refunds and credits
Businesses
4 operations/customers/{customer_id}/businessesCreate 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.
/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.
/customers/{customer_id}/businessesList 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.
/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.
Client tokens
4 operations/client-tokensCreate 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.
/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.
/client-tokensList 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.
/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.
Customers
7 operations/customers/{customer_id}/portal-sessionsCreate a customer portal session
Generate a self-service portal link for a customer
/customersCreate a new customer
Create a new customer for billing and subscriptions
/customers/{customer_id}/auth-tokenGenerate 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.
/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.
/customersList all customers
List all customers with optional filters
/customers/{customer_id}/credit-balancesList 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.
/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.
Discount groups
4 operations/discount-groupsCreate 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.
/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.
/discount-groupsList 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.
/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.
Discounts
4 operations/discountsCreate a new discount
Create a new discount coupon or percentage-off code
/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.
/discountsList all discounts
List all discounts and coupons
/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.
Event types
1 operation/event-typesList 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/eventsList 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.
IP addresses
1 operation/ipsGet 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/notifications/{notification_id}/logsList 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.
Notification settings
5 operations/notification-settingsCreate 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.
/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.
/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.
/notification-settingsList 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.
/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.
Notifications
3 operations/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.
/notificationsList 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.
/notifications/{notification_id}/replayReplay 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.
Payment methods
3 operations/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.
/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.
/customers/{customer_id}/payment-methodsList 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.
Prices
4 operations/pricesCreate a new price for a product
Create a new price for a product
/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.
/pricesList all prices
List all prices across products
/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.
Pricing preview
1 operation/pricing-previewPreview price calculations
Preview localized price calculations with tax
Products
4 operations/productsCreate a new product
Create a new product in your billing catalog
/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.
/productsList all products
List all products in your catalog
/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.
Reports
4 operations/reports/{report_id}/download-urlDownload 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.
/reportsGenerate a new report
Generate a revenue or transaction report
/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.
/reportsList 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.
Simulation types
1 operation/simulation-typesList 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/simulationsCreate 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.
/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.
/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.
/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.
/simulationsList 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.
/simulations/{simulation_id}/runs/{simulation_run_id}/eventsList 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.
/simulations/{simulation_id}/runsList 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.
/simulations/{simulation_id}/runs/{simulation_run_id}/events/{simulation_event_id}/replayReplay 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.
/simulations/{simulation_id}/runsRun 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.
/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.
Subscriptions
11 operations/subscriptions/{subscription_id}/activateActivate 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.
/subscriptions/{subscription_id}/cancelCancel a subscription
Cancel a subscription immediately or at period end
/subscriptions/{subscription_id}/chargeCreate 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.
/subscriptions/{subscription_id}/update-payment-method-transactionGet 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.
/subscriptions/{subscription_id}Get a subscription by ID
Get full details of a specific subscription
/subscriptionsList all subscriptions
List all subscriptions with status filters
/subscriptions/{subscription_id}/pausePause a subscription
Pause a subscription to temporarily stop billing
/subscriptions/{subscription_id}/charge/previewPreview 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.
/subscriptions/{subscription_id}/previewPreview 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.
/subscriptions/{subscription_id}/resumeResume a paused subscription
Resume a paused subscription
/subscriptions/{subscription_id}Update a subscription
Update items, billing cycle, or payment method on a subscription
Transactions
7 operations/transactionsCreate a new transaction
Create a checkout or invoice transaction
/transactions/{transaction_id}/invoiceGet 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.
/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.
/transactionsList all transactions
List all transactions with status and date filters
/transactions/previewPreview 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.
/transactions/{transaction_id}/reviseRevise 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.
/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.