Setup

Network, pricing & roles

Changes are versioned with an effective date and logged in the audit trail.

Route R1 · Western corridor

Towns

CodeTownTypeZoneKm from NBOBranch / agentsHoursGPSDoor delivery

Base rates (KSh) · by zone difference × chargeable weight

Effective from
Zone differenceExample lanesSmall ≤ 2 kgMedium ≤ 10 kgLarge ≤ 25 kgPer kg over 25
Zones: 0 = Nairobi · 1 = Naivasha, Nakuru · 2 = Eldoret, Soy · 3 = Matunda, Kitale, Kapenguria. Lane overrides (for example NBO→KTL promotional pricing) and seller-tier discounts sit on top of the base card.

Seller tier discounts

TierMonthly volumeDiscount on baseCOD feePayout hold
A1,000+24h
B300–99948h
C · new< 30072h

Delivery options

COD

Cover & liability

Commission rules

Applies toEventBasisRateEarned whenEffective
All authorised agentsOrigin bookingDelivery feeParcel final state1 Nov 2026
All authorised agentsDestination releaseDelivery feeCollected1 Nov 2026
Kitale Mega Agent (override)Destination releaseDelivery feeCollected1 Nov 2026
RidersDoor deliveryFlat per dropDelivered (OTP)1 Nov 2026

Uncollected parcels

Delivery attempts

Release & money controls

Permission matrix

Permissions are scoped to a branch where it applies
PermissionSuper adminHub managerBooking agentPickup agentDriver / riderSellerFinance
EventToChannelTemplate
BookedReceiverSMSTAJ: Parcel from {sender} booked to {town}. Track: {short_url} Ref {tracking}
DispatchedReceiverSMSTAJ: Your parcel {tracking} is on the way to {town}.
Ready for collectionReceiverSMSTAJ: Parcel {tracking} ready at {pickup_point} ({hours}). Code {collection_code}. {cod_line}
COD lineReceiverSMSPay KSh {cod} to Paybill {paybill}, Acc {tracking} before collection.
Out for deliveryReceiverSMSTAJ: {rider} is delivering {tracking} today. Give OTP {otp} only on receipt.
DeliveredReceiver + seller webhookSMS / APITAJ: Parcel {tracking} delivered {time}. Thank you.
Uncollected reminderReceiverSMSTAJ: Parcel {tracking} waiting at {pickup_point} {days} days. Storage applies from day {storage_day}.