WhatsApp, Telegram, web & QR

The all-in-one commerce platform for local business.

Take and run orders from everywhere your customers already are: chat, QR codes, and your own storefront.

No card requiredFree plan foreverSet up in minutes
Live orders
12 active
Amara O.
₦8,400
2× Jollof, 1× SuyaNew
Table 7
₦12,900
Grilled fish, 2 drinksCooking
Web · Tunde A.
₦15,200
Family bucketReady
Chidi N.
₦4,100
Pepper soup ×1Delivering
Paid today
₦486,200
+18% vs yesterday
Order everywhere. Run it from one place.
WhatsApp
Customers order in the chat they already use, with optional AI ordering.
Telegram
A bot that takes orders, confirms, and keeps them posted.
Web storefront
A fast, branded store on your own custom domain.
QR service points
Scan a QR at your table or counter, order and pay from the phone.

Everything to run the business, on one screen.

No more stitching together five tools.

Live orders
A real-time board across every channel, with status workflows, station routing, and driver assignment.
Payments
Paystack, Stripe, Flutterwave, Opay, Monnify and more, plus cash and POS for walk-ins.
Customers
Every customer, the channels they order from, their addresses and full order history in one place.
Delivery
Zones, fees, and live rider tracking. Assign a driver and watch the order to the door.

Your shop, answering in their language.

A conversation that takes the order, shows the item, applies the code and sends them to checkout, in whatever language your customer opens in. Cards and buttons included, while you carry on working.

  • Answers in the language the customer opens in, cards and buttons included
  • Understands “two please” without a menu number
  • Sends the actual product photo and price
  • Applies a discount code, or says why it can’t
  • Hands over a checkout link when they’re ready
English

They type what they want. No menu tree.

Français

La même commande, dans sa langue.

It only ever says what you have told it.

The reason shops trust it with their customers is that it cannot improvise. You write what it knows, and it stops where you tell it to.

Your knowledge base
Write your delivery areas, returns, parking and allergen handling once, in your own words. The agent answers from that and your catalogue, and nothing else. Ask it something you have not written down and it says it is not sure rather than guessing.
It knows when to stop
A refund, a complaint, or anyone asking for a person, and it hands over. The AI steps out of the conversation, your team is alerted in-app and in your ops chat, and you reply as your shop on the same thread the customer started.
Orders run themselves
Set the steps an order moves through, the button each one shows your staff, and the message the customer gets. Accepted, ready, on its way, each one sent without anyone remembering to.

Know what is left before a customer asks.

Count stock per item, or per size and colour. It comes off when an order is placed and goes back if that order is cancelled, so the number on screen is what you can still sell.

128
Counted
3
Running low
1
Sold out
Closest to running out
Forage Tee, Red / XL0 sold outCold Brew, 1L2 lowForage Tee, Blue / M3 lowHouse Granola5 lowChilli Oil, 250ml18Tote Bag31

Sorted lowest first, the way the dashboard shows it. An item that reaches zero comes off your storefront on its own.

It tells you before it bites

When an item drops to the level you set, the owner gets a notification in the dashboard and a card in the ops chat. Every movement is recorded with a reason, so "we had sixty, we have twelve" is a question with an answer.

The day, in numbers you can act on.

Money in, orders, and where they came from, across every channel at once. Not one report per place you sell.

₦1.84m
Revenue this week
312
Orders
₦5,900
Average order
Revenue, last 7 days
MonTueWedThuFriSatSun418k

Every channel counted together. Pick any range and the whole screen follows it.

Where the orders came from
  • WhatsApp148
  • Storefront104
  • QR service point60

And what to do about it

Best sellers, the customers who come back, and what is about to run out, on the same screen as the takings. Export any of it when your accountant asks.

The people doing the work get a ticket, not a notification.

The same order lands in your team's Telegram with the buttons that move it along. Whoever packs it, prepares it or takes it out acts from there. Nobody opens a dashboard mid-shift, and the board updates wherever the tap came from.

One tap, everywhere at once

Tapping Ready here moves the order on the dashboard, tells the customer on the channel they ordered through, and rewrites this card so nobody taps a button that has already been pressed.

Forage & Co · Packing
via Caluchi
🧾 Order ORD-7C2F91
FulfilmentDelivery · Amara O.
PaymentPaid · Paystack
Total₦38,000
Order lines
Cold Brew, 1L×2₦24,000
House Granola×1₦14,000
Customer notePlease leave it with the concierge if I am out.
✅ Accept📦 Preparing
🛎️ Ready🚫 Cancel

You name the groups. Each one sees only the buttons its role is allowed to press.

Everyone sees their own job, and nothing else.

A role decides which screens a person opens, which buttons they see on a ticket, and which group their work lands in. Caluchi ships the roles most shops need and lets you rename them to whatever you actually call them.

What you can do to a role

  • Owner, finance, driver

    The ones the platform depends on

    Rename
    No
    Change permissions
    No
    Delete
    No
  • Kitchen, waiter, manager, cashier

    Shipped with your store, yours to reword

    Rename
    Yes
    Change permissions
    Yes
    Delete
    No
  • Anything you make

    Wash floor, pickers, front desk

    Rename
    Yes
    Change permissions
    Yes
    Delete
    Yes

Rename it and every screen follows

Call the kitchen Production and it reads Production on the roles screen, on the workflow that routes to it, in the channel picker and on the order itself. Underneath, the routing key never moves, so renaming a group cannot quietly send its tickets somewhere else.

Two people, one shift, different screens

A cashier sees payments and no catalogue. A driver sees the run and no takings. The dashboard hides what a person cannot use rather than offering doors that answer no, and the API checks the same rule again behind it.

Every change is on the record

Who renamed what, who was given which permission, and when. A rename is logged with both names AND the key that did not change, because the key not changing is half of what the entry means.

It knows when to stop and fetch you.

A refund, a complaint, or anyone asking for a person, and the agent steps out of the conversation. It does not keep replying alongside you, so a customer is never talking to a person and a machine at the same time.

What the customer said
Bature Kitchenonline
This is the second time. Can I speak to someone please12:04
Of course. I am getting someone from the team now, and I will stop replying so they can pick this up properly.12:04
Ops chat
🆘 A customer needs a person
CustomerAmara O.
Came in onTelegram
Telegram id5512309871
Amara O.This is the second time. Can I speak to someone please

No direct line on Telegram. Reply in the dashboard and it reaches them in the same chat.

Reply in the dashboard

The same card your team already gets for orders, in the group you chose for this.

You are told twice, on purpose

In the dashboard, so every store sees it whether or not they use Telegram, and in your ops chat if you have one connected. Both carry a link into the conversation and a way to reach the customer directly.

You reply as the shop

Answer from Conversations and it goes out on the channel they were already using, under your name. Nobody is moved to email and nobody starts again. Close it and the chat goes back to the agent, with the whole exchange kept.

You decide what counts

Which situations trigger a handover is a knowledge topic you write. The templates include one covering what most shops escalate: anything about illness or safety, disputed money, and anyone who has asked twice.

A code on the table, the room, the locker.

One scan and the phone already knows which shop, which point, and what that point is allowed to take payment in. No app, nothing to type, no asking a customer which table they are sitting at.

  1. 01

    They scan

    A camera and a printed code. Nothing to install, and nothing to type, which is what makes it work for the customer who would otherwise wave someone down.

  2. 02

    The point identifies itself

    The code resolves to one point, so the order arrives already labelled Table 12 or Room 407. Nobody writes it down and nobody guesses.

  3. 03

    A session opens

    Scan again an hour later and it is the same session, so a second round joins the first order rather than starting a stranger's.

  4. 04

    They keep a link

    Checkout hands back a tracking link, minted before payment so the gateway returns them to their own order rather than your home page.

