Road transport in Francophone Africa (UEMOA, CEMAC) remains 95% paper in 2026: paper waybill (LV), physical signature delivery, WhatsApp invoice photo as proof. Consequences: 12% admin time lost, frequent disputes, deferred payments. Digitalization (eCMR + ePOD) changes the game.
TL;DR
- eCMR (electronic Consignment Note): digital waybill signed electronically.
- ePOD (electronic Proof of Delivery): delivery photo + GPS + mobile signature.
- Stack: Next.js + driver mobile app + Postgres + DocuSign/Yousign.
- Benefits: -70% disputes, +30% billing velocity, simplified customs compliance.
eCMR + ePOD workflow
`
[Shipper creates mission]
↓
[Digital eCMR generation signed]
↓
[Carrier assignment]
↓
[Driver app: load confirmation (photos)]
↓
[GPS tracking during trip]
↓
[Destination arrival]
↓
[ePOD: photo + mobile signature + GPS time]
↓
[Auto delivery confirmation to shipper]
↓
[Auto billing + Wave/Bank payment]
`
Data model
`prisma
model Shipment {
id String @id @default(cuid())
shipperId String
consigneeId String
carrierId String
driverId String?
vehicleId String?
description String
weightKg Int
volumeM3 Float?
packagingType String
declaredValue Int
pickupAddress String
pickupGps Json
pickupScheduled DateTime
deliveryAddress String
deliveryGps Json
deliveryScheduled DateTime
ecmrPdfUrl String?
ecmrSignedAt DateTime?
epodPhotos String[]
epodSignedBy String?
epodSignedAt DateTime?
epodGpsLat Float?
epodGpsLng Float?
status String
pricing Json
paymentStatus String
}
model Vehicle {
id String @id @default(cuid())
carrierId String
registration String @unique
type String
capacityKg Int
driverIds String[]
insuranceExpiry DateTime
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
technicalControlExpiry DateTime
}
`
Driver mobile app
`tsx
'use client';
export default function DriverShipmentPage({ params }) {
const [shipment, setShipment] = useState(null);
const [gps, setGps] = useState(null);
useEffect(() => {
navigator.geolocation.watchPosition(setGps, console.error, { enableHighAccuracy: true });
}, []);
async function confirmPickup() {
const photos = await capturePhotos(['cargo', 'odometer', 'documents']);
await fetch(/api/shipments/${params.id}/pickup, {
method: 'POST',
body: JSON.stringify({
photos,
gpsLat: gps.coords.latitude,
gpsLng: gps.coords.longitude,
timestamp: new Date().toISOString(),
}),
});
}
async function confirmDelivery() {
const photos = await capturePhotos(['cargo_unloaded', 'consignee', 'site']);
const signature = await captureSignature();
await fetch(/api/shipments/${params.id}/delivery, {
method: 'POST',
body: JSON.stringify({
photos,
signature,
signedBy: signedByName,
gpsLat: gps.coords.latitude,
gpsLng: gps.coords.longitude,
}),
});
}
return (
{shipment?.status === 'ASSIGNED' && ( )} {shipment?.status === 'IN_TRANSIT' && ( )}Mission #{shipment?.id}
);
}
`
Real case — Senegal carrier
| Metric | Before | After 12 months |
|---|---|---|
| Digital waybills | 0% | 95% |
| Post-delivery billing delay | 8-15d | 24h |
| Disputes/month | 12 | 4 |
| Recovery <30d | 65% | 89% |
| Monthly revenue | 45M XOF | 62M XOF |
FAQ
Q: eCMR legally recognized?
A: CMR Convention signed electronically = valid. UEMOA recognizes OHADA transport uniform act. CEMAC in progress.
Q: Driver app cost?
A: ~5K XOF/driver/month SaaS, or free self-host Next.js after initial dev.
Conclusion
eCMR + ePOD = professional 2026 road transport standard. 5-15M XOF clean setup investment. 6-12 month ROI on 20+ truck carrier.
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.