Integrations
UrbanPiper for Swiggy & Zomato
BillingBaba is a certified UrbanPiper downstream POS. Marketplace orders land in Online Orders with your kitchen workflow. Accept, Reject, Ready, and Dispatched are pushed back so riders and customers stay in sync.
How it works
Swiggy and Zomato do not talk to BillingBaba directly. UrbanPiper sits in the middle, which is the production path Indian aggregators certify for POS vendors.
Customer orders
Guest places an order on Swiggy or Zomato.
UrbanPiper relays
Atlas POSTs the certified order-relay payload to BillingBaba.
Kitchen acts
Staff see it in Online Orders and Accept, Ready, or Dispatch.
Marketplace updates
BillingBaba PUTs status back. The rider app stays in sync.
What goes live in the POS
- Orders appear under Online Orders with a Swiggy or Zomato badge and the aggregator order id.
- Items, quantities, add-ons, customer name, phone, delivery address, and kitchen instructions are stored on the order.
- Prepaid vs cash-on-delivery is mapped from UrbanPiper payment objects. Order OTP is shown in notes when Swiggy sends it.
- Accept creates a POS ticket so KOT and billing continue as usual.
- Kitchen status is sent to UrbanPiper as Acknowledged, Food Ready, Dispatched, Completed, or Cancelled.
- Retries never reset an accepted order or rewrite created time. Customer cancel from the app still lands as cancelled.
- If Swiggy marks can_reject_order as false, BillingBaba blocks Reject from the POS.
- API key and webhook secret stay in restaurants/{id}/private/integrations — not on the public restaurant document.
Setup in BillingBaba
You need a plan that includes Online Order Integration. Then complete these steps once per outlet.
- 1
UrbanPiper Atlas store
Ask UrbanPiper to enable your outlet as a downstream POS. You need a store in Atlas, Swiggy and/or Zomato mapped to that store, and a POS API key in the form username:apikey.
- 2
BillingBaba plan with Online Orders
UrbanPiper ingest is gated on the Online Order Integration feature. Upgrade if your current plan does not include it, then open Settings → Integrations.
- 3
Turn on aggregator middleware
Enable Aggregator middleware, set Provider to UrbanPiper, and save a Partner store ID that matches Atlas merchant_ref_id (your POS store id). Optionally turn on auto-accept so new orders are acknowledged immediately.
- 4
Paste the Atlas API key
Use the username:apikey pair from UrbanPiper. BillingBaba stores it only in a private restaurant document — never on the public restaurant profile. Leave the field blank later to keep the saved key. API host can stay empty for production (pos-int.urbanpiper.com).
- 5
Give Atlas the three webhook URLs
Copy Order placed, Order status, and Rider URLs from Settings. Configure each in UrbanPiper Atlas with the same webhook secret as a custom header named X-BillingBaba-Secret (x-api-token also works). Never put the secret in the URL or JSON body.
- 6
Place a test order
Use UrbanPiper staging first if they gave you a staging host. A Swiggy or Zomato test order should appear in Online Orders with the marketplace badge, items, customer, and OTP when present. Accept it and confirm the aggregator shows the outlet as acknowledged.
Atlas webhook URLs
Replace {restaurantId} with the outlet id shown in Settings. Production host is billingbaba.in. Auth header only — never query string.
Order placed
Order relay / order placedURL
https://billingbaba.in/api/integrations/webhook/{restaurantId}/urbanpiperUrbanPiper POSTs the full order. BillingBaba replies with order_ref_id so they do not retry forever.
Order status update
Order status webhookURL
https://billingbaba.in/api/integrations/webhook/{restaurantId}/urbanpiper/statusCustomer cancel and aggregator state changes update the same Online Order without resetting kitchen progress.
Rider status update
Rider / delivery statusURL
https://billingbaba.in/api/integrations/webhook/{restaurantId}/urbanpiper/riderRider name, phone, and allocation status appear on the order card.
Required header name
X-BillingBaba-SecretAlternate header: x-api-token. Outbound status uses Authorization: apikey username:key.
Kitchen status map
Staff only tap BillingBaba. We translate to UrbanPiper's official new_status values.
| In BillingBaba | Sent to UrbanPiper | What the marketplace sees |
|---|---|---|
| Accept | Acknowledged | Outlet accepted · prep timer starts |
| Preparing | Acknowledged | Still accepted (no extra ping) |
| Ready | Food Ready | Food is ready for pickup |
| Dispatched | Dispatched | Handed to rider |
| Delivered | Completed | Order complete |
| Reject | Cancelled | Only if the aggregator allows reject |
Menu catalog is Atlas-side
Item names on incoming orders use UrbanPiper's catalog. Publish and mark items out of stock in Atlas (or after a separate catalog mapping). BillingBaba's menu sync checkbox is a reminder, not an automatic Swiggy menu push.
Partner store ID
If you set Partner store ID, incoming orders must match Atlas store.merchant_ref_id or store id. Leave it blank only while testing a single outlet on that webhook URL.
Production checklist
- Plan includes Online Order Integration.
- Middleware enabled, provider UrbanPiper, API key saved (private).
- Partner store ID matches Atlas merchant_ref_id.
- Three Atlas webhooks point at billingbaba.in with X-BillingBaba-Secret.
- Test order appears in Online Orders; Accept shows Acknowledged on UrbanPiper.
- Ready and Dispatched update the rider app.
- Customer cancel from Swiggy/Zomato marks the BillingBaba order cancelled.
- Staging host used only during UrbanPiper certification; production host left blank after go-live.
Questions restaurants ask
- Is this the official Swiggy or Zomato POS API?
- No. Direct Swiggy and Zomato POS programs are invite-only and have their own volume and SLA bar. UrbanPiper is the certified middleware BillingBaba ships for production marketplace orders.
- Can I use Petpooja or DotPe instead?
- Settings still lists those providers for store ids and a generic webhook. Certified order-relay plus status PUT is implemented for UrbanPiper. Other middleware can POST BillingBaba’s normalized webhook until their adapter is certified.
- What if status push fails after I accept?
- The kitchen ticket still exists. The order card shows a platform warning. Fix the Atlas API key or network, then move status again so UrbanPiper is notified.
- Which plans include this?
- Any plan with Online Order Integration. If that feature is off, Settings will not save marketplace channels. Questions: support@billingbaba.com.
Connect Swiggy and Zomato to your kitchen
Start a BillingBaba plan with Online Orders, then finish the UrbanPiper steps in Settings.