> ## Documentation Index
> Fetch the complete documentation index at: https://davinci.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Paddle

> Set up Paddle Billing payments for prepaid and subscription plans in Davinci AI.

> [!WARNING]
>
> Paddle is part of the [SaaS Business](https://davinci.mintlify.site/saas/saas-business.md) extension, which requires an Extended License.

> [!NOTE]
>
> This integration uses **Paddle Billing**. Paddle Classic credentials (Vendor ID and Auth Code) are no longer used.

> [!NOTE]
>
> **Supported plans:** prepaid and lifetime plans (one-time payment), monthly and yearly subscription plans.

## Get your API credentials

Use the [Paddle sandbox](https://sandbox-vendors.paddle.com/) for testing and the [live dashboard](https://vendors.paddle.com/) for real payments. Each has its own credentials.

**1. Step 1**

Go to **Developer Tools** → **Authentication**.

**2. Step 2**

Create an **API key** (starts with `pdl_live_apikey_` or `pdl_sdbx_apikey_`) and copy it.

**3. Step 3**

Create a **Client-side token** (starts with `live_` or `test_`) and copy it.

**4. Step 4**

Go to **Checkout** → **Checkout configuration** and set **Default payment link** to your site, for example `https://YOUR_DOMAIN`. Paddle requires it before checkout opens. In live mode the domain must first be approved under **Website approval**.

## Webhook

Required for all Paddle payments. Davinci saves each Paddle payment as pending and completes it when Paddle sends the matching event.

**1. Step 1**

Go to **Developer Tools** → **Notifications** and click **New destination**.

**2. Step 2**

Select **Webhook**, set the URL to `https://YOUR_DOMAIN/webhooks/paddle` (replace `YOUR_DOMAIN` with your domain; Davinci also shows it in the read-only **Paddle Webhook URL** field), and select these events:

* `transaction.completed`
* `subscription.created`
* `subscription.activated`
* `subscription.updated`
* `subscription.canceled`
* `subscription.past_due`

**3. Step 3**

Save the destination and copy its **secret key** (starts with `pdl_ntfset_`).

## Configure Paddle in Davinci

**1. Step 1**

Go to **Admin Panel** → **Finance Management** → **Finance Settings** and click **Paddle**.

**2. Step 2**

Fill in the fields (all are required once either toggle is on):

| Field | Value |
| - | - |
| **Paddle API Key** | API key |
| **Paddle Client-side Token** | Client-side token |
| **Paddle Webhook Secret** | Notification destination secret key (`pdl_ntfset_...`) |
| **Paddle Sandbox** | **Enable** for sandbox credentials, **Disable** for live credentials |

**3. Step 3**

Turn on **Use Paddle Prepaid** (prepaid and lifetime plans) and/or **Use Paddle Subscription** (monthly and yearly plans), then click **Save**.

> [!NOTE]
>
> Davinci rounds one-time Paddle amounts to whole currency units (for example, 9.99 is charged as 10).

## Subscription plans

Each monthly or yearly subscription plan needs a Paddle Price ID. Prepaid and lifetime plans don't.

**1. Step 1**

In Paddle, go to **Catalog** → **Products**, create a product, and add a recurring price with the same amount, currency and billing interval as the Davinci plan.

**2. Step 2**

Copy the price ID (starts with `pri_`).

**3. Step 3**

In Davinci, go to **Finance Management** → **Subscription Plans**, create or edit the plan, and paste the ID into **Paddle Price ID** under **Payment Gateways Plan IDs**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.