Paid WiFi Access
Monetise your guest WiFi by offering paid access tiers. Guests pay via Stripe directly on the captive portal splash page before connecting.
Overview
CaptiFi's Paid WiFi feature lets you charge guests for WiFi access:
- Guests see pricing options on a branded splash page when they connect
- Payment is processed via Stripe (Stripe)
- Access is granted automatically after successful payment
- Supports Apple Pay, Google Pay, and all major cards
This is ideal for venues like hotels, airports, co-working spaces, event venues, and any location where WiFi has a tangible value.
How It Works
- Guest connects to your WiFi network
- CaptiFi's Paid WiFi splash page appears with pricing options
- Guest selects a plan (e.g., 1 Hour Access for 99p, or 48 Hour Access for £2.99)
- Guest enters card details via Stripe (embedded payment form — no redirect)
- Payment is processed via Stripe
- On success, the guest's device is automatically authenticated with the WiFi controller (UniFi, your network controller, or Omada)
- Guest receives WiFi access for the purchased duration
Current Pricing Tiers
The Paid WiFi portal currently offers two access tiers:
| Plan | Duration | Price | Description |
|---|---|---|---|
| 1 Hour Access | 1 hour | 99p | Short session for quick visits |
| 48 Hour Access | 48 hours | £2.99 | Extended access for longer stays |
Note: Pricing is configured in GBP. The pricing tiers are defined in the Paid WiFi portal component.
Guest Experience
Plan Selection Screen
When a guest connects, they see:
- Venue logo and branded colours (using the site's captive portal colour settings)
- "Get WiFi Access" heading
- Pricing cards for each tier showing:
- Plan name (e.g., "1 Hour Access")
- Duration description
- Price (prominently displayed in blue)
- Select button
- Trust indicators: "Secure payment powered by Stripe" and "Apple Pay, Google Pay, and all major cards accepted"
Payment Screen
After selecting a plan:
- Selected plan summary showing duration and price
- Stripe Payment Element — a secure, embedded payment form supporting:
- Credit/debit cards
- Apple Pay
- Google Pay
- Other Stripe-supported payment methods
- "Pay & Connect to WiFi" button
- Back button to return to plan selection
Connection Screen
After successful payment:
- Loading spinner with "Connecting to WiFi..." message
- Device is authenticated with the WiFi controller
- Guest is redirected to a success page or the URL they were originally trying to access
Technical Details
Payment Processing
- Uses Stripe for secure payment processing
- Payments include metadata: site ID, site name, client MAC address, AP MAC address, duration, device type
- Currency: GBP
- Payment amounts are in pence (99 = £0.99, 299 = £2.99)
WiFi Authentication
After successful payment, CaptiFi authenticates the guest's device:
| Controller Type | Authentication Method |
|---|---|
| UniFi | Guest is authorised via the UniFi API with the selected duration (converted to minutes) |
| your network controller | Guest is authorised via the your network controller integration |
Guest Log Entry
Each paid access creates a SiteGuestLog entry with:
is_paid_access: truepayment_status: "succeeded"payment_amount: Amount in pence- Payment reference stored for tracking
access_duration: Duration in hoursaccess_expires_at: Calculated expiry timestampclient_mac_address: Device MAC for WiFi auth
Payment Return Flow
Stripe uses a redirect-based confirmation flow:
- Guest submits payment → Stripe confirms the payment and redirects back to complete WiFi access
- CaptiFi verifies the Payment Intent status
- If
succeeded, the guest is authenticated and a log entry is created - If failed, an error message is displayed
Stripe Configuration
Paid WiFi uses your Stripe credentials configured via environment variables:
| Variable | Purpose |
|---|---|
STRIPE_KEY | Stripe publishable key (used in frontend JS) |
STRIPE_SECRET | Stripe secret key (used for server-side Payment Intent creation) |
Note: Revenue from paid WiFi goes directly to the Stripe account configured in the CaptiFi environment. CaptiFi does not take a commission on paid WiFi transactions.
Splash Page Branding
The Paid WiFi splash page inherits branding from your site settings:
| Setting | Usage |
|---|---|
captive_portal_bg_color | Background gradient start colour |
captive_portal_accent_color | Background gradient end colour |
logo_url | Venue logo displayed at the top |
name | Site name used in metadata |
The page uses a gradient background with a centred white card containing the payment interface.
Best Practices
- Price appropriately — 99p for short sessions and £2-3 for day passes suits most venues
- Consider your audience — airports and events can charge more; cafés should keep it low
- Hotels — consider including WiFi in room rates and using paid WiFi only for conference/event areas
- Events — short-duration passes (1 hour) work well for ticketed events
- Signage — display your WiFi name and pricing clearly in-venue so guests know what to expect
- Test the flow — go through the payment process yourself to ensure the experience is smooth
Troubleshooting
| Issue | Solution |
|---|---|
| Payment form not appearing | Ensure STRIPE_KEY environment variable is set correctly |
| Payment failing | Check Stripe dashboard for error details; verify STRIPE_SECRET is valid |
| Guest not getting WiFi after payment | Check the site's network controller connection (UniFi/your network controller) |
| "Unable to process payment" error | Stripe API may be unreachable; check server connectivity |
| Guest redirected but no access | The payment return URL must match the original page URL for Stripe redirect to work |
| Payment succeeded but authentication failed | Check WiFi controller credentials; the guest log will still be created with payment details |
Relationship to Other Access Modes
CaptiFi sites can operate in different access modes:
| Mode | Description | Guest Experience |
|---|---|---|
| Free | Standard splash page with data capture | Guest enters name/email to connect |
| Voucher | Code-based access (see WiFi Vouchers) | Guest enters a voucher code to connect |
| Paid | Payment-based access | Guest pays via Stripe to connect |
Each site can only be in one access mode at a time. The Paid WiFi portal is a separate component that displays when a site is configured for paid access.