TLIG MOVE API docs

TLIG MOVE Shipping API v1

Create shipments, price deliveries, check your wallet and track parcels — the same engine that powers the TLIG Move app. Orders you create enter the live dispatch queue and are picked up by real riders.

Base URL
https://tligmove.com/api/v1
⚠️ Wallet model — every created order debits your developer wallet (delivery fee + service fee). Top up via TLIG Move support before going live.

Quickstart

  1. Create a developer account at the developer portal.
  2. Create an API key (shown once) and fund your wallet.
  3. Price a shipment with /quote, then create it with /orders.
  4. Track with /track/{reference-or-pickupCode}. The pickup code is revealed once a rider accepts.

Authentication

All endpoints except /ping require a secret key in the Authorization header. Keys are created in the portal, stored hashed, and can be revoked at any time.

Authorization: Bearer tlig_sk_xxxxxxxx...

Treat keys like passwords. If one leaks, revoke it in the portal immediately.

POST /quote

Live shipping cost using exact platform rates (₦300/km + 3.5% service fee). No wallet required.

FieldTypeNotes
deliveryTypestringFOOT · BIKE · CAR · VAN · INTERSTATE (default BIKE)
distanceKmnumberor provide coordinates below (min 1 km billed)
pickup.lat/lngnumberNested form — or flat pickupLat/pickupLng
dropoff.lat/lngnumberNested form — or flat dropoffLat/dropoffLng

POST /orders

Creates a real shipment and debits your wallet atomically. Status starts at PENDING; when a rider accepts, a 6-digit pickupCode is issued for hand-off confirmation.

FieldRequiredNotes
category✔e.g. PARCEL · FOOD · GROCERY · DOCUMENTS (see /categories)
deliveryType✔FOOT · BIKE · CAR · VAN · INTERSTATE
pickupAddress / pickupLat / pickupLng✔Flat or nested (pickup:{address,lat,lng})
dropoffAddress / dropoffLat / dropoffLng✔Flat or nested
receiverName / receiverPhone✔Who receives the parcel
senderName / senderPhone—Defaults to your company name
description / weightKg / distanceKm—distanceKm overrides computed distance
# 201 Created
{
  "ok": true,
  "order": {
    "reference": "TLG-DBBAF259",   // save this — used to track & fetch
    "pickupCode": null,             // appears after rider accepts
    "status": "PENDING", "total": 1124.01,
    "etaMinutes": 11,
    "walletBalanceAfter": 48875.99
  }
}

# 402 Payment Required (wallet too low)
{"error":{"code":"insufficient_balance","message":"Wallet balance too low…"}}

Status flow: PENDING → ACCEPTED → PICKED_UP → IN_TRANSIT → DELIVERED (or CANCELLED).

GET /orders/{reference}

Full current state of one of your orders. Only orders created by your own key's account are visible.

curl https://tligmove.com/api/v1/orders/TLG-DBBAF259 \
  -H "Authorization: Bearer tlig_sk_..."

GET /orders

Your recent orders, newest first. Query params: ?limit= (max 50), ?status=PENDING|ACCEPTED|PICKED_UP|IN_TRANSIT|DELIVERED|CANCELLED.

curl "https://tligmove.com/api/v1/orders?limit=20&status=ACCEPTED" \
  -H "Authorization: Bearer tlig_sk_..."

GET /track/{code}

Public endpoint (no key needed). Accepts either the full reference or the customer's 6-digit pickupCode — the same code printed on the tracking page. Returns status, rider first name and location history.

GET /balance

Returns your current API wallet. Also available: GET /categories (valid category + deliveryType values) and GET /ping (uptime probe).

Errors

Every error has the same shape: {"error":{"code":"...","message":"..."}}

HTTPcodeMeaning
401unauthorizedMissing, malformed, revoked or unknown key
402insufficient_balanceWallet too low for the computed total
404not_foundUnknown order/reference/code
422missing_field / missing_distance / invalid_category …Fix the request and retry
429rate_limitedSlow down — see limits below
500server_errorUnexpected — retry with backoff, contact support if persistent

Rate limits

ScopeLimit
All keyed endpoints120 requests / 5 min / key
Order creation30 requests / 5 min / key

Questions or top-ups: info@tligmove.com · Built with 💚 by TLIG Move, Nigeria.