Become a White-Label ISP Reseller in the UK
No infrastructure. No hardware. Just your brand on top of wholesale broadband. Everything you need — from company formation to your first paying customer.
Overview
What is White-Label ISP Reselling?
The Business Model
White-label ISP reselling means you purchase wholesale broadband connectivity from a wholesale aggregator and resell it under your own brand. You are the ISP as far as the customer is concerned — your brand, your billing, your support — but the underlying network infrastructure belongs to Openreach (BT), CityFibre, or other network operators, accessed through your wholesale partner.
The Value Chain
Network Operator (Openreach/CityFibre/VMO2)
↓
Wholesale Aggregator (ICUK, Gamma, Entanet, etc.)
↓
You (White-Label ISP / "Communications Provider")
↓
End Customer (Residential or Business)
Why This Model Works
Zero infrastructure investment
No exchanges, no fibre, no hardware
Low barrier to entry
Start with as few as 1 line in some cases
Scalable
Grow from 10 to 10,000 customers without changing your stack
Proven margins
Typical gross margins of 30-60% on broadband services
Bundling opportunities
Add VoIP, hosting, security, and more
Key Terminology
| Term | Meaning |
|---|---|
| CP | Communications Provider — what Ofcom calls you |
| GEA | Generic Ethernet Access — Openreach's FTTC/FTTP product |
| FTTC | Fibre to the Cabinet — part fibre, part copper (up to ~80Mbps) |
| FTTP | Fibre to the Premises — full fibre (up to 1Gbps+) |
| WLR | Wholesale Line Rental — traditional phone line (being phased out) |
| SOGEA | Single Order GEA — broadband without a phone line |
| SoGFast | Single Order G.fast — enhanced FTTC (up to ~330Mbps) |
| EMP | Equivalence Management Platform — Openreach's ordering system |
| CLI | Calling Line Identification — the phone number |
| ADR | Alternative Dispute Resolution |
| RADIUS | Remote Authentication Dial-In User Service |
Wholesale Partners
Wholesale Aggregators Compared
A wholesale aggregator sits between you and the network operators (Openreach, CityFibre, etc.). They handle the complex network integration, provide APIs for provisioning, and give you access to products you'd otherwise need massive minimum commitments to access directly.
2.1
ICUK (now part of Wavenet)
icuk.net · Best for startups
ICUK (now part of Wavenet)
icuk.net · Best for startups
| Target Market | IT resellers, MSPs, white-label ISPs |
| Products | FTTC, FTTP, SOGEA, SoGFast, Leased Lines, VoIP, Hosting, Domains, Mobile |
| Network Access | Openreach, CityFibre, Virtual1 |
| Min. Commitment | No minimum line counts; pay as you go |
| API | Full REST API for provisioning, monitoring, billing data |
| Portal | Comprehensive partner portal with real-time line stats |
| White-Label | Fully white-label — end customer never sees ICUK |
| Billing | Monthly in arrears; no setup fees on most products |
| Support | UK-based, 24/7 NOC, dedicated account managers |
| FTTP Cost | ~£16-22/month wholesale for 80/20 FTTP |
| FTTC Cost | ~£12-16/month wholesale for 40/10 or 80/20 FTTC |
| Strengths | Excellent API, low barrier to entry, broad product range |
| Weaknesses | Pricing slightly higher than going direct (you're paying for convenience) |
Why Choose ICUK
- Best-in-class API for automation
- No minimum commitments — start with 1 line
- Ideal for MSPs adding broadband to existing services
- Strong white-label proposition
2.2
Gamma (formerly Daisy Wholesale)
gamma.co.uk · Best for mid-to-large partners
Gamma (formerly Daisy Wholesale)
gamma.co.uk · Best for mid-to-large partners
| Target Market | Channel partners, larger resellers |
| Products | FTTC, FTTP, SOGEA, SoGFast, Ethernet, SIP, UCaaS, Mobile |
| Network Access | Openreach, own network infrastructure |
| Min. Commitment | Typically requires partner agreement; volume-based pricing |
| API | Gamma API platform for provisioning and management |
| White-Label | Full white-label on connectivity; Horizon UCaaS is white-labelable |
| Support | UK-based, dedicated partner support |
| FTTP Cost | ~£15-20/month wholesale (volume-dependent) |
| Strengths | Large, established, financially stable, broad product portfolio |
| Weaknesses | More suited to medium/large partners; onboarding can be slower |
Why Choose Gamma
- Single vendor for voice + data + mobile
- Strong financials and stability
- Good for medium-to-large operations
- Excellent UCaaS (Horizon) white-label
2.3
TalkTalk Wholesale Services (TTWS)
talktalkwholesaleservices.co.uk · Best for volume
TalkTalk Wholesale Services (TTWS)
talktalkwholesaleservices.co.uk · Best for volume
| Target Market | ISPs, larger CPs |
| Products | FTTC, FTTP, SOGEA, Ethernet via Openreach |
| Min. Commitment | Higher minimums; typically 500+ lines to get good pricing |
| API | Available but more traditional (SOAP/XML in some cases) |
| White-Label | Yes, but more suited to established ISPs |
| Support | UK-based but mixed reviews on responsiveness |
| FTTP Cost | ~£13-18/month wholesale (volume-dependent) |
| Strengths | Competitive pricing at volume, established infrastructure |
| Weaknesses | Higher entry barrier, less flexible for small operators |
Note
Best pricing at volume (500+ lines). Less ideal for startups due to minimums.
2.4
Entanet (part of CityFibre group)
enta.net · Best for CityFibre areas
Entanet (part of CityFibre group)
enta.net · Best for CityFibre areas
| Target Market | IT resellers, ISP startups, MSPs |
| Products | FTTC, FTTP, SOGEA, Ethernet, CityFibre FTTP |
| Network Access | Openreach + CityFibre (major advantage) |
| Min. Commitment | Low minimums; partner-friendly |
| API | REST API for provisioning |
| White-Label | Full white-label |
| FTTP Cost | ~£15-20/month Openreach; CityFibre pricing varies by area |
| Strengths | CityFibre access is a big differentiator; partner-friendly |
| Weaknesses | Smaller company, narrower product range than Gamma |
Why Choose Entanet
- Access to CityFibre's FTTP network (alternative to Openreach)
- Good for areas where CityFibre is deployed
- Partner-friendly approach
2.5
Zen Internet (Wholesale)
zen.co.uk/wholesale · Award-winning support
Zen Internet (Wholesale)
zen.co.uk/wholesale · Award-winning support
| Target Market | ISP resellers, businesses |
| Products | FTTC, FTTP, SOGEA, Ethernet |
| Network Access | Openreach |
| Min. Commitment | Moderate; volume-based pricing |
| Strengths | Excellent network quality, award-winning support |
| Weaknesses | Premium pricing, less focused on white-label market |
2.6
Virtual1
virtual1.com · Strong on Ethernet
Virtual1
virtual1.com · Strong on Ethernet
| Target Market | Channel partners |
| Products | Ethernet, FTTP, SD-WAN, Cloud Connect |
| Network Access | Own national network + Openreach |
| API | 1Portal API |
| Strengths | Own network backbone, strong on Ethernet/leased lines |
| Weaknesses | Less focused on mass-market broadband |
2.7
Glide / ITS Technology Group
glide.co.uk · MDU / Student niche
Glide / ITS Technology Group
glide.co.uk · MDU / Student niche
| Target Market | Student accommodation, MDU, commercial property |
| Products | Managed broadband, FTTP, WiFi |
| Strengths | Niche in multi-dwelling units |
| Weaknesses | Niche focus may not suit general ISP resellers |
Aggregator Comparison Summary
| Feature | ICUK | Gamma | TTWS | Entanet | Zen |
|---|---|---|---|---|---|
| Min. Lines | 0 | ~50+ | ~500+ | Low | Moderate |
| API Quality | ★★★★★ | ★★★★ | ★★★ | ★★★★ | ★★★ |
| FTTP Pricing | £16-22 | £15-20 | £13-18 | £15-20 | £18-24 |
| CityFibre | Via partners | No | No | ★★★★★ | No |
| VoIP/SIP | ★★★★ | ★★★★★ | ★★★ | ★★★ | ★★★ |
| Ease of Start | ★★★★★ | ★★★ | ★★ | ★★★★ | ★★★ |
| White-Label | ★★★★★ | ★★★★ | ★★★ | ★★★★ | ★★★ |
| Support | ★★★★★ | ★★★★ | ★★★ | ★★★★ | ★★★★★ |
Recommendation for Startups
Start with ICUK if you're a new entrant: zero minimum commitment, best API for automation, full white-label from day one, broad product range to grow into. You can always add a second wholesaler later for redundancy or pricing.
Consider Entanet if your target area has CityFibre coverage — it's a real differentiator.
Move to TTWS once you hit 500+ lines for better unit economics.
Process
From Company Formation to First Customer
A phased, 12-week roadmap to get you from zero to live ISP.
Legal Foundation — Weeks 1-2
Register a UK Limited Company
Companies House: https://www.gov.uk/set-up-limited-company
Cost: £12 (online) / £30 (paper)
Time: Usually same day (online)
SIC Code to use: 61.10 — Wired telecommunications activities
Additional: 61.90 — Other telecommunications activitiesRequirements:
- Company name (check availability at Companies House)
- Registered office address (can be your home)
- At least 1 director (16+ years old, doesn't need to be UK resident)
- At least 1 shareholder
- Memorandum and Articles of Association (model articles are fine to start)
- Confirmation Statement (annually, £13)
Register for Corporation Tax
Must be done within 3 months of starting to trade. Done via HMRC: gov.uk
Open a Business Bank Account
Starling, Tide, or Mettle for quick setup. Traditional banks (NatWest, Barclays) take longer but may be needed for credit.
Register for VAT (if applicable)
Mandatory if turnover exceeds £90,000/year (2024/25 threshold). Can register voluntarily — useful to reclaim VAT on wholesale costs.
Recommended: Register voluntarily from day one if selling B2B
Get Business Insurance
- Professional Indemnity — essential (covers errors in service)
- Public Liability — recommended
- Cyber Liability — recommended for any tech business
- Typical cost: £300-800/year for a small CP
Regulatory Setup — Weeks 2-4
Notify Ofcom
You must notify Ofcom before providing electronic communications services. This is a notification, not a licence — you don't need permission, just to tell them. See Section 4 for detailed process.
Register with an ADR Scheme
Mandatory for residential customers. Choose between Ombudsman Services: Communications or CISAS. See Section 5 for detailed process.
Register with the ICO (Data Protection)
Information Commissioner's Office: https://ico.org.uk/registration
Cost: £40/year (micro organisation) or £60/year (small)
Time: Immediate onlineRequired because you'll process customer personal data.
Wholesale Partner Setup — Weeks 3-6
Apply to a Wholesale Aggregator
For ICUK (recommended for startups):
- Visit icuk.net and apply for a partner account
- Complete the application form (company details, expected volumes)
- Provide proof of company registration
- Sign the partner agreement
- Account typically activated within 3-5 working days
- Access granted to partner portal and API credentials
What they'll want to know:
- Your company details and registration number
- Expected monthly line volumes
- Target market (residential/business)
- Technical capability
- Existing customer base (if any)
Test the Wholesale API
- Get API credentials from the partner portal
- Test line availability checks (address search → service availability)
- Test order placement in sandbox/test environment
- Understand the provisioning workflow
Technical Setup — Weeks 4-8
Set Up Billing System
Choose and configure: Splynx (recommended, purpose-built for ISPs), WHMCS (if you're already a web host), or Platypus Billing (UK ISP-specific). See Section 7.
Set Up RADIUS (if needed)
For most white-label operations with an aggregator, RADIUS is handled by the wholesaler. You may not need your own RADIUS server unless you want granular control. See Section 8.
Build Your Customer Portal
Options: billing system's built-in portal, custom-built, or white-label from wholesaler. See Section 9.
Set Up Your Website
Essential pages:
- Home / landing page
- Broadband packages and pricing
- Coverage checker (integrate wholesaler's API)
- Order form
- Support / contact
- Legal pages (T&Cs, privacy policy, complaints procedure)
Legal & Compliance — Weeks 6-8
Prepare Legal Documents
Terms and Conditions, Privacy Policy, Acceptable Use Policy, Complaints Code of Practice, Price transparency documentation. See Section 12.
Set Up Complaints Handling
- Documented complaints procedure
- 8-week resolution timeline (or deadlock letter)
- ADR referral process
Go Live — Weeks 8-12
Place Test Orders
Order broadband to your own premises or a friend's. Test the full provisioning flow, billing cycle, and support processes.
Soft Launch
Invite friends/family to be early customers. Iron out processes. Get feedback on the customer experience.
Marketing Launch
Website goes live, local marketing, Google Ads for coverage area, social media presence. See Section 13.
Timeline Summary
Week 1-2: Company formation, bank account, insurance
Week 2-4: Ofcom notification, ADR registration, ICO registration
Week 3-6: Wholesale partner application and onboarding
Week 4-8: Billing system, portal, website development
Week 6-8: Legal documents, compliance setup
Week 8-10: Test orders, soft launch
Week 10-12: Marketing launch, first real customersRegulatory
Ofcom Notification Process
Under the Communications Act 2003 (Section 33), anyone providing an Electronic Communications Network (ECN) or Electronic Communications Service (ECS) in the UK must notify Ofcom. As a broadband reseller, you're providing an ECS. This is a notification, not a licence application. Ofcom cannot refuse you — they just need to know you exist.
Step-by-Step Process
Prepare Your Information
- Company name and registration number
- Trading name(s) if different
- Registered address
- Contact person details
- Description of services you intend to provide
- Expected start date
- Whether you'll serve residential, business, or both
Complete the Notification Form
Go to Ofcom's website and download or access the General Conditions Notification Form.
Key sections: Type of provider: ECS · Services: Internet access service · Geographic scope: United Kingdom
Submit the Notification
Submit via Ofcom's online portal or by email. There is no fee for notification. Ofcom will acknowledge receipt.
Await Confirmation
Ofcom typically processes within a few days to 2 weeks. You'll receive confirmation and be added to Ofcom's register of CPs.
General Conditions That Apply to You
Once notified, you're subject to Ofcom's General Conditions of Entitlement (GCs):
| GC | Topic | What It Means |
|---|---|---|
| A1 | Network Functioning & Integrity | Ensure your service works properly |
| A3 | Availability of Services | Emergency call access (if providing voice) |
| B1 | Publishing Info & Transparency | Publish T&Cs, pricing, complaints procedure |
| B3 | Metering & Billing | Accurate billing |
| C1 | Contract Requirements | Compliant customer contracts |
| C5 | Complaints Handling & Dispute Resolution | ADR membership, complaints code |
| C7 | Switching & Porting | One Touch Switch compliance |
Important: One Touch Switch (OTS)
Since April 2023, Ofcom requires all broadband providers to support the One Touch Switch process. Customers can switch by contacting only the gaining provider. You must respond to OTS requests within defined timeframes. Your wholesale aggregator typically handles the technical side of OTS.
Ongoing Obligations
- Annual notification: Confirm your details are still current
- Material changes: Notify Ofcom of significant changes
- Ofcom data requests: Respond to information requests from Ofcom
- Administrative charges: Ofcom levies annual charges on CPs to fund regulation (typically based on qualifying revenue — very small for new CPs)
Compliance
ADR Scheme Registration
Alternative Dispute Resolution is a mandatory scheme that gives customers an independent route to resolve complaints. Under GC C5, all CPs serving residential or small business customers must be a member of an approved ADR scheme.
Approved Schemes
Ombudsman Services: Communications
CISAS
How ADR Works in Practice
Customer complains to you
↓
You have 8 weeks to resolve
↓
If unresolved after 8 weeks (or you issue a "deadlock letter"):
↓
Customer can refer to ADR scheme
↓
ADR scheme investigates/adjudicates
↓
Binding decision (if customer accepts)Pro Tips
- Resolve complaints quickly — ADR cases cost you £300-500 each regardless of outcome
- Issue deadlock letters if you genuinely can't resolve — better than dragging it out
- Keep records of all complaint correspondence
- Most new ISPs have very few ADR cases — if you provide decent service, you might never get one
Networking
RIPE NCC Membership — Do You Need It?
Short Answer: No, not for white-label reselling.
When you're reselling via a wholesale aggregator, they provide the IP addresses from their own RIPE blocks. You don't need your own AS number, IP address blocks, or BGP routing.
When Would You Need RIPE Membership?
- Operating your own network infrastructure
- Peering at Internet exchanges
- Running your own BGP routing
- Needing provider-independent (PI) IP address space
- Building a "real" network (not white-label reselling)
RIPE NCC Membership Costs (For Reference)
| Item | Cost |
|---|---|
| Sign-up fee | €1,000 (one-time) |
| Annual fee | €1,400/year (standard member) |
| IP allocation | Included with membership (but IPv4 waiting list is years long) |
What Your Aggregator Provides Instead
- Dynamic public IPv4 — one per customer connection (standard)
- Static IPv4 — available as an add-on (£2-5/month per IP)
- IPv6 — increasingly available, /48 or /56 per customer
- /29 blocks — for business customers needing multiple IPs
Don't worry about RIPE NCC for now. Completely unnecessary for white-label reselling. Revisit only if you eventually build your own network infrastructure.
Operations
Billing Systems Comparison
Your billing system needs to handle recurring subscriptions, pro-rata billing, VAT-compliant invoicing, Direct Debit collection, CRM, service provisioning, and financial reporting.
Splynx
splynx.com · Purpose-built ISP billing
Best for: Dedicated ISP operations wanting everything in one system.
WHMCS
whmcs.com · Web hosting billing (adaptable)
Best for: Companies already using WHMCS for hosting.
Platypus Billing
platypus.co.uk · UK ISP-specific
Best for: UK-specific ISP operations wanting a managed solution.
Sonar
sonar.software · ISP management platform
Best for: Modern, full-featured option. US-focused, may need UK customisation.
Billing System Comparison Summary
| Feature | Splynx | WHMCS | Platypus | UCRM/UISP | Sonar |
|---|---|---|---|---|---|
| ISP-Specific | ★★★★★ | ★★ | ★★★★★ | ★★★★ | ★★★★★ |
| UK Compliance | ★★★ | ★★★ | ★★★★★ | ★★ | ★★ |
| RADIUS Built-in | ★★★★★ | ✗ | ★★★ | ★★★ | ★★★★★ |
| Ease of Setup | ★★★ | ★★★★ | ★★★★ | ★★★ | ★★★★ |
| Cost (Small) | ~£50/mo | ~£13/mo | Custom | Free-£20/mo | ~£50/mo |
| Direct Debit | GoCardless | GoCardless | GoCardless | GoCardless | Stripe/GC |
| API Quality | ★★★★ | ★★★★ | ★★★ | ★★★ | ★★★★★ |
Recommendation
Splynx is the best all-round choice: purpose-built for ISPs, built-in RADIUS, ticketing, customer portal, scales well, ~£50/month starting cost.
Alternative: If budget is ultra-tight, start with WHMCS (£13/month) + manual processes, then migrate to Splynx at ~50 customers.
Direct Debit Setup (GoCardless)
Nearly all UK ISPs collect via Direct Debit. GoCardless is the standard:
GoCardless: https://gocardless.com
Fee: 1% + £0.20 per transaction (capped at £4)
Setup: Free
Integration: All major billing systems support GoCardlessTechnical
RADIUS Setup Requirements
Do You Actually Need RADIUS?
For most white-label ISP operations: No, your wholesaler handles this. The customer's router connects via PPPoE/IPoE → wholesaler's RADIUS authenticates → IP assigned → session logged → usage data available to you via API.
When You WOULD Need Your Own RADIUS
- Custom authentication policies (bandwidth limiting, usage caps)
- Detailed session logging beyond what the wholesaler provides
- Prepaid/quota-based billing
- Multiple wholesalers with unified authentication
- Value-added services like content filtering per-user
FreeRADIUS Setup Guide (if needed)
FreeRADIUS Setup Guide (if needed)
Basic Installation (Ubuntu/Debian)
# Install FreeRADIUS
sudo apt update
sudo apt install freeradius freeradius-utils freeradius-mysql -y
# Enable and start
sudo systemctl enable freeradius
sudo systemctl start freeradius
# Test with radtest
radtest testuser testpassword localhost 0 testing123clients.conf — Define NAS Clients
# Your wholesaler's RADIUS proxy (if they forward auth to you)
client wholesaler-radius {
ipaddr = 203.0.113.10 # Wholesaler's RADIUS proxy IP
secret = YourSharedSecret123!
shortname = wholesaler
nastype = other
}SQL Module Configuration
sql {
dialect = "mysql"
driver = "rlm_sql_${dialect}"
server = "localhost"
port = 3306
login = "radius"
password = "RadiusDBPassword123!"
radius_db = "radius"
acct_table1 = "radacct"
acct_table2 = "radacct"
authcheck_table = "radcheck"
authreply_table = "radreply"
groupcheck_table = "radgroupcheck"
groupreply_table = "radgroupreply"
usergroup_table = "radusergroup"
read_clients = yes
client_table = "nas"
}Database Schema
-- Create RADIUS database
CREATE DATABASE radius;
USE radius;
-- Users table
CREATE TABLE radcheck (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(64) NOT NULL DEFAULT '',
attribute VARCHAR(64) NOT NULL DEFAULT '',
op CHAR(2) NOT NULL DEFAULT ':=',
value VARCHAR(253) NOT NULL DEFAULT ''
);
-- Reply attributes (e.g., bandwidth limits)
CREATE TABLE radreply (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(64) NOT NULL DEFAULT '',
attribute VARCHAR(64) NOT NULL DEFAULT '',
op CHAR(2) NOT NULL DEFAULT ':=',
value VARCHAR(253) NOT NULL DEFAULT ''
);
-- Accounting data
CREATE TABLE radacct (
radacctid BIGINT AUTO_INCREMENT PRIMARY KEY,
acctsessionid VARCHAR(64) NOT NULL DEFAULT '',
acctuniqueid VARCHAR(32) NOT NULL DEFAULT '',
username VARCHAR(64) NOT NULL DEFAULT '',
nasipaddress VARCHAR(15) NOT NULL DEFAULT '',
nasportid VARCHAR(50),
acctstarttime DATETIME NULL,
acctupdatetime DATETIME NULL,
acctstoptime DATETIME NULL,
acctinputoctets BIGINT DEFAULT 0,
acctoutputoctets BIGINT DEFAULT 0,
calledstationid VARCHAR(50) NOT NULL DEFAULT '',
callingstationid VARCHAR(50) NOT NULL DEFAULT '',
acctterminatecause VARCHAR(32) NOT NULL DEFAULT '',
framedipaddress VARCHAR(15) NOT NULL DEFAULT ''
);
-- Example: Add a user with 100Mbps plan
INSERT INTO radcheck (username, attribute, op, value)
VALUES ('user@yourisp.co.uk', 'Cleartext-Password', ':=', 'SecurePassword123');
INSERT INTO radreply (username, attribute, op, value)
VALUES ('user@yourisp.co.uk', 'Mikrotik-Rate-Limit', ':=', '100M/100M');RADIUS with Splynx (Recommended)
# Splynx automatically configures FreeRADIUS
# Users created in Splynx are automatically added to RADIUS
# No manual RADIUS configuration needed
# Splynx RADIUS attributes managed via web UI:
# Config → Networking → RADIUS
# - Set NAS devices
# - Configure authentication methods
# - Set up bandwidth plans
# - Define IP poolsRealistic Assessment
For most white-label ISPs using a single wholesaler like ICUK: you don't need your own RADIUS. Usage data comes via the API, bandwidth is defined by the product you order, not by your RADIUS. Focus your energy on billing, support, and marketing instead.
Customer Experience
Customer Portal Options
A modern ISP customer portal should provide: account overview, invoice history, payment management, speed test, service status, support tickets, plan changes, and Direct Debit management.
Option 1: Billing System's Built-in Portal
Splynx / WHMCS built-in portals
- Zero additional development cost
- All billing data already there
- Mobile-responsive out of the box
- Add custom branding
Option 2: Custom-Built Portal
Build using billing system's API
- Full design control
- Perfect brand integration
- Higher dev cost
- Best at 50+ customers
Option 3: Wholesaler Portal
White-label from your aggregator
- Quick to deploy
- Limited customisation
- ICUK provides brandable portal
Option 4: WordPress + WooCommerce
Simpler approach for <100 customers
- WooCommerce Subscriptions
- Custom plugin for API integration
- Easy to set up
Example: Custom Node.js Portal
Example: Custom Node.js Portal
// Example: Node.js/Express portal pulling data from Splynx API
const express = require('express');
const axios = require('axios');
const app = express();
const SPLYNX_API = 'https://billing.yourisp.co.uk/api/2.0';
const API_KEY = process.env.SPLYNX_API_KEY;
// Customer dashboard
app.get('/dashboard', async (req, res) => {
try {
const customerId = req.session.customerId;
// Get customer details
const customer = await axios.get(
`${SPLYNX_API}/admin/customers/customer/${customerId}`,
{ headers: { 'Authorization': `Splynx-EA (api_key=${API_KEY})` } }
);
// Get invoices
const invoices = await axios.get(
`${SPLYNX_API}/admin/finance/invoices?customer_id=${customerId}`,
{ headers: { 'Authorization': `Splynx-EA (api_key=${API_KEY})` } }
);
// Get services
const services = await axios.get(
`${SPLYNX_API}/admin/customers/customer/${customerId}/internet-services`,
{ headers: { 'Authorization': `Splynx-EA (api_key=${API_KEY})` } }
);
res.render('dashboard', {
customer: customer.data,
invoices: invoices.data,
services: services.data
});
} catch (error) {
console.error('Portal error:', error);
res.status(500).render('error');
}
});
// Coverage checker (using wholesaler API)
app.post('/check-coverage', async (req, res) => {
const { postcode } = req.body;
// Example: ICUK availability check
const availability = await axios.get(
`https://api.icuk.net/broadband/availability/${postcode}`,
{ headers: { 'Authorization': 'Bearer YOUR_ICUK_API_KEY' } }
);
res.json(availability.data);
});
app.listen(3000);Recommendation
Start with Splynx's built-in portal — zero development cost, all billing data already there. Build a custom front-end when you have revenue to justify it (50+ customers).
Responsibilities
Aggregator Provides vs What You Build
What Your Aggregator Provides
| Network connectivity | Physical broadband service |
| Provisioning | Order placement, line activation |
| IP addresses | Dynamic and static IPv4, IPv6 |
| RADIUS auth | User auth & session management |
| DNS | Recursive DNS for customers |
| Backhaul | Internet transit and peering |
| Monitoring | Core network uptime |
| Faults | Liaison with Openreach |
| Line stats | Sync speed, SNR, errors |
| Usage data | Bandwidth usage per line |
| API | Programmatic access to all above |
| OTS | Technical provider switching |
What YOU Build/Provide
| Brand & identity | Logo, website, marketing |
| Customer acquisition | Marketing, sales |
| Billing & payments | Invoice, Direct Debits |
| Customer support | Helpdesk, phone/email/chat |
| Customer portal | Self-service management |
| Legal compliance | T&Cs, privacy, Ofcom |
| Complaints | Process & ADR integration |
| Coverage checker | Postcode availability tool |
| Order management | Capture → provisioning |
| Fault triage | First-line troubleshooting |
| Speed claims | Ofcom-compliant advertising |
| Finance | Accounting, VAT, reporting |
The Integration Layer
┌─────────────────────────────────────────┐
│ YOUR SYSTEMS │
│ │
│ Website ──→ Coverage Checker │
│ Order Form ──→ Order Processing │
│ Customer Portal ──→ Self-Service │
│ Billing System ──→ Invoicing/DD │
│ Helpdesk ──→ Support Tickets │
│ │
│ ↕ YOUR API INTEGRATION ↕ │
│ │
│ ┌───────────────────────────────────┐ │
│ │ WHOLESALER API (e.g. ICUK) │ │
│ │ │ │
│ │ • Address search / availability │ │
│ │ • Place broadband order │ │
│ │ • Check order status │ │
│ │ • Get line stats │ │
│ │ • Raise fault │ │
│ │ • Cease service │ │
│ │ • Usage data │ │
│ └───────────────────────────────────┘ │
└─────────────────────────────────────────┘Financials
Realistic Year-1 Cost Breakdown
Assumptions: starting from zero, target 50 customers by end of Year 1, using ICUK + Splynx, one-person operation, mix of FTTC and FTTP.
Pre-Launch Costs (Months 1-3)
| Item | Month 1 | Month 2 | Month 3 |
|---|---|---|---|
| Company formation | £12 | - | - |
| Business insurance | £400 | - | - |
| ICO registration | £40 | - | - |
| ADR scheme (annual) | - | £200 | - |
| Domain name (.co.uk) | £10 | - | - |
| Website hosting | £20 | £20 | £20 |
| Website development | £500 | £500 | - |
| Billing system (Splynx) | - | £50 | £50 |
| Logo / branding | £200 | - | - |
| Legal docs (template) | - | £300 | - |
| Test broadband line | - | - | £25 |
| Misc / contingency | £100 | £100 | £100 |
| Monthly Total | £1,282 | £1,170 | £195 |
Launch & Growth — Monthly Operating Costs (Months 4-12)
| Item | Monthly Cost | Notes |
|---|---|---|
| Website hosting | £20 | VPS or similar |
| Billing system | £50 | Splynx |
| Business phone (VoIP) | £15 | SIP trunk for support line |
| ADR scheme (amortised) | £17 | £200/year |
| Insurance (amortised) | £33 | £400/year |
| ICO (amortised) | £3 | £40/year |
| Office 365 / email | £10 | Business email |
| Helpdesk software | £0-30 | Free tier or basic plan |
| Marketing | £200-500 | Google Ads, leaflets |
| Fixed Monthly | ~£350-680 | Before wholesale costs |
Wholesale Costs (Per Customer)
| Product | Wholesale | Your Price | Gross Margin |
|---|---|---|---|
| FTTC 40/10 | ~£14/mo | £28/mo | £14 (50%) |
| FTTC 80/20 | ~£17/mo | £33/mo | £16 (48%) |
| FTTP 80/20 | ~£18/mo | £35/mo | £17 (49%) |
| FTTP 160/30 | ~£21/mo | £40/mo | £19 (48%) |
| FTTP 500/75 | ~£27/mo | £50/mo | £23 (46%) |
| FTTP 900/110 | ~£33/mo | £60/mo | £27 (45%) |
Customer Ramp Scenario
| Month | Customers | Wholesale Cost | Revenue | Gross Profit |
|---|---|---|---|---|
| 4 | 3 | £54 | £105 | £51 |
| 5 | 7 | £126 | £245 | £119 |
| 6 | 12 | £216 | £420 | £204 |
| 7 | 18 | £324 | £630 | £306 |
| 8 | 24 | £432 | £840 | £408 |
| 9 | 30 | £540 | £1,050 | £510 |
| 10 | 37 | £666 | £1,295 | £629 |
| 11 | 43 | £774 | £1,505 | £731 |
| 12 | 50 | £900 | £1,750 | £850 |
Year 1 Financial Summary
Breakeven Analysis
Monthly fixed costs: ~£500
Average margin per customer: ~£17
Breakeven customers: 500 / 17 ≈ 30 customers
With marketing spend of £300/month:
Breakeven customers: 800 / 17 ≈ 47 customers
Expected breakeven: Month 10-12Key Financial Notes
- Side-business model initially — don't quit your day job until 100+ customers
- Customer acquisition cost typically £50-150 per customer
- Churn — expect 1-2% monthly; acquire faster than you lose
- Cash flow — you pay wholesaler before customer pays you; maintain a buffer
- Scaling economics — much more favourable at 200+ customers
- No salary included — need ~150+ customers minimum to pay yourself
Legal
Legal Requirements
12.1
Terms and Conditions
Terms and Conditions
Must comply with the Consumer Contracts (Information, Cancellation and Additional Charges) Regulations 2013 and Ofcom's General Conditions. Key elements that MUST be included:
1. Identity and contact details
- Company name, registration number, registered address, contact info
2. Service description
- What broadband service, speed estimates, any usage limits
3. Pricing
- Monthly charge (inc. and ex. VAT), setup fees, price increase mechanism
4. Contract duration
- Minimum term, what happens at end, early termination charges
5. Cancellation rights
- 14-day cooling-off period, how to cancel
6. Service levels
- Expected availability, fault handling, automatic compensation
7. Complaints procedure
- How to complain, timeline, ADR scheme details
8. Price increase terms
- 30 days minimum notice, right to exit without penalty
9. Switching
- One Touch Switch process, no switching charges
10. Acceptable Use Policy
- Reference to separate AUP, what constitutes misuse
12.2
Privacy Policy (GDPR Compliance)
Privacy Policy (GDPR Compliance)
Must comply with UK GDPR, Data Protection Act 2018, and PECR. Key elements:
1. Data controller identity
2. What data you collect:
- Name, address, contact details, payment info
- IP addresses and connection logs, traffic data, usage data
3. Legal basis: Contract performance, Legal obligation,
Legitimate interests, Consent (marketing)
4. Data retention periods:
- Customer data: duration of contract + 6 years
- Connection logs: 12 months (Investigatory Powers Act)
- Billing data: 6 years (HMRC requirement)
5. Data sharing:
- Wholesale provider, payment processors, law enforcement, ADR
6. Customer rights:
- Access, rectification, erasure, portability
- Right to object, restrict processing
12.3
Investigatory Powers Act 2016
Investigatory Powers Act 2016
- Data retention: May be required to retain communications data (not content) for up to 12 months if served with a retention notice
- Lawful interception: Must be able to facilitate if required
- In practice: For small CPs, largely handled by your wholesaler
12.4
Consumer Contracts Regulations 2013
Consumer Contracts Regulations 2013
- 14-day cooling-off period from contract conclusion
- Pre-contract information must be provided clearly
- Confirmation in durable medium (email is fine)
- If service starts within cooling-off period, customer must explicitly consent
12.5
Ofcom's Automatic Compensation Scheme
Ofcom's Automatic Compensation Scheme
| Issue | Compensation |
|---|---|
| Delayed repair (after 2 working days) | £9.33/day |
| Delayed provisioning (missed appointment) | £5.61/day |
| Missed appointment | £30.49 per incident |
As a smaller CP, you're not currently mandated to join, but Ofcom encourages voluntary participation and may extend the mandate. Budget for it.
12.6
Complaints Code of Practice
Complaints Code of Practice
- How to make a complaint (phone, email, letter)
- What happens when you receive a complaint
- Target resolution timelines
- Escalation process within your organisation
- ADR scheme details and how to refer
- 8-week rule (right to go to ADR after 8 weeks)
- Deadlock letter process
12.7
Accessibility Requirements
Accessibility Requirements
Under the European Electronic Communications Code (EECC): services must be accessible to disabled users, provide information in accessible formats on request, and consider text relay for voice services.
Key Legislation Summary
| Legislation | Relevance |
|---|---|
| Communications Act 2003 | Your right to operate, Ofcom's powers |
| UK GDPR / DPA 2018 | Data protection |
| Consumer Contracts Regs 2013 | Distance selling, cooling-off |
| Consumer Rights Act 2015 | Service quality, unfair terms |
| PECR 2003 | Electronic marketing, cookies |
| Investigatory Powers Act 2016 | Data retention, interception |
| Electronic Commerce Regs 2002 | Website requirements, electronic contracts |
| Equality Act 2010 | Accessibility |
Growth
Marketing Strategy
13.1 Positioning
You cannot compete on price with BT, Sky, Virgin, etc. Instead, compete on:
Service Quality
Real human support, UK-based
Local Focus
"Your local broadband provider"
Niche Markets
Gamers, remote workers, rural
Transparency
No hidden fees, no mid-contract rises
Technical Expertise
"People who understand broadband"
13.2 Target Markets
Option A: Geographic Focus
- Focus on your local area
- "Broadband for [Town/City]"
- Local knowledge, local support
- Physical marketing (leaflets, events)
Option B: Niche Focus
- Gamers — low latency, static IPs
- Remote workers — reliable, fast upload
- Small businesses — dedicated support
- Tech-savvy — IPv6, no CGNAT
Option C: B2B Focus
- Higher margins (£50-100/mo)
- Longer contracts (24-36 months)
- Less price-sensitive
- Value reliability over speed
13.3 Marketing Channels
Google Ads (Highest Priority)
Google Ads (Highest Priority)
Campaign: Broadband + Location
Keywords:
- "broadband in [town]"
- "fibre broadband [town]"
- "best broadband [town]"
- "FTTP broadband [town]"
- "internet provider [town]"
Budget: Start with £200-300/month
Expected CPC: £1-3
Expected conversion rate: 2-5%
Cost per acquisition: £40-100
SEO & Social (Long-term)
SEO & Social (Long-term)
SEO: Blog posts about broadband in your area, coverage checker page, speed comparison content, "switching broadband" guides, local business directory listings.
Social: Facebook/Instagram local groups, Reddit (r/BritishProblems, local subreddits, r/broadband), LinkedIn for B2B, Nextdoor for hyperlocal.
Offline Marketing
Offline Marketing
Leaflet Drops: Target new-build estates (likely FTTP), areas with recent FTTP deployment. ~£30-50 per 1,000 leaflets.
Local Events: Business networking, local fairs, sponsor sports teams.
Word of Mouth: Referral programme: £25 credit for referrer and referee. This is your best acquisition channel long-term.
13.5 Pricing Strategy
Don't be the cheapest. Be the fairest.
"No surprises" pricing:
- No mid-contract price rises (or CPI only, clearly stated)
- No setup fees (absorb into monthly cost)
- No leaving fees outside minimum term
- Same price in and out of contract
- Static IP included (differentiator)
- Router included (basic model)13.6 Customer Acquisition Targets
| Month | Marketing Spend | New Customers | CAC |
|---|---|---|---|
| 1 | £300 | 3 | £100 |
| 2 | £300 | 4 | £75 |
| 3 | £300 | 5 | £60 |
| 6 | £400 | 6 | £67 |
| 12 | £500 | 8 | £63 |
Target CAC: Under £75 · Target LTV: £400+ · LTV:CAC ratio: 5:1 or better
Operations
Support & Helpdesk Setup
14.1 Support Tiers
Customer-Facing
- Router reboots, basic troubleshooting
- Account queries, billing
- Speed concerns (check line stats)
- Order status updates
- 80% of issues resolved here
Technical
- Line faults (sync speed, errors, SNR)
- Speed issues beyond basic
- Provisioning problems
- Escalate to wholesaler
Network
- Physical line faults
- Exchange equipment issues
- Engineer visits
- Raised by wholesaler for you
14.2 Helpdesk Software Options
| Software | Cost | Best For |
|---|---|---|
| Freshdesk | Free (2 agents) | Starting out — excellent free tier |
| Zoho Desk | Free (3 agents) | Budget-friendly |
| Zammad | Free (self-hosted) | Full control, open source |
| osTicket | Free (self-hosted) | Simple, lightweight |
| Zendesk | From £15/agent/mo | Professional, scalable |
| Splynx Built-in | Included | If already using Splynx |
14.3 Support Channels & Hours
Must Have (Day 1)
- Email support
- Ticket system
- Service status page
Should Have (Month 3+)
- Phone support (VoIP)
- Live chat on website
Nice to Have (50+ customers)
- WhatsApp Business
- Customer community forum
14.5 Knowledge Base Articles
14.6 Fault Diagnosis Workflow
Customer reports slow speed / no connection
↓
1. Check wholesaler portal for known outages
↓
2. Check line stats (sync speed, SNR, errors)
↓
3. Ask customer: lights on router? Tried reboot?
↓
4. If router issue → guide through reset/reboot
↓
5. If line issue → check if sync speed matches expected
↓
6. If sync low → raise fault with wholesaler
↓
7. Wholesaler runs line test remotely
↓
8. If fault found → Openreach engineer booked
↓
9. Keep customer updated throughoutCompliance
Speed Testing & Ofcom Compliance
15.1 Speed Metrics You Must Quote
| Metric | Definition |
|---|---|
| Download speed | Must state achievable speed |
| Upload speed | Must state achievable speed |
| "Up to" speeds | Maximum technically possible |
| Average speed | Average at peak time (8-10pm) |
| Min. guaranteed | Below this, customer can exit contract |
Key Rules
- Headline speed must be achievable by at least 50% of customers at peak time
- Must provide estimated speed before sign-up
- Minimum guaranteed speed must be stated
- If actual speed falls below minimum and you can't fix within 30 days → customer can leave penalty-free
- Peak time is 8pm-10pm for residential broadband
15.3 Self-Hosted Speed Test
# LibreSpeed - self-hosted speed test
# https://github.com/librespeed/speedtest
docker run -d \
--name speedtest \
-p 8080:80 \
-e MODE=standalone \
-e TITLE="YourISP Speed Test" \
-e TELEMETRY=true \
ghcr.io/librespeed/speedtest
# Gives you: branded speed test, test results data, embeddable15.5 Ofcom Compliance Checklist for Speeds
15.6 Key Facts Sheet Template
KEY FACTS - [Plan Name]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Service: Fibre Broadband (FTTP)
Download speed: 73-80 Mbps (estimated for your line)
Upload speed: 18-20 Mbps (estimated for your line)
Min. guaranteed: 60 Mbps download / 15 Mbps upload
Monthly price: £35.00 (inc. VAT)
Setup fee: £0.00
Contract term: 12 months
After min. term: Rolls to 30-day rolling at same price
Early exit fee: Remaining months × £35.00
Provider: Your ISP Ltd
Complaints: complaints@yourisp.co.uk / 0800 XXX XXXX
ADR scheme: CISAS (cedr.com/consumer/cisas)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Pricing
Pricing Tiers & Margin Analysis
16.1 Residential — FTTC Products
| Plan | Speed | Wholesale | Your Price | Margin | % |
|---|---|---|---|---|---|
| Essential | 40/10 Mbps | £14 | £27.99 | £13.99 | 50% |
| Standard | 55/10 Mbps | £15 | £29.99 | £14.99 | 50% |
| Fast | 80/20 Mbps | £17 | £32.99 | £15.99 | 48% |
16.1 Residential — FTTP Products (Full Fibre)
| Plan | Speed | Wholesale | Your Price | Margin | % |
|---|---|---|---|---|---|
| Fibre 36 | 36/10 Mbps | £16 | £28.99 | £12.99 | 45% |
| Fibre 80 | 80/20 Mbps | £18 | £34.99 | £16.99 | 49% |
| Fibre 160 | 160/30 Mbps | £21 | £39.99 | £18.99 | 47% |
| Fibre 500 | 500/75 Mbps | £27 | £49.99 | £22.99 | 46% |
| Fibre 900 | 900/110 Mbps | £33 | £59.99 | £26.99 | 45% |
Add-ons
| Add-on | Wholesale | Your Price | Margin |
|---|---|---|---|
| Static IPv4 | £2 | £4.99 | £2.99 |
| /29 IP block (5 usable) | £8 | £14.99 | £6.99 |
| Enhanced support SLA | £0 | £5.99 | £5.99 |
| WiFi mesh unit (sale) | £45 | £79.99 | £34.99 |
16.2 Business Pricing
| Plan | Speed | Wholesale | Your Price | Margin | % |
|---|---|---|---|---|---|
| Business 80 | 80/20 Mbps | £20 | £44.99 | £24.99 | 56% |
| Business 160 | 160/30 Mbps | £24 | £54.99 | £30.99 | 56% |
| Business 500 | 500/75 Mbps | £30 | £69.99 | £39.99 | 57% |
| Business 900 | 900/110 Mbps | £36 | £84.99 | £48.99 | 58% |
| Leased Line 100 | 100/100 Mbps | £200 | £299 | £99 | 33% |
Business packages include: static IP, priority support, 4-hour SLA response.
16.3 Comparison with Major Providers (2025)
| Provider | 80Mbps FTTP | 500Mbps FTTP | 900Mbps+ |
|---|---|---|---|
| BT | £32.99 | £42.99 | £54.99 |
| Sky | £29.00 | £39.00 | £46.00 |
| Plusnet | £27.99 | £36.99 | N/A |
| Vodafone | £27.00 | £33.00 | £38.00 |
| You | £34.99 | £49.99 | £59.99 |
Key Insight
You'll be more expensive than big players on headline price. Compete on: no mid-contract price rises, real human UK support, no throttling, static IP included, transparency, local/niche expertise.
16.4 Revenue Model at Scale
| Customers | Avg Revenue | Monthly Revenue | Monthly Costs | Monthly Profit |
|---|---|---|---|---|
| 50 | £37 | £1,850 | £1,400 | £450 |
| 100 | £37 | £3,700 | £2,300 | £1,400 |
| 200 | £37 | £7,400 | £4,100 | £3,300 |
| 500 | £37 | £18,500 | £10,500 | £8,000 |
| 1,000 | £37 | £37,000 | £20,000 | £17,000 |
16.5 Contract Strategy
Option A: 12-month minimum term
- Lower perceived commitment, higher churn but easier to sell
- ETC = remaining months × monthly charge
Option B: 24-month minimum term with lower price
- £2-3/month discount vs 12-month
- Better for cash flow planning
Option C: 30-day rolling (premium)
- £3-5/month premium vs 12-month
- Attracts customers who hate contracts
Recommended: Offer all three, default to 12-monthIntegration
API Integration Examples
These are illustrative examples based on typical wholesale API patterns. Always refer to your wholesaler's actual API documentation.
17.1 ICUK API Client (Python)
17.1 ICUK API Client (Python)
import requests
import json
class ICUKClient:
"""Example wholesale broadband API client"""
def __init__(self, api_key, api_secret):
self.base_url = "https://api.icuk.net/api/v1"
self.session = requests.Session()
self.session.headers.update({
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json',
'Accept': 'application/json'
})
def check_availability(self, postcode, address_id=None):
"""Check broadband availability at a postcode/address"""
params = {'postcode': postcode}
if address_id:
params['address_id'] = address_id
response = self.session.get(
f"{self.base_url}/broadband/availability", params=params
)
return response.json()
def search_address(self, postcode):
"""Search for addresses at a postcode"""
response = self.session.get(
f"{self.base_url}/broadband/address-search",
params={'postcode': postcode}
)
return response.json()
def place_order(self, order_data):
"""Place a broadband order"""
response = self.session.post(
f"{self.base_url}/broadband/orders", json=order_data
)
return response.json()
def get_line_details(self, service_id):
"""Get line details including sync speed, SNR, etc."""
response = self.session.get(
f"{self.base_url}/broadband/services/{service_id}"
)
return response.json()
def get_usage(self, service_id, start_date, end_date):
"""Get bandwidth usage for a service"""
response = self.session.get(
f"{self.base_url}/broadband/services/{service_id}/usage",
params={'start': start_date, 'end': end_date}
)
return response.json()
def raise_fault(self, service_id, fault_data):
"""Raise a fault/ticket with the wholesaler"""
response = self.session.post(
f"{self.base_url}/broadband/services/{service_id}/faults",
json=fault_data
)
return response.json()
# Usage example
client = ICUKClient(api_key='your_api_key', api_secret='your_api_secret')
# 1. Search for addresses
addresses = client.search_address('SW1A 1AA')
# 2. Check availability
if addresses:
availability = client.check_availability('SW1A 1AA', addresses[0]['id'])
for product in availability.get('products', []):
print(f" {product['name']}: {product['downstream_speed']}/"
f"{product['upstream_speed']} Mbps - £{product['monthly_cost']}/mo")
# 3. Place an order
order = client.place_order({
'address_id': addresses[0]['id'],
'product_id': 'FTTP_80_20',
'customer': {
'title': 'Mr', 'first_name': 'John', 'last_name': 'Smith',
'email': 'john@example.com', 'phone': '07700900000'
},
'go_live_date': '2026-04-01'
})
17.3 Webhook Handler for Order Updates
17.3 Webhook Handler for Order Updates
from flask import Flask, request, jsonify
import hmac, hashlib
app = Flask(__name__)
WEBHOOK_SECRET = 'your_webhook_secret'
@app.route('/webhooks/broadband', methods=['POST'])
def handle_broadband_webhook():
"""Handle order status updates from wholesaler"""
# Verify webhook signature
signature = request.headers.get('X-Webhook-Signature')
payload = request.get_data()
expected = hmac.new(
WEBHOOK_SECRET.encode(), payload, hashlib.sha256
).hexdigest()
if not hmac.compare_digest(signature, expected):
return jsonify({'error': 'Invalid signature'}), 403
data = request.json
event_type = data.get('event_type')
order_id = data.get('order_id')
if event_type == 'order.accepted':
notify_customer(order_id,
f"Your broadband order has been accepted. "
f"Expected go-live: {data.get('estimated_activation')}")
elif event_type == 'order.activated':
notify_customer(order_id,
"Your broadband is now live! 🎉 "
"Connect your router and you should be online in minutes.")
start_billing(order_id)
elif event_type == 'order.delayed':
notify_customer(order_id,
f"Delay with your order. New date: {data.get('new_estimated_date')}. "
f"Reason: {data.get('delay_reason')}")
return jsonify({'status': 'ok'}), 200
if __name__ == '__main__':
app.run(port=5000)
17.4 Splynx + GoCardless Billing Integration
17.4 Splynx + GoCardless Billing Integration
import requests
from datetime import datetime
class SplynxBilling:
"""Integration between wholesaler events and Splynx billing"""
def __init__(self, splynx_url, api_key):
self.base_url = f"{splynx_url}/api/2.0"
self.session = requests.Session()
self.session.headers.update({
'Authorization': f'Splynx-EA (api_key={api_key})'
})
def create_customer(self, customer_data):
"""Create customer in Splynx"""
return self.session.post(
f"{self.base_url}/admin/customers/customer",
json={
'name': customer_data['first_name'],
'surname': customer_data['last_name'],
'email': customer_data['email'],
'phone': customer_data['phone'],
'street_1': customer_data['address_line_1'],
'city': customer_data['city'],
'zip_code': customer_data['postcode'],
'status': 'active',
'billing_type': 'recurring',
'partner_id': 1
}
).json()
def create_internet_service(self, customer_id, plan_data):
"""Create internet service for customer"""
return self.session.post(
f"{self.base_url}/admin/customers/customer/"
f"{customer_id}/internet-services",
json={
'plan_id': plan_data['splynx_plan_id'],
'login': plan_data['pppoe_username'],
'password': plan_data['pppoe_password'],
'status': 'active',
'start_date': datetime.now().strftime('%Y-%m-%d'),
'description': plan_data['product_name']
}
).json()
def create_invoice(self, customer_id, amount, description):
"""Generate invoice"""
return self.session.post(
f"{self.base_url}/admin/finance/invoices",
json={
'customer_id': customer_id,
'date_created': datetime.now().strftime('%Y-%m-%d'),
'items': [{
'description': description,
'quantity': 1,
'unit_price': amount,
'tax_percent': 20 # VAT
}]
}
).json()Reference
Appendices
Appendix A: Useful Links
Appendix A: Useful Links
| Resource | URL |
|---|---|
| Ofcom CP Registration | ofcom.org.uk |
| ICO Registration | ico.org.uk/registration |
| Companies House | gov.uk |
| CISAS (ADR) | cedr.com/consumer/cisas |
| GoCardless | gocardless.com |
| ICUK Partner | icuk.net |
| Gamma Partner | gamma.co.uk |
| Entanet | enta.net |
| Splynx | splynx.com |
| Openreach Products | openreach.com |
| RIPE NCC | ripe.net |
Appendix B: Ready to Launch Checklist
Appendix B: Ready to Launch Checklist
Legal & Regulatory
Wholesale & Technical
Website & Marketing
Support & Testing
Appendix C: Common Pitfalls & Prevention
Appendix C: Common Pitfalls & Prevention
| Pitfall | Impact | Prevention |
|---|---|---|
| Underpricing | Margin too thin to sustain | Don't compete on price with BT/Sky |
| No complaints process | Ofcom enforcement | Set up before first customer |
| Ignoring OTS | Non-compliance, fines | Ensure wholesaler handles OTS |
| No min speed guarantee | Customer exits, complaints | Use wholesaler's line checker |
| Cash flow issues | Can't pay wholesaler | Collect via DD, maintain buffer |
| Over-promising speeds | Complaints, ADR cases | Use actual line estimates only |
| No status page | Support overwhelmed | Set up free status page |
| Manual everything | Doesn't scale | Automate via API from day one |
| Ignoring GDPR | ICO fines | Privacy policy + data processes |
| No test orders | First customer = guinea pig | Test thoroughly before launch |
Appendix D: Growth Path
Appendix D: Growth Path
Phase 1: Side Hustle (0-50 customers)
- One-person operation, part-time support
- Single wholesaler, basic billing system
- Target: Prove the model, refine processes
Phase 2: Small Business (50-200 customers)
- Consider part-time support hire
- Automated provisioning and billing
- Add VoIP/additional services
- Target: Sustainable revenue, regular growth
Phase 3: Growing ISP (200-500 customers)
- Full-time support staff (1-2 people)
- Second wholesaler for redundancy
- Business broadband focus for margins
- Target: Meaningful profit, market presence
Phase 4: Established ISP (500-1000+ customers)
- Small team (3-5 people)
- Consider RIPE membership & own IP space
- Consider direct Openreach relationship
- Target: Serious business, potential acquisition target
Appendix E: Glossary
Appendix E: Glossary
| Term | Definition |
|---|---|
| ADSL | Asymmetric Digital Subscriber Line — legacy broadband over copper (up to 24Mbps) |
| Aggregator | Wholesale company that aggregates network access for resellers |
| AS Number | Autonomous System Number — identifies a network on the internet |
| Backhaul | The connection between local access network and the internet |
| BGP | Border Gateway Protocol — internet routing protocol |
| CGNAT | Carrier-Grade NAT — sharing public IPs (to be avoided) |
| CP | Communications Provider |
| DHCP | Dynamic Host Configuration Protocol — assigns IP addresses |
| GEA | Generic Ethernet Access — Openreach's fibre product |
| IPoE | IP over Ethernet — modern broadband connection method |
| LLU | Local Loop Unbundling — installing equipment in BT exchanges |
| NTE | Network Termination Equipment — box on customer's wall |
| ONT | Optical Network Terminal — FTTP box on customer's wall |
| OTS | One Touch Switch — Ofcom's switching process |
| PPPoE | Point-to-Point Protocol over Ethernet — broadband connection method |
| SOGEA | Single Order GEA — broadband without WLR |
| SNR | Signal-to-Noise Ratio — line quality indicator |
| WLR | Wholesale Line Rental — traditional phone line |
About This Guide
Compiled in March 2026 as a comprehensive resource for anyone looking to start a white-label ISP in the UK. While every effort has been made to ensure accuracy, regulations, pricing, and available products change frequently.
Always Verify
- Current Ofcom regulations at ofcom.org.uk
- Wholesaler pricing directly with the wholesaler
- Legal requirements with a qualified solicitor
- Tax obligations with an accountant
This guide is not legal or financial advice. It's a practical starting point for your research.
Last updated: March 2026