> 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/monetization.md).

# Monetization

Monetize funnels with subscriptions, upsells, and downsells.

<div data-full-width="true"><figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FpFzAlJxwBFjIrEpwxSaz%2Fproducts.png?alt=media&amp;token=27776b6a-16ba-402b-bea3-b0b5276c09c2" alt=""><figcaption></figcaption></figure></div>

Zellify is built to monetize products and subscriptions through web funnels.

The platform supports direct integrations with payment providers and includes advanced monetization features such as upsells and downsells. These allow you to increase revenue per user by presenting additional or alternative offers during the funnel flow.

{% hint style="info" %}
Zellify never touches your money. All transactions flow directly to your connected Stripe or Paddle account. We simply render checkout forms on your behalf.
{% endhint %}

Upsells and downsells are covered in separate documentation.

***

### Payment Providers

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2Fknu7feZU75rYlmkdL0YC%2Frt24t423tg24.png?alt=media&amp;token=1b16d939-fff0-4a2f-85f8-b2abb3580a04" alt=""><figcaption></figcaption></figure>

Zellify integrates with two payment providers:

* Stripe
* Paddle

Both providers support one-time purchases and recurring subscriptions, but they differ in setup, fees, and tax handling.

***

### Stripe

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FPjhaHSmnauGa4a8Sm5Pw%2Frt24t423tg24-1.png?alt=media&amp;token=eaa1d87d-9b88-4eeb-8afe-6f0f57751d06" alt=""><figcaption></figcaption></figure>

Stripe is the fastest payment provider to get started with.

It offers a simple onboarding process and a one-click connection with Zellify. Stripe typically has lower transaction fees, but you are responsible for handling VAT and tax reporting yourself.

#### Connecting Stripe

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FkfgL9jINHEnceHVgotmk%2FCleanShot%202026-02-24%20at%2016.10.38%402x.png?alt=media&amp;token=a08dc9d8-53c6-47c3-bd3d-ad54d55b50eb" alt=""><figcaption></figcaption></figure>

