Stripe Setup
Connect your Stripe account to AppFunnel to accept payments, manage subscriptions, and track revenue. There are two connection methods — choose based on your security requirements.
Method 1: Secret Key (Recommended)
The fastest way to connect. You provide your Stripe API keys and AppFunnel automatically configures the webhook endpoint.
Get your API keys
In the Stripe Dashboard , copy your Secret Key (sk_live_... or sk_test_...) and Publishable Key (pk_live_... or pk_test_...).
Use test mode keys (sk_test_...) during development. You can connect separate stores for test and live mode.
Create a store in AppFunnel
Navigate to your project’s Stores page and click Add Store. Select Stripe as the provider.
Insert image: The Stores page with the Add Store dialog open, showing Stripe selected as the provider
Enter your keys
Paste your Secret Key and Publishable Key. AppFunnel validates the keys against the Stripe API and detects whether they are test or live mode.
Done
AppFunnel automatically creates a webhook endpoint in your Stripe account with all required events. The webhook signing secret is stored securely — no manual configuration needed.
Method 2: Restricted Key
Use this method if you prefer not to share your full Secret Key. Restricted keys (rk_...) limit API access to only the permissions AppFunnel needs. However, restricted keys cannot create webhook endpoints via the API, so you must configure the webhook manually.
You can obtain a restricted key in two ways:
- Install the AppFunnel Stripe App from the Stripe App Marketplace (provides a pre-configured restricted key)
- Create a restricted key manually in the Stripe Dashboard under Developers > API Keys > Restricted Keys
Create the store
Navigate to Stores > Add Store > Stripe. Enter your restricted key (rk_...) and publishable key.
AppFunnel detects the restricted key prefix and skips automatic webhook creation.
Create the webhook endpoint in Stripe
Go to the Stripe Dashboard > Developers > Webhooks and click Add endpoint.
Set the endpoint URL to:
https://api.appfunnel.net/webhook/stripe/{storeId}Replace {storeId} with your store’s ID, shown in the AppFunnel store settings page after creation.
Subscribe to required events
Select the following events in the webhook configuration:
| Event | Purpose |
|---|---|
checkout.session.completed | Embedded Checkout completion |
customer.subscription.created | New subscription created |
customer.subscription.updated | Subscription status changes |
customer.subscription.deleted | Subscription canceled |
invoice.paid | Recurring payment succeeded |
invoice.payment_failed | Recurring payment failed |
charge.refunded | Refund processed |
setup_intent.succeeded | Card saved (trial flow) |
payment_intent.succeeded | Payment completed |
payment_intent.payment_failed | Payment failed |
All 10 events are required. Missing events will cause incomplete subscription tracking and broken lifecycle management.
Copy the webhook signing secret
After creating the endpoint, Stripe reveals the Signing Secret (whsec_...). Copy it and paste it into the Webhook Secret field in your AppFunnel store settings.
Save
Click Save in your store settings. The store is now fully configured.
Importing Prices
After connecting a store, import prices from Stripe so they can be linked to funnel products.
Open the import page
Navigate to your store and click Import Prices.
Insert image: The store detail page showing the Import Prices button and a list of fetched Stripe prices with checkboxes, product names, amounts, and billing intervals
Select prices
AppFunnel fetches all prices from your Stripe account. Select the ones you want to use in your funnels. Each price shows the product name, amount, currency, and billing interval.
Customize display names
Optionally set a display name for each imported price. This is shown in the AppFunnel dashboard for easier identification — it does not affect what the customer sees.
Imported prices sync automatically when changes are detected. You can manually trigger a re-sync from the store settings page.
Paddle Setup (Alpha)
Paddle integration is in alpha. Core checkout works, but subscription lifecycle tracking and some edge cases may not be fully handled.
Get your credentials
From the Paddle Dashboard , copy your API Key and Client Token.
Create the store
Navigate to Stores > Add Store > Paddle. Enter your API key and client token.
Webhook configuration
AppFunnel automatically creates a notification setting in your Paddle account. If automatic setup fails, you can manually configure the webhook in the Paddle Dashboard pointing to:
https://api.appfunnel.net/webhook/paddle/{storeId}Test Mode vs. Live Mode
AppFunnel automatically detects whether your API keys are test or live mode and labels the store accordingly. Test mode stores use Stripe’s test environment — no real charges are made.
Best practice: create two stores per project (one test, one live) and use the test store during development. Switch the funnel’s product configuration to the live store price when you are ready to go live.
Troubleshooting
| Issue | Solution |
|---|---|
| ”Invalid Stripe API keys” | Verify your keys are copied correctly. Secret keys start with sk_ or rk_, publishable keys start with pk_. |
| Webhook not receiving events | For restricted key setups, confirm the endpoint URL includes the correct storeId. Check the Stripe Dashboard webhook logs for delivery failures. |
| Store stuck in “not activated” | The store activates after receiving its first webhook event. Trigger a test event from the Stripe Dashboard or complete a test payment. |
| Prices not showing during import | Only active prices are shown. Archived prices in Stripe are excluded. |