One webhook = every order shipped.
Plug ParcelMtandao into your Shopify, WooCommerce, or custom cart in minutes. POST an order, we create a tracked shipment with a printable label, real-time SMS, and live status webhooks back to your store.
Two ways to integrate
Pick the one that fits how your cart works.
eShop webhook
Your cart POSTs an order to a URL we issue you. We auto-create the shipment, return the tracking number, and notify the recipient by SMS.
- Zero code in your cart if it supports webhooks
- HMAC-SHA256 signed for security
- Pending-orders queue if anything fails — never lose an order
REST API
Direct programmatic access. Build your own checkout, your own dashboards, your own tracking widgets. We expose rates, shipments, and tracking.
- Live rate quoting
- Create shipments + get barcodes
- Track any shipment by number
eShop webhook
POST https://parcelmtandao.com/api/webhook/eshop/{integration_id} X-Signature: sha256=<hmac-sha256 of body using webhook_secret> Content-Type: application/json { "external_order_id": "SHOP-12345", "recipient": { "first_name": "Asha", "last_name": "Mwangi", "phone": "+254712345678", "email": "asha@example.com", "address": "123 Tom Mboya St, Nairobi" }, "dest_office_id": 5, "items": [ { "description": "Sneakers", "weight_kg": 1.2, "length_cm": 30, "width_cm": 20, "height_cm": 12 } ] } // Response 200 OK: { "shipment_number": "SHP-20260606-A1B2C3D4", "total": 580.00, "currency": "KES", "tracking_url": "https://parcelmtandao.com/tracking.php?number=SHP-…" }
Signature verification
Every webhook is signed with HMAC-SHA256 of the raw request body using the webhook_secret we issue. Verify it before processing:
// PHP example $expected = 'sha256=' . hash_hmac('sha256', $rawBody, $webhookSecret); if (!hash_equals($expected, $_SERVER['HTTP_X_SIGNATURE'] ?? '')) { http_response_code(401); exit('Bad signature'); }
REST API endpoints
Every request is authenticated with X-API-Key + X-API-Secret. Keys are bcrypt-hashed at rest.
/api/v1/offices
List pickup & dropoff locations available to your company
/api/v1/rate
Quote a single shipment by route + weight + service tier
/api/v1/rates/all
Quote all service tiers at once (rate comparison)
/api/v1/shipments
Create a confirmed shipment, get back the tracking number + barcodes
/api/v1/track/{shipment_number}
Pull live tracking + history for one of your shipments
Authentication
Two headers per request:
X-API-Key: your_api_key X-API-Secret: your_api_secret
Secrets are bcrypt-hashed at rest — we never store them in cleartext. If you lose one, revoke the key and we'll issue a new one. Old API requests with the revoked key fail with 401.
Ready to integrate?
Sign up your store. We'll issue API keys + a webhook URL within one business day.
✉ Email support to get startedInclude: your company name, contact person, expected monthly volume, and which endpoints you need.