API Reference
Overview
Quick Start
API Authentication
API Error Codes
APIs
Checkout API
Checkout API
Order Details
User History
Prices
Product API
Product API
Coupons
Products
Licenses
Pay Links
Transactions
Payments
Subscription API
Subscription API
Plans
Users
Modifiers
Payments
One-off Charges
Alert API
Alert API
Webhooks

Generate Pay Link

post
/2.0/product/generate_pay_link

Custom checkouts can be based on an existing product or subscription plan (in which case they will inherit certain properties of that product - unless you override them) or can be completely custom, and not based on any existing product.

The API will return a link to the checkout that you can pass into Paddle.js using the override parameter. This can be done either with a Paddle checkout button:

preparing...

or as a Javascript call like below:

preparing...

Price overrides are passed as an array of strings specifying the override price with the currency, joined by a colon. For example:

preparing...

Note: to use the HTTP tester and code generator tool below, pass in each array value on a separate line, for example: prices[0]:"USD:19.99", prices[1]:"EUR:15.99" and so on.

vendor_id
integer
required

The vendor ID identifies your seller account. This can be found in Developer Tools > Authentication.

>= 1
vendor_auth_code
string
required

The vendor auth code is a private API key for authenticating API requests. This key should never be used in client side code or shared publicly. This can be found in Developer Tools > Authentication.

Match pattern:
[0-9a-f]+
product_id
integer

The Paddle Product ID/Plan ID that you want to base this checkout on. Required if not using custom non-subscription products.Show all...

title
string

The name of the product/title of the checkout. Required if product_id is not set.

<= 200 characters
webhook_url
string

An endpoint that we will call with transaction information upon successful checkout, to allow you to fulfill the purchase.Show all...

prices
array[string]

Price(s) of the checkout for a one-time purchase or the initial payment of a subscription.Show all...

recurring_prices
string

Recurring price(s) of the checkout (excluding the initial payment) only if the product_id specified is a subscription. To override the initial payment and all recurring payment amounts, both prices and recurring_prices must be set.Show all...

trial_days
integer

For subscription plans only. The number of days for the initial billing cycle. If you leave this field empty, the default trial days of the plan will be used.Show all...

custom_message
string

A short message displayed below the product name on the checkout.

<= 255 characters
coupon_code
string

A coupon to be applied to the checkout. Note that this cannot be used with custom products, and is only valid if a product_id is set.

>= 5 characters<= 300 characters
discountable
integer

Specifies if a coupon can be applied to the checkout. "Add Coupon" button on the checkout will be hidden as well if set to 0.

Allowed values:
01
Default:
1
image_url
string

A URL for the product image/icon displayed on the checkout.

return_url
string

A URL to redirect to once the checkout is completed. If the variable {checkout_hash} is included within the URL (e.g. https://mysite.com/thanks?checkout={checkout_hash}), the API will automatically populate the Paddle checkout ID in the redirected URL.

quantity_variable
integer

Specifies if the user is allowed to alter the quantity of the checkout.

Allowed values:
01
Default:
1
quantity
integer

Pre-fills the quantity selector on the checkout. Please note that free products/subscription plans are fixed to a quantity of 1. Any quantity over the maximum value will default to a quantity of 1.Show all...

>= 1<= 100
expires
string<date>

Specifies if the checkout link should expire. The generated checkout URL will be accessible until 23:59:59 (UTC) on the date specified (date in format YYYY-MM-DD).Show all...

Match pattern:
\d{4}-\d{2}-\d{2}
marketing_consent
integer

Whether you have gathered consent to market to the customer. customer_email is required if this property is set and you want to opt the customer into marketing.

Allowed values:
01
Default:
0
customer_email
string<email>

Pre-fills the customer email field on the checkout.

customer_country
string

Pre-fills the customer country field on the checkout. See Supported Countries for the list of supported ISO country codes. Only pre-filled if customer_email is set.

Match pattern:
[A-Z]{2}
customer_postcode
string

Pre-fills the customer postcode field on the checkout.Show all...

is_recoverable
integer

Specifies if checkout recovery emails can be sent to users who abandon the checkout process after entering their email address. An additional 10% transaction fee applies to checkouts we recover.Show all...

Allowed values:
01
passthrough
string

A string of metadata you wish to store with the checkout. Will be sent alongside all webhooks associated with the order. See the Pass Parameters documentation for more information.

<= 1000 characters
vat_number
string

Pre-fills the sales tax identifier (VAT number) field on the checkout.

vat_company_name
string

Pre-fills the Company Name field on the checkout. Required if vat_number is set.

vat_street
string

Pre-fills the Street field on the checkout. Required if vat_number is set.

vat_city
string

Pre-fills the Town/City field on the checkout. Required if vat_number is set.

vat_state
string

Pre-fills the State field on the checkout.

vat_country
string

Pre-fills the Country field on the checkout. Required if vat_number is set. See Supported Countries for the list of supported ISO country codes.

Match pattern:
[A-Z]{2}
vat_postcode
string

Pre-fills the Postcode field on the checkout.Show all...

Body
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
: