Tumio

Developers

Build logistics into your platform

Use the Tumio API to create deliveries, track shipments, validate locations, and receive live status updates directly inside your own system.

POST /v1/deliveries
bash
curl -X POST https://tumio.africa/api/v1/deliveries \
  -H "Authorization: Bearer tm_live_••••" \
  -d '{
    "order_id": "ORD-10294",
    "customer_name": "Amina Otieno",
    "phone": "+254712345678",
    "dropoff": {
      "lat": -1.2697,
      "lng": 36.8025,
      "notes": "Gate 3, reception"
    }
  }'
API-first
Webhook-driven
Multi-city ready
Built for scale

Core API

Everything you need, in one API

A focused REST surface for the entire delivery lifecycle — from quote to proof-of-delivery.

POST
/v1/deliveries

Create deliveries

Submit a delivery and let Tumio handle routing, assignment, and execution.

POST
/v1/deliveries/bulk

Bulk create

Push hundreds of deliveries in one request — ideal for batch fulfillment.

POST
/v1/pricing/estimate

Pricing estimates

Quote delivery fees in real time before committing an order.

GET
/v1/deliveries/{id}

Track status

Poll or stream live status, GPS, and ETA for any delivery.

POST
/v1/deliveries/{id}/retry

Retry & return

Re-attempt failed deliveries or schedule a return to origin.

POST
/v1/webhooks

Webhook events

Subscribe to lifecycle events and keep your system in sync automatically.

Sample request

Create your first delivery

One endpoint, one payload. Tumio handles routing, dispatch, and tracking from there.

POST
/v1/deliveries
request.sh
bash
curl -X POST https://tumio.africa/api/v1/deliveries \
  -H "Authorization: Bearer tm_live_••••••••••••" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order_8f3c1a" \
  -d '{
    "order_id": "ORD-10294",
    "customer_name": "Amina Otieno",
    "phone": "+254712345678",
    "pickup": {
      "address": "Tumio Hub, Westlands, Nairobi",
      "lat": -1.2676,
      "lng": 36.8108
    },
    "dropoff": {
      "address": "Riverside Drive 12, Nairobi",
      "lat": -1.2697,
      "lng": 36.8025,
      "notes": "Gate 3, leave with reception"
    },
    "package": { "type": "small", "weight_kg": 1.2 }
  }'
200 OK
application/json
response.json
json
{
  "id": "dlv_01HF8N2K3PQRSTUVWXYZ",
  "tracking_code": "TM-9F4C2A",
  "status": "created",
  "estimated_fee": { "amount": 350, "currency": "KES" },
  "estimated_pickup_time": "2026-04-18T14:22:00Z",
  "tracking_url": "https://tumio.africa/track/TM-9F4C2A"
}

Address intelligence

Built for real-world addresses

African addresses don't fit a single schema. Tumio accepts whatever your customer can provide — and turns it into something a driver can actually deliver to.

  • GPS coordinates. Submit raw lat/lng from any source.
  • Dropped pins. Parse Google Maps, WhatsApp, and Plus Code links.
  • Landmark notes. Free-text hints stored alongside the address.
  • Address confidence scoring. Every address gets a 0–100 deliverability score.
  • Reusable address IDs. Save once, ship to it forever — no re-validation needed.
POST /v2/address/validate
json
{
  "input": "https://maps.app.goo.gl/abc123",
  "context_city": "Nairobi"
}

// → response
{
  "address_id": "addr_01HF...",
  "lat": -1.2697,
  "lng": 36.8025,
  "formatted": "Riverside Drive 12, Nairobi",
  "confidence": 92,
  "source": "google_pin"
}

Webhooks

Keep your system in sync

Subscribe once. Tumio pushes signed events to your endpoint as the delivery moves through every stage.

delivery.created

A new delivery was registered.

driver.assigned

A driver has been matched to the delivery.

delivery.picked_up

The driver has collected the package.

delivery.in_transit

The package is on its way to the dropoff.

delivery.delivered

Package successfully handed over to the recipient.

delivery.failed_attempt

An attempt failed — retry or return scheduled.

delivery.delivered_to_locker

Package dropped at a locker or PUDO point.

delivery.ready_for_pickup

Recipient can pick up at the locker.

delivery.returned

Package returned to the merchant.

POST https://your-app.com/webhooks/tumio
json
{
  "event": "delivery.delivered",
  "id": "evt_01HF9M2N4PQRS",
  "created_at": "2026-04-18T15:47:12Z",
  "data": {
    "delivery_id": "dlv_01HF8N2K3PQRSTUVWXYZ",
    "order_id": "ORD-10294",
    "status": "delivered",
    "delivered_at": "2026-04-18T15:46:58Z",
    "proof": { "photo_url": "https://tumio.africa/cdn/pod/..." }
  }
}

Every payload is signed with HMAC-SHA256. Verify the Tumio-Signature header before processing.

Embedded workflow

Built to fit your workflow

Your team never leaves your platform. Tumio runs in the background, your dashboard stays the source of truth.

01

Merchant stays in their own system

Customers check out, orders are placed — all on your platform under your brand.

02

Tumio runs in the background

Routing, driver assignment, and dispatch are handled by our infrastructure.

03

Updates flow back via API & webhooks

Status, GPS, and proof-of-delivery stream into your existing systems.

04

No need to leave the merchant platform

Your operators manage everything from the tools they already use.

Sandbox

Test before you go live

A full sandbox environment so you can build, break, and iterate without touching production.

Sandbox environment

Full isolated environment for development. Use test API keys with the rc_test_ prefix.

Test deliveries

Create simulated deliveries without affecting production drivers or billing.

Webhook simulation

Trigger any event manually from the dashboard to test your integration.

Integration logs

Inspect every request, response, and webhook delivery in real time.

.env
env
# Test mode
TUMIO_API_KEY=tm_test_••••••••••••
TUMIO_BASE_URL=https://tumio.africa/api

# Live mode
# TUMIO_API_KEY=tm_live_••••••••••••

Security & reliability

Built for reliable integrations

Production guarantees from day one — auth, rate limits, retries, and versioning.

API keys

Scoped, rotatable keys with separate live and test environments.

Rate limiting

Predictable per-key limits with clear headers and graceful 429 responses.

Idempotency support

Send Idempotency-Key headers to safely retry any mutating request.

Webhook retries

Automatic exponential backoff on failed webhook deliveries with HMAC signatures.

Versioned APIs

Stable v1 and v2 endpoints. Breaking changes ship behind new versions only.

Start building with Tumio

Get an API key in minutes. Ship logistics features in days.