Configure products, checkout, and campaigns from the ZeroSettle dashboard
The ZeroSettle dashboard is where you manage everything that doesn’t require a code change — products, pricing, checkout behavior, promotions, and migration campaigns. Changes take effect immediately without an app update.
New to ZeroSettle? Start with Account Setup for a step-by-step walkthrough of creating your account, connecting Stripe, and adding your first product.
Web prices are set independently from store prices. This lets you pass platform fee savings on to customers (or keep the margin). The SDK provides both prices so you can show a comparison in your paywall:
product.webPrice — the web checkout price you set on the dashboard
product.storeKitPrice — the App Store price, fetched from StoreKit on-device (iOS)
product.playStorePrice — the Google Play price (Android)
Override the checkout type and enable/disable web checkout per jurisdiction:
Jurisdiction
Countries
US
United States
EU
EU member states
ROW
Rest of world (default)
The SDK automatically detects the user’s jurisdiction via StoreKit’s Storefront.current and applies the matching override. If no override is set, the global default is used.For example, you might use webview globally but disable web checkout in the EU:
Copy
// The SDK handles this automatically — no code needed.// Just configure it on the dashboard.// In your app, check before showing web checkout UI:if ZeroSettle.shared.isWebCheckoutEnabled { // Show web checkout button} else { // Fall back to StoreKit}
You can disable web checkout entirely (globally or per jurisdiction) from the dashboard. When disabled, isWebCheckoutEnabled returns false and calling purchase() throws webCheckoutDisabledForJurisdiction. Use this to gracefully fall back to StoreKit.
Create promotional pricing for any product. The SDK returns active promotions alongside products, so your app can display them automatically.Each promotion has:
Field
Description
Display name
Label shown to users (e.g., “Launch Sale”)
Type
percent_off, fixed_amount, or free_trial
Promotional price
The discounted price during the promotion
Expiration
Optional expiry date (nil = no expiration)
Access promotions via the product:
Copy
if let promo = product.promotion { print("\(promo.displayName): \(promo.promotionalPrice.formatted)")}
See StoreKit Integration for the full migration guide.For detailed dashboard configuration options — rollout percentage, eligibility targeting, and analytics — see Campaigns & Offers.
Connect via Stripe Express. ZeroSettle creates and manages Stripe products and prices for you automatically. Payouts go directly to your bank account.This is the fastest way to get started — no Stripe product setup required.
Connect your own standard Stripe account via OAuth. Use your existing Stripe products and prices, and retain full access to your Stripe dashboard for reporting, analytics, and customer management.In BYOS mode, you must map each ZeroSettle product to its corresponding Stripe product and price using the Stripe Catalog. Without a mapping, ZeroSettle won’t know which Stripe price to charge at checkout.
You can switch between Managed and BYOS modes at any time from your tenant settings. Existing Stripe Catalog mappings are preserved when switching back.