Durable webhook queue
Every inbound event is persisted before we 200. Failed events retry with exponential backoff up to 8 attempts. Nothing falls through.
From the first HI to the final receipt, WA-B handles the conversation, the cart, the cash, and the customer record.
Hubtel MoMo Collections runs in the background. We charge on the 1st, retry failures with exponential backoff, send WhatsApp reminders 3 days before billing, and grace-suspend after 3 days past due.
Customers, riders, and you all see the same status: pending, paid, preparing, on-the-way, delivered. One source of truth, automatic WhatsApp notifications at each step.
Menu, hours, delivery zones, branded greetings, follow-up cadence. Every setting is hot-reloaded: change at 11:59, your customers see it at 12:00.
Production-grade plumbing every Ghanaian SME deserves but rarely gets: durable webhook queues, advisory locks, audit logs.
Every inbound event is persisted before we 200. Failed events retry with exponential backoff up to 8 attempts. Nothing falls through.
Each business is silo'd by phone-number ID. We never cross streams. Even on a misrouted webhook, your data stays yours.
Renewals, reminders, and suspensions run via DB advisory locks. Run 50 replicas; only one fires the job.
Tenant or admin scope, SHA-256 hashed at rest, revocable in one SQL line. Real keys, not session cookies pretending.
Customers without MoMo? No problem. HMAC-SHA512 signed events, idempotent reference handling, redirect callback ready.
Cron jobs run on local time. Reminders go out when humans actually read them. Currency formatted right. Phones normalized.