A connected restaurant service platform.
The usual name for the new module is Table Management + Captain/Waiter Ordering. In India, “captain” commonly describes the staff member taking orders. “Table service” is the clearest customer-facing label. “KDS” means kitchen display system; “KOT” means kitchen order ticket.
For the restaurant
“Take orders from the table, from your guests’ phones, or from your own website. Keep the kitchen and the bill connected.”
For 2UP
One platform with shared menu, availability, pricing, staff permissions, orders and customer records. Different screens serve different jobs.
Keep the existing order modes: DINE_IN, PICKUP, DELIVERY and ROOM_SERVICE. A waiter and a QR code are order sources within dine-in. They do not need competing order engines or a fifth fulfilment mode.
Sell the outcome: a venue can run a busy shift, build repeat business and present its own brand. Full accounting, inventory, payroll and every POS integration are separate product commitments.
Build on the newer work.
This brief uses your uploaded build log, master plan, continuity handoff and six images, plus the three experiment sites. It is a document and design review; the current application repository, deployed providers and merchant billing accounts were not audited here.
| Evidence | What it supports | How to use it |
|---|---|---|
| Master plan at older commit 02d9ae3 | Architecture, approved single-outlet launch, merchant-direct payments, Next.js/MongoDB direction. | Preserve decisions. Do not repeat its old “not built” list as current fact. |
| Latest WP-12 / WP-13 entry, 25 October | Documents newer onboarding, R2 adapter, menu import, CRM/reporting, KDS item progress, tenant SEO work and broad UI improvements. | “Recorded in source” remains distinct from verified live operation. |
| Latest verification notes | Presentation fixes landed after earlier checks. Post-fix browser rechecks, real provider journeys and deployment verification remain open in the log. | Complete the release checks before promising production readiness. |
| Uploaded screenshots | A coherent green merchant workspace, a clean mobile checkout and a separate 2UP marketing site. | Useful visual evidence; one screenshot cannot prove all devices, connectivity or workflows. |
| Table management | The documents describe table labels and QR entry, but do not establish a complete floor board, authenticated captain workflow and shared visit bill. | Treat this as proposed scope until Kiro checks the latest source. |
Important distinction: the newer log already documents KDS item progress and tenant structured data. The next task should extend and verify those parts, rather than rebuilding them from an outdated gap list. Online payments and unfinished option groups are still described as gated.
The visit is the connection.
A physical table exists all day. A table session represents one dining party’s visit. That session can contain several submitted rounds, from several authorized people, without mixing the next party’s orders into the same bill.
- 2 × Masala chai — ₹80
- 1 × Vegetable sandwich — ₹160
- Kitchen ticket A: ₹240
- 1 × Paneer tikka — ₹280
- 1 × Lime soda — ₹60
- Kitchen ticket B: ₹340
Each round has its own kitchen progress.
- Seat the party.Create a visit for Table 5. Optionally record guest count and captain. A table may be occupied before anyone orders.
- Take the first round.The captain opens Tables → Table 5 → Add items. They choose existing variants/add-ons, enter instructions and confirm “Send to kitchen.” No customer OTP is required for a staff-authorized order.
- Accept a guest’s QR round.The guest sees “Table 5” clearly. The QR identifies the table; joining the current visit requires the configured authorization. The guest order uses the existing customer authentication policy until a separate guest-checkout decision is made.
- Add another round.Send only the new items. Earlier tickets retain their content and history. Record the source, actor, time and round number.
- Prepare and serve.Kitchen staff acknowledge the ticket. Item or station progress rolls up to the order. A captain separately confirms service; “ready” does not mean “served.”
- Settle and reset.The cashier sees a consolidated bill with payment allocations and exceptions. Close the operational visit only under an explicit settlement policy; then mark the table for cleaning and ready for the next party.
| Restaurant setting | Guest experience | Staff experience |
|---|---|---|
| Waiter only | Order through staff. QR can be absent or menu-only. | Captain creates all rounds; kitchen and cashier remain connected. |
| QR only | Browse and order on the phone, subject to venue approval/payment policy. | Staff monitor tables and fulfilment. New visits still need a controlled opening/closing process. |
| Hybrid — recommended | Order with staff or a QR at the same table. | One visit, one service history, separate round tickets and one reconciled bill view. |
Essential first version: table/area setup; list or grid; active visits; captain assignment; phone/tablet order entry; multiple rounds; prominent table labels; kitchen acknowledgement; served status; running bill; payment evidence; owner controls; history. A simple grid is sufficient before a drag-and-drop floor designer.
Next, after the basic visit is reliable: audited table transfers and joins; seat/course ordering; split by item or amount; partial cash/UPI/card collections; held/fire-later dishes; call-waiter and request-bill actions; reservations as a separate capability. Each needs its own permissions and accounting rules.
A QR code is not proof of presence. A copied static link must not let someone attach orders to another party or read its bill. Use an opaque/signed table identifier plus visit-scoped membership. For pay-later hybrid pilots, default to staff-approved joins or a changing visit code. Confirming new guest rounds before cooking is another useful venue setting.
Staff access uses the existing staff login and tenant authorization. A captain can take orders and see assigned service; a chef can see preparation details; a cashier can record allowed collections; an owner/manager can approve sensitive corrections. Avoid shared owner passwords and exposing all customer data to every device.
A kitchen screen that supports a rush.
Every ticket
Large table/room or pickup label, order number, round, source, age since kitchen submission, quantities, modifiers and clearly separated instructions. Dietary and allergen information must remain visible, with no claim that software guarantees food safety.
Every station
Route drinks, hot food, cold food and desserts by configured item/category rules. Preserve an expo view of the whole table. Mark individual items ready; do not complete the entire table because one station finished.
Priorities: newest additions must stand out; older unacknowledged work must remain visible; ready items alert the right captain; cancellations after submission create a visible correction, rather than silently deleting food in preparation. Recall and reprint need audit records.
| Promise | Proposed acceptance criterion |
|---|---|
| Live synchronization | Target p95 of 2 seconds or less from committed order to a connected subscribed staff/KDS screen under a defined pilot workload. Measure it; it is not a current guarantee. |
| Nothing disappears | All active tickets remain reachable beyond the default page size. Test 100+ active tickets and chronological ordering. |
| Safe retries | A retry after a timeout creates one order and one logical KOT. Event delivery may repeat; consumers deduplicate and re-fetch canonical state. |
| Connection honesty | Show connecting, stale, disconnected and pending states. “Saved as a draft” must not look like “Kitchen received.” |
| Recovery | Reconnect, obtain current state and reconcile missed versions. A client toast is not kitchen acknowledgement. |
| Useful alerts | Require sound enablement during shift setup, show muted/disconnected warnings, and provide visual alerts. Browser background limits and sleeping devices must be tested. |
Architecture recommendation: keep Next.js, MongoDB and the established tenant resolver. Extend the existing durable order-effects/retry mechanism where suitable. Persist the order and a durable event intent together using a proven atomic design; publish through a retryable worker; use authenticated tenant-scoped subscriptions. MongoDB remains authoritative, while live events notify screens to refresh or apply a versioned projection.
A managed publish/subscribe service is a sensible pilot candidate. Native WebSockets on Vercel are also now possible according to its June 2026 announcement; this does not remove the need for shared fan-out, reconnection, authorization and delivery recovery. Choose one transport after a small comparison, not an infrastructure rewrite. [8]
Offline scope: phase one can retain a draft and clearly show that the kitchen has not received it. A cloud-only PWA cannot honestly promise continued kitchen delivery during a complete internet outage. True local offline operation needs a separate local POS/gateway and synchronization design, including price/menu freshness, conflicts, numbering, printing and payment rules.
Printing: include a manual printable fallback first. Automatic KOT printing is a scoped integration with a tested device/connection list, delivery acknowledgements and duplicate-print controls. Hardware and unattended printing support should be confirmed before sale.
Give the restaurant its own character.
The 2UP marketing site sells software. A restaurant homepage sells food and a place to visit. They can share a reliable foundation while using different layouts, imagery, typography and calls to action.
Your CRM screenshot already has a usable workspace structure. Add Tables prominently under Operate, beside Live orders and Kitchen display. Give captains a focused entry screen after login. Your mobile checkout is visually consistent; prioritize mode/table context, reduce optional form clutter, and keep the payable amount and action clear when the keyboard opens.
Café
Warm imagery, drinks and bakery discovery, opening hours, directions, gallery and a clear order action.
Quick service
Food-first banners, categories, bestsellers, offers and direct ordering. Keep promotions below the immediate task during a table visit.
Restaurant
Strong food photography, atmosphere, menu, location and contact. Reservation enquiry stays separate from a real booking engine.
Homepage modules: brand/header, hero, ordering modes, popular items, categories, current offers, story, gallery, opening hours, address/map link, contact and factual footer. Use real restaurant content. Empty galleries and invented reviews should never be required to fill a template.
Order-page options: list or image cards; approved density; category navigation; search; supported dietary filters; featured items; visible sold-out states; item customization; sticky cart; accurate open/closed state. QR entry should go directly to a table-aware menu rather than force the guest through a marketing homepage.
| Customization level | Merchant controls | Commercial treatment |
|---|---|---|
| Included configuration | Logo, validated brand colors, approved fonts, food photos, hero style, module visibility/order, menu layout, contact, hours and content. | Included with the subscription. Good responsive design and technical SEO are baseline product quality. |
| Paid brand design | Designer creates a distinctive website within supported modules and the existing order flow. | One-time scoped project; subscription continues for ordering and operations. |
| Paid bespoke storefront | Approved custom homepage/menu/cart/checkout presentation against supported platform contracts. | Separate discovery and fixed deliverables. New server behavior and integrations are separately scoped. |
Store versioned theme settings per merchant. Provide preview, draft, publish and rollback. Preserve accessible contrast and required ordering information. Keep arbitrary scripts, unsafe HTML and changes to payment/security logic outside the theme editor. Scope caches by tenant/host, theme version and locale to prevent one restaurant’s branding or content appearing on another domain.
Scalable custom design: one backend and shared tested components, with configurable themes and deliberate extension points. Repeated customer requests should improve the product. Bespoke work should not create 1,000 unrelated copies of the application.
Make quality measurable.
Per-merchant SEO must apply to each restaurant’s public pages, rather than only the main 2UP website. Retest the tenant SEO work recorded in WP-12 before deciding what is missing.
- Crawlable content: serve meaningful restaurant and menu content in the initial/server-rendered HTML; do not require login, geolocation permission or a modal before a visitor can browse. Keep real-time cart and table context out of shared caches. [4]
- Identity: unique titles/descriptions, one clear page heading, Open Graph image, favicon, address, phone, opening hours and valid links. Use actual location information rather than repeated generic copy.
- Structured data: appropriate Restaurant/LocalBusiness JSON-LD, with matching visible facts, address, cuisine, hours and menu URL. Validate it. Schema markup does not guarantee rich results or rankings. [5]
- Canonical domain: choose one primary merchant domain. Redirect equivalent public subdomain URLs after the custom domain is live; generate canonicals and sitemaps from verified domain data. Table, campaign and session URLs must not become indexable duplicates. [6]
- Private pages: authenticate admin, cashier, kitchen, account and order tracking routes. Apply suitable noindex rules, remove private URLs from sitemaps and avoid treating robots.txt as access control.
- Local discovery: maintain the merchant’s Google Business Profile details and appropriate website/order links with their authorization. Publish useful real location pages. Measure search impressions, non-brand clicks and completed orders.
- Images and performance: responsive compressed variants, declared dimensions, sensible image loading and no unnecessary scripts. Test image-heavy themes, not only empty demo menus.
Customer quality targets
LCP ≤ 2.5 seconds, INP ≤ 200 ms and CLS ≤ 0.1 at the 75th percentile of measured visits. Use lab checks early, then field measurements when traffic supports them. These are targets, not measured results for 2UP. [7]
Responsive acceptance
Check 320, 360, 390, 430, 768, 1024, 1440 and 1920px, plus widths between them. Test landscape, keyboard, safe areas, long text, 200% text size, touch and pointer input.
Adapt the layout to the job: phone ordering uses one clear column and a reachable cart; tablets can show menu and cart together; desktop can add persistent categories. Captains need fast search and large controls. KDS needs readable tickets at kitchen distance. Core tasks should avoid horizontal page scrolling; wide reports may use a clearly contained table or mobile summary.
Use 44–48px product touch targets, visible focus, clear labels and status text alongside color. Carry the build log’s deferred focus-return, hidden-title, KDS exit-target and post-fix browser checks into the next verification. “100% responsive” should mean a defined, tested support matrix and graceful behavior at intermediate widths—not a promise about every possible device.
Compete on the complete visit.
| Example | Verified observation | 2UP implication |
|---|---|---|
| Petpooja | Its Captain app advertises table/area assignment, multiple Android devices and offline POS sync. Its KDS supports station views and marking food ready. [1] | This is the likely company meant by “paid puja.” Validate that assumption. A web captain screen is useful, but offline parity is separate scope. |
| uEngage | Edge advertises branded web ordering and customization of branding, menu structure, images and offers. Its FAQ describes a fixed subscription; no exact amount was established here. [2] | Good design is already competitive baseline. Use strong default themes and a clear optional design service. |
| La Pino’z | The site credits uEngage and visibly combines food-led categories, bestsellers, offers and brand storytelling. [2] | Its layout is evidence of presentation capability. It does not reveal the private design contract, fees or implementation process. |
| Owner.com | Published USD plans: $249/month plus a 5% restaurant order fee, or $499/month with no additional restaurant order fee. Its FAQ says guests pay a 5% support fee on both. [3] | Compare the whole bill and merchant outcomes. Those US-dollar bundles are not direct evidence of Indian willingness to pay. |
Suggested first market: owner-operated, single-outlet restaurants and cafés where you can observe staff during service and provide fast onboarding. Become dependable at one complete visit before taking on chain-wide menu management or custom integrations.
Measure the advantage through time to first order, kitchen acknowledgement, serving errors, direct-order conversion, support effort and renewals. Claiming to beat every competitor cannot substitute for those results.
Sell the term. Show the monthly equivalent.
Founder decision, 27 October: the minimum software purchase is now 12 months paid upfront. Offer 12, 24, 36 and 48-month commitments, displaying monthly equivalents beside the full prepaid amount. The current Core/Growth/Pro reference rates remain ₹1,999 / ₹2,999 / ₹5,999 in India and AED 199 / 349 / 599 in the UAE. Reference rates are comparison/renewal inputs; there is no purchasable one-month contract.
The initial term uses the explicit price book in section 09. It supersedes the earlier three-paid-month offer and pay-10/pay-11 annual proposals. All amounts below are before applicable tax, additional promo codes and usage. Pro remains quote-only until an agreed premium scope is deliverable.
₹17,988 prepaid for 12 months. UAE: AED 149/month equivalent, AED 1,788 prepaid for 12 months. Reference India rate: ₹1,999/month.
- Branded default website and ordering
- QR, waiter or hybrid basic service
- Table grid and running visit
- One kitchen display/station
- Five staff accounts
- Core customer history and reports
- One custom-domain connection
- Standard published support hours
₹29,988 prepaid for 12 months. UAE: AED 299/month equivalent, AED 3,588 prepaid for 12 months. Reference India rate: ₹2,999/month.
- Everything in Core
- Up to 15 staff and three stations
- Advanced KDS and service controls
- Audited transfer/split-bill tools
- Coupons, segments and richer reports
- Loyalty/campaign tools when ready
- Priority during published hours
₹59,988 prepaid for 12 months. UAE: AED 499/month equivalent, AED 5,988 prepaid for 12 months. Reference India rate: ₹5,999/month.
- Expanded staff/station limits
- Advanced approvals and analysis
- Supported specialist integrations
- Defined onboarding and reviews
- Explicit support commitments
- Group features only after a real outlet model is released
These are proposed product entitlements, including work not yet released. Verify table bills, station routing, split settlement, loyalty and integrations before advertising availability. Every paid plan includes the defined baseline design, security, technical SEO, recovery and export access.
India’s additional processing-fee proposal remains ₹2 pickup / ₹3 delivery, plus enabled metered services. Dine-in and room service have no per-order processing fee. UAE usage/provider tariffs require local validation. Quote platform subscriptions, optional projects, recurring services, credit funding and courier costs separately.
Commitment and renewal: 24 months is the checkout’s recommended starting selection; 48 months has the lowest initial monthly-equivalent rate. The initial software rate is fixed for the paid term. A subsequent 12-month renewal is illustrated at the current reference tariff, with a final quote and changes disclosed in advance. Automatic renewal starts off and needs an approved mandate.
A 14-day software evaluation may happen before purchase. It does not create a monthly subscription or silently charge a full-year contract. Standard onboarding may be waived for eligible founding pilots; custom design, travel, message volume and courier trips are separate.
More commitment. A better initial rate.
Annual-only purchase policy: every software purchase covers at least one year. Display “per month equivalent,” the term length, full subscription amount, tax, selected add-ons, credits, code discounts and renewal reference before confirmation. The following are proposed initial-term rates, not historical selling prices or guaranteed future tariffs.
Interactive checkout: Open the 2UP checkout and Offer Studio. The private preview includes selectable terms and products, compatible promo stacking, a quote download, and Offer Studio for local configuration. It does not collect payments or activate subscriptions. Live billing and authenticated platform administration must be integrated in Kiro.
India · initial monthly equivalent and full prepaid subscription
| Plan | 12 months | 24 months | 36 months | 48 months |
|---|---|---|---|---|
| Core | ₹1,499/mo equivalent ₹17,988 prepaid | ₹1,399/mo equivalent ₹33,576 prepaid | ₹1,299/mo equivalent ₹46,764 prepaid | ₹1,199/mo equivalent ₹57,552 prepaid |
| Growth | ₹2,499/mo equivalent ₹29,988 prepaid | ₹2,299/mo equivalent ₹55,176 prepaid | ₹2,099/mo equivalent ₹75,564 prepaid | ₹1,999/mo equivalent ₹95,952 prepaid |
| Pro · quote only | ₹4,999/mo equivalent ₹59,988 prepaid | ₹4,599/mo equivalent ₹1,10,376 prepaid | ₹4,299/mo equivalent ₹1,54,764 prepaid | ₹3,999/mo equivalent ₹1,91,952 prepaid |
UAE · initial monthly equivalent and full prepaid subscription
| Plan | 12 months | 24 months | 36 months | 48 months |
|---|---|---|---|---|
| Core | AED 149/mo equivalent AED 1,788 prepaid | AED 139/mo equivalent AED 3,336 prepaid | AED 129/mo equivalent AED 4,644 prepaid | AED 119/mo equivalent AED 5,712 prepaid |
| Growth | AED 299/mo equivalent AED 3,588 prepaid | AED 279/mo equivalent AED 6,696 prepaid | AED 259/mo equivalent AED 9,324 prepaid | AED 249/mo equivalent AED 11,952 prepaid |
| Pro · quote only | AED 499/mo equivalent AED 5,988 prepaid | AED 459/mo equivalent AED 11,016 prepaid | AED 429/mo equivalent AED 15,444 prepaid | AED 399/mo equivalent AED 19,152 prepaid |
Prices exclude additional promo codes, tax, usage, optional services and credit funding. Annual care/campaign add-ons cover their first 12 months even when software is purchased for longer. One-time design is charged once. Domain registration, physical hardware, ads and carrier fares are separate.
Renewal reference · the next 12 months
| Plan | India · 12 months | UAE · 12 months |
|---|---|---|
| Core | ₹23,988 | AED 2,388 |
| Growth | ₹35,988 | AED 4,188 |
| Pro | ₹71,988 | AED 7,188 |
Reference amounts assume today’s tariff and exclude tax. They are not a future tariff guarantee or an active automatic-debit mandate. A final renewal quote is required before renewal. A long initial contract does not hide separate annual add-on renewals.
Multiple offers, with controlled combinations
| Code | Eligible use | Limit / combination rule |
|---|---|---|
| LAUNCH5 | 5% off the initial software term. | Cash-discount cap: ₹3,000 / AED 300. One offer in the subscription group; final account/campaign eligibility is verified. |
| GROW10 | 10% off Growth or Pro for 24+ months. | Cash-discount cap: ₹5,000 / AED 500. One offer in the subscription group; final account/campaign eligibility is verified. |
| LONGTERM | 5% off a 36 or 48-month software term, with a higher cap. | Cash-discount cap: ₹6,000 / AED 600. One offer in the subscription group; final account/campaign eligibility is verified. |
| SETUPFREE | Standard assisted setup waived, subject to founding-pilot eligibility. | Cash-discount cap: ₹2,999 / AED 299. One offer in the onboarding group; final account/campaign eligibility is verified. |
| BRAND10 | 10% off Brand Studio or a bespoke storefront. | Cash-discount cap: ₹3,000 / AED 300. One offer in the design group; final account/campaign eligibility is verified. |
| WELCOME100 | ₹100 bonus on the first eligible ₹1,000+ paid credit top-up. | India only: ₹100 restricted bonus on a qualifying first ₹1,000+ funded value. Not a cash discount. One offer in the wallet group; final account/campaign eligibility is verified. |
Only one software-subscription code applies at a time. Eligible setup, design and credit-bonus groups can combine with it. Codes never add paid products automatically. Setup included in a custom project is not charged again; a setup-waiver code cannot create an extra discount against an already-free line.
Offer Studio can edit market/term rates, products, enabled codes, new codes, tax illustrations and credit minimums; import/export configuration; and restore defaults. Its edits are local to the current browser. The production billing server must own authentication, approved prices, first-purchase identity, quotas, campaign budgets, dates and atomic redemption.
Use real campaign dates and verified limits instead of invented countdowns or “places left” claims. Keep a bounded founding setup offer and explicit first-credit-grant eligibility. Additional subscription discounts have the caps above; usage and funded service value are not silently discounted.
Long-term cash planning: 48-month payment improves upfront cash collection, but the business still owes service across all 48 months. Budget support, infrastructure, refunds and future costs over that term. Prepayment is not four years of profit on collection day. Match the rate lock and service obligations in the signed contract.
Tax illustration: the checkout defaults to India 18% and UAE 5% for the stated registered-local-supplier taxable domestic scenario. Actual registration, supply, invoice and credit-funding treatment needs confirmation. Funded-credit tax is left under review by default, and the checkout labels its known total accordingly. [13] [15]
Compare the prepaid term and renewal reference
No one-month purchase. Excludes extra codes, add-ons, usage and funded credits. The renewal reference is at today’s reference tariff. This report calculator does not collect payments.
One balance. Clear charges.
Founder’s new direction: add prepaid service credits, a ₹1,000 minimum top-up, first-deposit offers, platform-managed promo codes and fixed fees on delivery/pickup orders. This revises the earlier subscription-only, zero-order-fee proposal. The subscription prices remain hypotheses; the new fees below are additional hypotheses.
Call the merchant screen Billing & Credits. “Global” means one merchant’s paid balance works across eligible 2UP services. It does not mean a diner can spend a universal wallet at unrelated restaurants. Each restaurant retains its own food payments and customer relationship.
Paid credits
Merchant-funded service balance. For India, display 1 credit = ₹1, with fractional usage supported. Proposed minimum top-up: ₹1,000 of paid service value; applicable tax and the final cash payable are shown separately.
Bonus credits
Separately identified promotional value, with eligible services, a cap and an expiry. Default launch offer: 10% extra, capped at ₹100, on the first eligible ₹1,000+ top-up.
Reserved credits
Funds held for an authorized order or campaign, pending its result. A hold reduces spendable balance without pretending the service has already been delivered.
Minimum deposit: apply ₹1,000 to each normal top-up rather than forcing every table-only venue to fund unused services. A merchant can enable billable services when ready. Exceptional bank/refund adjustments are finance operations, not a way to evade the top-up minimum.
| Checkout / service | Use the merchant’s credits? | Recommended first-release policy |
|---|---|---|
| 2UP delivery/pickup order-processing fee | Yes, deducted from the merchant | Reserve at checkout; capture once the valid order is accepted. Proposed India rates are in section 11. |
| WhatsApp, SMS, storefront OTP and optional email usage | Yes, for enabled metered services | Quote the billable unit and applicable rate; apply inclusions before debiting. Provider-billed activity is separate from the flat order fee. |
| 2UP paid add-ons | Yes, when the SKU is explicitly eligible | Show “Use credits” and any balance shortfall in the merchant dashboard. Paid credits are broadly eligible; bonus eligibility depends on the offer. |
| Subscription renewal | Optional second phase | Require explicit merchant opt-in and paid credits by default. Do not let an automatic renewal unexpectedly consume the operating balance. |
| Food checkout, tips or customer refunds | No | Keep restaurant money and 2UP service advances separate. Do not deduct merchant service fees from food settlement by default. |
| Actual third-party courier fare | Direct provider billing initially | 2UP can coordinate delivery and display the quote/status. Paying carrier invoices from 2UP credits needs a reviewed settlement model before launch. |
Fund the account: authenticated owner selects ₹1,000/₹2,500/₹5,000 or a custom amount ≥₹1,000 → sees paid value, bonus eligibility, tax treatment and full payable → pays through 2UP’s own billing collection account → server verifies payment amount, currency and captured/confirmed status → one ledger credit is posted. A successful browser redirect alone must never fund the balance. Duplicate payment notifications must not create duplicate credits. [9]
The top-up flow belongs to 2UP’s platform billing, separate from the restaurant’s food-payment credentials, webhook routes and payment gates. A 2UP top-up payment is not merchant food GMV.
Tax and refunds: have the accountant classify the advance/voucher/service arrangement before configuring tax timing, invoices and credit notes. Do not hardcode that ₹1,000 cash always equals ₹1,000 usable credits regardless of tax treatment. The examples here use ₹1,000 funded service value and exclude tax. Propose no arbitrary expiry of paid value; bonus credits can expire under disclosed terms. Refund eligible unused paid value to the original payment method after resolving holds, usage, disputes and applicable terms; promotional value has no cash payout.
Keep the financial boundary explicit. RBI’s PPI directions distinguish closed-system instruments used for the issuer’s own goods/services from instruments paying or settling third-party services. Calling something “credits” does not decide its legal classification. Obtain a review of the actual 2UP contracts, supply and money flows—especially resold messaging and courier fares—before collecting funds. Start with eligible 2UP service charges, no peer transfers or cash-withdrawal feature, and direct courier billing. [10]
Use one billing account per tenant in the single-outlet launch. Authorized pooling across a merchant group comes only with the group/outlet model. Use separate INR, AED and QAR balances/rate cards in later markets; there is no automatic cross-currency conversion or globally transferable rupee balance.
A controlled first-top-up offer
Recommended test: fund ₹1,000 and receive ₹100 promotional credits, once per verified merchant business. Bonus credits last 60 days and initially offset 2UP’s delivery/pickup processing fees. Paid credits fund metered communications. This gives a real benefit without giving away an unbounded third-party messaging budget.
Platform admin controls code, campaign dates/timezone, minimum paid value, bonus percentage/fixed amount, maximum award, eligible country/plan/SKUs, per-business redemptions, total campaign budget, stacking rules and expiry. Reserve campaign budget during the top-up attempt; grant the bonus only after the eligible payment is confirmed. Freeze the accepted offer on that attempt and release abandoned reservations safely. Refunds/chargebacks need linked bonus reversals and review of already consumed value.
Keep platform top-up promotions separate from restaurant food coupons. Staff accounts, duplicate webhook deliveries and retrying the same payment must not produce additional “first deposits.” Consume eligible bonus credits by earliest expiry, then paid value; freeze the allocation on each hold so expiry and refunds remain traceable.
| Illustrative activity | Paid balance | Bonus balance |
|---|---|---|
| ₹1,000 funded value + first-top-up offer | ₹1,000 | ₹100 |
| 10 pickup fees × ₹2 | ₹1,000 | ₹80 |
| 10 delivery fees × ₹3 | ₹1,000 | ₹50 |
| ₹50 of eligible metered communication usage | ₹950 | ₹50 |
Example ending value: ₹1,000, before holds; only ₹950 is usable for communications under this bonus policy. This is a funding illustration, not a real transaction or provider rate quote.
India · one-outlet funding illustration
Illustration assumes the first-top-up ₹100 bonus is eligible.
Assumes pickup ₹2, delivery ₹3 and a qualifying first-top-up bonus of 10%, capped at ₹100, used only against order fees. Other usage is entered as its total quoted charge, not a provider tariff. No tax, holds, subscription renewal, courier fares, refunds or earlier balance. Estimates only; this page cannot move funds.
A small fixed fee, clearly disclosed.
Test ₹2 per accepted pickup order and ₹3 per accepted delivery order, before applicable tax. Apply the same launch rates across Core/Growth to simplify the first offer. Future plan/volume rates can be versioned after measured economics. These are proposed 2UP prices—not competitor prices, provider charges or a statement of current implementation.
| Mode | Proposed 2UP order fee | What remains separate |
|---|---|---|
| Pickup | ₹2 once per qualifying accepted order | Optional billable communications and applicable food-payment provider costs. |
| Delivery | ₹3 once per qualifying accepted order | Actual courier fare, permitted carrier extras and billable communications. Include basic 2UP dispatch/tracking workflow in this fee; avoid another hidden management fee. |
| Dine-in / table / room service | ₹0 per-order processing fee | Subscription and any enabled metered communication usage. Multiple table rounds do not create pickup/delivery fees. |
| Drafts, failed checkouts, imports and replays | No new order fee | A provider-billed OTP or message attempt can still cost money even if the customer never orders. |
Charge the merchant’s service balance, not the diner by default. Any merchant decision to recover a fee from a diner needs a separate, clearly displayed checkout policy and local review. Publish “Subscription + fixed delivery/pickup processing fees + optional service usage.” Do not market this as “no per-order fees.”
- Quote and reserve before taking the customer’s payment.Determine the mode and rate on the server; reserve eligible merchant credits atomically. Capture the rate-card version and a unique logical order/attempt reference. An abandoned checkout releases the hold after its state is resolved.
- Debit once when the valid order is accepted.Require the necessary verified customer payment or permitted pay-at-counter/COD policy. Automatic acceptance uses the same rule. An added item, status update, device retry or extra courier attempt is not another order.
- Reverse according to a visible policy.Proposed default: rejected/failed/abandoned orders release holds; a final cancellation before preparation reverses a captured 2UP order fee. After preparation begins, retain the fee unless a supported exception applies. Food refunds and carrier cancellation fees have separate rules.
- Handle corrections with linked entries.Owner/finance-approved reversals reference the original debit and restore the original eligible buckets, respecting bonus expiry. Do not delete ledger history or automatically refund a courier cost the carrier has retained.
Low balance: warn at ₹200, escalate at ₹50, and allow the owner to set a larger threshold. Pause new marketing sends before optional campaigns consume critical capacity. An optional ₹100 operating reserve can protect storefront OTP and transactional usage; it is an earmark within the paid balance, not extra credit. Reserve required billable verification capacity before starting a new checkout.
When there is insufficient spendable value, stop a new billable checkout before customer payment starts, preserve the cart and alert the merchant. Continue tracking/fulfilling already accepted or paid orders and handling their funded work. A balance drop must not switch off their kitchen screen, erase history or interrupt a table visit. Avoid unlimited automatic overdrafts. Opt-in auto top-up can follow later with a supported mandate, monthly cap, retry limits and owner notices.
Third-party delivery management
2UP should orchestrate a partner, not operate its own fleet: serviceability → delivery quote → approved booking → rider/ETA details when supplied → pickup → delivery/failed/cancelled → reconciliation. Keep the courier quote and the ₹3 2UP processing fee distinct. A delivery order using the restaurant’s own rider can still incur the normal order fee; it has no external courier fare.
Start with one contracted provider in the pilot city. Shiprocket Quick publicly offers hyperlocal food delivery and API integration, making it a candidate to evaluate—not a confirmed 2UP partner. Coverage, restaurant suitability, API access, account ownership, cancellation rules and actual rates need confirmation. Standard parcel APIs must not be assumed to provide the same food-delivery workflow. [11]
Default money flow: merchant pays the courier through its own approved provider arrangement; 2UP displays the quoted/settled fare and manages the supported booking/status flow. If the contract/API does not support this arrangement, choose another supported arrangement before enabling booking. Do not silently route carrier settlements through the service balance.
Map external IDs to the tenant/order, verify provider notifications where supported, deduplicate events and recover missing updates by a supported status lookup. A booking timeout is “checking,” not permission to book another rider blindly. Show last-updated time and provider-supplied ETA/location; display honest status-only tracking when live coordinates are unavailable. Carrier “delivered” does not automatically prove cash collection or payment settlement.
Control the bill without rewriting history.
What your documents establish: plan/trial states, some entitlement enforcement, manual activation, billing-repair handling and audit surfaces are documented. They do not establish a working prepaid credit ledger, top-up payment lifecycle, metered charging engine or first-deposit promotions. Review current source in Kiro before reusing or adding modules; a Plan page alone is not a wallet.
Merchant · Billing & Credits
Plan and renewal; paid/bonus/held balances; spendable value for the selected service; Add credits; promo eligibility; rate card; usage by channel; provider/order/campaign references; downloadable statements; receipts/invoices/credit notes; alerts and spending limits. Owner/authorized finance roles fund or change budgets.
Platform · Billing Operations
Every merchant’s subscription and service balances; payment/top-up status; usage and provider reconciliation; expiring offers; campaign budget; rate versions; low-balance accounts; refunds/disputes; exceptions; scoped support and complete adjustment history.
Platform administration can provide the cross-merchant operational and billing overview requested by the founder. Use named roles: support can inspect masked billing facts; finance can propose/refund/adjust under policy; an authorized platform owner publishes tariffs and offers. Detailed merchant/customer access should be scoped, justified and audited. No raw provider secrets, unrestricted impersonation or shared admin password is necessary.
Every manual credit or debit requires a reason, amount, currency, actor, reference and timestamp. High-value refunds/adjustments should require a second authorized approval when the team supports it. The operator posts an adjustment entry rather than editing an account’s balance field. Reconcile payment-provider events, usage events and ledger postings daily; flag mismatches instead of silently “fixing” totals.
| Usage | Meter correctly | Merchant protection |
|---|---|---|
| Applicable recipient market/category, provider billing event, BSP charges and current eligibility/discounts. | Show the rate basis. Do not assume one universal rate or claim every failed request is free. Meta describes delivery-based charging and market/category variation; verify the active account’s exact terms. [12] | |
| SMS and OTP | Actual provider billable unit, country, route, message segments and attempts; verification success is a separate event. | Per-tenant/device/phone abuse controls, resend limits and a spend cap. A failed login does not necessarily mean no provider cost. |
| Declared included allowance and then provider-defined metered recipients/sends. | Keep 2UP account-security and billing notices as platform operating costs. Distinguish merchant campaigns and optional customer notifications. | |
| Fallback routes | Each genuine billable provider attempt. | Configure maximum attempts and cost. Retrying a ledger webhook is not a new message; switching to another send route may incur another provider cost. |
| Delivery | 2UP order fee once; carrier quote and final fare separately. | Do not charge a new platform order fee for each courier status update or reassigning a rider. |
For a campaign, show audience size after consent/opt-out checks, billable segments/categories, rate version, estimated maximum and included usage. Reserve the authorized budget, capture attributable billable events and release unused holds. A timed-out provider request remains unresolved until checked; do not release its money and send again as if it never happened.
Where an approved bring-your-own-provider arrangement bills the merchant directly, do not also debit the same provider charge from 2UP credits. Charge only any separately published 2UP service fee and show the two responsibilities clearly.
Rate cards: version by country/currency, service/SKU, unit, plan, effective date, sell rate, provider cost basis and tax treatment. Preserve the accepted quote/version on every usage event. Notify merchants of prospective changes. Support a maximum quote or expiry so a provider rate change cannot silently exceed an authorized campaign budget. Track margin after actual provider cost, top-up collection fees, promotions, reversals and support.
Ledger and engineering contract
- Separate billing accounts, immutable balanced journal entries, paid/promo grant lots, holds, top-up attempts, usage events, rate-card versions, promo redemptions and reconciliation exceptions. A cached balance is not the only financial record.
- Atomic balance/hold checks must prevent two checkouts or a campaign and OTP burst from spending the same funds. Use transaction/CAS patterns compatible with the existing MongoDB deployment and durable retries; do not change the database model for this feature.
- Use integer minor units and a defined integer/decimal sub-paise metering policy where unit rates require it. Accumulate and round under a disclosed rule; avoid silently rounding each fractional message up to a whole rupee.
- Enforce unique provider payment/event IDs, logical order-fee IDs and billable usage IDs. Handle duplicate/out-of-order webhooks, refunds, disputes and unknown provider outcomes. Link reversals to their originals. [9]
- Store tenant and account authority server-side, keep Test/Live ledgers isolated, and separate platform top-up secrets/events from restaurant food payments. Add rollout gates rather than enabling existing live-food-payment flags.
- Test simultaneous debits, mismatched currency/amount, duplicate captured events, paid-versus-bonus eligibility, promotion-budget races, expired holds, late provider billing, insufficient funds before food payment, cancellation reversals, top-up refunds/chargebacks and restore/reconciliation.
Rollout: review existing billing code → ledger and top-ups → one-time order fees → one messaging provider with budgets → first-deposit promotions → one delivery partner → optional renewal/auto top-up. Pilot and reconcile each stage before widening access. This report specifies the design; it does not implement a production financial ledger.
Charge each cost where it belongs.
The amounts below are original pricing hypotheses for 2UP’s own services, before applicable tax. They are not verified vendor tariffs, market averages or approved offers.
| Service | Proposed treatment | Scope / commercial boundary |
|---|---|---|
| Standard onboarding | India ₹2,999 / proposed UAE AED 299 one time | One outlet, up to 100 supplied menu items, one domain connection, a table/QR setup and one remote training hour. First-10 pilot waiver may apply; complex cleanup and on-site travel are separate. |
| Brand Studio | From ₹29,900 one time | Up to five marketing-page layouts, supplied content, two revision rounds and the standard ordering experience. Confirm scope before quotation. |
| Bespoke storefront | From ₹79,900 one time | Discovery plus agreed website/menu/cart/checkout presentation on supported APIs. New backend behavior, integrations and extra rounds are separate. |
| Optional custom-content care | ₹999/month hypothesis | A defined small monthly content allowance, such as 30 minutes, after measuring delivery cost. Platform hosting, security fixes and core updates are already in the SaaS fee. |
| Managed campaigns | From ₹7,500/month hypothesis | A bounded service, such as four agreed campaigns and one report. Advertising spend, creative beyond scope and message/provider costs are additional. |
| WhatsApp / SMS / email volume | Merchant service credits, or approved direct provider billing | Apply allowances first, then the accepted rate card and eligible credit balance. Do not debit provider costs twice. Campaigns use the merchant’s authorized brand/sender; software access does not mean unlimited messages. |
| Delivery and pickup processing | Proposed ₹3 delivery / ₹2 pickup order fee | Deduct the 2UP fee from merchant credits under the hold/capture/reversal rules. Actual courier trips remain separately quoted and directly provider-billed initially. |
| Merchant food payments | Gateway/acquirer fees paid by merchant | Retain merchant-direct settlement. Do not route merchant food GMV through 2UP’s subscription revenue. Exact transaction tariffs depend on the provider and contract. |
| Devices, printers, QR signs | Merchant purchases or itemized hardware quote | Specify tested models and support responsibility. Existing compatible phones/tablets can reduce initial spend. |
| Domain registration | Merchant-owned, actual renewal cost | Domain connection is included in the proposed software plan. Registration and email mailboxes are different services. |
| POS/PMS/accounting integration | Discovery and scoped quote | Only promise integrations with documented access and tested order/payment behavior. Integration maintenance may need a recurring charge. |
| Native merchant-branded apps | Defer; quote validated demand | Start with responsive web/PWA. Store submission, updates and support across many branded apps are a separate recurring operation. |
Delivery launch: distinguish delivery order capture, management of a restaurant’s own rider, and third-party courier dispatch. These are three different capabilities. Begin with the workflow already documented in the product; add one locally useful courier integration after merchants request it and commercial access is confirmed.
Marketing launch: start with consent-aware customer records, simple segments, coupons and measurable links. Add opt-out handling, spending caps, sender onboarding and attribution before bulk campaigns. For managed marketing, compare incremental repeat sales with message cost, discounts and campaign labor; gross order value alone is not profit.
Design economics: quote estimated delivery hours × loaded hourly cost ÷ (1 − target project margin). Example assumption: 30 hours × ₹500 ÷ 0.50 = ₹30,000 at a 50% project gross-margin target. Measure revisions and QA time. Agree design asset rights, export/handover, recurring fees and cancellation milestones before starting.
Website-only projects may be supplied without restaurant operations, under a separate website/care scope. A customer buying custom design plus ordering pays the agreed one-time design project and the software subscription. Avoid duplicate platform-hosting or compulsory “maintenance” charges for the same service.
Profit comes from repeatable delivery.
Use paying outlets for revenue planning. One thousand registrations or pilot accounts are not one thousand subscriptions. Food sales, tax collected, courier charges and unconsumed service advances are not automatically 2UP revenue. The original calculator and three-cost illustration below cover subscriptions only; they exclude additional order/usage revenue, its associated costs and promotional redemptions.
Subscription revenue illustration
India term-price illustration: 12-month Core ₹1,499/month equivalent and Growth ₹2,499/month equivalent; the remaining plan mix is Growth. The long-term share uses 48-month Core ₹1,199 and Growth ₹1,999 monthly equivalents. Excludes Pro, extra promo codes, churn, acquisition timing, usage and one-time work. Monthly revenue equivalent is an allocation of prepaid subscription value, not monthly billing or a cash forecast.
| 1,000-outlet illustration | Monthly amount | Meaning |
|---|---|---|
| 400 Core + 600 Growth, initial 12-month term rates | ₹20,99,000 | Illustrative monthly subscription revenue equivalent. If all 1,000 begin together and prepay 12 months, subscription cash before tax is ₹2,51,88,000; do not count it again as extra revenue. |
| Service allowance in your 10.2up.in model | ₹1,74,750 | Historical planning budget at its default workload, before tax/reserve; not a new vendor quote. |
| Support allowance assumption | ₹2,50,000 | ₹250 per outlet. Validate real support capacity and cost. |
| SaaS collection allowance assumption | ₹52,475 | 2.5% of subscription value, expressed as a monthly equivalent; actual collection fees arise on upfront payments. Not a quoted gateway rate. |
| Remainder after those three lines | ₹16,21,775 | 77.3% of revenue, before engineering, sales, administration and other unmodeled costs; not net profit. |
Your existing cost report recommends a ₹1,74,750 monthly service allowance at 1,000 outlets and 30 orders/outlet/day, with separate contingency, taxes and people. Its login-route and infrastructure assumptions need revalidation. Table-service traffic can change that workload significantly. Do not reuse the same budget as a capacity guarantee.
Recalculate from visits and rounds: 1,000 outlets × 30 visits/day × 2 submitted rounds × 6 update events × 3 receiving devices × 30 days = 32.4 million event deliveries/month. That is also 10.8 million published events before retries. A provider counting both might meter 43.2 million messages. These are sizing assumptions, not measured demand or a vendor price.
Three subscribed devices per outlet would be 3,000 concurrent staff connections if all were online together. Add guest tracking, reconnects, presence, peak bursts and payload/egress separately. Subscriptions should be tenant/role scoped; broadcasting all customer information to every staff device is unnecessary and costly.
Staff-entered orders need not incur customer SMS OTP, which can lower verification cost. More rounds, station screens and retries can raise database and live-update cost. Measure both effects before changing providers or buying capacity.
Support is a scaling constraint: one support hour per outlet per month is 1,000 hours at 1,000 outlets—6.25 full-time equivalents at an illustrative 160 hours each, before internal overhead. Standard themes, training, a useful setup checklist and understandable error states directly improve margin.
Track realized ARPU after discounts, cloud/OTP/message cost, onboarding hours, support minutes, collection losses, churn and paid renewals. Use an 80% contribution/gross-margin ambition as a design target, with consistent accounting definitions. It is not a current result. Keep recurring software margin and one-time design margin visible separately.
Top-ups are funding, not extra profit. If 1,000 merchants each fund ₹1,000, 2UP receives ₹10 lakh of service advances before tax treatment. Unused paid value is an obligation, not an additional ₹10 lakh of earned subscription revenue. A ₹100 first-top-up award for every one of those merchants creates up to ₹1 lakh of promotional face value, not cash received.
Order-fee scenario: 1,000 active outlets × (10 pickup orders/day × ₹2 + 10 delivery orders/day × ₹3) × 30 days = ₹15 lakh of gross processing charges in that illustrative month, before promotions, reversals and tax. The updated ₹20.99 lakh initial-term subscription revenue equivalent plus that activity is ₹35.99 lakh of gross service value before those adjustments and all costs. This is not a sales or cash forecast; usage-dependent order fees are separate from subscription MRR. Do not add prepaid subscription receipts or top-up receipts a second time.
Track subscription MRR, earned order fees, metered service charges, unused paid advances, issued/used/expired bonuses, provider costs, paid-credit refunds, gateway fees and tax separately. Gross-versus-net presentation for resold provider services requires the accountant’s principal/agent assessment. Reconcile cash collection, earned revenue and outstanding credit obligations; high top-up cash must not hide operating losses.
Ship a complete shift first.
- Gate 0 · Establish the actual release baseline.In Kiro, inspect the working tree, staged WP-12/WP-13 changes, current routes and deployed evidence. Complete the documented post-fix checks and provider journeys. Preserve the protected checkpoint and payment gates.
- Gate 1 · Pilot connected table service.Add/extend table entities, visits, staff order entry, new rounds, live KDS updates and a basic consolidated bill. Start with one kitchen and explicit cashier permissions. Test a real busy shift in a few independent single-outlet venues.
- Gate 2 · Release the website foundation.Ship three high-quality responsive themes, safe customization, tenant SEO checks and publication/rollback. Keep QR entry fast. Use the same menu and pricing logic across themes.
- Gate 3 · Validate the paid offer.Use one coherent price sheet with roughly 10 paid pilot venues, showing subscription, flat order fees and optional usage. Pilot/reconcile the credit ledger, top-ups, unique order-fee postings and one messaging route before promotions and wider use. Capture actual order volume, support effort, renewal willingness and reasons for losing a sale.
- Gate 4 · Add validated advanced operations.Station routing, safe transfers, partial/split settlement, managed print integrations and measured growth features. Deliver in small packages with feature gates and clear release criteria.
- Gate 5 · Expand in stages.At 10 → 50 → 200 → 1,000 active outlets, review live order latency, restore evidence, peak load, onboarding capacity and contribution margin. Do not let a calendar target replace the operational gates.
| Market | Recommended emphasis | Before commercial rollout |
|---|---|---|
| India | Independent single-outlet restaurants/cafés, reliable table service, direct orders and simple onboarding. | Prove merchant-direct payment flows when enabled, receipts/invoice scope, local language needs and sustainable field support. |
| Dubai, UAE | Next country pilot after India proves retention. Preserve the previously approved dine-in/QR/room-service + pay-at-counter first phase. | Validate local entity/invoicing arrangements, provider eligibility, AED, Asia/Dubai, English/Arabic and RTL, data handling and local support. |
| Doha, Qatar | A separate country launch after the UAE workflow is repeatable. | Validate Qatar-specific commercial/payment requirements, QAR, Asia/Qatar, bilingual content, merchant agreements and local delivery/support. |
Country readiness is a product and commercial checklist, not a currency toggle. Do not assume the Indian payment provider, invoice template, courier or message account automatically applies abroad. No current country-specific tax or legal determination is made in this brief.
Multi-tenant operation remains the platform architecture. Multi-outlet merchant groups are a different feature, explicitly deferred in the approved master-plan decision. Sell independent outlet subscriptions with clear expectations until shared group controls are truly implemented and verified.
Extend the order engine carefully.
Proposed data and behavior contract
tables: tenant-scoped identity, display label, area, capacity, active flag and opaque QR locator. An occupied table can exist without an order.table_sessions: visit identity, table references, service state, assigned staff, timestamps, membership policy, version and settlement references. Enforce one active visit per physical table in the first version.- Existing orders: additive session reference, entry source such as QR/CAPTAIN/COUNTER, initiating actor and round identity. Reuse server pricing, immutable snapshots, quote validation, idempotency and fulfillment rules.
- Kitchen projection: station/item progress, submission and acknowledgement times, correction history. Derive whole-order readiness; a visit can remain open after an individual order completes.
- Payments: separate visit billing from order fulfillment. A consolidated bill aggregates authoritative round snapshots. Multiple collections need idempotent allocation to orders/items with amount/currency guards and durable partial-failure recovery.
- Audit: keep who added, transferred, voided, discounted, collected or reopened, with reason and time. Do not silently edit a submitted/preparing line.
Payment compatibility: WP-03 records collection evidence while leaving canonical payment state UNPAID until reconciliation. Preserve that distinction. “Food served,” “collection recorded,” “cash reconciled” and “table ready for another party” are separate events. A table-wide discount or split bill needs an explicit pricing/payment design; summing display totals is insufficient.
Race conditions: use server-enforced idempotency for submissions and version/compare-and-set guards for competing updates, settlement and table moves. Tenant identity must come from the existing resolver/authentication boundary. A client-supplied tenant/table/session ID alone grants no authority.
Meaningful release tests
- Two captains and a guest add rounds to Table 5 concurrently: no lost items, duplicate KOTs or cross-visit mixing.
- The submit request times out after its database commit: the retry returns the same round and amount.
- Kitchen goes offline and reconnects: outstanding work is recovered; received/acknowledged states remain honest.
- A drink is ready while hot food is preparing: the order/visit is not incorrectly completed.
- A guest reuses a QR from a closed visit or another venue: no access to a current party’s bill or unauthorized order attachment.
- Two staff attempt a table transfer or payment at once: one authoritative result and a clear conflict/retry.
- Collected cash, prepaid orders, mixed rounds and later cancellations: no double collection, implicit refund or silent change to historical prices.
- Over 100 active kitchen tickets: no hidden old work, wrong badge counts or unbounded response growth.
- Ten-minute network loss and an eight-hour shift: stale indicators, recovery, sound behavior and memory use are tested on real supported devices.
- Two merchant domains and two themes: correct HTML, images, structured data, canonicals and cache isolation; no private URL indexing.
- Phone/tablet/desktop, keyboard and 200% text: order submission, bill review and kitchen actions remain reachable.
- Mixed-mode visit end-to-end in a pilot: QR → captain addition → kitchen → served → bill → recorded collection → close → cleaning → next party.
Suggested first Kiro instruction
“Review only: inspect the current 2UP working tree and newest BUILD_PROGRESS entry. Identify existing table/QR/KDS, staff permissions, pricing, customer phone auth, cash-collection evidence, durable effects recovery, themes, tenant SEO and platform billing code. Distinguish plan/trial/entitlement administration from a prepaid credit ledger. Produce additive packages for table sessions/captain ordering and merchant service credits: ₹1,000 minimum paid top-up, paid/bonus/held balances, promotions, versioned usage rates, proposed pickup ₹2/delivery ₹3 fees, top-up verification, reconciliation and a provider-billed delivery integration. Preserve merchant-direct food payments, staged work and existing gates. Show unknowns and tests; do not implement or deploy during this review.”
This is a recommended review package, not a claim that the application was changed in this session.
Resolve these before building the bill.
- Existing billing/POS: will pilot restaurants keep Petpooja or another POS and use 2UP alongside it, or should 2UP produce the primary restaurant bill? This determines integration, reconciliation and fiscal-invoice scope.
- Offline requirement: is a clear pending draft acceptable during an outage, or must orders continue reaching the kitchen over the local network? The second option needs a separate local architecture.
- Launch cohort: which city, how many pilot venues, and roughly how many tables/captains per venue? That gives a useful first device and peak-load test.
Working recommendation until those answers: single-outlet hybrid table service, cloud-connected staff devices, existing food-payment gates preserved, explicit pay-at-counter collection evidence, three included themes, Core/Growth pricing tests, merchant service credits with ₹1,000 minimum top-ups, proposed ₹2 pickup / ₹3 delivery fees and separately scoped custom design/provider usage. “Client” is interpreted as the merchant business; a consumer wallet accepted across restaurants would be a different financial product.
What this plan stands on.
External pages checked 26 October 2026. Vendor statements describe advertised capabilities, not independently tested performance. Product design, package limits, prices for 2UP services, targets and financial scenarios in this brief are recommendations or labeled assumptions.
- [1] Petpooja: Captain ordering app, Kitchen display system and pricing page. No exact local Petpooja subscription price is asserted.
- [2] uEngage Edge web ordering and La Pino’z website. The exact La Pino’z contract and design charges are unknown.
- [3] Owner.com official pricing, including the guest support-fee statement in its FAQ. USD figures are not an Indian quote.
- [4] Google Search Central: JavaScript SEO basics.
- [5] Google Search Central: LocalBusiness structured data.
- [6] Google Search Central: canonical URLs.
- [7] web.dev: Core Web Vitals thresholds.
- [8] Vercel: WebSocket support announcement, 22 June 2026.
- [9] Razorpay: webhook validation, duplicate events and event order. Provider events require validation; wallet postings also require application-level idempotency.
- [10] RBI: Master Directions on Prepaid Payment Instruments, displayed as updated 30 September 2026; section 2.1 distinguishes own-service closed instruments from third-party payment/settlement. This brief does not classify 2UP as exempt or licensed.
- [11] Shiprocket Quick official product page: food delivery and API capability. No partnership, pilot-city coverage, account arrangement or final fare has been verified.
- [12] WhatsApp Business Platform official pricing. Exact active account rates, discounts and BSP fees are not quoted; use verified current contract/rate-card data.
- [13] UAE Federal Tax Authority, checked 27 October 2026; its VAT calculator shows a 5% VAT calculation. The checkout uses a local taxable-supply illustration; actual tax treatment remains to be established.
- [14] Hostinger: renewal periods and advance payments. Its documentation explains monthly comparisons with full-term upfront collection. The user-supplied screenshots informed the term selector; 2UP rates are original proposals.
- [15] GST Council: IT/ITES FAQ, question 5 states the standard IT-services GST rate used for the 18% illustration. This does not determine all 2UP supplies, exports or prepaid-credit tax treatment.
- Founder experiments: one.2up.in, its pricing page, 5.2up.in, and 10.2up.in. Retrieved directly after the research fetcher could not open these hosts. Used as planning artifacts, not proof of current revenue, costs or released features.
- Uploaded primary project material: 2UP-MASTER-COMPANY-PLAN.md, BUILD_PROGRESS(1).md and 2UP_PROJECT_HANDOFF_2026-10-21.md. Newest relevant build-log entries take precedence over historical implementation inventories; source inspection is still required.
- Uploaded visual material: merchant CRM desktop, customer checkout mobile, platform home desktop, and three screenshots including the competitor navigation, file selection and La Pino’z page. No project code or external account was modified.