What one scan settles
one code, no sign-in
The shop
Name, currency, logo
The point
Table 12 · seats 4
Look and feel
Your theme, colours and typeface
Payment
Only what this point allows
Session
Open · started 19:42
Requests
Call someone, ask for the bill

All of it from the code alone. A scan carries no sign-in and no store header, so anything not resolved here is something a customer would have to be asked.

One session, however many rounds

A point holds one open session at a time. Everything ordered from it joins that session until somebody closes it, so the bill is the evening rather than the last thing anyone tapped. Close it and the next scan starts clean.

The customer can watch it themselves

The tracking link works without an account and follows the same steps your team taps, so nobody has to ask how long it will be. It is the same link whether they scanned a code, ordered on WhatsApp or bought from your storefront.

One engine. Your words for the work.

You set the steps an order moves through, who may take each one, and what the customer hears when it happens. Five trades below, the same Caluchi, nothing in common but the shape.

Orders land with the kitchen, the front of house serves, and a rider takes what is going out.

  1. 1Accepted
    ✅ Accept
    goes to
    Kitchen
    customer hears
    We have got your order.
  2. 2Cooking
    🍳 Start cooking
    goes to
    Kitchen
    customer hears
    It is on the stove.
  3. 3Ready
    🛎️ Ready
    goes to
    Front of house
    customer hears
    Ready in about 5 minutes.
  4. 4On its way
    🛵 Picked up
    goes to
    Riders
    customer hears
    Your rider is on the way.
Average time in each stage
Accepted2 minCooking14 minReady6 minOn its way23 min

Measured from the taps themselves, so it is what the shop actually does rather than what it meant to do.

45 min
order to doorstep, start to finish

Nobody presses the wrong button

Every step names the roles allowed to take it, so a group only ever sees the buttons it may press. Change a step and orders already in progress keep the version they started on, because an order halfway through should not lose its next step because you edited the workflow.

Drag your own workflow into shape.

Your shop does not run the way ours does, and it should not have to. Open the builder, drag the stages where you want them, draw an arrow from one to the next, and name each one in your own words. Start from a template if you would rather not start from nothing.

Fulfil and deliver
  1. PendingWhere an order lands
  2. AcceptedKitchen, Manager
  3. PreparingKitchen
  4. ReadyKitchen
  5. Picked upRider
  6. DeliveredRider
The same canvas an owner edits, and the same one a template is previewed on — so what you look at before choosing is exactly what you get after.

Your words, not ours

Rename Kitchen to Press room and it reads Press room everywhere an owner looks — including the screen that routes tickets to it. The routing key underneath never moves, so a rename can never quietly reroute a ticket.

One arrow, not the whole step

Cancelled is reachable from four stages, and that is one step with four arrows. Delete one arrow and the other three stay — the step only goes when its last arrow does.

Start from a template

Deliver, collect or serve on the premises. Preview any of them on the same canvas first, then adopt it and change whatever does not fit.

It refuses to let you build something broken

A stage nothing leads to, a step that starts nowhere, two stages with the same name: the builder marks them before you can save, rather than the API refusing the whole thing afterwards with one message that does not say which step was wrong. Orders already in progress keep the version they started on — editing your workflow should never strand an order halfway through it.

Live in three steps.

STEP 01
Connect your channels
Link WhatsApp, Telegram, your storefront and table QRs in a few minutes.
STEP 02
Add your menu
Import products by CSV or let AI write descriptions. Variants, add-ons, stock.
STEP 03
Start taking orders
Everything lands on one live board your whole team works from.

Built for the way local businesses actually run.

One platform, tuned per vertical: a table QR at a restaurant, a rider run from a pharmacy.

Get paid your way.

Every major processor for online payments, plus cash, bank transfer and POS for paying in person, on every plan including the free one. Settlement in your country and currency, per store.

Settled online through
PaystackFlutterwaveMonnifyOPayStripe
Or paid in person, on every plan
CashBank transferPOS

Stop juggling tools. Start taking orders.

Fewer missed orders, one screen, paid faster. Start free, and bring your team when you're ready.