Create a Stripe account at:\
[https://stripe.com](https://stripe.com/)

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

You can connect:

* Stripe Sandbox for testing
* Stripe Payments for live transactions

Stripe Sandbox allows you to test purchases without charging real money.

To connect Stripe, click **Connect** and complete the Stripe Connect flow by selecting the Stripe account you want to link to Zellify.

Once connected, products created in Zellify are automatically synced with Stripe.

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2F7YyZVtit1dTMdFad62kE%2FCleanShot%202026-02-24%20at%2016.15.16%402x.png?alt=media&amp;token=98ea4564-37b9-4985-b911-2525e5789663" alt=""><figcaption></figcaption></figure>

#### Apple Pay Verification

After enabling Stripe, you can submit your domain for Apple Pay verification to enable Apple Pay on your checkout pages.

We recommend doing this only after connecting a custom domain to your funnel.

#### How Stripe Checkouts Work

When a customer initiates checkout, Zellify:

* Uses the Stripe Checkout Sessions API
* Creates a Stripe Customer and Checkout Session
* Renders the payment form (card input, express checkout buttons like Apple Pay/Google Pay, etc.)

{% hint style="info" %}
Customers are created before payment completes. This enables proper attribution and analytics tracking.
{% endhint %}

***

### Paddle

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2Fw4F4d20fAbURJm83939j%2Frt24t423tg24-2.png?alt=media&amp;token=76002e29-1761-4b74-a625-67000abad17c" alt=""><figcaption></figcaption></figure>

Paddle manages VAT and tax reporting for you, which simplifies compliance. The trade-off is slightly higher transaction fees compared to Stripe.

#### Connecting Paddle

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FZ5zw18WWasNKDGYq94bb%2FCleanShot%202026-02-26%20at%2010.21.38%402x.png?alt=media&amp;token=dd1d1899-2b86-4660-b559-8dd4766be341" alt=""><figcaption></figcaption></figure>

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

You can connect:

* Paddle Sandbox for testing
* Paddle Production for live payments

Paddle Sandbox allows you to test purchases without real charges.

To connect Paddle, click **Connect** and enter your Paddle API key.

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FFxQuegZIVb5daGNT8r5U%2FCleanShot%202026-02-26%20at%2010.23.55%402x.png?alt=media&amp;token=c601751f-14c9-40d8-9f4b-7e85935ebc1b" alt=""><figcaption></figcaption></figure>

Generate an API key here:

* Sandbox: <https://sandbox-vendors.paddle.com/authentication-v2>
* Production: <https://vendors.paddle.com/authentication-v2>

Configure the API key as follows:

* Expiration set to never
* All read and write permissions enabled

Paste the key into Zellify. Once saved, the integration becomes active.

#### How Paddle Checkouts Work

When a customer initiates checkout, Zellify:

* Creates a Paddle Customer and Transaction
* Renders the Paddle checkout form

{% hint style="info" %}
Customers are created before payment completes. This enables proper attribution and analytics tracking.
{% endhint %}

***

### Creating Products

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FpOudfnRBRmO5F9sbU4Qv%2FCleanShot%202026-02-24%20at%2016.25.17%402x.png?alt=media&amp;token=0c8f7f5c-8738-4e29-a655-871353f4253b" alt=""><figcaption></figcaption></figure>

Go to:\
Dashboard → Products\
<https://dash.zellify.app/products>

At least one payment provider must be connected before creating products.

Click **Create Product**.

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FCEHAKoot7oi1mzrbgQLO%2Ferfgvret242.png?alt=media&amp;token=1e57a3c3-2c5a-4b55-957e-08d0cf926a35" alt=""><figcaption></figcaption></figure>

You configure:

* Product name
* Payment provider
* Product type: one-time or subscription

For subscriptions, you can also configure:

* Billing interval
* Trial period

Set the currency and price during setup. Subscription duration and trial options are only shown for recurring products.

***

### Using Products in Funnels

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2Fuxw46NLbnuPrPnbYyKfK%2Fefvrette.png?alt=media&amp;token=2a60b1a1-512b-426a-95c1-94bf828c5cc2" alt=""><figcaption></figcaption></figure>

Products are added to funnels through paywall components.

Once a product is created, it becomes available in all funnels. You can attach one or more products to a paywall and control how and when they are shown to the user.

Typical use cases include:

* Selling a single product on a paywall
* Offering multiple pricing options
* Using different products in different funnels or experiments

Products can also be used in upsells and downsells, allowing you to present additional offers after an initial purchase.

***

### Important Requirement for Payments

<figure><img src="https://951987241-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVPontcfIF8v0iocPko5l%2Fuploads%2FSSMjutiiRBR7MeI95g9B%2Fedfgvrvre.png?alt=media&amp;token=a6737495-f0f6-44c9-b7c0-29f528a9c474" alt=""><figcaption></figcaption></figure>

To initiate a checkout with any payment provider, the funnel must collect the user’s email address before the paywall.

An email input step is required because payment providers need an email address to create and initialize a checkout session. If a funnel does not collect an email before the paywall, checkout cannot be started and purchases will fail.

Make sure any funnel intended to sell products or subscriptions includes an email collection step before the paywall page.

***

### Webhooks & Entitlements

Zellify registers webhooks with your payment provider **only** for attribution and analytics (viewable at [Dashboard](https://dash.zellify.app/home)). We never perform manual charges or interfere with transactions.

**To grant entitlements to your users** (e.g., unlock "Gold" subscription after purchase), you must:

1. Register your own webhook endpoints in Stripe or Paddle
2. Listen for payment events per the provider's documentation
3. Update user entitlements in your database accordingly

This ensures users get proper access when they sign into your app.

{% hint style="warning" %}
Zellify does not automatically grant user access or entitlements after payment. You must implement your own webhook handling to give users access to paid features.
{% endhint %}


---

# 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/monetization.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.
