> For the complete documentation index, see [llms.txt](https://docs.zellify.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zellify.app/platform-introduction/integrations/paddle.md).

# Paddle

Accept payments and subscriptions directly in your funnels using Paddle.

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FvfXh7eCSRYgkuetKtKsQ%2Feoiufthgpietbgvoejbg-2.png?alt=media&amp;token=bae8c54e-f112-4045-9f6f-525fb7c6aa87" alt=""><figcaption></figcaption></figure>

The Paddle integration allows you to process one-time payments and recurring subscriptions inside your funnel pages. Checkout is embedded in the experience, so users never leave your funnel.

Paddle acts as the **Merchant of Record**, meaning tax calculation, collection, and compliance are handled automatically.

With Paddle connected, Zellify automatically:

* Creates Paddle Customers
* Supports one-time payments and recurring subscriptions
* Handles free trials
* Attaches structured metadata for attribution
* Registers webhooks automatically
* Syncs payment data across other integrations

If Paddle is your payment processor, this integration keeps payments, attribution, and subscription data aligned.

***

### Enabling the Integration

To connect Paddle:

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2Fv0Yg7l2uvfmHSPoXG8El%2FCleanShot%202026-02-24%20at%2016.21.13%402x.png?alt=media&amp;token=38f18901-6f31-419c-855d-b7ed7de70bef" alt=""><figcaption></figcaption></figure>

Dashboard → Settings → Payments\
<https://dash.zellify.app/settings?tab=payments>

1. Click **Connect** next to Paddle (Live or Sandbox)
2. Enter your **Paddle API Key**
3. Click **Connect**

Your Paddle account is now connected.

When connected, Zellify automatically:

* Provisions a client token
* Registers a webhook endpoint on your Paddle account

You can connect Live and Sandbox accounts independently.

To disconnect, click **Disconnect** next to the connected account.

***

### Generating Your Paddle API Key

To create an API key in Paddle:

1. Go to your **Paddle Dashboard**
2. Navigate to **Developer Tools → Authentication**
3. Click **Generate API Key**
4. Copy the generated key
5. Paste the key into Zellify

<div align="left"><figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FPGX5ZrscPjxlIppgnIMB%2Fimage.png?alt=media&amp;token=91926fac-8263-4d64-a9c8-4d02e832c396" alt="" width="554"><figcaption></figcaption></figure></div>

***

## How Checkout Works

Zellify uses Paddle’s overlay and inline checkout modes.

When a user selects a plan and proceeds to payment:

* A Paddle Customer is created or matched using the user’s email
* A Transaction is created on your Paddle account with attribution metadata
* The Paddle checkout is opened using the transaction
* After successful payment, the user advances to the next funnel step

***

### Checkout Display Modes

You can choose between:

* **Overlay** — The payment form appears as a Paddle overlay on top of the funnel page
* **Inline** — The payment form is rendered directly within the funnel page

***

## Customer Creation

When checkout is initiated, Zellify creates or reuses a Paddle Customer on your account.

Customer logic:

* If a customer with the same email already exists, it is updated with the latest metadata
* Otherwise, a new customer is created

All customers are created with Zellify metadata attached.

***

## Metadata

Zellify attaches structured metadata (Paddle custom data) to Paddle objects so every payment and subscription can be traced back to the originating user, funnel, and campaign.

The following metadata fields are attached:

* **app\_user\_id** — Identifier used to associate the Paddle customer with a Zellify customer record
* **organization\_id** — ID of the Zellify organization
* **funnel\_id** — ID of the funnel where the purchase occurred
* **campaign\_id** — ID of the campaign that drove the user
* **experiment\_id** — ID of the experiment (only included if the campaign targets an experiment)
* **fbp** — Facebook browser identifier
* **fbc** — Facebook click identifier (only included if the user comes from a Meta ad)

***

### Where Metadata Is Set

These metadata fields are attached to:

* **Paddle Customer custom data**
* **Paddle Transaction custom data**

This allows your team to:

* Attribute revenue to specific funnels and campaigns
* Analyze experiment performance
* Reconcile Meta ad conversions with Paddle revenue
* Match Paddle records with Zellify data

***

## Payment Types

Zellify supports two payment types.

### One-Time Payments

* A single transaction is created via Paddle Checkout
* The charge is processed immediately

### Recurring Subscriptions

* A subscription is created via Paddle Checkout
* The subscription is linked to the Paddle Customer
* Metadata is attached to the subscription

***

## Free Trials

If a product includes a trial period:

* The subscription is created in trialing status
* No charge is made until the trial ends
* The payment method is collected upfront

Trial lengths are configured directly on the Paddle Price and can use any interval supported by Paddle (day, week, month, year).

***

## Tax Handling

Paddle acts as the Merchant of Record.

This means:

* Tax is calculated and collected automatically
* Products are created with a standard tax category
* No additional tax configuration is required

***

## Webhook Syncing

When you connect Paddle, Zellify automatically registers a webhook endpoint on your Paddle account. No manual configuration is required.

Zellify listens to the following events:

* transaction.completed
* transaction.payment\_failed
* subscription.created
* subscription.activated
* subscription.past\_due
* subscription.canceled
* subscription.updated

These events are used to:

* Track revenue across funnels and campaigns
* Monitor subscription lifecycle events
* Sync payment data across integrations

This ensures all systems remain aligned with real payment activity.

***

## Products & Pricing

Products and prices are created directly on your Paddle account through the Zellify dashboard.

Each product includes:

* Name
* Currency
* Price
* Payment type (one-time or recurring)
* Billing interval (for subscriptions)
* Optional trial configuration

Products created in Zellify are standard Paddle Products and Prices and are fully visible and manageable inside your Paddle Dashboard.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.zellify.app/platform-introduction/integrations/paddle.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
