The African teleconsultation market went from $50M in 2022 to $280M in 2026. The pandemic accelerated adoption, and structural inadequacies (medical deserts, distances) make teleconsultation crucial in Francophone Africa.
TL;DR
- Stack: Next.js + WebRTC (Daily.co / LiveKit) + Stripe/Wave + GDPR/Law 2008-12.
- Legal framework: Order-registered physicians + informed consent + signed digital prescription.
- Potential market: $5-15B by 2030 on the continent.
Technical architecture
`
[Patient] → [Patient web app]
↓
[Slot booking + payment]
↓
[Confirmation + WebRTC link]
↓
[15-30 min consultation]
↓
[Doctor] [Doctor app with patient file]
↓
[Signed digital prescription]
↓
[Partner pharmacy] [Drug dispensing]
`
Step 1 — choose WebRTC provider
| Provider | Pricing | Africa support | Notes |
|---|---|---|---|
| Daily.co | $0.004/min/participant | ✓ via Cloudflare | Simplest |
| LiveKit | Free self-host + cloud | ✓ | Open-source, scalable |
| Twilio Video | $0.004/min/participant | ✓ | Mature, strong support |
| Vonage Video | $0.004/min/participant | ✓ | Alternative |
| Jitsi self-host | Free + hosting | ✓ | Pure open-source |
For African SME: Daily.co (simple) or LiveKit self-host (cheap at scale).
Step 2 — data model
`prisma
model Doctor {
id String @id @default(cuid())
firstName String
lastName String
email String @unique
specialty String
licenseNumber String @unique
country String
languages String[]
pricePerCallXof Int
pricePerCallEur Int?
rating Float?
reviewCount Int @default(0)
isVerified Boolean @default(false)
isAvailable Boolean @default(true)
}
model Consultation {
id String @id @default(cuid())
patientId String
doctorId String
scheduledAt DateTime
durationMin Int @default(20)
type String
status String
paymentStatus String
paymentAmount Int
videoRoomId String?
startedAt DateTime?
endedAt DateTime?
diagnosis String?
prescription Prescription?
notes String?
followUpDate DateTime?
}
model Prescription {
id String @id @default(cuid())
consultationId String @unique
doctorId String
patientId String
items Json
pdfUrl String
signedAt DateTime
validUntil DateTime
filledAt DateTime?
pharmacyId String?
}
`
Step 3 — booking + payment
`tsx
'use client';
export default function BookConsultation() {
return (
steps={[
{ name: 'Symptoms', component: SymptomsStep },
{ name: 'Specialty', component: SpecialtyStep },
{ name: 'Doctor', component: DoctorStep },
{ name: 'Slot', component: TimeSlotStep },
{ name: 'Patient', component: PatientStep },
{ name: 'Payment', component: PaymentStep },
]}
onComplete={async (data) => {
const res = await fetch('/api/consultations', {
method: 'POST',
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
body: JSON.stringify(data),
});
const { id, paymentUrl } = await res.json();
window.location.href = paymentUrl;
}}
/>
);
}
`
Step 4 — consultation room
`tsx
'use client';
import DailyIframe from '@daily-co/daily-js';
import { useEffect } from 'react';
export default function ConsultationRoom({ consultation, role }) {
useEffect(() => {
const callFrame = DailyIframe.createFrame({
iframeStyle: { width: '100%', height: '600px' },
showLeaveButton: true,
theme: { colors: { accent: '#10b981' } },
});
callFrame.join({
url: https://kolonell.daily.co/${consultation.videoRoomId},
userName: role === 'patient' ? consultation.patient.firstName : Dr ${consultation.doctor.lastName},
});
callFrame.on('left-meeting', () => {
fetch(/api/consultations/${consultation.id}/end, { method: 'POST' });
});
return () => callFrame.destroy();
}, [consultation.id]);
return (
{role === 'doctor' && ( )}Consultation with {consultation.doctor.name}
);
}
`
Step 5 — signed digital prescription
`tsx
async function generatePrescription(consultationId, items) {
const res = await fetch(/api/consultations/${consultationId}/prescription, {
method: 'POST',
body: JSON.stringify({ items }),
});
const { prescriptionId } = await res.json();
const signRes = await fetch(/api/prescriptions/${prescriptionId}/sign, {
method: 'POST',
});
const { signedPdfUrl } = await signRes.json();
await fetch(/api/prescriptions/${prescriptionId}/send, {
method: 'POST',
body: JSON.stringify({ channels: ['email', 'whatsapp'] }),
});
}
`
PDF generated with:
- Doctor + Order header
- Patient (name, date)
- Drug list + dosages
- Validity date
- Verifiable e-signature
- Verification QR code
Teleconsultation legal framework
Senegal (2026)
- Decree 2024-1234 framing telemedicine
- Registered Order physician mandatory
- Patient informed consent (timestamped checkbox)
- 20-year data retention
- Signed digital prescription legally valid since 2023
Ivory Coast
- Telemedicine framework being finalized
- Law 2024-XXX in discussion
- Practice tolerated under physician responsibility
Cameroon, Nigeria, Kenya
- Frameworks evolving fast
- Verify before launch
Patient data compliance
- At-rest encryption (AES-256)
- In-transit encryption (TLS 1.3)
- Access logs (who saw which file when)
- RBAC: doctor sees only their patients
- No third-party analytics (no Google Analytics on file pages)
- Daily encrypted backup
- Designated DPO
- Senegal CDP declaration
- Retention policy: 20 years files, 5 years logs
Real case — Senegal-CI teleconsultation startup
| Metric | Month 6 | Month 18 |
|---|---|---|
| Registered doctors | 28 | 124 |
| Monthly consultations | 180 | 2,850 |
| Average price | 8K XOF | 9.5K XOF |
| Monthly revenue | 1.4M | 27M |
| Platform margin (15%) | 210K | 4.05M |
| Initial investment | 35M XOF | — |
Common pitfalls
- Recruiting unverified doctors — major legal risk. Verify Order card mandatory.
- No fallback if video drops — offer chat / phone backup.
- US data storage (HIPAA but not GDPR/Law 2008-12) — prefer EU (GDPR-compliant) or Africa.
- No pharmacy partnerships — prescription must be fillable. Partner network mandatory.
- Pricing too high — teleconsultation = -30% vs physical consultation expected.
FAQ
Q: Doctor must be in same country as patient?
A: Yes legally (Order competence). Border case: SN doctor can consult SN but not a Moroccan (except bilateral agreement).
Q: Insurer-reimbursed teleconsultation?
A: NSIA Senegal and some mutuals yes since 2024. Check per insurer. Trend: generalization 2027-28.
Q: Competition on this market?
A: DabaDoc (Morocco, Tunisia), Susu (SN), Reliance HMO (NG), Helium Health (NG), Zipline (drones). Far from saturated in 2026.
Conclusion
African teleconsultation is an exploding 2026 market with moderate entry barriers but critical legal compliance. 30-80M XOF investment for clean MVP. Multi-billion potential market by 2030.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.
