Sell Subscriptions & Products

Payment Providers

Connect your payment provider to start accepting payments through Zellify.

circle-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.

Available Providers

Navigate to Settings → Paymentsarrow-up-right to connect:

Provider
Description

Stripe

Accept real payments via Stripe

Stripe Sandbox

Test payments without charging real cards

Paddle

Accept real payments via Paddle (MoR)

Paddle Sandbox

Test Paddle billing and subscription flows

Most users connect either Stripe or Paddle — though you can use all four simultaneously if needed.


Connecting Stripe

Click Connect next to Stripe or Stripe Sandbox. You'll be redirected to Stripe OAuth to authorize access, then returned automatically.


Connecting Paddle

  1. Go to Authentication and create a new API key with full permissions and no expiration

  2. Copy the key and paste it into the Paddle API Key field in Settings → Paymentsarrow-up-right

  3. Click Connect


How Checkouts Work

Once connected, create products at Productsarrow-up-right and select your payment provider.

Stripe: We use the Checkout Sessions API. When a customer initiates checkout, we create a Stripe Customer and Checkout Session, then render the payment form (card, express checkout, etc).

Paddle: We create a Paddle Customer and Transaction, then render the Paddle checkout form.

circle-info

Customers are created before payment completes. This enables proper attribution and analytics tracking.


Webhooks & Entitlements

Zellify registers webhooks with your payment provider only for attribution and analytics (viewable at Dashboardarrow-up-right). 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.

Last updated