Skip to Content
Products & PaymentsOverview

Products & Payments

AppFunnel handles checkout, subscription management, and revenue tracking through native payment provider integrations. You configure products and pricing in the dashboard, wire them into your funnel with the visual editor, and AppFunnel manages the entire payment lifecycle — from checkout to renewals to refunds.

Supported Providers

ProviderStatusCheckout Methods
StripeFully supportedPayment Element, Embedded Checkout
PaddleAlphaPaddle Checkout (inline or overlay)

Stripe is the primary integration. Paddle support is functional but limited — expect rough edges.

How It Works

The payment system has four layers:

  1. Stores — A store is a connection to a payment provider account (your Stripe or Paddle account). Each project can have multiple stores (e.g., separate live and test mode accounts). See Stripe Setup.

  2. Store Prices — After connecting a store, you import prices from your payment provider. These are the actual Stripe Prices or Paddle Prices that will be charged. Prices sync automatically to stay up-to-date.

  3. Funnel Products — In each funnel’s settings, you create products that reference imported store prices. A product has an ID (for referencing in templates), a display name, the linked store price, and optional trial configuration. Products expose computed variables like products.monthly.price and products.yearly.periodly for dynamic pricing display.

  4. Payment Flow — The funnel pages handle product selection, payment capture, and post-purchase navigation. See Payment Flow.

Key Concepts

Product Selection

Visitors select a product through the funnel UI — typically a pricing page with plan options. The selected product determines what is charged at checkout. Use the selectProduct click action or bind a SingleSelect to product IDs.

The currently selected product is accessible via products.selected.* variables for dynamic pricing display.

Trial Detection

Trial handling is automatic. When the selected product has trial days configured, the system creates a Stripe SetupIntent (captures the card without charging) instead of a PaymentIntent (charges immediately). The subscription is then created with the trial period, and the first charge happens when the trial ends.

Upsells

After a successful initial payment, you can offer additional products on subsequent pages using the purchase click action. This charges the card that was already captured — no additional payment form is shown. See Upsells.

Subscription Lifecycle

Subscriptions are tracked automatically via webhooks. AppFunnel monitors status changes (active, trialing, past due, canceled), records renewal payments, and emits integration events for each lifecycle transition. See Subscriptions.

Last updated on