Vendors / Regional & international

Petpooja

Petpooja (Prayosha Food Services Pvt. Ltd.)

dossier live

Claims in scope
312
Scored
312
Assessed
279
Unknown
33
Not applicable
2
Values challenged
77

Identity

Owner
Privately held. Legal entity Prayosha Food Services Pvt. Ltd.; co-founders Parthiv Patel (CEO) and Apurv Patel (CSO). No funding rounds, investors or PE ownership disclosed on the vendor's own site. Source: https://petpooja.com/about-us
Founded
2011 (Ahmedabad, Gujarat, India); vendor timeline claims cloud-first POS in 2013, offline mode in 2017, international expansion in 2020, Payroll/Tasks/Invoice added 2023-2025. Source: https://petpooja.com/about-us
Scale
Vendor claims 150,000+ businesses served and 1,500+ employees, operating in India, UAE and South Africa (the homepage lists a far longer country list that reads as SEO surface rather than operating presence). Petpooja also claims it handles '25% of Swiggy/Zomato orders'. ARR and market share: unknown - no public filings. Claim-level only. Sources: https://petpooja.com/about-us, https://www.petpooja.com/, https://petpooja.com/poss/online-order-management-software
Who it is for
Independent Indian restaurants, QSRs, cafes, bakeries, cloud kitchens and bars - overwhelmingly 1-5 outlet operators, with a 'large chain' head-office tier layered on top. Very high outlet count, very low ARPU (entry tier roughly USD 67-133/year equivalent). Secondary presence in UAE and South Africa. Not a meaningful US/EU market participant.
Site
https://www.petpooja.com/

Pricing

transparency: partial · unit: per-location · processor lock-in: no

Software
Vendor's own pricing page publishes THREE TIER NAMES ONLY - Core, Growth (marked Popular), Scale - with annual and monthly billing toggles and a feature comparison matrix, but NO currency figures. It states: 'Local pricing may vary based on your region & currency. Contact us for accurate, localized rates' and routes every tier to 'Book A Demo'. The vendor is therefore effectively quote-only on dollars. THIRD-PARTY LISTED FIGURES (SoftwareSuggest, displayed in USD, each '+18% GST' which confirms an underlying INR list price - directional, not vendor-confirmed): Electron POSS Core ~$133/yr; Electron POSS Growth ~$222/yr; Electron POSS Scale ~$333/yr; Android POSS ~$100/yr; POSS Lite ~$67/yr; Local POSS Core ~$222/yr; Local POSS Growth ~$333/yr; Local POSS Scale ~$444/yr. Source: https://www.softwaresuggest.com/petpooja. Per the vendor matrix, Cloud Billing, 80+ Reports, in-built CRM, unlimited terminals/user rights, central kitchen module and multi-terminal billing appear on all tiers; Inventory Module and Menu Management step up at Growth; Scale adds a dedicated POC. Per SoftwareSuggest, KDS, Captain App, Scan & Order and API Integration sit only in the Scale tier.
Card processing
Not applicable / not published. Petpooja is not a card acquirer - it integrates payment gateways and UPI rails rather than underwriting merchants. No processing rate card exists on the site.
Contract
Both monthly and annual billing offered on the pricing page. Terms state the card is billed the 'yearly membership fee' at end of free trial unless the app is uninstalled first. No minimum multi-year term is published. Sources: https://petpooja.com/poss/pricing, https://petpooja.com/terms-and-conditions
Early termination
None published. Refund policy: cancel 'any time'; full refund if cancelled within 15 business days of signup (less value of benefits used); after that annual plans refunded 'only to the extent of your usage'; monthly plans refunded only if unused. Refunds take 30 days to process. Source: https://petpooja.com/cancellation-and-refund-policy

API posture

public API: partner-gated

Cost to integrate
For the merchant, 'API Integration' is listed as a Scale-tier-only capability (https://www.softwaresuggest.com/petpooja), gated behind the top plan rather than included in base. For a would-be integration partner, commercial terms are unpublished - the only path is an email contact form. Petpooja does advertise 'zero commission on aggregator integration setup' for Swiggy/Zomato onboarding (https://petpooja.com/poss/online-order-management-software).
Webhooks
unknown - no webhook documentation, signing scheme, retry policy or event catalogue is publicly available.
Data export on exit
Weak and explicitly time-boxed. Terms state: 'Upon expiry or termination of this Service Agreement, you shall download your data within 2 days of such expiry or termination.' A two-day retrieval window is among the harshest in this cohort. Customer/CRM data is separately exportable free and unlimited during the subscription ('download the customer data as often as you want for free'). Sources: https://petpooja.com/terms-and-conditions, https://petpooja.com/poss/restaurant-customer-management-software
Notes
The most consequential contract finding is not the API but the content licence: Petpooja's terms grant it 'a perpetual, irrevocable, nonexclusive, royalty-free, right to use Your Content for any purpose' and state 'Petpooja may monetize some of this Content through the use of third party affiliate programs.' Combined with the 2-day post-termination export window, an operator's data-ownership position is materially worse than with Toast/Square/Lightspeed. Source: https://petpooja.com/terms-and-conditions. Petpooja runs a coordinated vulnerability disclosure programme (https://petpooja.com/security) and a 'Trust Vault' compliance portal at https://trust.petpooja.com/, but the Trust Vault served no readable certification content on fetch - SOC 2 / ISO 27001 / PCI DSS status is unverified.

Capabilities

Every claim is binary and checkable. Grades: A primary documentation · B product documentation · C pricing or feature page · D marketing claim · E third-party reporting · F inference with no source. A yes on a differentiator claim requires A or B.

Order capture & FOH workflow

Partial

Provides a graphical floor-plan editor where an operator can draw sections, place tables of varying shape/capacity, save multiple floor-plan layouts per location, and assign sections to servers.

order-capture-floor-plan-editor

Dine-in areas with per-area menus/tax and 'customisable seating arrangements'; captains assignable to tables. No graphical shape editor or saved multi-layouts documented. https://petpooja.com/poss/restaurant-billing-software · retrieved 2026-08-01

D
No

Order lines can be tagged to a seat number at entry, and the check can be split by seat afterward without re-keying items.

order-capture-seat-level

CLAIM: order lines tagged to a seat number at entry AND the check split by seat afterwards without re-keying. VERDICT: no (moved from unknown). THE STORE-LEVEL POS ITSELF, not an API projection (the reason the 331st held): the vendor's billing-module tutorial "Petpooja | Types Of Payment | English" (Petpooja Tutorials channel, https://www.youtube.com/watch?v=lTWIwcqRGyM) closes the split enumeration: "Split bill. Sometimes customer prefer to split the bill. You can do this using the split bill feature. It gives you two option. Percentage portion wise, in which the bill is divided equally or in a chosen percentage. Item wise, assigning a specific item to a customer and creating the bills differently." The 1080p frame at 0:31 shows the POSS "Split Bill" dialog with exactly two tabs, "Portion Wise / Percentage Wise" and "Item wise", the latter moving items from a "(Qty.) All Items" list into "Part 1", "Part 2" (+ "Add More Bills +1..+4") - parts, not seats. The order-entry tutorial "Order to Table" (https://www.youtube.com/watch?v=nlKZSznM6H0) enumerates the order header as order type, table number, customer name/mobile/address, "the number of persons sitting on the table" and order-wise comments - a headcount, no seat index; the billing action row in the frames is Bogo Offer / Split / Advance Order / Complimentary / Sales Return / Save / Save & Print / Save & eBill / KOT / KOT & Print / Hold. Consistent with the blog split guide's three methods (percentage, price, proportion) already on the record. CONTROLS over the caption census (133 videos, 551,622 chars, tokenised word-boundary, case-insensitive) and slug b's 209 EN+HI transcripts: seat/seats 0, सीट 0, cover/covers 0 in an order context; "persons" hits are the headcount field and HR prose. Since the only two split modes are percentage and item-wise, split-by-seat is absent from the POS's own split dialog, which fails the second conjunct. SURFACE (332nd, new): auto-caption tracks of Petpooja's own YouTube channels, fetched anonymously with yt-dlp (timedtext needs a PO token; yt-dlp's player clients do not): "Petpooja Tutorials" UCCAKlH4ogL0PvuUErRk5TWQ, 101 of 105 English videos (4 missing: 3 Attendo HR clips + Purchase Order Received Report), plus 32 product videos of the main @petpooja-softwareforSMEs channel; corpus 551,622 chars in .cache/q332/petpooja/a/corpus-captions{,2}.txt; cross-checked against slug b's 209-transcript EN+HI set (.cache/q332/petpooja/b/tx). Video frames read at 1080p (ffmpeg) where the caption needed a screen. Retrieved 2026-09-18. https://www.youtube.com/watch?v=lTWIwcqRGyM · retrieved 2026-09-18 adversarially verified

B
Partial

Items can be assigned to courses and held, with a fire-next-course action available from a handheld or terminal that releases only that course to the kitchen.

order-capture-coursing-hold-fire

"A captain takes the full order upfront and holds the items in a wishlist, then fires the kitchen tickets course by course, from soups to starters to mains" - the worked sequence is take the order, hold in wishlist, "Fire the soup and starter tickets, and keep the mains on hold", then "Fire the mains once the starters are cleared". Hold-and-fire from the handheld is therefore present. Shortfall: the mechanism is a held wishlist that the captain releases by selection - no documented per-item course attribute, no named course sequence, and no fire-next-course action that knows which course is next; and this is described on a vendor guide page, not in configuration documentation. https://blog.petpooja.com/industry-business-guides/fine-dine-pos-what-handle-on-busy-floor/ · retrieved 2026-08-06

C
Partial

Supports splitting a check by item, by seat, by even N-way, and by arbitrary dollar/percentage amount, and merging checks or tables back together, including after partial payment.

order-capture-split-merge

'Accept payments either by splitting bill or merging tables.' No documentation of by-seat, even N-way, arbitrary-amount, or post-partial-payment merge. https://www.petpooja.com/poss · retrieved 2026-08-01

D
No

Opens a bar tab against a card pre-authorization with a configurable auth amount, supports incremental re-auth as the tab grows, and auto-closes stale tabs at end of day. differentiator

order-capture-bar-tab-preauth

CLAIM: opens a bar tab against a card pre-authorization with a configurable auth amount, supports incremental re-auth as the tab grows, and auto-closes stale tabs at end of day. VERDICT: no — tabs exist, the card pre-auth machinery does not. EVIDENCE: the bar document's enumeration covers tabs as an open running bill only: "holds an open tab for every guest at the counter", "Individual tabs & split bills | Holds a running tab per guest and splits it cleanly at the end". Payment is taken at settlement through a routed EDC request (see the Petpooja Finance capability table), and no authorization is held. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "pre-auth*" 0, "preauth*" 0, "incremental auth*" 0, "authorization hold" 0, "stale tab" 0. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/bar-brewery-pos-india-liquor-pilferage-control/ · retrieved 2026-09-17 adversarially verified

C
Partial

An open check can be transferred between servers, tables, and devices, and the transfer is recorded in an audit log naming both employees.

order-capture-transfer-audit

"In Petpooja POSS you can merge or move tables on the fly, and the running order travels with the guests", and "The POS also records every table move. When items or a whole kitchen order ticket shift to another table, that change feeds the leakage panel, so an owner can see which table moved and when." The fine-dine guide repeats "table merge, move and split". Shortfall: only table-to-table movement is documented, and the recorded audit names the table and the time - there is no documented transfer of an open check between servers or between devices, and no audit entry naming both the releasing and receiving employee. https://blog.petpooja.com/operations-workflows/split-restaurant-bill-merge-tables-without-errors/ · retrieved 2026-08-06

C
Partial

Ships a first-party handheld ordering app running natively on the handheld device (not a remote/mirrored desktop session) that can send to kitchen and take a card payment tableside.

order-capture-native-handheld

"Captain ordering app" appears in the Add-ons list on the vendor pricing page, not in any tier's included set. Native and first-party, yes; included, no. Price undisclosed. https://petpooja.com/poss/pricing · retrieved 2026-08-01 adversarially verified

C
Partial

With the internet down, terminals and handhelds can still create orders, apply modifiers, send to kitchen, and tender cash, and the vendor publishes what does and does not work offline.

order-capture-offline-order-entry

'Works perfectly well, even in offline mode'; Captain app 'supports offline architecture'. No published matrix of what does and does not work offline. https://petpooja.com/poss/restaurant-billing-software · retrieved 2026-08-01

D
Partial

Guest QR at-table ordering writes items onto the same open check as server-entered items, rather than creating a separate order ticket. differentiator

order-capture-qr-same-check

The same-check behaviour is claimed verbatim ("every new order from the same QR links back to the same table bill"), but the page itself categorises Scan & Order as an add-on under "Customer service", and the pricing page lists "QR Ordering/Digital menu" as an add-on. Marketing claim + paid module = partial, not yes. https://petpooja.com/poss/scan-and-order · retrieved 2026-08-01 adversarially verified

B
Partial

Offers a first-party self-order kiosk that renders the same menu and modifier tree as the POS with no separate menu build, and the vendor documents ADA/accessibility conformance for it. differentiator

order-capture-kiosk-first-party

Partial score stands, but the note misstates the ownership model: the kiosk hardware is Addsoft/Posbank; only the software is Petpooja's. Sizes 22"/27"/32", wall and floor mount, built-in thermal printer, WiFi+Bluetooth, UPI QR/cards. No ADA or accessibility language anywhere on the page — that part of the note is correct. https://petpooja.com/poss/self-service-kiosk · retrieved 2026-08-01 adversarially verified

B
No

Supports drive-thru-specific order flow: order-point/pay-window/pickup-window separation, order sequencing or tandem-lane assignment, and pull-forward or parking-spot assignment.

order-capture-drive-thru

CLAIM: drive-thru-specific order flow — order-point/pay-window/pickup-window separation, order sequencing or tandem-lane assignment, and pull-forward or parking-spot assignment. VERDICT: no. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "drive-thru" 3 + "drive-through" 5 = 8 hits in 995 documents and every one is generic industry prose about the format (fast-casual definitions, a layout guide, a 2019 US takeout statistic, an AI voice-kiosk aside) — none describes a Petpooja capability. "headset" 0, "order confirmation display" 0, "pull forward" 0, "tandem lane" 0. POISON NAMED: "speed of service" 3 hits, all a customer-feedback rating line ("Speed of service | 1 to 5", blog.petpooja.com/operations-workflows/what-to-include-in-a-restaurant-customer-feedback-form/), never a timer. The vendor also publishes a closed outlet-type list (fine dine, QSR, cafe, food court, cloud kitchen, ice cream & desserts, bakery, bar & brewery, pizzeria, large chain) with no drive-thru format in it. Retrieved 2026-09-17. https://www.petpooja.com/poss · retrieved 2026-09-17 adversarially verified

C
No

Captures and reports drive-thru speed-of-service timers by segment (order, total, window) tied to individual orders.

order-capture-drive-thru-timers

CLAIM: captures and reports drive-thru speed-of-service timers by segment (order, total, window) tied to individual orders. VERDICT: no. EVIDENCE: no drive-thru surface exists to time, and the vendor's published report inventory is described as "80+ business reports" covering day-end sales, online orders, staff actions and inventory consumption (blog.petpooja.com/glossary/tip-management/) with no service-time segment. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "drive-thru" 3 + "drive-through" 5 = 8 hits in 995 documents and every one is generic industry prose about the format (fast-casual definitions, a layout guide, a 2019 US takeout statistic, an AI voice-kiosk aside) — none describes a Petpooja capability. "headset" 0, "order confirmation display" 0, "pull forward" 0, "tandem lane" 0. POISON NAMED: "speed of service" 3 hits, all a customer-feedback rating line ("Speed of service | 1 to 5", blog.petpooja.com/operations-workflows/what-to-include-in-a-restaurant-customer-feedback-form/), never a timer. The vendor also publishes a closed outlet-type list (fine dine, QSR, cafe, food court, cloud kitchen, ice cream & desserts, bakery, bar & brewery, pizzeria, large chain) with no drive-thru format in it. Retrieved 2026-09-17. https://www.petpooja.com/poss · retrieved 2026-09-17 adversarially verified

C
Partial

Vendor ships a first-party AI voice ordering agent for phone and/or drive-thru that injects orders directly as POS orders, or publishes a documented API partner program for third-party voice AI. differentiator

order-capture-voice-ai

Petpooja publishes PetpoojaOnlineOrdering APIs v2.1.0, a credentialed partner API (app_key 32 chars, app_secret and access_token 40 chars) whose /saveorder endpoint injects a third-party order directly as a POS order with customer, items, variations, addons, taxes, discounts, charges, payment_type and prep time, plus fetch/push menu and an order-status callback. Any third-party voice agent would ride this path and the program is documented and open to integrators. Shortfalls: it is a general online-ordering partner program, not a voice-AI partner program - nothing in the spec or on petpooja.com addresses voice, telephony or drive-thru audio; and the only first-party voice feature is the Captain app's 'AI voice recognition' that helps a captain add items for billing (www.petpooja.com/poss/captain-ordering-app FAQ), a staff input aid, not a guest-facing ordering agent. The human-readable copy of this spec at onlineorderingapisv210.docs.apiary.io returned HTTP 502 on 2026-08-06; the blueprint source above served in full. https://jsapi.apiary.io/apis/onlineorderingapisv210.apib · retrieved 2026-08-06

A
Unknown

Supports order throttling: per-channel capacity limits per time slot with automatic quote-time extension when kitchen load exceeds a configured threshold. differentiator

order-capture-throttling

Read blog.petpooja.com/industry-business-guides/item-availability-menu-on-off-stop-cancelled-orders/, which is the closest thing Petpooja publishes to load control: manual item on/off, bulk category on/off ('When the kitchen falls behind on a Friday rush, you may want to pause every slow-cooked item at once'), and stock-threshold auto-pause that propagates to Swiggy and Zomato. That is availability suppression, not capacity: no orders-per-time-slot limit, no per-channel cap and no automatic quote-time extension. Also checked www.petpooja.com/poss/online-order-management-software and the Online Ordering API v2.1.0, where prep time appears only as fixed per-restaurant/per-item/per-order values (minimum_prep_time, minimumpreparationtime, min_prep_time) and the store-status endpoints toggle a store open or closed outright - a binary, not a throttle. None of these enumerates the configurable online-order settings, so a per-slot cap elsewhere in the admin is not excluded. || 326th: NEW SURFACE, NOT SETTLED. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. The online-ordering interchange is where per-channel throttling would surface, and it has no capacity primitive: tokenised controls throttle 0, throttling 0, capacity 0, "limit" only as discountmaxlimit/bogoitemamountlimit, slot 12/12 all "Delivery hour From/To seconds slot" or "Active Schedule days and time slot of category". The only load valve documented is a MANUAL binary store switch — "Update Store Status ... This API is used by merchant to tell integration partner to on/off the store for online orders within their set working hours", with "turn_on_time (required) - Next opening time" — plus manual item 86ing with "autoTurnOnTime": "custom". Binary manual pausing is not per-slot capacity with automatic quote extension, but an integration schema does not bound the POS UI, so this is held unknown rather than published as a no. Retrieved 2026-09-18. || 333rd: 333rd, NEW SURFACE, NOT SETTLED: the store-level POS's "Online Order Configuration" tile and Outlet Settings "Online/Advance Order" section exist but are never opened on screen; a per-channel slot cap would live there. Caption controls (342 transcripts, EN+HI): throttl* 0, capacity 0, "orders per" 0, "time slot" 0; "store status" 2 (the POS top-bar on/off toggle). SURFACE (333rd, new): the STORE-LEVEL POS's own Operations screen, read from 1080p frames of the vendor tutorial "Petpooja | POS | English" (https://www.youtube.com/watch?v=zPwJPJmhsek, frames 3:00-5:40; the 332nd captioned this video but never frame-read it). Petpooja POS v107.0.3 (Windows build, "Ref ID : A132476R, Version : 107.0.3") side menu = Billing, Operations, Reports, Live View, Settings, Check Updates, Logout. The Operations screen tiles: Orders, Online Orders, KOTs, Customers, Cash Flow, Expense, Withdrawal, Cash Top-Up, Inventory, Notification, Table, Virtual Wallet, Manual Sync, Help, Live View, Due Payment, Language Profiles, Billing User Profile, Currency Conversion, Feedback, Delivery Boys, LED Display; "Set the configuration for your restaurant": Menu, Bill / KOT Print, Tax, Discount, Billing Screen, Settings, Online Order Configuration, Me[nu ...] (label cut by the presenter overlay), Service Renewal, Custom Order Status. Outlet Settings > Billing Screen cards: Display, Calculations ("Configure how invoice gets calculated"), Connected Services, Print, Customer; then an "Online/Advance Order" section not opened on screen. Reports submenu: Category, Item, Sales, Order, Executive Sales, Employee, Group, Variation, Cover Size Summary (list continues below the fold). The Android POS "Management" menu: Order List, Kot List, Inventory List, Online Order Configuration, Expense, Withdrawal, Due Payment; Configuration: Manual Sync, Printer Setting. The narrator says the Operations set is per-staff ("all the anary services for which you given the access to the staff ... completely customizable") and the owner-dashboard tutorial (https://www.youtube.com/watch?v=ReK9on1tAXc) carries the on-screen disclaimer "Availability of certain feature(s) depends upon the outlet type, user type, country, pricing plans & other factors", so this is a FLOOR of the POS's modules, not a census. The POS installer is downloaded from the owner's dashboard behind the merchant login (same video), so the client itself cannot be censused anonymously. Retrieved 2026-09-18. || 334th: 334th, NEW SURFACE, NOT SETTLED: the Online Ordering Widget client (https://oow.petpooja.com/, 'Petpooja Widget') has a server-side SLOT check for advance orders: custom.js POSTs the landing form to orders/checkforadvanceorder and on response 1 (or orders/process response 2) shows the inline alert "No slot available right now." (div.groceryslotalert; https://oow.petpooja.com/js/custom.js). Its complete globalMessages dictionary (63 keys) otherwise rejects only on outlet hours ("advanceOrderInvalid": "Invalid order time. Outlet is closed at selected time"), minimum order and take-away disabled; the Scan & Order dictionary adds "daywiseSlotOff" ("Sorry! Restaurant is closed now"). So SLOTS EXIST, but whether "no slot" means a per-slot order cap (the claim's first conjunct) or just no remaining time windows is decided server-side and was not probed (that is a POST to a production backend, not allowed). No quote-time extension appears in either client (controls: throttl* 0, capacity 0, "prep time" 0 across ~402,000 chars of widget + scan-and-order client). Next pass: a captured advance-order popup (Wayback holds 104 widget/menu captures on *.petpooja.com, none of the popup). Retrieved 2026-09-18. adversarially verified

F
Partial

Accepts future-dated/scheduled orders with a per-channel lead time and automatically injects them into the make queue at a computed fire time rather than on receipt.

order-capture-scheduled-orders

Online Ordering API v2.1.0 /saveorder: preorder_date (yyyy-mm-dd) and preorder_time (HH:mm:ss) are both required, documented as 'For advance order the pre order date and time must be greater than or equal to current date and time of the system', with a validation error SO_105 when the preorder datetime is in the past; a separate advanced_order flag ('Flag which says that placed order is advance or not. Value is Boolean either Y or N') marks the order as advance, alongside urgent_order/urgent_time and an order-level min_prep_time 'defined by the order platform'. Future-dated acceptance is therefore documented. Shortfalls: lead time arrives per order from the platform rather than being configured per channel in Petpooja, and nothing in the spec or on www.petpooja.com/poss/kitchen-display-system documents holding an advance order out of the make queue until a computed fire time - the KDS is described only as displaying online and dine-in orders as they arrive. https://jsapi.apiary.io/apis/onlineorderingapisv210.apib · retrieved 2026-08-06

A
Unknown

Provides a distinct catering order flow with quotes, deposits, balance-due tracking, and a delivery/event schedule separate from the standard order queue.

order-capture-catering

Enumerated www.petpooja.com/sitemap.xml: there is no catering or banquet page among the ten outlet-type pages, and the two catering items on blog.petpooja.com (/operations-workflows/food-catering-tips/ and /industry-business-guides/how-to-start-a-catering-business/) are general business advice with no Petpooja product flow in them. In the Online Ordering API v2.1.0 the order model carries preorder_date/preorder_time and an advanced_order flag, which covers a future-dated order, but the payment and total model has no deposit, part-payment or balance-due field (payment_type is COD/CARD/CREDIT/ONLINE/OTHER, plus a collect_cash amount for self-delivery COD), and there is no quote or event-schedule object. That is an aggregator relay schema, though, not the in-store order model, and no Petpooja page states that catering orders are unsupported - so this is unresolved, not absent. || 332nd: 332nd, NEW SURFACE, NOT SETTLED: the POS billing screen has an "Advance Order" button (1080p frames of https://www.youtube.com/watch?v=0THG1AG7UCM): "Advance order feature. You can schedule orders for future date and time. You can also select the mode of payment and add notes if required. This is best for parties, events and big organizations." The Settlement Types tutorial (https://www.youtube.com/watch?v=Z_HS4eu4ibw): "Each paid option can be selected when the customer has already made the payment in advance ... Extra money can be settled during the final settlement". That is a future-dated order with prepayment, inside the standard order flow; no quote, no deposit-vs-balance tracking, no separate event schedule is named (controls over 133 videos + slug b's 209: catering 27 hits, all in the "General F&B Types" industry explainer; quote/quotation 1, a garbled ASR line in Qf2PJMjbkZA; deposit 1 unique, a GST deposit). SURFACE (332nd, new): auto-caption tracks of Petpooja's own YouTube channels, fetched anonymously with yt-dlp (timedtext needs a PO token; yt-dlp's player clients do not): "Petpooja Tutorials" UCCAKlH4ogL0PvuUErRk5TWQ, 101 of 105 English videos (4 missing: 3 Attendo HR clips + Purchase Order Received Report), plus 32 product videos of the main @petpooja-softwareforSMEs channel; corpus 551,622 chars in .cache/q332/petpooja/a/corpus-captions{,2}.txt; cross-checked against slug b's 209-transcript EN+HI set (.cache/q332/petpooja/b/tx). Video frames read at 1080p (ffmpeg) where the caption needed a screen. Retrieved 2026-09-18. adversarially verified

F
Yes

Pushes an order-ready signal back to third-party marketplaces (e.g. DoorDash) from POS or KDS state, rather than requiring a tablet tap. differentiator

order-capture-order-ready-signal

Online Ordering API v2.1.0, Order Callback: 'Online order integration partner must implement this endpoint to allow PoS patner to notify about order status updates post successfull order relay', with callback_url passed on every /saveorder call. The status enum is documented as '-1 = Cancelled, 1/2/3 = Accepted, 4 = Dispatch, 5 = Food Ready, 10 = Delivered', and the callback also returns minimum_prep_time 'conveyed by the restaurant', rider details on dispatch, and an is_modified flag. Food-ready is therefore pushed from Petpooja to the marketplace rather than tapped on the marketplace's own tablet; the source state is set in the POS or on the KDS, which www.petpooja.com/poss/kitchen-display-system documents as 'Mark food ready right from the KDS'. https://jsapi.apiary.io/apis/onlineorderingapisv210.apib · retrieved 2026-08-06

A
Partial

Voids, comps, and discounts require a reason code and can be gated behind role-based manager approval, with all instances recorded in an exception report.

order-capture-void-comp-controls

User-rights management plus reports on 'bill modifications, discounted/cancelled orders'. Reason codes and manager-approval gating not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D

Menu, modifiers & pricing engine

No

Supports modifier groups nested at least three levels deep, each level with independent min/max selection counts and a forced-selection (required) flag.

menu-pricing-nested-modifiers

CLAIM: modifier groups nested at least three levels deep, each level with independent pricing. VERDICT: no. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. EVIDENCE: the modifier model is exactly two levels and the schema forbids a third. Item level: "itemallowaddon (string) - Flag for item allowing addon or not"; "itemaddonbasedon (string) - Flag addon based on item or variations ... 0 = Addon group applied on item, 1 = Addon group applied variation wise"; "addon (string) - Different addongroup(s) applied on items/variations. Object contains the group id, min and max selection of addon items from the group. (Doesn't represents the quantity of addon items)". Group level: "addongroups (object) - Contains information for addongroups items served" with addongroupid / addongroup_name / addongroup_rank. Leaf level: "addongroupitems (object) - Contains information regarding add on items belongs to addon groups" whose COMPLETE field list is addonitemid, addonitem_name, addonitem_price, active, attributes, addonitem_rank. An addongroupitem has NO addon/addongroup child of its own, in the schema or in any of the 6 worked addongroupitems examples, so no third level exists to price. The 325th's hold (an item CSV cannot bound the add-on model) is answered: this IS the add-on model. BOUND: the Push Menu / Fetch Menu schema is Petpooja POS's OWN menu-master export — the blueprint names the objects "Variation master" and "AddonGroup -> AddonGroupItem master" and ids as "Unique PetPooja item id" — and its "+ Attributes" section enumerates EVERY field of EVERY menu object the POS emits: restaurants, ordertypes, categories, parentcategories, group_categories, items, variations, addongroups, addongroupitems, attributes, discounts, taxes. Denominator = that closed field list. Caveat stated honestly: this bounds the menu model the POS can express to a channel; it is not a census of the POS UI's behaviour. CONTROLS (tokenised, case-insensitive, word-boundary, over the 367,818-byte 3-blueprint corpus): nested 0, nest 0, depth 0, levels 0, allowance 0, matrix 0, grid 0, tier 0, tiers 0, throttle 0, throttling 0, capacity 0, effective 0, versioning 0, preview 0, publish 0, seat 0, cover 0, covers 0, precedence 0, exclusive 0, forecast 0, royalty 0, payroll 0, labour 0, labor 0. POISON FOUND AND DISCOUNTED: "stacking" scores 7 but EVERY hit is "Category/Item rank for ordering/Stacking" (z-order of menu tiles, not offer stacking); "crust" scores 2 and both are addongroup_name "Crust" / addonitem_name "Wheat Thin Crust" (a flat-priced add-on, NOT a second price axis); "free" as a standalone token scores 11 and every hit is a DISCOUNT/REWARD name or enum — "Get Free Coffee", "Get free any south indian dish", itemname "Way Free Way Pancakes", the loyalty "discount_type = [1=Percentage,2=Fixed,3=Free Item, 4= Free category]", and a table-status flag "1 indicates Free" — never an included-modifier allowance (the menu API spells its own giveaway type "Freebie", discounttype 7, added 15-10-2025); "child" scores 2, both in "the item object has a child object for the variations" (deprecation note); "seats" scores 8 but all are table CAPACITY in the reservation API; "included" scores 1 and it is "quantity included in this combo". Retrieved 2026-09-18. https://onlineorderingapisv3.docs.apiary.io/ · retrieved 2026-09-18 adversarially verified

B
Partial

A single modifier can carry different prices depending on the parent item and the selected size, configured as a matrix rather than by duplicating the modifier.

menu-pricing-modifier-price-by-parent-size

'Item-wise variations, and add-ons with separate pricing for each customisation' implies per-item add-on pricing; a size x modifier price matrix is not documented. https://petpooja.com/poss/restaurant-menu-management-software · retrieved 2026-08-01

D
Unknown

Supports fractional/sectioned modifier placement (at minimum halves, ideally quarters) with independent pricing per section. differentiator

menu-pricing-fractional-placement

No section, half, placement or fraction field appears in the menu or order schemas - I verified that against the full blueprint. The inference fails because the Online Ordering API v2.1.0 is the aggregator relay channel by its own opening description, not the in-store menu configuration surface, and half-and-half placement is precisely the kind of POS-only construct an aggregator export would drop, since Swiggy and Zomato cannot consume it. The blueprint asserts no completeness and omits per-item recipe and raw-material data that Petpooja's own inventory page documents, proving it is lossy. The corroborating source, the July 2026 pizzeria guide on blog.petpooja.com, is an editorial industry guide rather than a configuration spec; it makes no completeness claim and its "100+ topping permutations" line is marketing. Searches of Petpooja's blog via its WordPress /wp-json/wp/v2/search endpoint and of the open web surfaced no Petpooja material affirming or denying half or quarter topping placement. || 325th: MERGE HOLD (proposed no/C, held unknown): the agent flagged this as its weakest row (a cafe post mentions half-and-half recipes); the same item-template limit applies. PROPOSAL AS WRITTEN: CLAIM: fractional/sectioned modifier placement (at minimum halves, ideally quarters) with independent pricing per section. VERDICT: no. EVIDENCE: the same dedicated pizza document models a topping as a whole-pizza add-on with one price and no placement attribute; the import template has no placement/section/fraction column (https://menu.petpooja.com/importmenuitem_admin_new_in.csv); the Online Ordering API v2.1 OrderItem schema has none either. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. POISON NAMED: "quarter" 295 hits — every one is a fiscal quarter or a quarter-litre, none a pizza section; "placement" 34 hits, all about menu-card design, product placement or staff placement; the only "half" statements are the two named in the half-and-half row. Retrieved 2026-09-17. adversarially verified

F
No

The half-and-half pricing rule is operator-configurable among at least two of: charge the higher-priced half, average the halves, or charge each topping at a fraction of full price. differentiator

menu-pricing-half-and-half-rule

CLAIM: the half-and-half pricing rule is operator-configurable among at least two of: charge the higher-priced half, average the halves, or charge each topping at a fraction of full price. VERDICT: no — no such rule exists, let alone a configurable one. EVIDENCE: the vendor's dedicated pizza document (https://blog.petpooja.com/industry-business-guides/pizzeria-pos-handling-toppings-slices-combos/, modified 2026-07-06) enumerates the whole pizza model — variations for size and crust, priced add-ons for toppings, sell-by-the-slice, combos, raw-material deduction, category-wise KOTs, multi-outlet inventory — and its four-step counter flow ("Pick the base and size as the pizza's variation. Add each topping as an add-on, with its own price. POSS totals the bill from the parts chosen. Raw material for each topping comes off stock as the order is billed."). No half, section or fraction pricing rule appears. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. POISON NAMED: "half-and-half" is not zero — 2 hits, neither a POSS pricing rule: a buyer's checklist for UAE chains ("A pizzeria with half-and-half toppings and a QSR with meal deals both need this") and a recipe-engine statement about drinks ("even half-and-half beverages that split ingredients across two base preparations", blog.petpooja.com/industry-business-guides/cafe-billing-software-with-inventory/). "left half" 0, "right half" 0, "half-n-half" 0. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/pizzeria-pos-handling-toppings-slices-combos/ · retrieved 2026-09-17 adversarially verified

C
No

Supports modifier quantity tiers (light / regular / extra / double) with a configurable price multiplier per tier, distinct from adding the modifier twice.

menu-pricing-topping-quantity-tiers

CLAIM: modifier quantity tiers (light / regular / extra / double) with a configurable price per tier. VERDICT: no. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. EVIDENCE: an addon item carries ONE flat price and no tier axis — "addonitem_price (string) - Addon group item price" is the only price field on addongroupitems, and the group only constrains how MANY may be chosen: "Object contains the group id, min and max selection of addon items from the group. (Doesn't represents the quantity of addon items)" (the parenthetical is the vendor's own, and it is decisive: selection min/max is a count of distinct add-ons, not a quantity tier). At order time Save Order's AddonItem carries "quantity (string) - Value is in Numeric" alongside "price (required, string) - Price of addon group item", i.e. a linear multiple of the single price, with no per-tier override. The "Extra Toppings" example group prices Egg 20, Jalapenos 20, Onion Rings 20, Cheese 10 — one price each. BOUND: the Push Menu / Fetch Menu schema is Petpooja POS's OWN menu-master export — the blueprint names the objects "Variation master" and "AddonGroup -> AddonGroupItem master" and ids as "Unique PetPooja item id" — and its "+ Attributes" section enumerates EVERY field of EVERY menu object the POS emits: restaurants, ordertypes, categories, parentcategories, group_categories, items, variations, addongroups, addongroupitems, attributes, discounts, taxes. Denominator = that closed field list. Caveat stated honestly: this bounds the menu model the POS can express to a channel; it is not a census of the POS UI's behaviour. CONTROLS (tokenised, case-insensitive, word-boundary, over the 367,818-byte 3-blueprint corpus): nested 0, nest 0, depth 0, levels 0, allowance 0, matrix 0, grid 0, tier 0, tiers 0, throttle 0, throttling 0, capacity 0, effective 0, versioning 0, preview 0, publish 0, seat 0, cover 0, covers 0, precedence 0, exclusive 0, forecast 0, royalty 0, payroll 0, labour 0, labor 0. POISON FOUND AND DISCOUNTED: "stacking" scores 7 but EVERY hit is "Category/Item rank for ordering/Stacking" (z-order of menu tiles, not offer stacking); "crust" scores 2 and both are addongroup_name "Crust" / addonitem_name "Wheat Thin Crust" (a flat-priced add-on, NOT a second price axis); "free" as a standalone token scores 11 and every hit is a DISCOUNT/REWARD name or enum — "Get Free Coffee", "Get free any south indian dish", itemname "Way Free Way Pancakes", the loyalty "discount_type = [1=Percentage,2=Fixed,3=Free Item, 4= Free category]", and a table-status flag "1 indicates Free" — never an included-modifier allowance (the menu API spells its own giveaway type "Freebie", discounttype 7, added 15-10-2025); "child" scores 2, both in "the item object has a child object for the variations" (deprecation note); "seats" scores 8 but all are table CAPACITY in the reservation API; "included" scores 1 and it is "quantity included in this combo". Retrieved 2026-09-18. https://onlineorderingapisv3.docs.apiary.io/ · retrieved 2026-09-18 adversarially verified

B
No

Item base price can be defined as a grid across two variant axes (e.g. size x crust/preparation) with a per-cell price override. differentiator

menu-pricing-size-style-matrix

CLAIM: item base price as a grid across two variant axes (e.g. size x crust) with a per-cell price override. VERDICT: no. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. EVIDENCE: the variation model is ONE axis. An item carries a single "variation_groupname" (singular) and a flat "variation" array whose members each carry exactly one "groupname" ("Quantity" in every worked example: 3Pieces, 6Pieces, Large, Small); the variations master is {variationid, name, groupname, status}. There is no second-axis object and no per-cell price: each variation row has one "price" (V2.1.0 adds a channel "markup_price", still one number per row). POISON/DIRECT REFUTATION: the blueprint's own pizza example models the second axis (crust) as an ADD-ON GROUP, not a second price axis — "addongroup_name": "Crust" with "addonitem_name": "Wheat Thin Crust" and a flat "addonitem_price" — i.e. size x crust resolves to base variation price + flat add-on delta, which is exactly what a per-cell grid is not. BOUND: the Push Menu / Fetch Menu schema is Petpooja POS's OWN menu-master export — the blueprint names the objects "Variation master" and "AddonGroup -> AddonGroupItem master" and ids as "Unique PetPooja item id" — and its "+ Attributes" section enumerates EVERY field of EVERY menu object the POS emits: restaurants, ordertypes, categories, parentcategories, group_categories, items, variations, addongroups, addongroupitems, attributes, discounts, taxes. Denominator = that closed field list. Caveat stated honestly: this bounds the menu model the POS can express to a channel; it is not a census of the POS UI's behaviour. CONTROLS (tokenised, case-insensitive, word-boundary, over the 367,818-byte 3-blueprint corpus): nested 0, nest 0, depth 0, levels 0, allowance 0, matrix 0, grid 0, tier 0, tiers 0, throttle 0, throttling 0, capacity 0, effective 0, versioning 0, preview 0, publish 0, seat 0, cover 0, covers 0, precedence 0, exclusive 0, forecast 0, royalty 0, payroll 0, labour 0, labor 0. POISON FOUND AND DISCOUNTED: "stacking" scores 7 but EVERY hit is "Category/Item rank for ordering/Stacking" (z-order of menu tiles, not offer stacking); "crust" scores 2 and both are addongroup_name "Crust" / addonitem_name "Wheat Thin Crust" (a flat-priced add-on, NOT a second price axis); "free" as a standalone token scores 11 and every hit is a DISCOUNT/REWARD name or enum — "Get Free Coffee", "Get free any south indian dish", itemname "Way Free Way Pancakes", the loyalty "discount_type = [1=Percentage,2=Fixed,3=Free Item, 4= Free category]", and a table-status flag "1 indicates Free" — never an included-modifier allowance (the menu API spells its own giveaway type "Freebie", discounttype 7, added 15-10-2025); "child" scores 2, both in "the item object has a child object for the variations" (deprecation note); "seats" scores 8 but all are table CAPACITY in the reservation API; "included" scores 1 and it is "quantity included in this combo". Retrieved 2026-09-18. https://onlineorderingapisv3.docs.apiary.io/ · retrieved 2026-09-18 adversarially verified

B
No

Items can define an included-modifier allowance (e.g. three toppings included) that automatically charges only for overage and credits or forbids substitutions per configuration. differentiator

menu-pricing-included-allowance

CLAIM: items define an included-modifier allowance (e.g. three toppings included) charging only for overage, with substitution credit/forbid rules. VERDICT: no. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. EVIDENCE: the only add-on constraint the menu master carries is a selection count with no free quota and no overage price — "addon_item_selection_min" / "addon_item_selection_max" (worked examples 0/1 and 0/4), documented as "min and max selection of addon items from the group". A min/max selection bound is not an allowance: nothing distinguishes an included add-on from a paid one except its own flat addonitem_price, and there is no free-count, overage-price, substitution-credit or substitution-forbid field anywhere in the addongroups, addongroupitems, items or variations field lists. Tokenised controls: allowance 0, overage 0, substitution 0, substitute 0; POISON: "credit" scores 18 but every hit is either the CREDIT payment type ("COD = Cash On Delivery,CARD = Card,CREDIT = Credit") or virtual-wallet "Customer credit points", never a modifier credit; and the giveaway mechanisms that do exist (Freebie discounttype 7, BOGO/BXGY) act at the bill level on whole items, not as a free-modifier quota. BOUND: the Push Menu / Fetch Menu schema is Petpooja POS's OWN menu-master export — the blueprint names the objects "Variation master" and "AddonGroup -> AddonGroupItem master" and ids as "Unique PetPooja item id" — and its "+ Attributes" section enumerates EVERY field of EVERY menu object the POS emits: restaurants, ordertypes, categories, parentcategories, group_categories, items, variations, addongroups, addongroupitems, attributes, discounts, taxes. Denominator = that closed field list. Caveat stated honestly: this bounds the menu model the POS can express to a channel; it is not a census of the POS UI's behaviour. CONTROLS (tokenised, case-insensitive, word-boundary, over the 367,818-byte 3-blueprint corpus): nested 0, nest 0, depth 0, levels 0, allowance 0, matrix 0, grid 0, tier 0, tiers 0, throttle 0, throttling 0, capacity 0, effective 0, versioning 0, preview 0, publish 0, seat 0, cover 0, covers 0, precedence 0, exclusive 0, forecast 0, royalty 0, payroll 0, labour 0, labor 0. POISON FOUND AND DISCOUNTED: "stacking" scores 7 but EVERY hit is "Category/Item rank for ordering/Stacking" (z-order of menu tiles, not offer stacking); "crust" scores 2 and both are addongroup_name "Crust" / addonitem_name "Wheat Thin Crust" (a flat-priced add-on, NOT a second price axis); "free" as a standalone token scores 11 and every hit is a DISCOUNT/REWARD name or enum — "Get Free Coffee", "Get free any south indian dish", itemname "Way Free Way Pancakes", the loyalty "discount_type = [1=Percentage,2=Fixed,3=Free Item, 4= Free category]", and a table-status flag "1 indicates Free" — never an included-modifier allowance (the menu API spells its own giveaway type "Freebie", discounttype 7, added 15-10-2025); "child" scores 2, both in "the item object has a child object for the variations" (deprecation note); "seats" scores 8 but all are table CAPACITY in the reservation API; "included" scores 1 and it is "quantity included in this combo". Retrieved 2026-09-18. https://onlineorderingapisv3.docs.apiary.io/ · retrieved 2026-09-18 adversarially verified

B
Partial

Supports combo/meal construction where components can be swapped with a price delta, and the system can automatically detect and convert eligible a-la-carte items in the cart into the combo price.

menu-pricing-combos

'Various combos, group offers, variations and add-ons.' Component swap with price delta and automatic a-la-carte-to-combo detection are not documented. https://petpooja.com/poss/pizzeria-and-pizza-shop-pos-software · retrieved 2026-08-01

D
Partial

Upsell/suggestive-sell prompts can be configured per item and per channel (POS, kiosk, online), and the vendor reports attach-rate on those prompts. differentiator

menu-pricing-upsell-prompts

AI-based recommendation engine in the Captain app to help servers upsell. No per-channel configuration and no attach-rate reporting documented. https://petpooja.com/poss/captain-ordering-app · retrieved 2026-08-01

D
Partial

A single 86 action propagates automatically to POS, KDS, the vendor's own online ordering, kiosk, and connected third-party marketplaces, with a documented propagation latency.

menu-pricing-86-propagation

Item availability toggles from stock propagate to POS, own online ordering, QR and aggregator menus. No published propagation latency. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-01

D
Partial

Supports per-item countdown/par counts that decrement on sale and automatically 86 the item at zero, with a scheduled auto-restore. differentiator

menu-pricing-countdown-auto-86

Stock-driven auto item unavailability plus low-stock alerts. Per-item countdown/par counts and scheduled auto-restore are not documented. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-01

D
Partial

Menus, individual items, and prices can be scheduled to activate and deactivate automatically by day and time in the location's own timezone.

menu-pricing-dayparting

Withdrawing the export-completeness leg: the Apiary blueprint is an aggregator-facing projection, so a field's absence in it establishes nothing about the POS. What carries the cell is affirmative. Grade A: the Online Ordering API v2.1.0 documents categorytimings as 'Active Schedule days and time slot of category' on every category, and group_categories as 'Contains groups created at menu category level. This will help identify the categories that are clubbed as a different menus configured in the restaurant menu management' - so configured menus and categories carry a day/time schedule that is pushed to the delivery apps. The previously stated shortfall 'items have no schedule of their own' is withdrawn and is in fact contradicted by Petpooja's own menu guide: 'a bakery counter may open pastries only from 4:00 p.m. ... Time-based menus let you set these windows once. The item appears and disappears on schedule, on both your counter and the delivery apps' (blog.petpooja.com/industry-business-guides/pos-features-for-menu-management/, retrieved 2026-08-06) - vendor guide prose rather than documentation, so it supports the limb but is not enough to carry a yes. Remaining shortfalls, stated as undocumented rather than absent: no scheduled base price change is described in any first-party source (only discounts carry day/time windows - discountdays, discounttimefrom/discounttimeto, discountstarts/discountends), and no source states which timezone a schedule evaluates in. https://jsapi.apiary.io/apis/onlineorderingapisv210.apib · retrieved 2026-08-06

A
Partial

Supports distinct price books per channel (dine-in, pickup, delivery, kiosk, each third-party marketplace) including percentage-markup rules applied to a base price rather than manual per-item entry.

menu-pricing-channel-price-books

Separate menus and pricing per dine-in area and per aggregator platform. Percentage-markup rules over a base price are not documented. https://petpooja.com/poss/restaurant-menu-management-software · retrieved 2026-08-01

D
Unknown

Supports dual pricing / cash-discount at the item level with the card price displayed as the base price, applied consistently across POS, kiosk, and online ordering, and printed on the receipt. differentiator

menu-pricing-dual-pricing

Checked the Online Ordering API v2.1.0 item master (jsapi.apiary.io/apis/onlineorderingapisv210.apib): an item carries price and markup_price, and markup_price is documented as 'the strike price that can be displayed on the customer interface' - a was/now display device, not a cash-versus-card pair; per-channel pricing exists instead (item_ordertype, and Petpooja's menu guide describes 'different prices for dine-in and delivery'). Also read www.petpooja.com/poss/restaurant-billing-software (bill format and tax/discount configuration), /poss/restaurant-menu-management-software, and blog.petpooja.com/industry-business-guides/petpooja-finance-money-layer-in-pos/ - none describes a cash-discount or dual-price mode, and the receipt discussion covers e-bills, logo and GST break-ups only. This is not decisive: dual pricing is a tender-time behaviour that an aggregator menu export would not carry by design, and no Petpooja settings surface was published, so it stays unresolved. || 326th: NEW SURFACE, NOT SETTLED, AND A HOMONYM TO RECORD. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. The menu master carries a SECOND price on every item and every variation — "markup_price" beside "price" (12 occurrences in the V2.1.0 blueprint; the V3 blueprint drops the field). It is an aggregator/channel markup (the online menu price vs the in-store price), NOT the cash-vs-card dual pricing this claim means: no payment method conditions it, and controls over the corpus give surcharge 0, "cash discount" 0, convenience 0 (collect_cash exists but is "used only if the order payment type is COD and self-delivery", i.e. a cash-to-collect amount). Recording it so a later pass does not mistake markup_price for dual pricing. Retrieved 2026-09-18. || 333rd: 333rd, NEW SURFACE, NOT SETTLED: the POS billing screen's tender radio buttons read Cash / Card / Due / Part with an "It's Paid" checkbox and Save / Save & Print / Save & eBill (1080p frames, https://www.youtube.com/watch?v=zPwJPJmhsek 3:00-3:40); no card-price line appears on the order panel (ITEMS / CHECK ITEMS / QTY / PRICE). The Bill & KOT tutorial (https://www.youtube.com/watch?v=VfziggfQZYI, 1:30 frame) opens the POS bill breakdown: Sub Total, Discount, Delivery Charge, Container Charge, Service Charge, Tax, Round Off, Customer Paid, Return to Customer - no card fee / cash-discount line; tenders Cash, Card, Due, Other, More, with Bogo Offer, Split, Complimentary, Sales Return. The Outlet Settings card "Calculations - Configure how invoice gets calculated" is where a cash-discount mode would sit and is not opened. Caption controls (342 transcripts): "cash discount" 0, "dual pric*" 0, surcharge 0, "convenience fee" 0, "card charge" 0. SURFACE (333rd, new): the STORE-LEVEL POS's own Operations screen, read from 1080p frames of the vendor tutorial "Petpooja | POS | English" (https://www.youtube.com/watch?v=zPwJPJmhsek, frames 3:00-5:40; the 332nd captioned this video but never frame-read it). Petpooja POS v107.0.3 (Windows build, "Ref ID : A132476R, Version : 107.0.3") side menu = Billing, Operations, Reports, Live View, Settings, Check Updates, Logout. The Operations screen tiles: Orders, Online Orders, KOTs, Customers, Cash Flow, Expense, Withdrawal, Cash Top-Up, Inventory, Notification, Table, Virtual Wallet, Manual Sync, Help, Live View, Due Payment, Language Profiles, Billing User Profile, Currency Conversion, Feedback, Delivery Boys, LED Display; "Set the configuration for your restaurant": Menu, Bill / KOT Print, Tax, Discount, Billing Screen, Settings, Online Order Configuration, Me[nu ...] (label cut by the presenter overlay), Service Renewal, Custom Order Status. Outlet Settings > Billing Screen cards: Display, Calculations ("Configure how invoice gets calculated"), Connected Services, Print, Customer; then an "Online/Advance Order" section not opened on screen. Reports submenu: Category, Item, Sales, Order, Executive Sales, Employee, Group, Variation, Cover Size Summary (list continues below the fold). The Android POS "Management" menu: Order List, Kot List, Inventory List, Online Order Configuration, Expense, Withdrawal, Due Payment; Configuration: Manual Sync, Printer Setting. The narrator says the Operations set is per-staff ("all the anary services for which you given the access to the staff ... completely customizable") and the owner-dashboard tutorial (https://www.youtube.com/watch?v=ReK9on1tAXc) carries the on-screen disclaimer "Availability of certain feature(s) depends upon the outlet type, user type, country, pricing plans & other factors", so this is a FLOOR of the POS's modules, not a census. The POS installer is downloaded from the owner's dashboard behind the merchant login (same video), so the client itself cannot be censused anonymously. Retrieved 2026-09-18. adversarially verified

F
Unknown

Menu changes can be staged as an effective-dated version, previewed before publish, and rolled back to a prior version after publish. differentiator

menu-pricing-versioning-effective-dates

Read blog.petpooja.com/industry-business-guides/restaurant-menu-management-software-guide/, .../centralised-menu-management-uae-restaurants/ and .../sync-menu-across-swiggy-zomato-and-pos/, plus www.petpooja.com/poss/restaurant-menu-management-software. All four describe the same model: one live master menu, edited once, pushed immediately to counter, apps and kitchen ('the software holds one version of your menu and shares it everywhere', 'you edit the master, the update flows outward'). The word version there means single source of truth, not an effective-dated revision. No staging, no effective date, no pre-publish preview and no rollback is mentioned, and the Push Menu API carries no version, effective-from or draft field - but that endpoint is a full-menu snapshot push, which would look identical whether or not the admin supports staged versions. Time-bounded changes do exist for discounts (discountstarts/discountends), which is adjacent but not menu versioning. Nothing enumerates the menu admin's publish actions, so unresolved. || 326th: MERGE HOLD (proposed no/B, held unknown): a menu PUSH payload is a current-state snapshot by construction; staging, preview and rollback are back-office workflow that an interchange schema would never carry, so its silence bounds nothing about the claim. PROPOSAL AS WRITTEN: CLAIM: menu changes staged as an effective-dated version, previewed before publish, and rolled back after publish. VERDICT: no. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. EVIDENCE: the menu master carries no effective date, no draft state and no version identity. Time-bounded fields exist ONLY on discounts ("discountstarts", "discountends", "discounttimefrom", "discounttimeto", "discountdays") and as a recurring availability window on categories ("categorytimings (string) - Active Schedule days and time slot of category"); items, variations, addongroups and prices have none. The push payload is a single current-state snapshot terminated by "serverdatetime", "db_version": "1.0" and "application_version": "4.0" — POISON NAMED: "db_version"/"application_version" are schema and app build markers, not menu versions, and there is no endpoint to fetch a prior menu version or to stage one (the only menu verbs are Push Menu and Fetch Menu, both current-state). Tokenised controls over the corpus: effective 0, versioning 0, preview 0, publish 0, draft 0, rollback 0, revert 0, stage/staged 0. BOUND: the Push Menu / Fetch Menu schema is Petpooja POS's OWN menu-master export — the blueprint names the objects "Variation master" and "AddonGroup -> AddonGroupItem master" and ids as "Unique PetPooja item id" — and its "+ Attributes" section enumerates EVERY field of EVERY menu object the POS emits: restaurants, ordertypes, categories, parentcategories, group_categories, items, variations, addongroups, addongroupitems, attributes, discounts, taxes. Denominator = that closed field list. Caveat stated honestly: this bounds the menu model the POS can express to a channel; it is not a census of the POS UI's behaviour. CONTROLS (tokenised, case-insensitive, word-boundary, over the 367,818-byte 3-blueprint corpus): nested 0, nest 0, depth 0, levels 0, allowance 0, matrix 0, grid 0, tier 0, tiers 0, throttle 0, throttling 0, capacity 0, effective 0, versioning 0, preview 0, publish 0, seat 0, cover 0, covers 0, precedence 0, exclusive 0, forecast 0, royalty 0, payroll 0, labour 0, labor 0. POISON FOUND AND DISCOUNTED: "stacking" scores 7 but EVERY hit is "Category/Item rank for ordering/Stacking" (z-order of menu tiles, not offer stacking); "crust" scores 2 and both are addongroup_name "Crust" / addonitem_name "Wheat Thin Crust" (a flat-priced add-on, NOT a second price axis); "free" as a standalone token scores 11 and every hit is a DISCOUNT/REWARD name or enum — "Get Free Coffee", "Get free any south indian dish", itemname "Way Free Way Pancakes", the loyalty "discount_type = [1=Percentage,2=Fixed,3=Free Item, 4= Free category]", and a table-status flag "1 indicates Free" — never an included-modifier allowance (the menu API spells its own giveaway type "Freebie", discounttype 7, added 15-10-2025); "child" scores 2, both in "the item object has a child object for the variations" (deprecation note); "seats" scores 8 but all are table CAPACITY in the reservation API; "included" scores 1 and it is "quantity included in this combo". Retrieved 2026-09-18. adversarially verified

F
Partial

Supports a central corporate menu template pushed to locations with field-level governance controlling which attributes a location may override. differentiator

menu-pricing-franchise-hierarchy

"You keep one master menu per brand, then let each outlet or channel inherit it, with room to override where local prices differ. That way a chain sets a dish once at the head office and it lands the same way across every branch that carries it", and "For a multi-outlet brand, a head-office menu push is the real time-saver ... One update at the centre reaches every branch". The UAE guide (blog.petpooja.com/industry-business-guides/centralised-menu-management-uae-restaurants/) repeats it: one master menu, every branch and the central kitchen 'under the same account, with the same menu and reports'. Shortfall: override is described only as latitude on local price - there is no documented governance layer stating which attributes (price, name, availability, modifiers, tax, image) an outlet may or may not change, no lock or approval on a field, and no per-attribute permission matrix. Petpooja documents staff rights on the POS generally, but not field-level menu governance. https://blog.petpooja.com/industry-business-guides/restaurant-menu-management-software-guide/ · retrieved 2026-08-06

C
Partial

Stores allergen flags and nutrition values per item and publishes them to online ordering and third-party menus, and can derive nutrition from linked recipe components rather than manual entry.

menu-pricing-allergen-nutrition

Every item in the Fetch/Push Menu payload can carry a nutrition object, documented field by field: calories (kcal), protien, totalFat, saturatedFat, transFat, cholesterol, carbohydrate, totalSugar, addedSugar, fiber, sodium, minerals[], vitamins[], additiveMap (Polyols, Polydextrose, Caffeine, ArtificialSweetener, MSG), foodAmount, servingInfo, additionalInfo, and allergens[] with 'Name of allergen present in food and a one line description' (allergen, allergenDesc). Items also carry item_attributeid (veg/non-veg/egg), item_tags (vegan, chef-special, new) and item_info.spice_level. Because these ride the menu push and fetch, they publish to online ordering and third-party marketplace menus. Petpooja's menu guide adds the driver: FSSAI menu labelling obliges chains with a central licence or 10+ outlets to show calorie and allergen detail everywhere, and it advises storing 'calorie, allergen and tax detail on each item record'. Shortfall: the spec states the values are merchant-supplied ('Merchant needs to provide these information in g, kg, ml or l') and the whole object is optional; recipe linkage in Petpooja is documented for stock and food cost, not for deriving nutrition, so the claim's derive-from-recipe-components limb is unmet. https://jsapi.apiary.io/apis/onlineorderingapisv210.apib · retrieved 2026-08-06

A
Partial

Menu items and modifiers can be linked to recipes/bills of materials so that a sale depletes theoretical inventory and yields item-level theoretical food cost. differentiator

menu-pricing-recipe-linkage

Item-wise recipes with multi-stage recipe management and automatic stock deduction on sale. Item-level theoretical food cost output is not documented. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-01

D
Partial

Pushes menus to third-party marketplaces through a certified direct integration (not scraping or a menu-management middleman) and surfaces per-item sync status and rejection errors to the operator.

menu-pricing-3p-menu-push

Direct certified push of menu and pricing to Swiggy/Zomato from the POS. Per-item sync status and rejection-error surfacing are not documented. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-01

D
Partial

Supports rule-based dynamic pricing where item price varies automatically by time, demand, or channel, with configurable floor/ceiling guardrails.

menu-pricing-dynamic-pricing

CLAIM: rule-based dynamic pricing where item price varies automatically by time, demand or channel, with configurable floor/ceiling guardrails. VERDICT: partial. SHORTFALL: time-of-day and channel variation are shipped, but nothing varies by demand and there are no floor/ceiling guardrails. EVIDENCE (time): the bar/brewery document's capability table — "Happy-hour pricing | Switches to lower prices for set hours without manual edits" — and the body: "Prices change by the hour when happy hour starts" (https://blog.petpooja.com/industry-business-guides/bar-brewery-pos-india-liquor-pilferage-control/); "happy hour*" 54 hits across the corpus. EVIDENCE (channel): the item-import template carries a separate Online_Name and Category_online_display alongside Price, and centralised aggregator menu management is published as a chain feature ("the owner can standardise prices... regulate online and offline menu operations", blog.petpooja.com/growth-scaling/petpooja-pos-features-that-simplify-large-chain-management/). NOT satisfied: "price ceiling" 0, "surge pric*" 0, demand-linked pricing 0; "floor price" 1 hit, POISON — a bakery costing formula ("Floor price = (450 + 200 + 50) x 2"). POISON NAMED: "dynamic pricing" itself has 11 hits, and 5 are a boilerplate marketing sentence repeated across menu posts ("add-on notes, exciting offers, special menus, dynamic pricing, and much more") which this verdict does NOT rest on. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/bar-brewery-pos-india-liquor-pilferage-control/ · retrieved 2026-09-17 adversarially verified

C

Payments & money movement

Partial

The POS operates with third-party payment processors of the merchant's choosing (documented list of supported processors/gateways) rather than requiring the vendor's in-house processing. differentiator

payments-processor-choice

Petpooja is not an acquirer; it integrates payment gateways and UPI rails, so no in-house processing lock. No documented list of supported gateways. https://petpooja.com/poss/restaurant-website · retrieved 2026-08-01

E
No

Vendor publishes card-processing pricing publicly (a specific flat rate or interchange-plus markup) rather than quote-only. differentiator

payments-published-rates

Petpooja markets integrated card acceptance but publishes no card rate. Under 'Integrated Payments' the US/Canada POS page says 'Replace your overpriced payment services with the most cost-effective solution that offers multiple processing options, a wide range of card processing terminals & integrated in-person & online payments.' The same page renders three tier names (Core / Growth / Scale) with a feature matrix, a Book A Demo button under each tier, and the line 'The prices on the page might vary based on location. Please contact us for details!'. It renders no figures. A Core/Growth/Scale subscription price list exists only inside HTML comments in the page source, and those are software prices, not card rates. The India pricing page has the same shape: 'Local pricing may vary based on your region & currency. Contact us for accurate, localized rates.' Where Petpooja describes card acceptance, the rate belongs to a partner. Its Finance post (blog.petpooja.com/industry-business-guides/petpooja-finance-money-layer-in-pos/) says 'Petpooja Pay+ is an internet-first way to run EDC card machines, rolling out with partners including Paytm, Razorpay, Pine Labs, Mosambee, and BharatPe', and describes the payout view as one that 'Shows provider charges and the final amount credited, in one view'. Corpus: 947 vendor documents (823 blog posts, 120 www pages covering the 119 sitemap URLs, the magazine, 3 ordering-widget files), comments stripped, tokenised with word boundaries and an optional plural. `interchange` 0, `merchant account` 0, `processing rate` 0, `card rate` 0, `convenience fee` 0. `MDR` 14 (1 doc), `processing fee` 3 (2), `transaction fee` 3 (3), `per transaction` 7 (3), `gateway charge` 12 (9). Every non-zero hit was read: generic explainers (card payments carry an MDR 'that the provider deducts before the money settles'), aggregator and ONDC deduction stacks, and a loyalty-software comparison. None prices Petpooja's own acceptance. Matcher proven in the same run: `restaurant` 10,625, nonsense 0. Grade C: a marketing page. https://www.petpooja.com/us/poss · retrieved 2026-09-12

C
Unknown

Native dual-pricing / cash-discount mode stores two prices per item and prints both cash and card totals on the guest check and receipt. differentiator

payments-dual-pricing

Checked (1) the Online Ordering API v2.1.0 item master, where an item has one price plus markup_price, documented as a display strike price, and no second tender-specific price; (2) the same spec's order-level charge model - service_charge with sc_type/sc_calculate_on/sc_applicable_on/tax_on_sc, packaging_charge with packaging_applicable_on and packaging_charge_type, delivery charge with its tax ids - which enumerates the order-level charges and contains no card or cash differential; (3) www.petpooja.com/poss/restaurant-billing-software on bill format ('create bill break-ups', e-bills, dynamic QR) with no cash/card total pair; and (4) blog.petpooja.com/industry-business-guides/petpooja-finance-money-layer-in-pos/ and .../finance-compliance/card-vs-upi-why-restaurant-payment-reports-never-match/, which treat tender as something recorded after the price is set ('each transaction is classified by the method actually used'). None of these is the in-store tender configuration screen, and a cash-discount mode would not appear in an aggregator menu export, so this remains unresolved rather than absent. || 333rd: 333rd, NEW SURFACE, NOT SETTLED: same store-level screens as menu-pricing-dual-pricing - tender radios Cash / Card / Due / Part, order panel ITEMS / QTY / PRICE with one price, and an unopened "Calculations" settings card; owner-dashboard payment modes Cash, Card, Wallet, Due Payment, Other, Online Paid, Online COD (https://www.youtube.com/watch?v=ReK9on1tAXc). The Bill & KOT tutorial (https://www.youtube.com/watch?v=VfziggfQZYI, 1:30 frame) opens the POS bill breakdown: Sub Total, Discount, Delivery Charge, Container Charge, Service Charge, Tax, Round Off, Customer Paid, Return to Customer - no card fee / cash-discount line; tenders Cash, Card, Due, Other, More, with Bogo Offer, Split, Complimentary, Sales Return. Caption controls (342 transcripts): "cash discount" 0, "dual pric*" 0, surcharge 0, MDR 0. SURFACE (333rd, new): the STORE-LEVEL POS's own Operations screen, read from 1080p frames of the vendor tutorial "Petpooja | POS | English" (https://www.youtube.com/watch?v=zPwJPJmhsek, frames 3:00-5:40; the 332nd captioned this video but never frame-read it). Petpooja POS v107.0.3 (Windows build, "Ref ID : A132476R, Version : 107.0.3") side menu = Billing, Operations, Reports, Live View, Settings, Check Updates, Logout. The Operations screen tiles: Orders, Online Orders, KOTs, Customers, Cash Flow, Expense, Withdrawal, Cash Top-Up, Inventory, Notification, Table, Virtual Wallet, Manual Sync, Help, Live View, Due Payment, Language Profiles, Billing User Profile, Currency Conversion, Feedback, Delivery Boys, LED Display; "Set the configuration for your restaurant": Menu, Bill / KOT Print, Tax, Discount, Billing Screen, Settings, Online Order Configuration, Me[nu ...] (label cut by the presenter overlay), Service Renewal, Custom Order Status. Outlet Settings > Billing Screen cards: Display, Calculations ("Configure how invoice gets calculated"), Connected Services, Print, Customer; then an "Online/Advance Order" section not opened on screen. Reports submenu: Category, Item, Sales, Order, Executive Sales, Employee, Group, Variation, Cover Size Summary (list continues below the fold). The Android POS "Management" menu: Order List, Kot List, Inventory List, Online Order Configuration, Expense, Withdrawal, Due Payment; Configuration: Manual Sync, Printer Setting. The narrator says the Operations set is per-staff ("all the anary services for which you given the access to the staff ... completely customizable") and the owner-dashboard tutorial (https://www.youtube.com/watch?v=ReK9on1tAXc) carries the on-screen disclaimer "Availability of certain feature(s) depends upon the outlet type, user type, country, pricing plans & other factors", so this is a FLOOR of the POS's modules, not a census. The POS installer is downloaded from the owner's dashboard behind the merchant login (same video), so the client itself cannot be censused anonymously. Retrieved 2026-09-18. adversarially verified

F
Unknown

Surcharging engine automatically excludes debit and prepaid cards via BIN/product-code detection, enforces the network percentage cap, and can be enabled or disabled per location. differentiator

payments-surcharge-guardrails

Read blog.petpooja.com/industry-business-guides/petpooja-finance-money-layer-in-pos/, which describes the whole payments layer: Petpooja Pay+ routes a card/UPI/QR request through Finance Cloud to a chosen partner acquirer (live partners named as Paytm, Razorpay, Pine Labs, Mosambee, BharatPe), and Finance then reconciles the partner's payout and shows provider MDR per swipe. Petpooja therefore sits above the card rails and no BIN, product-code or card-type data is described as reaching it; nothing about a surcharge percentage, a debit/prepaid exclusion or a network cap appears there, on www.petpooja.com/poss/restaurant-billing-software (which covers taxes and discounts), or in the Online Ordering API charge model (service charge, packing, delivery only). Also read .../finance-compliance/card-vs-upi-why-restaurant-payment-reports-never-match/, which discusses MDR as a deduction from settlement rather than a customer surcharge. No published page enumerates the configurable charges at the till, so unresolved.

F
Partial

All first-party payment terminals accept EMV chip and NFC contactless including Apple Pay and Google Pay.

payments-emv-nfc

Verified verbatim: "Single tap contactless card payments under INR 5000". Note this is India's PIN-free contactless ceiling, so it is not general EMV acceptance — above that limit the flow is undocumented. No first-party terminal line, Apple Pay/Google Pay unnamed. Partial is correct. https://petpooja.com/poss/captain-ordering-app · retrieved 2026-08-01 adversarially verified

B
Partial

Accepts contactless payments directly on a phone (Tap to Pay on iPhone and/or Android tap-to-pay) with no separate card reader. differentiator

payments-softpos-tap-to-pay

Contactless card acceptance on a standard Android phone via the Captain app; not explicitly branded as Tap to Pay on Android SoftPOS. https://petpooja.com/poss/captain-ordering-app · retrieved 2026-08-01

D
Partial

Vendor ships a handheld that takes EMV/NFC payment at the table, including tip prompt and check splitting, without carrying the card away.

payments-pay-at-table

Depends entirely on the add-on Captain app. Also, the vendor's own summary of settlement on that page is narrower than the dossier's note: "Your captain can take multiple orders and settle bill using cash and a QR code"; the card element is the separate line "Single tap contactless card payments under INR 5000", i.e. capped low-value contactless only. Not a general pay-at-table card flow. https://petpooja.com/poss/captain-ordering-app · retrieved 2026-08-01 adversarially verified

B
Partial

Guest can scan a QR code on the printed check or table tent to view and pay the check from their own phone, with the payment closing the check in the POS automatically. differentiator

payments-qr-guest-pay

The billing page says only "add a dynamic QR code for payments right at the billing counter" - a counter-presented collection QR, not a QR on the check or table tent. The Scan & Order page offers "Pay at counter or pay online" but never states that the guest views the check or that an online payment settles and closes the bill in the POS. Shortfall: check-view-and-close behaviour undocumented, and "Scan and pay QR" is listed as a paid add-on rather than an included capability. https://petpooja.com/poss/restaurant-billing-software · retrieved 2026-08-02 adversarially verified

D
Partial

Supports both pre-auth-then-tip-adjust and on-device tip prompt flows, with a documented batch/adjust window and a manager screen for unadjusted tips.

payments-tip-adjust

"Tips have a setting worth checking. In Petpooja POSS the suggested tip can be worked out on the Core amount, which is the subtotal before tax and charges, or on the Total bill value, which is the default" - so a configurable tip prompt exists on the bill, distinct from the statutory-voluntary service charge, and it survives a split. Shortfalls: nothing documents a pre-authorisation followed by a tip adjustment, no batch or adjust window is published, and there is no manager screen for unadjusted tips. Petpooja's day-end guide (blog.petpooja.com/finance-compliance/restaurant-day-end-report-how-close-and-reconcile/) instead treats an EDC tip as an unreconciled gap - "A tip added on the card machine but not on the bill leaves a small difference" - advising a tolerance rather than an adjust step, which indicates tips taken on the partner card terminal do not flow back into the check at all. https://blog.petpooja.com/operations-workflows/split-restaurant-bill-merge-tables-without-errors/ · retrieved 2026-08-06

C
No

Configurable tip pooling and distribution rules (by hours worked, sales, role percentage, or points) that produce a per-employee tip allocation exportable to payroll. differentiator

payments-tip-pooling

CLAIM: configurable tip pooling/distribution rules producing a per-employee allocation exportable to payroll. VERDICT: no. EVIDENCE: same first-party sentence — "Petpooja POSS does not split a tip pool for you, and no honest page should claim otherwise" (blog.petpooja.com/glossary/tip-management/). No allocation is computed, so nothing is exportable; the page adds that tips "sit outside net salary and outside the payslip". BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "tip pool*" 4, "tip-out" 0, "tip allocation" 0. Retrieved 2026-09-17. https://blog.petpooja.com/glossary/tip-management/ · retrieved 2026-09-17 adversarially verified

C
No

Card payments can be captured while the internet is down via store-and-forward, with configurable per-transaction and cumulative offline limits. differentiator

payments-offline-store-and-forward

The guide sets out what does and does not survive an outage: 'The part you need during service keeps working: billing, KOT printing and table management. What stops is any task that travels over the internet, mainly Swiggy and Zomato orders plus card payments routed through an EDC.' Its FAQ repeats that 'card or UPI on an EDC needs a connection of its own'. Its outage runbook tells staff to 'Switch payments to cash or a direct UPI QR', and notes that 'A phone tethered at the counter often restores card payments and aggregator orders within a minute, with the main line still down.' Offline capability is limited to bills, KOTs and settlements held on the machine: 'Of the four Petpooja POS types, three carry on for up to 5 days offline and sync once the line returns. POS Lite is the exception, running entirely on the cloud with no local copy behind it.' No card is captured offline, so there are no per-transaction or cumulative offline card limits to configure. Petpooja's Finance post corroborates this, describing Pay+ as 'an internet-first way to run EDC card machines'. This is a positive vendor statement of what stops, not a failed search. Grade C: a vendor blog guide. https://blog.petpooja.com/industry-business-guides/restaurant-pos-without-internet/ · retrieved 2026-09-12

C
No

Vendor publicly documents who bears the loss when a stored offline transaction declines on reconnect, and surfaces a post-reconnect report of failed offline payments. differentiator

payments-offline-decline-liability

The same offline guide that rules out offline card capture defines what reconnect does: "bills, KOTs and settlements are stored on the machine. When the line returns, it all syncs on its own. You do not re-enter anything, and your day-end totals include the offline bills", with offline tenders being cash or a direct UPI QR taken outside the EDC. There is therefore no stored card authorisation to be declined on reconnect, and no post-reconnect failed-payment report exists or is published; correspondingly Petpooja publishes no allocation of loss for such a decline, on this page, on www.petpooja.com/terms-and-conditions or on any Finance page. Recorded as no because the underlying scenario is documented not to occur, not because a statement could not be found. https://blog.petpooja.com/industry-business-guides/restaurant-pos-without-internet/ · retrieved 2026-08-06

C
Partial

First-party gift cards with real-time balance tracking, redeemable across every location in the group and through the online-ordering channel.

payments-gift-cards

Loyalty Wallet stores value topped up by cash/card/UPI with virtual cards and OTP redemption. Not framed as gift cards; cross-outlet redemption not documented. https://petpooja.com/poss/restaurant-loyalty-program · retrieved 2026-08-01

D
Partial

House/on-account tabs with per-account credit limits, running balance, and periodic statement or invoice generation.

payments-house-accounts

"Petpooja POSS supports this through customer-card top-up and a credit flow, run on its Virtual Wallet ... An office or college canteen can let staff and students order on credit against their account, then settle the balance at the end of a cycle", with the running balance live at the till ("Every order at any counter deducts from that balance, and the remaining amount is shown at billing") and "A canteen manager can pull a wallet or credit report instead of maintaining a side register." On-account tabs and a running balance are therefore documented. Shortfalls: no per-account credit limit or ceiling is described anywhere, and the reporting is a wallet/credit report rather than a periodic statement or invoice issued per account - no billing cycle, statement run or invoice generation is documented. https://blog.petpooja.com/industry-business-guides/food-court-canteen-pos-multi-counter-billing/ · retrieved 2026-08-06

C
Partial

A single check can be settled with multiple tenders and split by seat, by item, by even shares, or by arbitrary amount, with no hard cap below eight ways.

payments-split-tender

Bill splitting is documented. Multi-tender settlement of one check, split-by-seat and an eight-way floor are not documented. https://www.petpooja.com/poss · retrieved 2026-08-01

D
Partial

Voids, refunds, discounts, and no-sales require role-based authorization (manager PIN or approval) and write to an immutable audit log identifying the approver.

payments-refund-void-controls

User-rights management plus reports on cancelled/modified bills and cash-drawer operations. No documented immutable audit log naming the approver. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
No

In-product dispute/chargeback dashboard that lists open disputes and allows evidence submission assembled from the POS transaction record. differentiator

payments-chargeback-tooling

CLAIM: in-product dispute/chargeback dashboard listing open disputes with evidence submission from the POS record. VERDICT: no. EVIDENCE: The vendor publishes a closed capability table for its payments product ("Capabilities of Petpooja Finance | What It Covers"): payment processing, payment split (on Pay+), reconciliation, payout tracking, auto-settlement, banking services. That is the enumeration this verdict rests on. Reconciliation is described as matching payouts and flagging "transactions that are missing invoices" — a payout-variance tool, not a dispute workflow. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "chargeback*" 1 hit, POISON — generic fraud advice in blog.petpooja.com/operations-workflows/advance-restaurant-technology/ ("Payment frauds... involve fraudulent transactions or chargebacks initiated by customers"). "dispute*" 124 hits, all contractual/legal boilerplate or "fewer disputes at closing time"; "dispute manage*" 0, "represent*ment" 0. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/petpooja-finance-money-layer-in-pos/ · retrieved 2026-09-17 adversarially verified

C
No

Tokenized card-on-file for a guest profile, reusable across online ordering, phone orders, and in-store, with no PAN stored by the merchant. differentiator

payments-card-on-file

CLAIM: tokenized card-on-file for a guest profile, reusable across online ordering, phone orders and in-store, with no PAN stored by the merchant. VERDICT: no. EVIDENCE: The vendor publishes a closed capability table for its payments product ("Capabilities of Petpooja Finance | What It Covers"): payment processing, payment split (on Pay+), reconciliation, payout tracking, auto-settlement, banking services. That is the enumeration this verdict rests on. Card acceptance is described as a routed EDC request only — "the POS initiates the request only, then hands it to Finance Cloud. Finance Cloud routes the request to your chosen partner, such as Razorpay or Pine Labs" — with no stored credential, profile or reuse. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "card on file" 0 and "saved card*" 0 as Petpooja capabilities; "token(is|iz)*" 1 hit and it is POISON — a general education paragraph in blog.petpooja.com/glossary/online-payment-gateway/ about "RBI's card-on-file tokenisation framework, issued in September 2021", not about Petpooja. "3DS" 0, "3-D Secure" 0. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/petpooja-finance-money-layer-in-pos/ · retrieved 2026-09-17 adversarially verified

C
No

Vendor publishes its deposit schedule and offers a next-day or same-day/instant funding option. differentiator

payments-payout-timing

CLAIM: the vendor publishes its deposit schedule and offers a next-day or same-day/instant funding option. VERDICT: no — Petpooja is not the funder and publishes no schedule. EVIDENCE: The vendor publishes a closed capability table for its payments product ("Capabilities of Petpooja Finance | What It Covers"): payment processing, payment split (on Pay+), reconciliation, payout tracking, auto-settlement, banking services. That is the enumeration this verdict rests on. Payout tracking is defined as visibility only: "Shows provider charges and the final amount credited, in one view"; the money itself moves through a chosen acquirer ("The live partners you can choose from include Paytm, Razorpay, Pine Labs, Mosambee, and BharatPe"). The vendor's own guidance repeatedly hands the schedule to the provider's contract: "the money reaches your bank on a settlement cycle set by the payment system that the Reserve Bank of India regulates" (blog.petpooja.com/finance-compliance/restaurant-day-end-report-how-close-and-reconcile/) and "Check the settlement cycle in your contract before assuming Saturday's takings land on Sunday" (glossary/wallet-payment/). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "next-day settle*" 0, "same-day settle*" 0, "instant settle*" 0; "T+1" 3 hits, all POISON (two about ONDC seller apps, one about a third-party kiosk gateway); "settlement cycle" 7, none stating Petpooja's own. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/petpooja-finance-money-layer-in-pos/ · retrieved 2026-09-17 adversarially verified

C
Unknown

A single account can route settlement funds to different bank accounts per location or legal entity (separate MIDs or split settlement) under unified reporting. differentiator

payments-multi-entity-routing

Read blog.petpooja.com/industry-business-guides/run-multiple-outlets-one-pos-local-system/, .../food-court-canteen-pos-multi-counter-billing/ (unlimited terminals on one account, counter-wise and combined reporting) and www.petpooja.com/poss/large-chain-restaurant-pos-software: all describe one account spanning outlets with unified reporting, which is the claim's reporting half, but none says anything about where each outlet's money lands. The Petpooja Finance guide covers a single HDFC current account application per owner and per-provider payout reconciliation, without a per-outlet or per-entity bank mapping. In the Online Ordering API the restaurant is identified by restID/mappingid with no bank or MID field, and GST liability is split only between vendor and restaurant for aggregator settlements. Since settlement is executed by the partner acquirer rather than Petpooja, the routing question may not be Petpooja's to answer, but nothing published states either way.

F
No

Vendor provides point-to-point encryption and a current PCI DSS 4.x Attestation of Compliance / P2PE listing available to merchants on request.

payments-p2pe-pci4

CLAIM: vendor provides point-to-point encryption and a current PCI DSS 4.x AOC / P2PE listing available to merchants on request. VERDICT: no (moved from unknown). THIS CELL WAS NEVER INDIVIDUALLY CHECKED against the trust-centre surface that already settled its three siblings (reliability-pci-dss-4-attestation no/B, commercial-pci-p2pe-tokenization no/B, commercial-pci-dss-4-controls no/B); its note still says trust.petpooja.com "served no readable content", which the 324th falsified. EVIDENCE: trust.petpooja.com is a Scrut Trust Vault opened anonymously via the portal-guest cookie (POST app.scrut.io/api/v1/trustCenterService/trust-portal/domainConnector/get-domain {"domain":"trust.petpooja.com"}; raw JSON in .cache/q324/petpooja/scrut/). Its TENANT-authored document registry (/document-section-list, /item-list, /getframeworkV1) re-read 2026-09-18 from that JSON lists exactly three uploaded compliance documents, all private/on-request: "Prayosha_Food_Services_Private_Limited__SOC_2_Type_II_Report.pdf" (SOC 2), "E-COPY-PRAYOSHA FOOD SERVICES PRIVATE LIMITED-ISMS-CA.pdf" (ISO 27001:2022) and "Petpooja_-_SOC_1_Type_2_Report_2026.pdf" (SOC 1). No PCI DSS AOC, no ROC, no P2PE listing is among the documents a merchant can request. The six published sub-processors (Atlassian, Google, HubSpot, AWS, Sectigo, Cloudflare) include no payment processor, consistent with card acceptance running through partner acquirers (Paytm, Razorpay, Pine Labs, Mosambee, BharatPe per blog.petpooja.com/industry-business-guides/petpooja-finance-money-layer-in-pos/) rather than a Petpooja P2PE solution. BOUND/CORPUS: five primary Petpooja corpora already on disk, each controlled separately: blog.petpooja.com WordPress REST census (817 posts + 330 glossary + 12 pages, 8,514,456 chars, HTML comments preserved; re-paged 2026-09-18 with modified_after=2026-09-16: 6 new/updated posts, none on kitchen/KDS), www.petpooja.com sitemap pages (1,065,269 chars) plus the 2026-09-18 re-fetch of the rebuilt site incl. /ae, /us, /ca, /za country pages (1,084,311 chars after stripping script/style), the three anonymous Apiary blueprints (367,492 chars) and the billing.petpooja.com login-page add-on registry `var active_function` (166 entries). Controls tokenised with (?<![A-Za-z0-9])...(?![A-Za-z0-9]), case-insensitive, HTML comment markers removed first (Petpooja hides content in <!-- -->). CONTROLS blog/www/www_new/api/registry: P2PE 0/0/0/0/0, "point-to-point" 0/0/0/0/0, "PCI DSS" 0/0/0/0/0, "attestation of compliance" 0/0/0/0/0, AOC 12/0/0/0/0. POISON NAMED: all 12 blog AOC hits are "Form AOC-4" / "AOC-4 XBRL" company-law filings under the Companies Act, never a PCI attestation; un-anchored `PCI` hits in the blog are all inside `NPCI` (National Payments Corporation of India); the `PCI DSS` row in Scrut /get-all/controller is Scrut's TEMPLATE `example` text ("Our organization is compliant with PCI DSS 3.1.2"), not a Petpooja statement, and is excluded. Same bound the merge accepted for the three sibling PCI cells: a documentation/attestation claim settled by the tenant's own closed document registry plus the publisher-manifest census. Retrieved 2026-09-18. https://trust.petpooja.com/ · retrieved 2026-09-18 adversarially verified

B

Kitchen & production

Yes

Items route to specific KDS stations by item, category, order type, or revenue center, with routing rules configurable per location without vendor involvement.

kitchen-station-routing

Station-wise order allocation on KDS plus per-station printer assignment configurable from the POS. https://petpooja.com/poss/kitchen-display-system · retrieved 2026-08-01

D
Partial

An expo screen consolidates items from multiple prep stations into a single order view and only marks the order complete when every contributing station has bumped its items.

kitchen-expo-consolidation

Can run as a central screen or multi-display per kitchen, synchronised across devices. Completion gating until every station bumps is not documented. https://petpooja.com/poss/kitchen-display-system · retrieved 2026-08-01

D
Partial

Items can be assigned to courses and held, then fired to the kitchen on demand from a server terminal, handheld, or expo screen. differentiator

kitchen-course-firing

Vendor blog post describing Petpooja POSS's own Captain App (grade C; post id 45980, modified 2026-07-08). It says: 'The part that suits fine dining is course-wise firing. A captain takes the full order upfront and holds the items in a wishlist, then fires the kitchen tickets course by course, from soups to starters to mains.' ESTABLISHED: items can be held and then fired to the kitchen course by course on demand from a handheld (the Captain App). NOT ESTABLISHED: whether items carry an explicit course assignment, or whether the captain just holds them in the wishlist and fires them by hand; whether holding and firing work from a POS terminal or an expo/KDS screen rather than only the Captain App; any admin documentation. Elsewhere the blog says the Captain App works only with Electron POS and Local POS. Differentiator weight: a yes would need grade A/B, so this is partial. https://blog.petpooja.com/industry-business-guides/fine-dine-pos-what-handle-on-busy-floor/ · retrieved 2026-09-12

C
Partial

Per-item cook times are configurable and the KDS staggers item start/display times so that all items on an order finish simultaneously. differentiator

kitchen-prep-time-pacing

CLAIM: per-item cook times are configurable AND the KDS staggers item start/display times so an order finishes simultaneously. VERDICT: partial — the first conjunct is documented, the second is not. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. EVIDENCE FOR: per-item cook time is a first-class configurable field of the menu master — "minimumpreparationtime (string) - Minimum preparation time of item. Optional" on every item, alongside a store default "minimum_prep_time": "30" and an order-level "min_prep_time (optional, number) - order level Kitchen preparation time defined by the order platform"; the restaurant's own value flows back on the callback as "minimum_prep_time (string) - Kitchen preparation time conveyed by the restaurant". SHORTFALL: nothing in the corpus describes staggered start/display of items on a KDS — tokenised controls stagger 0, pacing 0, sequence 0, sequencing 0, fire 0, bump 0, threshold 0, and all 3 hits of "kitchen" are the phrase "Kitchen preparation time". That second conjunct remains unevidenced, so this cannot be a yes. Retrieved 2026-09-18. https://onlineorderingapisv3.docs.apiary.io/ · retrieved 2026-09-18 adversarially verified

B
Unknown

Kitchen load throttling automatically paces or delays release of incoming digital orders, or extends quoted prep times, once a configurable order-volume or ticket-time threshold is crossed. differentiator

kitchen-order-throttling

Retrieval for this vendor: enumerated https://www.petpooja.com/sitemap.xml (46 URLs, all marketing/feature pages, no docs tree) and read every /poss/* page; support., help., kb., docs., developer., api. and online-order.petpooja.com all 404/500, petpooja.zendesk.com help_center API 403, developerapi.petpooja.com 403. The only primary technical doc is the first-party Online Ordering API v2.1.0 blueprint at onlineorderingapisv210.docs.apiary.io. The only documented pacing lever is the API's Update Store Status endpoint with a 'turn_on_time' key (changelog 01-04-2023), i.e. an operator-driven store on/off with a reopen time, plus the restaurant-level minimum_prep_time. Nothing on /poss/online-order-management-software or /poss/cloud-kitchen-pos-software describes a volume or ticket-time threshold that automatically delays release or extends the quote. || 326th: NEW SURFACE, NOT SETTLED. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. No automatic load-based pacing appears anywhere in the 367,818-byte corpus (controls: throttle 0, throttling 0, capacity 0, threshold 0, "auto" only in autoTurnOnTime). Prep time is a STATIC configured value, never a load function: store "minimum_prep_time": "30", item "minimumpreparationtime", order "min_prep_time ... defined by the order platform", and on the callback "minimum_prep_time - Kitchen preparation time conveyed by the restaurant" (conveyed, i.e. entered by staff). Same bound as order-capture-throttling: this is the integration schema, not the KDS, so it is a floor and not a census. Retrieved 2026-09-18. || 333rd: 333rd, NEW SURFACE, NOT SETTLED: the store-level POS has an "Online Order Configuration" tile (desktop and Android) and an "Online/Advance Order" section in Outlet Settings; neither is opened in any vendor video, and these are exactly where auto-accept / prep-time / pacing settings would live, so the POS core stays unbounded for this cell. Caption controls over 342 tutorial transcripts (EN auto-captions + HI): throttl* 0, capacity 0, "orders per" 0; "slots" 2 (table-reservation booking slots), "rush" 6 (all advice). SURFACE (333rd, new): the STORE-LEVEL POS's own Operations screen, read from 1080p frames of the vendor tutorial "Petpooja | POS | English" (https://www.youtube.com/watch?v=zPwJPJmhsek, frames 3:00-5:40; the 332nd captioned this video but never frame-read it). Petpooja POS v107.0.3 (Windows build, "Ref ID : A132476R, Version : 107.0.3") side menu = Billing, Operations, Reports, Live View, Settings, Check Updates, Logout. The Operations screen tiles: Orders, Online Orders, KOTs, Customers, Cash Flow, Expense, Withdrawal, Cash Top-Up, Inventory, Notification, Table, Virtual Wallet, Manual Sync, Help, Live View, Due Payment, Language Profiles, Billing User Profile, Currency Conversion, Feedback, Delivery Boys, LED Display; "Set the configuration for your restaurant": Menu, Bill / KOT Print, Tax, Discount, Billing Screen, Settings, Online Order Configuration, Me[nu ...] (label cut by the presenter overlay), Service Renewal, Custom Order Status. Outlet Settings > Billing Screen cards: Display, Calculations ("Configure how invoice gets calculated"), Connected Services, Print, Customer; then an "Online/Advance Order" section not opened on screen. Reports submenu: Category, Item, Sales, Order, Executive Sales, Employee, Group, Variation, Cover Size Summary (list continues below the fold). The Android POS "Management" menu: Order List, Kot List, Inventory List, Online Order Configuration, Expense, Withdrawal, Due Payment; Configuration: Manual Sync, Printer Setting. The narrator says the Operations set is per-staff ("all the anary services for which you given the access to the staff ... completely customizable") and the owner-dashboard tutorial (https://www.youtube.com/watch?v=ReK9on1tAXc) carries the on-screen disclaimer "Availability of certain feature(s) depends upon the outlet type, user type, country, pricing plans & other factors", so this is a FLOOR of the POS's modules, not a census. The POS installer is downloaded from the owner's dashboard behind the merchant login (same video), so the client itself cannot be censused anonymously. Retrieved 2026-09-18. adversarially verified

F
Partial

Pausing a store or 86ing an item from the POS/KDS propagates the pause or availability change back to connected third-party marketplaces (DoorDash, Uber Eats, Grubhub) automatically. differentiator

kitchen-channel-pause-propagation

I re-fetched the cited page. It supports item-level control from one screen - "toggle any online menu item On or Off as per your inventory" and "Add store timing, packaging charges, and discounts. Easily manage the online menu for your single or chain outlets from one single screen" - but I could find no sentence on it, or on any other first-party page, about pausing a store/outlet on Swiggy or Zomato from the POS, nor any statement that these changes propagate automatically rather than being pushed by the operator. Shortfall: item availability only, manual, store-pause propagation unevidenced. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-02 adversarially verified

D
Yes

Bumping an order ready on the KDS sends an order-ready status event back to the third-party marketplace so couriers are dispatched on actual readiness. differentiator

kitchen-order-ready-callback

Order Callback in the first-party Online Ordering API v2.1.0 defines the status enum '[-1 = Cancelled, 1/2/3 = Accepted, 4 = Dispatch, 5 = Food Ready, 10 = Delivered]', posted by Petpooja to the callback_url the integration partner supplies on every Save Order request, alongside minimum_prep_time and (on status 4, self-delivery) rider_name and rider_phone_number. The ready state originates at the kitchen screen: /poss/kitchen-display-system lists 'Mark food ready right from the KDS' and /poss/online-order-token-management 'Manage orders and mark food ready from your POS or KDS'. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
No

KDS supports physical bump bars or programmable keypads in addition to touchscreen interaction, with documented supported models.

kitchen-bump-bar-hardware

CLAIM: KDS supports physical bump bars or programmable keypads in addition to touchscreen, WITH DOCUMENTED SUPPORTED MODELS. VERDICT: no (moved from unknown), on the documentation conjunct. EVIDENCE (vendor statements, all live 2026-09-18): the KDS product page FAQ "What type of hardware will I need to use KDS? Petpooja's KDS works perfectly well with any Windows or Android-based device." (https://www.petpooja.com/poss/kitchen-display-system); Petpooja's dedicated KDS guide (blog post 46006, modified 2026-09-01): "Because it runs on any Android device or Windows, most outlets simply mount an Android TV in the kitchen and connect it. There is no special hardware to buy beyond the screen." and "Mark food ready from the screen: a tap clears the dish"; the cloud-kitchen KDS guide (post 46055): "It runs on an Android TV or a Windows machine, with a tap to mark food ready". The only interaction ever described is a tap. BOUND/CORPUS: five primary Petpooja corpora already on disk, each controlled separately: blog.petpooja.com WordPress REST census (817 posts + 330 glossary + 12 pages, 8,514,456 chars, HTML comments preserved; re-paged 2026-09-18 with modified_after=2026-09-16: 6 new/updated posts, none on kitchen/KDS), www.petpooja.com sitemap pages (1,065,269 chars) plus the 2026-09-18 re-fetch of the rebuilt site incl. /ae, /us, /ca, /za country pages (1,084,311 chars after stripping script/style), the three anonymous Apiary blueprints (367,492 chars) and the billing.petpooja.com login-page add-on registry `var active_function` (166 entries). Controls tokenised with (?<![A-Za-z0-9])...(?![A-Za-z0-9]), case-insensitive, HTML comment markers removed first (Petpooja hides content in <!-- -->). CONTROLS blog/www/www_new/api/registry: "bump bar(s)" 0/0/0/0/0, "bumpbar" 0/0/0/0/0, keypad(s) 0/0/0/0/0, numpad 0/0/0/0/0, "supported models/devices/hardware" 0/0/0/0/0; KNOWN-POSITIVE: KDS 209/20/19/0/2 and "Android TV" 49/7/1/0/0, so the corpora do carry KDS hardware talk. POISON NAMED: `bump` 13 blog hits and `bumped` 2 are all "a 10% bump in repeat visits", "bumped it to Rs 75,000", "bumped the dish's Zomato rating" -- never a kitchen device; `keyboard` 5/7/6 hits are all the BILLING screen's "Keyboard / touchscreen view" and billers who touch-type, never the KDS. WEAKNESS STATED: support.petpooja.com answers 503 on every path incl. a nonsense path (curl, 2026-09-18) with zero Wayback captures, so any hardware page there is unread; the no rests on the documentation conjunct across the publisher's complete blog + site manifest. Grade C because the only vendor statements are product-page FAQ and blog guides. Retrieved 2026-09-18. https://blog.petpooja.com/industry-business-guides/kitchen-display-system-guide-for-indian-restaurants/ · retrieved 2026-09-18 adversarially verified

C
Partial

An all-day view aggregates outstanding quantities per item (and per modifier) across all open tickets on the station.

kitchen-all-day-counts

KDS shows individual KOTs alongside aggregated item lists. Modifier-level all-day aggregation is not documented. https://petpooja.com/poss/kitchen-display-system · retrieved 2026-08-01

D
Partial

Configurable target cook times per station or order type, with visual color escalation and/or audible alert when a ticket exceeds target.

kitchen-sla-alerts

CLAIM: configurable target cook times per station or order type, with visual colour escalation and/or audible alert when a ticket exceeds target. VERDICT: partial (moved from unknown). EVIDENCE: Petpooja's dedicated cloud-kitchen KDS guide (blog post 46055, modified 2026-07-14, live 2026-09-18), Key Takeaways: "The screen times every order, so the kitchen sees what is running late"; comparison table row "Knowing what is running late | Guesswork | Timed on screen"; FAQ 3: "Can a KDS show how long each order is taking? Yes. The screen logs when an order came in and times how long it sits in the kitchen, so a cook can spot an ageing order before it turns into a complaint." And blog post 45679 (blog.petpooja.com/operations-workflows/reduce-customer-wait-time-restaurant/, modified 2026-08-06, written in Petpooja voice, "At Petpooja, we have watched this play out at hundreds of outlets"): "A kitchen display system puts every order on screen, colour-coded by how long it has been pending. Red means overdue. The chef taps "done" when the dish is ready, and the captain's tablet updates on the spot." That supplies the VISUAL colour-escalation half, though phrased about a KDS generically. Corroboration only (2020, too old to carry weight): the COVID toolkit post lists for the order display "Clear colour coding as well as order preparation status". SHORTFALL: per-ticket age timing is documented, but no operator-configurable target time (per station or per order type), no colour threshold and no audible overdue alert is described; the only KDS voice alert Petpooja documents fires on mark-ready (token display), not on a breach. Precedent: gotab (timers + time-based colour, no configurable threshold) and linga-pos (cook-time monitoring) sit at partial/C. BOUND/CORPUS: five primary Petpooja corpora already on disk, each controlled separately: blog.petpooja.com WordPress REST census (817 posts + 330 glossary + 12 pages, 8,514,456 chars, HTML comments preserved; re-paged 2026-09-18 with modified_after=2026-09-16: 6 new/updated posts, none on kitchen/KDS), www.petpooja.com sitemap pages (1,065,269 chars) plus the 2026-09-18 re-fetch of the rebuilt site incl. /ae, /us, /ca, /za country pages (1,084,311 chars after stripping script/style), the three anonymous Apiary blueprints (367,492 chars) and the billing.petpooja.com login-page add-on registry `var active_function` (166 entries). Controls tokenised with (?<![A-Za-z0-9])...(?![A-Za-z0-9]), case-insensitive, HTML comment markers removed first (Petpooja hides content in <!-- -->). CONTROLS blog/www/www_new/api/registry: overdue 29/0/0/0/0 (one KDS hit, quoted above; the rest are receivables ageing, menu reprints, "Ahmedabad was overdue"), "target (cook) time(s)" 0/0/0/0/0, "delay(ed) alert(s)" 0/0/0/0/0. Grade C: vendor blog guide. WEAKEST ROW OF THIS BATCH: if timing without a target is read as adjacent rather than part of the claim, hold unknown. Retrieved 2026-09-18. https://blog.petpooja.com/industry-business-guides/kds-speeds-up-order-prep-cloud-kitchens/ · retrieved 2026-09-18 adversarially verified

C
Partial

If a KDS screen or kitchen printer goes offline, tickets automatically fail over to a designated backup printer or screen with no ticket loss. differentiator

kitchen-printer-fallback

CLAIM: if a KDS screen or kitchen printer goes offline, tickets AUTOMATICALLY fail over to a designated backup printer or screen with no ticket loss. VERDICT: partial (moved from unknown). EVIDENCE: Petpooja's dedicated KDS-vs-KOT guide (blog post 46025, modified 2026-07-12, live 2026-09-18), FAQ 3: "Does a KDS replace the KOT completely? A KDS replaces the paper slip, not the KOT itself. The KOT is the order information; the KDS is just a screen showing it instead of a printer printing it. The POS still keeps its KOT-printing feature, so a kitchen can fall back to paper if a screen goes down." So a screen-to-printer fallback path exists, and station printers are configurable ("Assign a unique printer to every station and send KOTs to the respective stations", www.petpooja.com/poss/restaurant-billing-software). SHORTFALL: the fallback is described as something the kitchen CAN do, i.e. a manual switch; nothing states it is automatic, names a designated backup device, covers printer-to-printer failover, or guarantees no ticket loss. Same shape as hungerrush/positouch (manual reroute = partial) and the 329th rule that a manual printer fallback is partial, not no. BOUND/CORPUS: five primary Petpooja corpora already on disk, each controlled separately: blog.petpooja.com WordPress REST census (817 posts + 330 glossary + 12 pages, 8,514,456 chars, HTML comments preserved; re-paged 2026-09-18 with modified_after=2026-09-16: 6 new/updated posts, none on kitchen/KDS), www.petpooja.com sitemap pages (1,065,269 chars) plus the 2026-09-18 re-fetch of the rebuilt site incl. /ae, /us, /ca, /za country pages (1,084,311 chars after stripping script/style), the three anonymous Apiary blueprints (367,492 chars) and the billing.petpooja.com login-page add-on registry `var active_function` (166 entries). Controls tokenised with (?<![A-Za-z0-9])...(?![A-Za-z0-9]), case-insensitive, HTML comment markers removed first (Petpooja hides content in <!-- -->). CONTROLS blog/www/www_new/api/registry: "backup printer(s)" 0/0/0/0/0, "alternate printer(s)" 0/0/0/0/0, failover/"fail over" 1/0/0/0/0 (the one hit is the kiosk guide: "keep a 4G dongle plugged into the router as failover", i.e. broadband, not tickets); "printer failures" 2 blog hits are both the KDS-sells-itself argument ("removes printer failures"). Grade C: a vendor blog guide, not a settings doc. Retrieved 2026-09-18. https://blog.petpooja.com/industry-business-guides/kds-vs-paper-kot-why-busy-kitchens-going-screen-first/ · retrieved 2026-09-18 adversarially verified

C
Partial

KDS continues to receive and display tickets from on-site POS terminals when the internet or cloud backend is unreachable. differentiator

kitchen-offline-operation

Offline architecture is asserted for the platform including KDS, but the specific offline KDS behaviour is not spelled out. https://petpooja.com/poss/kitchen-display-system · retrieved 2026-08-01

D
Partial

Station screens can display item-level build/assembly detail (recipe steps, portioning, or full modifier breakout) rather than only the ticket line text. differentiator

kitchen-item-build-screens

Vendor blog post (grade C; post id 46052, modified 2026-07-13) giving setup steps for Petpooja POSS's own KDS. It says: 'A cook taps the item on the order card, a side panel opens, and the method, portion, and plating notes show right there on the screen.' Preparation steps are entered per dish in Menu Management, and the post adds: 'Preparation steps show on the kitchen display system, which is an add-on available on the Local and Electron POS.' ESTABLISHED: station screens can show item-level build detail (recipe steps, portioning, plating) beyond the ticket line text. SHORTFALLS: this is a KDS add-on available on two POS types only (the source says add-on; it does not state price); the detail sits in a tap-to-open side panel on the order card, not on a dedicated build/assembly screen; no admin-manual source. Differentiator weight: grade C cannot carry a yes. https://blog.petpooja.com/industry-business-guides/recipe-management-on-kds-set-up-steps/ · retrieved 2026-09-12

C
No

Sectioned/fractional topping placement (halves, quarters, specific sections) is rendered visually and unambiguously on the make-line screen or ticket. differentiator

kitchen-pizza-fractional-display

CLAIM: sectioned/fractional topping placement is rendered visually and unambiguously on the make-line screen or ticket. VERDICT: no — there is no sectioned placement to render, and the KDS's published rendering is a flat list. EVIDENCE: www.petpooja.com/poss/kitchen-display-system enumerates what the screen shows: "Display your online orders and dine-in orders directly on the kitchen screen", "Displays individual KOTs and aggregated item list", "Mark food ready right from the KDS", plus station allocation ("You can allocate different cooking stations and use KDS to show station-wise running orders"). No graphical pizza, no halves, no sections. The upstream model carries no placement attribute (see menu-pricing-fractional-placement). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "make-line" 0, "make line" 0, "pizza screen" 0. Retrieved 2026-09-17. https://www.petpooja.com/poss/kitchen-display-system · retrieved 2026-09-17 adversarially verified

C
Partial

A bumped ticket can be recalled/unbumped, and an individual item can be refired or reprinted without re-entering the order.

kitchen-recall-refire

CLAIM: a bumped ticket can be recalled/unbumped, and an individual item refired or reprinted without re-entering the order. VERDICT: partial (moved from unknown). RECALL: the vendor's KDS tutorial "Petpooja | Kitchen Display System | English" (https://www.youtube.com/watch?v=nhAVcwIwWJM, 0:49): "as soon as the food is ready, the kitchen staff can press one button and mark the food ready ... The system also allows you to recall prepaid [sic, ASR; the Hindi version Wx-YdljTSsk says the same, 'प्रीपेड केओटी रिकॉल करने का भी ऑप्शन'] KOTs, making it easy to track orders during busy hours"; the vendor's KDS explainer on its main channel (https://www.youtube.com/watch?v=FQjgUhmERuo) removes the ambiguity: "Mark food ready itemwise as well as [order]wise, Mark food ready to dispatch, Mark items out of stock and even recall previous kots". REPRINT: the Printer Management tutorial (https://www.youtube.com/watch?v=IRv-9Ofa6F0), outlet print configuration: "show duplicate in kot in the case of multiple prints - if any of your staff members proceeds to reprint the kot once it is already printed for the first time the another set of kots will display an icon of duplicate", plus "print only modified items in the kot" and "print deleted items in kot". SHORTFALL (why not yes): reprint is documented for the whole KOT; refire/reprint of ONE item on its own is never stated (controls: refire/re-fire 0, "fire" 0 in a kitchen context over 133 videos + slug b's 209 transcripts). Grade B: vendor tutorial channel (the KDS clip is presenter-to-camera over the marketplace listing, so the evidence is the spoken script, quoted from the auto-captions). SURFACE (332nd, new): auto-caption tracks of Petpooja's own YouTube channels, fetched anonymously with yt-dlp (timedtext needs a PO token; yt-dlp's player clients do not): "Petpooja Tutorials" UCCAKlH4ogL0PvuUErRk5TWQ, 101 of 105 English videos (4 missing: 3 Attendo HR clips + Purchase Order Received Report), plus 32 product videos of the main @petpooja-softwareforSMEs channel; corpus 551,622 chars in .cache/q332/petpooja/a/corpus-captions{,2}.txt; cross-checked against slug b's 209-transcript EN+HI set (.cache/q332/petpooja/b/tx). Video frames read at 1080p (ffmpeg) where the caption needed a screen. Retrieved 2026-09-18. https://www.youtube.com/watch?v=nhAVcwIwWJM · retrieved 2026-09-18 adversarially verified

B
Partial

Edits made in the POS to an order already displayed in the kitchen visually flag the added, changed, or removed items on the live ticket. differentiator

kitchen-order-modification-alerts

Vendor blog post about Petpooja's own Captain App (grade C; post id 45724, modified 2026-07-01). It says the captain modifies the KOT from the device, and adds: 'The change fires to the kitchen immediately with a modification tag showing what was added, removed, or changed.' The next paragraph says every modification is logged with what changed, who changed it and when, and feeds 'the dedicated KOT modification report and the leakage panel'. ESTABLISHED: an edit made on Petpooja's handheld POS to a KOT already in the kitchen reaches the kitchen tagged with the added, removed or changed items. NOT ESTABLISHED: that the tag renders on a live KDS card rather than a reprinted KOT. The KDS guide (blog.petpooja.com/industry-business-guides/kitchen-display-system-guide-for-indian-restaurants/) has a similar sentence, but it sits under the generic section 'How Does a KDS Work in a Restaurant Kitchen?' before the post's Petpooja-specific section, so it is not relied on. Also not established: whether edits made at the POS terminal (not the Captain App) are flagged the same way; no admin documentation. The Captain App is an add-on to Electron POS or Local POS only. Differentiator weight: grade C, so partial. https://blog.petpooja.com/industry-business-guides/petpooja-captain-ordering-reduces-order-errors/ · retrieved 2026-09-12

C
Partial

Bumping an order ready triggers a guest-facing notification — SMS/text, app push, or an order-status display board — without a separate product purchase. differentiator

kitchen-guest-ready-notification

Token Management, Digital Display System, SMS Service and a Wireless Calling Device exist - but as separately purchased marketplace add-ons, not bundled. https://petpooja.com/poss/restaurant-app-marketplace · retrieved 2026-08-01

D
Unknown

Waste, spoilage, and remakes can be logged directly at the kitchen/KDS screen with reason codes, and the entry depletes inventory.

kitchen-waste-logging

Retrieval for this vendor: enumerated https://www.petpooja.com/sitemap.xml (46 URLs, all marketing/feature pages, no docs tree) and read every /poss/* page; support., help., kb., docs., developer., api. and online-order.petpooja.com all 404/500, petpooja.zendesk.com help_center API 403, developerapi.petpooja.com 403. The only primary technical doc is the first-party Online Ordering API v2.1.0 blueprint at onlineorderingapisv210.docs.apiary.io. /poss/kitchen-display-system's FAQ 'Can my chef use KDS to manage kitchen inventory?' answers with exactly two actions - 'mark any inventory out of stock and mark food ready' - with no waste, spoilage, remake or reason-code entry. /poss/restaurant-inventory-management-software documents returning 'the damaged stock back to its source' in the central-kitchen flow, which is a transfer, not a KDS waste log. Left unknown because a marketing FAQ is not an exhaustive settings enumeration. || 331st: MERGE HOLD (proposed partial/C, held unknown): 331st merge: wastage logged in the back-office INVENTORY module is an adjacent feature; the claim's defining conjunct is logging AT the kitchen/KDS screen, and the KDS FAQ lists only out-of-stock and mark-ready. Reason codes are never quoted. An adjacent module is not a partial. PROPOSAL AS WRITTEN: CLAIM: waste, spoilage and remakes can be logged directly at the kitchen/KDS screen with reason codes, and the entry depletes inventory. VERDICT: partial (moved from unknown). EVIDENCE: (1) NEW SURFACE: Petpooja's own YouTube channel "Petpooja Tutorials" (channel UCCAKlH4ogL0PvuUErRk5TWQ), playlist "English | Petpooja - Operations - Inventory" (PLJN6xufi3qM6_ga0xOUCvgu9AA5D10abM, 66 videos), video "Petpooja | Wastage | English" (https://www.youtube.com/watch?v=Z0v5oie1dio, 204 s, published 2023-10-19). Its title card reads "INVENTORY WASTAGE"; its public storyboard frames (i.ytimg.com storyboard3_L2, 320x180) show a back-office web screen with a list view, date/category filters and an "Add Wastage" button; captions are not retrievable anonymously (LOGIN_REQUIRED) and the frame text is below legibility, so no field names are claimed. (2) Petpooja blog post 45998 (live 2026-09-18): "Petpooja POSS brings the controls into one platform. A Leakage panel covers cancels and reprints, per-user rights cover discounts and edits, and stock variance and wastage tracking cover the kitchen." SHORTFALL: waste is logged in the INVENTORY module, not at the KDS: the KDS product page's own FAQ answers "Can my chef use KDS to manage kitchen inventory?" with exactly two actions, "mark any inventory out of stock and mark food ready" (https://www.petpooja.com/poss/kitchen-display-system); reason codes and remakes are not evidenced; inventory depletion is implied by the module ("INVENTORY WASTAGE") but not quoted. Same shape as sambapos ("Wastage logging ... exists in the inventory module; logging it from the KDS screen with reason codes is not documented" = partial/B). Grade C: tutorial video title/frames and a blog statement. WEAK: a merge reading back-office waste as adjacent should hold unknown. Retrieved 2026-09-18. || 332nd: 332nd, NEW SURFACE, NOT SETTLED (does not lift the 331st hold; recorded so the next pass need not re-find it): tutorial captions now QUOTE two of the three conjuncts the hold said were unquoted - REASON CODES: "Inventory Setting" (https://www.youtube.com/watch?v=1iZHgRxtjdk): "enable pre-configured reasons ... it is the same as this setting but for wastage module you can add them or change them here"; the Inventory App explainer (https://www.youtube.com/watch?v=_Fiq8oVqU8A): staff can "update daily closing stock, record purchase entries and log wastage with proper reason" from a mobile app; DEPLETION: "Wastage" (https://www.youtube.com/watch?v=Z0v5oie1dio): "a module where you can record all the wastages taken place and apply an effect for the same in your inventory store", and Stock Summary Report: "if anything is posted into wastage it will be directly converted to loss". But the entry point is "your owner's dashboard ... inventory section ... consumption ... wastage" or the separate Inventory mobile app, never the KDS: every KDS enumeration the vendor publishes (tutorial nhAVcwIwWJM: mark ready, mark unavailable, recall; explainer FQjgUhmERuo: mark ready item/order-wise, ready to dispatch, out of stock, recall previous KOTs) omits waste/remake. The at-the-KDS conjunct stays unmet. SURFACE (332nd, new): auto-caption tracks of Petpooja's own YouTube channels, fetched anonymously with yt-dlp (timedtext needs a PO token; yt-dlp's player clients do not): "Petpooja Tutorials" UCCAKlH4ogL0PvuUErRk5TWQ, 101 of 105 English videos (4 missing: 3 Attendo HR clips + Purchase Order Received Report), plus 32 product videos of the main @petpooja-softwareforSMEs channel; corpus 551,622 chars in .cache/q332/petpooja/a/corpus-captions{,2}.txt; cross-checked against slug b's 209-transcript EN+HI set (.cache/q332/petpooja/b/tx). Video frames read at 1080p (ffmpeg) where the caption needed a screen. Retrieved 2026-09-18. adversarially verified

F
Partial

Reports actual ticket and per-station times (average and percentile) sliced by daypart, station, and order channel, exportable to CSV or an API.

kitchen-speed-of-service-reporting

Vendor blog post about Petpooja POSS features (grade C; post id 45724, modified 2026-07-01): 'KOT process-time tracking measures the gap between when a KOT was punched in and when it was settled (marked as food sent out).' Its next paragraph gives an illustration: 'If the average KOT process time at the tandoor station is 12 minutes, but one particular evening it spikes to 22 minutes, the owner knows something went wrong.' ESTABLISHED: actual per-KOT ticket time is recorded, and the post illustrates an average per station. NOT ESTABLISHED: percentile figures; slicing by daypart or order channel; CSV or API export of the metric; whether it is a named report in the catalogue. The station average is an illustration, not a report specification. Several claim conjuncts are unmet, so partial. https://blog.petpooja.com/industry-business-guides/petpooja-captain-ordering-reduces-order-errors/ · retrieved 2026-09-12

C
Unknown

Generates prep lists or predicted prep quantities from historical sales and forecast demand, surfaced to kitchen staff as a daily prep task list.

kitchen-prep-forecasting

Retrieval for this vendor: enumerated https://www.petpooja.com/sitemap.xml (46 URLs, all marketing/feature pages, no docs tree) and read every /poss/* page; support., help., kb., docs., developer., api. and online-order.petpooja.com all 404/500, petpooja.zendesk.com help_center API 403, developerapi.petpooja.com 403. The only primary technical doc is the first-party Online Ordering API v2.1.0 blueprint at onlineorderingapisv210.docs.apiary.io. Checked /poss/restaurant-inventory-management-software (purchase orders, central kitchen, recipe costs, low-stock alerts on the billing screen, e-way bills), /poss/purchase-manager and /poss/restaurant-analytics-insights. Procurement pre-planning is claimed on /poss/pizzeria-and-pizza-shop-pos-software ('Pre-plan inventory procurement') but no forecast-driven prep list or predicted prep quantity surfaced to kitchen staff is described. || 325th: MERGE HOLD (proposed partial/C, held unknown): rests on the same single marketing sentence as reporting-sales-forecast, contradicted by the vendor own explainer. PROPOSAL AS WRITTEN: CLAIM: generates prep lists or predicted prep quantities from historical sales and forecast demand, surfaced to kitchen staff as a daily prep task list. VERDICT: partial. SHORTFALL: the predicted-quantity half is claimed first-party ("demand forecasting that sets your prep numbers"), but no prep LIST surfaced to kitchen staff is published anywhere — "prep list*" has exactly 1 hit in 995 documents and it is generic advice, and the KDS page's enumeration shows only KOTs, an aggregated item list and mark-ready (www.petpooja.com/poss/kitchen-display-system). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. || 331st: NEW SURFACE (331st), NOT SETTLED: Petpooja's YouTube channel "Petpooja Tutorials" (UCCAKlH4ogL0PvuUErRk5TWQ) publishes "Petpooja | Generate Production Plan | English" (https://www.youtube.com/watch?v=mCxFhTQVH9U, 189 s, 2023-10-19) in its Operations - Inventory playlist. Anonymous captions are refused (innertube LOGIN_REQUIRED, timedtext 0 bytes without a PO token) and the storyboard frames (320x180) show only a two-column item/quantity table whose text is illegible, so it is unknown whether the plan is derived from historical sales/forecast or entered by hand, and whether it reaches kitchen staff as a daily list. Does not lift the 325th hold. Retrieved 2026-09-18. || 332nd: 332nd: THE 331st's ILLEGIBLE VIDEO IS NOW READ. "Petpooja | Generate Production Plan | English" (https://www.youtube.com/watch?v=mCxFhTQVH9U), auto-captions + 1080p frames: the plan is PO-DRIVEN, not forecast-driven - "on the owner's dashboard of central kitchen outlet ... inventory section ... under the consumption heading ... generate production plan ... two lists ... the left ones are the items requested in po that needs to be prepared and the right one is raw materials required to prepare the items in po ... all the outlets which are mapped under the particular Central Kitchen"; frame column headers read "Items requested in PO that needs to be prepared" / "Raw materials required to prepare the items in PO"; output is "Raise Purchase Request" or an Excel export ("you can use this to create manual production plans"). The "Purchase" tutorial (OfYF5auGmw4) confirms: "all the purchase orders received by the Central Kitchen are auto populated". So this is outlet-indent aggregation in the central kitchen's back office, not a prep list from historical sales/forecast surfaced to kitchen staff; an adjacent module, not a partial. The only forecast word in 133 videos is the Inventory Introduction's advice that the operator should be "analyzing your past order history or forecasting your future consumption" before indenting (a manual step). Not a no: the POS/KDS store-level apps are not censused. SURFACE (332nd, new): auto-caption tracks of Petpooja's own YouTube channels, fetched anonymously with yt-dlp (timedtext needs a PO token; yt-dlp's player clients do not): "Petpooja Tutorials" UCCAKlH4ogL0PvuUErRk5TWQ, 101 of 105 English videos (4 missing: 3 Attendo HR clips + Purchase Order Received Report), plus 32 product videos of the main @petpooja-softwareforSMEs channel; corpus 551,622 chars in .cache/q332/petpooja/a/corpus-captions{,2}.txt; cross-checked against slug b's 209-transcript EN+HI set (.cache/q332/petpooja/b/tx). Video frames read at 1080p (ffmpeg) where the caption needed a screen. Retrieved 2026-09-18. || 334th: 334th, NEW SURFACE, NOT SETTLED: the vendor's "Inventory Management Insights" clip (Harshit Joshi & Dipesh Panchal, https://www.youtube.com/watch?v=0yLsO7G6U7k) names new inventory features "the automated purchase order, the stock level as per their consumption history, improved production process" and an "AI recipe generator"; "AI inventory ... will alert you before stock runs out" (Khadya Khurak promo wq4I0boKCTc). These are consumption-history PURCHASING and stock alerts; no clip describes a prep list or predicted prep quantities surfaced to kitchen staff (tokenised over the 178 short transcripts: "prep" 0, "forecast" 0, "predict" 0; the webinar xgPVk13wrdI has 3 "prep" hits, all a consultant on food-prep SOPs). Consistent with the 332nd reading of the Production Plan tutorial (PO-driven). SURFACE (334th, new): Petpooja's MAIN YouTube uploads (the 222 videos the 332nd/333rd never transcribed; channel "Petpooja - #1 Software for SMEs", UCuqfPCWgldJU7Uw-On-vWXQ). YouTube captions were IpBlocked, so AUDIO was downloaded with yt-dlp and transcribed locally with faster-whisper large-v3-turbo (GPU): 178 of 188 short uploads (<=200 s or undated shorts; 4 are "not available", 6 refused the audio download with HTTP 403) = 134 with speech, plus 3 of 34 long webinars (xgPVk13wrdI, gcc4kkHCKd8, OGzgt4XY0dw; third-party consultants, grade D at best). Hindi/Gujarati/Indonesian tracks read in the original script. Transcripts: .cache/q334/petpooja/v/asr/. Retrieved 2026-09-18. adversarially verified

F

Delivery, dispatch & third-party channels

Partial

Product includes a native in-house driver module: drivers are first-class entities with clock-in/out, assignment state (in-store / on-run / returning), and per-driver run history reportable from the POS itself (not via a third-party add-on).

delivery-driver-roster

CLAIM: native in-house driver module - drivers as first-class entities with clock-in/out, assignment state (in-store/on-run/returning) and per-driver run history reportable from the POS. VERDICT: partial (moved from unknown). NATIVE, NOT A THIRD-PARTY REGISTRY (the 331st's hold reason): the POS billing tutorial "Petpooja | Order Assigning | English" (https://www.youtube.com/watch?v=0THG1AG7UCM): "Assign to feature. You can assign orders to specific staff like captain, waiter or a delivery person using the assign to option. By default, it assigns the order to the biller logged in. This only works if the owner has created additional roles in the backend settings." (Hindi version 2oVL_dyfEGY: "कैप्टन, डिलीवरी बॉय या वेटर को"); the frame shows the POSS "Assign to" dialog listing staff by role. The Online Ordering Widget tutorial (https://www.youtube.com/watch?v=iun15rP5Z-M): "You can accept or reject the order from Petpooja POS itself ... You can assign a delivery boy after accepting the order"; the main-channel unboxing video (https://www.youtube.com/watch?v=D_n68EGSR-8): "accept orders assign delivery agents track order status". So in-house delivery staff exist as POS users with a role and orders are assigned to them natively. SHORTFALL: no clock-in/out for drivers in the POS (attendance is the separate Attendo/Payroll product), no in-store/on-run/returning state, no per-driver run-history report is named (controls over 133 videos + slug b's 209: rider/driver/delivery boy report 0; "rider" 1 hit, a Swiggy barcode pickup). SURFACE (332nd, new): auto-caption tracks of Petpooja's own YouTube channels, fetched anonymously with yt-dlp (timedtext needs a PO token; yt-dlp's player clients do not): "Petpooja Tutorials" UCCAKlH4ogL0PvuUErRk5TWQ, 101 of 105 English videos (4 missing: 3 Attendo HR clips + Purchase Order Received Report), plus 32 product videos of the main @petpooja-softwareforSMEs channel; corpus 551,622 chars in .cache/q332/petpooja/a/corpus-captions{,2}.txt; cross-checked against slug b's 209-transcript EN+HI set (.cache/q332/petpooja/b/tx). Video frames read at 1080p (ffmpeg) where the caption needed a screen. Retrieved 2026-09-18. https://www.youtube.com/watch?v=0THG1AG7UCM · retrieved 2026-09-18 adversarially verified

B
Unknown

Provides a dedicated dispatch/expo screen showing undispatched orders, driver availability, and elapsed time per order, with multi-order run batching (assigning 2+ orders to one driver as a single run).

delivery-dispatch-board

Retrieval for this vendor: enumerated https://www.petpooja.com/sitemap.xml (46 URLs, all marketing/feature pages, no docs tree) and read every /poss/* page; support., help., kb., docs., developer., api. and online-order.petpooja.com all 404/500, petpooja.zendesk.com help_center API 403, developerapi.petpooja.com 403. The only primary technical doc is the first-party Online Ordering API v2.1.0 blueprint at onlineorderingapisv210.docs.apiary.io. /poss/online-order-management-software leads with 'Accept multiple orders, manage riders', but its own FAQ resolves that to third parties: 'Petpooja's restaurant billing software supports more than 150+ different third-party integrators, including ride management apps like Duzno, Shadowfax, and Pidge'. No screen showing undispatched orders, driver availability, elapsed time or multi-order run batching is documented on any /poss page, and the add-on catalogue at /poss/restaurant-app-marketplace lists no dispatch module. || 331st: NEW SURFACE (331st): THE PUBLISHER'S COMPLETE APP CENSUS HOLDS NO DRIVER/RIDER APP. iTunes lookup?id=1362012012&entity=software (artist 'Prayosha Food Services Pvt. Ltd.') lists 10 apps: Merchant App (com.petpooja.billing, a sales-statistics viewer), Attendo Employee, Captain App (com.pp.captain), Attendo Admin, Petpooja Tasks, Marketing Hub (graphics templates), Purchase Scan, Purchase Manager, Petpooja Track, Stepwise SOP; Google Play developer 'Prayosha Food Services Pvt. Ltd.' lists 8 (attendance, billing, employeepayroll, facerecognition, purchase_manager, stepwise.sop, task_manager, petpoojatrack). The only GPS app, Petpooja Track (com.petpoojatrack.app, background-location permissions), is a FIELD-SALES app ('Built for Petpooja's own field team... Lead management... Demo scheduling... Route playback' for sales managers), not a delivery rider app. And the store-level app's own add-on registry (billing.petpooja.com `var active_function`) wires its only delivery-tracking entry to a THIRD PARTY: "25":{"file_name":"delivery_tracking_details","logo":"delivery-tracking-logo.png","activate":"activate_roadcast"} (Roadcast), alongside shadowfax_details and pidge_details. POISON: `roadcast` un-anchored hits the blog inside `broadcast`; anchored it is 0 outside the registry. The glossary entry https://blog.petpooja.com/glossary/delivery-management/ (a page no prior corpus held) describes own-fleet dispatch ('POS assigns orders to in-house riders, tracks dispatch', 'show rider availability') only generically 'in a POS context' and never attributes it to Petpooja. Held unknown: a registry bounds partners, not the store-level POS core, and the core POS has no public census. Controls over the completed publication census (www 131/131, blog 819 posts + 331 glossary + 12 pages): `dispatch board`/`dispatch screen` 0; `dispatch` hits are GST/e-way-bill, stock-transfer and kitchen-pass prose. Retrieved 2026-09-18. || 332nd: 332nd: the POS tutorials name the store-level delivery surfaces: per-order "Assign to" a delivery person (0THG1AG7UCM), "Live view in the table management section gives you an overall look of ... KOT, delivery, takeaway and the bill paid" (same video), the POS top bar "item on/off, store status, live view of the orders, online orders, recent orders, hold orders, notification, aggregator, help center" (POS tutorial zPwJPJmhsek), and the Token Management TV screen for aggregator riders (Nrb1RGG_80c). None shows driver availability, elapsed time per order or multi-order run batching; assignment is order-by-order. Not a no: the operations side menu is per-outlet and not enumerated. SURFACE (332nd, new): auto-caption tracks of Petpooja's own YouTube channels, fetched anonymously with yt-dlp (timedtext needs a PO token; yt-dlp's player clients do not): "Petpooja Tutorials" UCCAKlH4ogL0PvuUErRk5TWQ, 101 of 105 English videos (4 missing: 3 Attendo HR clips + Purchase Order Received Report), plus 32 product videos of the main @petpooja-softwareforSMEs channel; corpus 551,622 chars in .cache/q332/petpooja/a/corpus-captions{,2}.txt; cross-checked against slug b's 209-transcript EN+HI set (.cache/q332/petpooja/b/tx). Video frames read at 1080p (ffmpeg) where the caption needed a screen. Retrieved 2026-09-18. || 333rd: 333rd, NEW SURFACE, NOT SETTLED - AND IT NAMES THE MODULE THE NEXT PASS MUST READ: the store-level POS HAS a native "Delivery Boys" module (an Operations tile beside "Live View"), so "assignment is order-by-order" (332nd) may understate it; what that screen shows (availability, elapsed time, run batching) is not on screen in any of the 342 captioned tutorials nor in 10 vendor videos frame-read at 1080p today (POS EN zPwJPJmhsek + HI jdjXHL4ynNQ, Owner's Dashboard ReK9on1tAXc, Bill & KOT VfziggfQZYI, Introduction To Billing r31yc2AXJoQ, Petpooja Interfaces P6B7ltdhnTw, and the promos LfICLpcsx9E, wuwaBXB3Fvw, cra8i4oyRBI, fzPO0ADIZIk). The owner dashboard's left menu (1080p frame, https://www.youtube.com/watch?v=ReK9on1tAXc) is Dashboard, Orders And Billing, Tables, Menu Management, Explore Hyperpure, Inventory, CRM, Accounting, Reports, Configuration (Sub Order Type, Remove Orders, Delivery Distance, Outlet Configuration), User Management, Marketplace, Suppliers Hub, User Logs - no dispatch view there. SURFACE (333rd, new): the STORE-LEVEL POS's own Operations screen, read from 1080p frames of the vendor tutorial "Petpooja | POS | English" (https://www.youtube.com/watch?v=zPwJPJmhsek, frames 3:00-5:40; the 332nd captioned this video but never frame-read it). Petpooja POS v107.0.3 (Windows build, "Ref ID : A132476R, Version : 107.0.3") side menu = Billing, Operations, Reports, Live View, Settings, Check Updates, Logout. The Operations screen tiles: Orders, Online Orders, KOTs, Customers, Cash Flow, Expense, Withdrawal, Cash Top-Up, Inventory, Notification, Table, Virtual Wallet, Manual Sync, Help, Live View, Due Payment, Language Profiles, Billing User Profile, Currency Conversion, Feedback, Delivery Boys, LED Display; "Set the configuration for your restaurant": Menu, Bill / KOT Print, Tax, Discount, Billing Screen, Settings, Online Order Configuration, Me[nu ...] (label cut by the presenter overlay), Service Renewal, Custom Order Status. Outlet Settings > Billing Screen cards: Display, Calculations ("Configure how invoice gets calculated"), Connected Services, Print, Customer; then an "Online/Advance Order" section not opened on screen. Reports submenu: Category, Item, Sales, Order, Executive Sales, Employee, Group, Variation, Cover Size Summary (list continues below the fold). The Android POS "Management" menu: Order List, Kot List, Inventory List, Online Order Configuration, Expense, Withdrawal, Due Payment; Configuration: Manual Sync, Printer Setting. The narrator says the Operations set is per-staff ("all the anary services for which you given the access to the staff ... completely customizable") and the owner-dashboard tutorial (https://www.youtube.com/watch?v=ReK9on1tAXc) carries the on-screen disclaimer "Availability of certain feature(s) depends upon the outlet type, user type, country, pricing plans & other factors", so this is a FLOOR of the POS's modules, not a census. The POS installer is downloaded from the owner's dashboard behind the merchant login (same video), so the client itself cannot be censused anonymously. Retrieved 2026-09-18. || 334th: 334th, NEW SURFACE, NOT SETTLED: the main-channel clips on delivery describe AGGREGATOR riders, not an in-house dispatch board: the Token Management System (https://www.youtube.com/watch?v=ZFBC0g7fals) is "a screen ... mounted outside your restaurant from where your takeaway customers and delivery executives can know the real-time status of their order ... get Zomato and Swiggy OTP for the delivery executives ... Just mark the food ready from the POS"; the online-deliveries clip LfICLpcsx9E has no speech. The only in-house mention is a customer testimonial ("management of our riders", Yum Yum Tree, ed0HTCPu3Fk; grade E-shaped). No clip shows driver availability, per-order elapsed time or multi-order runs (tokenised over the 178 short transcripts: "dispatch" 0, "driver"/"drivers" 0, "delivery boy" 0, "riders" 1 = that testimonial; "run" 18, all "we run <restaurant>"). SURFACE (334th, new): Petpooja's MAIN YouTube uploads (the 222 videos the 332nd/333rd never transcribed; channel "Petpooja - #1 Software for SMEs", UCuqfPCWgldJU7Uw-On-vWXQ). YouTube captions were IpBlocked, so AUDIO was downloaded with yt-dlp and transcribed locally with faster-whisper large-v3-turbo (GPU): 178 of 188 short uploads (<=200 s or undated shorts; 4 are "not available", 6 refused the audio download with HTTP 403) = 134 with speech, plus 3 of 34 long webinars (xgPVk13wrdI, gcc4kkHCKd8, OGzgt4XY0dw; third-party consultants, grade D at best). Hindi/Gujarati/Indonesian tracks read in the original script. Transcripts: .cache/q334/petpooja/v/asr/. Retrieved 2026-09-18. adversarially verified

F
Unknown

Dispatch includes a live map view with geocoded stops and system-generated route sequencing (turn order optimization) for a multi-stop run, not just a static address list. differentiator

delivery-route-map

Retrieval for this vendor: enumerated https://www.petpooja.com/sitemap.xml (46 URLs, all marketing/feature pages, no docs tree) and read every /poss/* page; support., help., kb., docs., developer., api. and online-order.petpooja.com all 404/500, petpooja.zendesk.com help_center API 403, developerapi.petpooja.com 403. The only primary technical doc is the first-party Online Ordering API v2.1.0 blueprint at onlineorderingapisv210.docs.apiary.io. No map, geocoded stop list or route sequencing is described on /poss/online-order-management-software, /poss/cloud-kitchen-pos-software or /poss/restaurant-app-marketplace. The API blueprint contains no route, sequence or distance field; customer latitude/longitude arrive on inbound orders only. The inter-outlet 'delivery route' language elsewhere in this record belongs to stock transfers, not customer delivery. || 331st: NEW SURFACE (331st): THE PUBLISHER'S COMPLETE APP CENSUS HOLDS NO DRIVER/RIDER APP. iTunes lookup?id=1362012012&entity=software (artist 'Prayosha Food Services Pvt. Ltd.') lists 10 apps: Merchant App (com.petpooja.billing, a sales-statistics viewer), Attendo Employee, Captain App (com.pp.captain), Attendo Admin, Petpooja Tasks, Marketing Hub (graphics templates), Purchase Scan, Purchase Manager, Petpooja Track, Stepwise SOP; Google Play developer 'Prayosha Food Services Pvt. Ltd.' lists 8 (attendance, billing, employeepayroll, facerecognition, purchase_manager, stepwise.sop, task_manager, petpoojatrack). The only GPS app, Petpooja Track (com.petpoojatrack.app, background-location permissions), is a FIELD-SALES app ('Built for Petpooja's own field team... Lead management... Demo scheduling... Route playback' for sales managers), not a delivery rider app. And the store-level app's own add-on registry (billing.petpooja.com `var active_function`) wires its only delivery-tracking entry to a THIRD PARTY: "25":{"file_name":"delivery_tracking_details","logo":"delivery-tracking-logo.png","activate":"activate_roadcast"} (Roadcast), alongside shadowfax_details and pidge_details. POISON: `roadcast` un-anchored hits the blog inside `broadcast`; anchored it is 0 outside the registry. The glossary entry https://blog.petpooja.com/glossary/delivery-management/ (a page no prior corpus held) describes own-fleet dispatch ('POS assigns orders to in-house riders, tracks dispatch', 'show rider availability') only generically 'in a POS context' and never attributes it to Petpooja. Held unknown: a registry bounds partners, not the store-level POS core, and the core POS has no public census. `route optimisation`/`live map` hits (4/6) are all in the editorial rider-management tips post, none attributed to a Petpooja feature. Retrieved 2026-09-18. || 333rd: 333rd, NEW SURFACE, NOT SETTLED: no map tile on the store-level POS Operations screen or its Android Management menu (enumerated below), and the owner dashboard's only delivery configuration is "Delivery Distance" (Configuration submenu, 1080p frame of https://www.youtube.com/watch?v=ReK9on1tAXc); the "Delivery Boys" module is unread, and the screen is a per-staff floor, so no no. SURFACE (333rd, new): the STORE-LEVEL POS's own Operations screen, read from 1080p frames of the vendor tutorial "Petpooja | POS | English" (https://www.youtube.com/watch?v=zPwJPJmhsek, frames 3:00-5:40; the 332nd captioned this video but never frame-read it). Petpooja POS v107.0.3 (Windows build, "Ref ID : A132476R, Version : 107.0.3") side menu = Billing, Operations, Reports, Live View, Settings, Check Updates, Logout. The Operations screen tiles: Orders, Online Orders, KOTs, Customers, Cash Flow, Expense, Withdrawal, Cash Top-Up, Inventory, Notification, Table, Virtual Wallet, Manual Sync, Help, Live View, Due Payment, Language Profiles, Billing User Profile, Currency Conversion, Feedback, Delivery Boys, LED Display; "Set the configuration for your restaurant": Menu, Bill / KOT Print, Tax, Discount, Billing Screen, Settings, Online Order Configuration, Me[nu ...] (label cut by the presenter overlay), Service Renewal, Custom Order Status. Outlet Settings > Billing Screen cards: Display, Calculations ("Configure how invoice gets calculated"), Connected Services, Print, Customer; then an "Online/Advance Order" section not opened on screen. Reports submenu: Category, Item, Sales, Order, Executive Sales, Employee, Group, Variation, Cover Size Summary (list continues below the fold). The Android POS "Management" menu: Order List, Kot List, Inventory List, Online Order Configuration, Expense, Withdrawal, Due Payment; Configuration: Manual Sync, Printer Setting. The narrator says the Operations set is per-staff ("all the anary services for which you given the access to the staff ... completely customizable") and the owner-dashboard tutorial (https://www.youtube.com/watch?v=ReK9on1tAXc) carries the on-screen disclaimer "Availability of certain feature(s) depends upon the outlet type, user type, country, pricing plans & other factors", so this is a FLOOR of the POS's modules, not a census. The POS installer is downloaded from the owner's dashboard behind the merchant login (same video), so the client itself cannot be censused anonymously. Retrieved 2026-09-18. adversarially verified

F
Partial

Captures live driver GPS position from a driver-facing mobile app and surfaces it back to the dispatch screen. differentiator

delivery-driver-tracking

Rider Information webhook: a third-party logistics provider POSTs order_id, outlet_id, status 'rider-assigned/rider-arrived/pickedup/delivered' and rider_data {rider_name, rider_phone_number} to Petpooja 'in order to update the order delivery status at our end without continuously polling with check order status'; the order callback likewise returns rider_name and rider_phone_number on status 4 (Dispatched) 'in case of self-delivery'. Shortfall: these are discrete milestones with no latitude/longitude and no live position; the webhook 'has to be provided by third party', no first-party Petpooja driver app is documented (/poss/online-order-management-software points rider management at Duzno, Shadowfax and Pidge), and no dispatch screen that plots a rider exists in any published page. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
No

Delivery areas can be defined as arbitrary map polygons or by drive-time isochrones, not solely as a radius or a ZIP/postcode list. differentiator

delivery-zones-polygon

Petpooja's own hosted ordering websites (<tenant>.petpooja.com) ship their delivery configuration to the browser, and it comes in only two shapes. We checked 14 tenant homepages archived by Wayback between 2025-04 and 2026-06, with HTML comments and JS block comments stripped. Five use a per-branch point and radius, e.g. "lat":"28.472027","long":"77.089542","radius":"25". The browser checks the address with a straight-line haversine distance, `distancecal > radiustocompare`. A Google Distance Matrix handler (`getdatamatrix`) is defined but never called. The other nine, including petpoojademo, use a named-area picklist (`restmainArr[city].deliveryarea[area][branch]`). Across all 14 there are no tokens for polygon, isochrone, geofence or zone. Petpooja's Online Ordering API blueprint likewise exports delivery settings only as per-restaurant scalars. Limit: this covers the guest-facing sites and the API export, not Petpooja's back office, which we did not see. https://web.archive.org/web/20260112185411/https://braaicraftsmokehouse.petpooja.com/ · retrieved 2026-09-14 adversarially verified

C
Partial

Each delivery zone carries its own independently configurable delivery fee, order minimum, and quoted promise time, applied automatically from the validated customer address.

delivery-zone-pricing

On Petpooja's named-area ordering-site build, each delivery area carries its own order minimum. drizzlespizza.petpooja.com (Wayback 2026-01-25) has one branch (id 9662, toq9s4pe) serving 40 areas. After stripping HTML comments, 35 areas show "minimum_order_amount":"150" and 5 show "minimum_order_amount":"200" (PAANVADI, Ambawadi, Ghogha circle, Shishu vihar, Mahila collage). The site's custom.js shows the minimum for the selected area ("Minimum order amount : "). Shortfall: every area object on all 9 named-area tenants has only id, name, menu_sharing_code, minimum_order_amount and delivery_pref_all, so there is no per-area delivery fee and no per-area promise time. The guest picks the area from a list; it is not worked out from a validated address. Petpooja's API blueprint likewise exports one deliverycharge and one minimumdeliverytime per restaurant. https://web.archive.org/web/20260125083403/https://drizzlespizza.petpooja.com/ · retrieved 2026-09-14 adversarially verified

B
Partial

Address entry is validated/geocoded against a mapping service at order time and rejects or flags out-of-zone addresses before the order is accepted.

delivery-address-validation

Archived client-side behaviour of ONE tenant build of Petpooja's multi-tenant online-ordering storefront (<tenant>.petpooja.com, DomainId 58683), Wayback capture 20260112185411. Grade A for that build only. ESTABLISHED: the delivery address is entered through google.maps.places.AutocompleteService with a sessionToken (componentRestrictions country from API_COUNTRY_FLAG; a DomainId == 812 branch uses IN/AE). The selection is geocoded by placeId with google.maps.Geocoder. fillbranches calls get_matrix_data for each branch in the inline available_branches_delivery config (lat, long and radius; here '"radius":"25"'). get_matrix_data computes a straight-line haversine distance and drops the branch when 'distancecal > radiustocompare'. With no branch left, fillbranchedaftermatrix renders 'Sorry, no outlets servicing the selected location.' and no store selector. So an out-of-zone address is refused at store selection. SHORTFALLS: (1) the check is client-side, on the storefront home page. The chosen c_lat/c_long and the branch distance are carried to checkout in hidden fields, but server-side re-validation when the order is accepted was not observed. (2) The zone is a single straight-line radius per branch, not a drawn delivery polygon or a driving distance. A Distance Matrix handler (getdatamatrix) exists in the script but is never called in this build. (3) This is one tenant's dated build; live tenant roots currently return a 500 error page, and nothing documents the behaviour as a platform feature. https://web.archive.org/web/20260112185411/https://braaicraftsmokehouse.petpooja.com/ · retrieved 2026-09-12

A
Unknown

Tracks per-delivery driver compensation inputs — mileage or distance driven per run, per-delivery flat reimbursement, and driver-retained tips — and exports them to payroll as separate reimbursement vs. wage lines. differentiator

delivery-driver-comp

Retrieval for this vendor: enumerated https://www.petpooja.com/sitemap.xml (46 URLs, all marketing/feature pages, no docs tree) and read every /poss/* page; support., help., kb., docs., developer., api. and online-order.petpooja.com all 404/500, petpooja.zendesk.com help_center API 403, developerapi.petpooja.com 403. The only primary technical doc is the first-party Online Ordering API v2.1.0 blueprint at onlineorderingapisv210.docs.apiary.io. Read https://www.petpooja.com/payroll end to end: shifts (including overnight and multi-shift), leave types and approvals, fingerprint and location-based attendance, PF/ESIC/PT breakdown, overtime and late-entry penalties, loans and advances auto-deducted from salary, and '6+ industry-standard reports'. No mileage or distance capture, no per-delivery reimbursement line, no driver-retained tip handling, and no rider pay concept at all. Rider identity in the API is limited to name and phone, with no compensation fields. || 331st: NEW SURFACE (331st): THE PUBLISHER'S COMPLETE APP CENSUS HOLDS NO DRIVER/RIDER APP. iTunes lookup?id=1362012012&entity=software (artist 'Prayosha Food Services Pvt. Ltd.') lists 10 apps: Merchant App (com.petpooja.billing, a sales-statistics viewer), Attendo Employee, Captain App (com.pp.captain), Attendo Admin, Petpooja Tasks, Marketing Hub (graphics templates), Purchase Scan, Purchase Manager, Petpooja Track, Stepwise SOP; Google Play developer 'Prayosha Food Services Pvt. Ltd.' lists 8 (attendance, billing, employeepayroll, facerecognition, purchase_manager, stepwise.sop, task_manager, petpoojatrack). The only GPS app, Petpooja Track (com.petpoojatrack.app, background-location permissions), is a FIELD-SALES app ('Built for Petpooja's own field team... Lead management... Demo scheduling... Route playback' for sales managers), not a delivery rider app. And the store-level app's own add-on registry (billing.petpooja.com `var active_function`) wires its only delivery-tracking entry to a THIRD PARTY: "25":{"file_name":"delivery_tracking_details","logo":"delivery-tracking-logo.png","activate":"activate_roadcast"} (Roadcast), alongside shadowfax_details and pidge_details. POISON: `roadcast` un-anchored hits the blog inside `broadcast`; anchored it is 0 outside the registry. The glossary entry https://blog.petpooja.com/glossary/delivery-management/ (a page no prior corpus held) describes own-fleet dispatch ('POS assigns orders to in-house riders, tracks dispatch', 'show rider availability') only generically 'in a POS context' and never attributes it to Petpooja. Held unknown: a registry bounds partners, not the store-level POS core, and the core POS has no public census. Controls: `mileage` 1 and `fuel allowance` 1, both in payroll glossary entries (glossary/reimbursement, glossary/expense-reimbursement) about general staff expense claims, not per-delivery driver pay. Retrieved 2026-09-18. || 333rd: 333rd, NEW SURFACE, NOT SETTLED: the store-level POS has a native "Delivery Boys" Operations tile whose contents are not shown in any vendor video, so the POS core cannot be bounded for per-delivery pay/mileage. Blog corroboration only (grade C, and about payroll software in general, not the POS): "delivery boys earn per-trip incentives" (blog.petpooja.com/industry-business-guides/payroll-software-supermarkets-india/). SURFACE (333rd, new): the STORE-LEVEL POS's own Operations screen, read from 1080p frames of the vendor tutorial "Petpooja | POS | English" (https://www.youtube.com/watch?v=zPwJPJmhsek, frames 3:00-5:40; the 332nd captioned this video but never frame-read it). Petpooja POS v107.0.3 (Windows build, "Ref ID : A132476R, Version : 107.0.3") side menu = Billing, Operations, Reports, Live View, Settings, Check Updates, Logout. The Operations screen tiles: Orders, Online Orders, KOTs, Customers, Cash Flow, Expense, Withdrawal, Cash Top-Up, Inventory, Notification, Table, Virtual Wallet, Manual Sync, Help, Live View, Due Payment, Language Profiles, Billing User Profile, Currency Conversion, Feedback, Delivery Boys, LED Display; "Set the configuration for your restaurant": Menu, Bill / KOT Print, Tax, Discount, Billing Screen, Settings, Online Order Configuration, Me[nu ...] (label cut by the presenter overlay), Service Renewal, Custom Order Status. Outlet Settings > Billing Screen cards: Display, Calculations ("Configure how invoice gets calculated"), Connected Services, Print, Customer; then an "Online/Advance Order" section not opened on screen. Reports submenu: Category, Item, Sales, Order, Executive Sales, Employee, Group, Variation, Cover Size Summary (list continues below the fold). The Android POS "Management" menu: Order List, Kot List, Inventory List, Online Order Configuration, Expense, Withdrawal, Due Payment; Configuration: Manual Sync, Printer Setting. The narrator says the Operations set is per-staff ("all the anary services for which you given the access to the staff ... completely customizable") and the owner-dashboard tutorial (https://www.youtube.com/watch?v=ReK9on1tAXc) carries the on-screen disclaimer "Availability of certain feature(s) depends upon the outlet type, user type, country, pricing plans & other factors", so this is a FLOOR of the POS's modules, not a census. The POS installer is downloaded from the owner's dashboard behind the merchant login (same video), so the client itself cannot be censused anonymously. Retrieved 2026-09-18. adversarially verified

F
Unknown

Provides a driver cash bank / settle-up flow that reconciles cash collected, orders assigned, and tips owed at end of shift, producing a per-driver over/short figure.

delivery-cash-reconcile

Retrieval for this vendor: enumerated https://www.petpooja.com/sitemap.xml (46 URLs, all marketing/feature pages, no docs tree) and read every /poss/* page; support., help., kb., docs., developer., api. and online-order.petpooja.com all 404/500, petpooja.zendesk.com help_center API 403, developerapi.petpooja.com 403. The only primary technical doc is the first-party Online Ordering API v2.1.0 blueprint at onlineorderingapisv210.docs.apiary.io. Cash-on-delivery is modelled at the order level - Save Order carries payment_type 'COD' and 'collect_cash' (changelog 29-12-2023) - so the amount a rider must collect is known per order. What is not documented is any driver bank, settle-up or end-of-shift over/short flow: /poss/reports-and-analytics names cash-drawer operation reports at the till level only, and no /poss page describes reconciling a rider's collected cash against orders assigned. || 331st: NEW SURFACE (331st): THE PUBLISHER'S COMPLETE APP CENSUS HOLDS NO DRIVER/RIDER APP. iTunes lookup?id=1362012012&entity=software (artist 'Prayosha Food Services Pvt. Ltd.') lists 10 apps: Merchant App (com.petpooja.billing, a sales-statistics viewer), Attendo Employee, Captain App (com.pp.captain), Attendo Admin, Petpooja Tasks, Marketing Hub (graphics templates), Purchase Scan, Purchase Manager, Petpooja Track, Stepwise SOP; Google Play developer 'Prayosha Food Services Pvt. Ltd.' lists 8 (attendance, billing, employeepayroll, facerecognition, purchase_manager, stepwise.sop, task_manager, petpoojatrack). The only GPS app, Petpooja Track (com.petpoojatrack.app, background-location permissions), is a FIELD-SALES app ('Built for Petpooja's own field team... Lead management... Demo scheduling... Route playback' for sales managers), not a delivery rider app. And the store-level app's own add-on registry (billing.petpooja.com `var active_function`) wires its only delivery-tracking entry to a THIRD PARTY: "25":{"file_name":"delivery_tracking_details","logo":"delivery-tracking-logo.png","activate":"activate_roadcast"} (Roadcast), alongside shadowfax_details and pidge_details. POISON: `roadcast` un-anchored hits the blog inside `broadcast`; anchored it is 0 outside the registry. The glossary entry https://blog.petpooja.com/glossary/delivery-management/ (a page no prior corpus held) describes own-fleet dispatch ('POS assigns orders to in-house riders, tracks dispatch', 'show rider availability') only generically 'in a POS context' and never attributes it to Petpooja. Held unknown: a registry bounds partners, not the store-level POS core, and the core POS has no public census. Controls over the completed census: `rider settlement`, `rider cash`, `COD settlement`, `delivery boy settlement` all 0. Retrieved 2026-09-18. || 332nd: 332nd: the POS settlement tutorials (Settlement Types Z_HS4eu4ibw; Types Of Payment lTWIwcqRGyM, whose "More" tender dialog frame lists Cash, Card, Due, Part, Wallet, UPI, Online Banking, Amazon Pay) settle per bill only; nothing settles a delivery person's collected cash. Controls over 133 videos + slug b's 209: rider/driver/delivery boy settlement 0, over/short 0 ('shortage' hits are raw-material stock variance), cash bank 0, settle-up 0. SURFACE (332nd, new): auto-caption tracks of Petpooja's own YouTube channels, fetched anonymously with yt-dlp (timedtext needs a PO token; yt-dlp's player clients do not): "Petpooja Tutorials" UCCAKlH4ogL0PvuUErRk5TWQ, 101 of 105 English videos (4 missing: 3 Attendo HR clips + Purchase Order Received Report), plus 32 product videos of the main @petpooja-softwareforSMEs channel; corpus 551,622 chars in .cache/q332/petpooja/a/corpus-captions{,2}.txt; cross-checked against slug b's 209-transcript EN+HI set (.cache/q332/petpooja/b/tx). Video frames read at 1080p (ffmpeg) where the caption needed a screen. Retrieved 2026-09-18. || 333rd: 333rd, NEW SURFACE, NOT SETTLED: the store-level POS's Operations screen carries both a "Delivery Boys" tile and cash-drawer tiles ("Cash Flow", "Withdrawal", "Cash Top-Up", "Due Payment"), so a driver settle-up could live in either; neither screen is opened in any vendor video, so this cannot be a no. The owner dashboard's payment-mode panel (1080p frames of https://www.youtube.com/watch?v=ReK9on1tAXc) lists Cash, Card, Wallet, Due Payment, Other, Online Paid, Online COD - no per-driver line. SURFACE (333rd, new): the STORE-LEVEL POS's own Operations screen, read from 1080p frames of the vendor tutorial "Petpooja | POS | English" (https://www.youtube.com/watch?v=zPwJPJmhsek, frames 3:00-5:40; the 332nd captioned this video but never frame-read it). Petpooja POS v107.0.3 (Windows build, "Ref ID : A132476R, Version : 107.0.3") side menu = Billing, Operations, Reports, Live View, Settings, Check Updates, Logout. The Operations screen tiles: Orders, Online Orders, KOTs, Customers, Cash Flow, Expense, Withdrawal, Cash Top-Up, Inventory, Notification, Table, Virtual Wallet, Manual Sync, Help, Live View, Due Payment, Language Profiles, Billing User Profile, Currency Conversion, Feedback, Delivery Boys, LED Display; "Set the configuration for your restaurant": Menu, Bill / KOT Print, Tax, Discount, Billing Screen, Settings, Online Order Configuration, Me[nu ...] (label cut by the presenter overlay), Service Renewal, Custom Order Status. Outlet Settings > Billing Screen cards: Display, Calculations ("Configure how invoice gets calculated"), Connected Services, Print, Customer; then an "Online/Advance Order" section not opened on screen. Reports submenu: Category, Item, Sales, Order, Executive Sales, Employee, Group, Variation, Cover Size Summary (list continues below the fold). The Android POS "Management" menu: Order List, Kot List, Inventory List, Online Order Configuration, Expense, Withdrawal, Due Payment; Configuration: Manual Sync, Printer Setting. The narrator says the Operations set is per-staff ("all the anary services for which you given the access to the staff ... completely customizable") and the owner-dashboard tutorial (https://www.youtube.com/watch?v=ReK9on1tAXc) carries the on-screen disclaimer "Availability of certain feature(s) depends upon the outlet type, user type, country, pricing plans & other factors", so this is a FLOOR of the POS's modules, not a census. The POS installer is downloaded from the owner's dashboard behind the merchant login (same video), so the client itself cannot be censused anonymously. Retrieved 2026-09-18. adversarially verified

F
Partial

Can hand a first-party order to an on-demand courier marketplace (DoorDash Drive, Uber Direct, Nash, Relay or equivalent) natively from the POS, with the courier quote and status returning into the order record.

delivery-daas-dispatch

Rider-management app integrations with on-demand logistics providers (Duzno, Shadowfax, Pidge) are supported. Quote-and-status return into the order record is not documented. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-01

D
Partial

Supports hybrid dispatch: rules that automatically overflow an order to a DaaS courier when no in-house driver is available, out of zone, or past a wait threshold. differentiator

delivery-daas-fallback

FAQ: 'Can I use rider management apps with my restaurant POS? Petpooja's restaurant billing software supports more than 150+ different third-party integrators, including ride management apps like Duzno, Shadowfax, and Pidge', and the API blueprint's Rider Information webhook gives those couriers a documented path to push rider-assigned/arrived/pickedup/delivered back into the order - so handing a delivery to a DaaS courier is supported. Shortfall: no rule engine is documented. Nothing on any /poss page or in the blueprint describes automatic overflow when no in-house rider is available, when an address is out of zone, or past a wait threshold; the handoff appears operator-initiated. https://www.petpooja.com/poss/online-order-management-software · retrieved 2026-08-06

C
Partial

Offers direct, first-party certified API integrations with DoorDash, Uber Eats, and Grubhub marketplaces (vendor-owned, not solely resold through Otter/Deliverect/Chowly/ItsaCheckmate middleware). differentiator

delivery-3p-direct-integration

Partial stands, but the named set is over-stated. On the cited page I could only confirm "Swiggy, Zomato, Dineout" plus rider apps "Duzno, Shadowfax, and Pidge". District and EazyDiner are not evidenced on that URL — treat those two names as unverified. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-01 adversarially verified

B
Yes

Third-party marketplace orders inject automatically into the POS as normal tickets that fire to KDS/printers without tablet re-keying or manual accept.

delivery-3p-injection

Aggregator orders land on a single acceptance screen inside the POS and flow to KOT/KDS with no tablet re-keying. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-01

D
Yes

Menu, pricing, modifiers, and photos publish from the POS master menu out to connected third-party marketplaces, including channel-specific price markups, without maintaining a separate menu in each portal.

delivery-menu-push

Menu and pricing updates publish from the POS master menu to all connected aggregators simultaneously; packaging charges configurable per channel. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-01

D
Yes

Marking an item or modifier 86'd in the POS pushes item-level out-of-stock status to connected third-party channels in near real time, and restores it on availability (DoorDash requires item and item-option 86ing of new POS partners).

delivery-86-sync

'Toggle any online menu item On or Off as per your inventory' with automated stock-out management cross-checked against POS stock. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-01

D
Partial

Store can be paused/deactivated on each connected third-party marketplace from inside the POS with a timed auto-reactivation, rather than only from each marketplace's own tablet or portal.

delivery-store-pause

Store timing and pause management from inside the POS. Timed auto-reactivation is not explicitly documented. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-01

D
Partial

Produces a third-party reconciliation report matching marketplace payout deposits to POS-recorded 3P sales, itemizing commission, marketing fees, refunds/adjustments, and identifying missing or unpaid orders. differentiator

delivery-3p-reconciliation

I fetched the cited page myself. It is marketing copy (testimonials, problem/solution framing, CTAs), not product documentation — so "documented" confidence is unearned. More materially, its own FAQ says "Reach out to your Petpooja account manager for availability and pricing details for your plan", i.e. reconciliation is a paid add-on of unpublished price and unstated tier availability, not a bundled capability. The named behaviours (matched orders, status mismatches, amount variances, missing orders in both directions, per-order commission) are all present as claims, so the capability is rea https://petpooja.com/poss/online-order-reconciliation · retrieved 2026-08-01 adversarially verified

B
Unknown

Vendor exposes integration health to the operator — failed/rejected order injections, connection status per channel, and alerts on failure — rather than failing silently. differentiator

delivery-injection-error-visibility

Retrieval for this vendor: enumerated https://www.petpooja.com/sitemap.xml (46 URLs, all marketing/feature pages, no docs tree) and read every /poss/* page; support., help., kb., docs., developer., api. and online-order.petpooja.com all 404/500, petpooja.zendesk.com help_center API 403, developerapi.petpooja.com 403. The only primary technical doc is the first-party Online Ordering API v2.1.0 blueprint at onlineorderingapisv210.docs.apiary.io. The blueprint does define machine-readable failure surfaces - Save Order errors SO_105 and SO_106 with a validation_errors object, Update Order Status error UOS_105, and Get Store Status / Update Store Status endpoints for per-channel store on/off - but every one of these is consumed by the integration partner, not shown to the restaurant. No /poss page describes an operator-facing integration health view, a failed-injection list or failure alerts; the closest is the paid Online Order Reconciliation add-on, which matches aggregator payout sheets against POS records after the fact rather than alerting live. || 326th: NEW SURFACE, NOT SETTLED. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. The Save Order contract has a real, documented failure taxonomy, but it faces the INTEGRATOR, not the operator: "errorCode": "SO_105"/"SO_106" with a "validation_errors" object ("It contains various errors which can be arised while placing order."), "UOS_105" on Update Order Status, and 400 bodies on the rider and stock webhooks. Failures are returned to the caller's process; nothing in the corpus describes an operator-facing integration-health screen, alert or retry control (controls: retry 0, health 0, dashboard 0, alert 0). The claim is about what the OPERATOR sees, which this surface cannot settle in either direction. Retrieved 2026-09-18. adversarially verified

F
Partial

Guests receive a branded order status / driver tracking page or SMS link on the restaurant's own domain for first-party delivery orders, driven by real order and driver state.

delivery-tracking-page

Petpooja's hosted first-party ordering websites (<tenant>.petpooja.com) give the guest an order-status page at /checkout/vieworder/<encoded order id>. Five Wayback captures across three tenants (drizzlespizza, newpizzayum x2, thefoodbarn x2; October-December 2019) render a two-step tracker whose state and contents are specific to each order: "Your order has been Placed." / "You will get a confirmation SMS once your order is accepted." with "Awaiting Confirmation"; "Your order has been Cancelled." with a free-text cancellation reason in place of the note; and, on the two thefoodbarn orders labelled Home Delivery, "Your order has been in Kitchen for preparation." / "Order is confirmed by restaurant. It will be served you shortly." with "Confirmed". Every page ends at "Delivered" and says "The order status will be sent to you through SMS on your number." A 2026-01-12 tenant homepage capture (braaicraftsmokehouse) still carries an order-status message dictionary with Pending, Accept, Prepare, Confirm, Dispatch ("Order is out for delivery. It will be served you shortly."), Ready and Cancel notes. That shows the status vocabulary is current, but the vieworder page itself was only captured in 2019. Shortfall: the page is rendered by the server once. None of the five pages contains setInterval, setTimeout or a meta refresh, and neither do the 2025-26 captures of the tenant custom.js and common.js; later updates go by SMS. There are no driver, rider, ETA or tracking tokens, and the only map hits are fa-map-marker address icons, so there is no driver identity or live location. The page is on a Petpooja subdomain, not the restaurant's own domain. https://web.archive.org/web/20191130102547/http://thefoodbarn.petpooja.com:80/checkout/vieworder/UFAzOTg4MjE1NzQ5NjkyOTc= · retrieved 2026-09-14 adversarially verified

B
Partial

Quoted delivery promise times adjust dynamically from current kitchen load, driver availability, and zone drive time, rather than a fixed per-store constant. differentiator

delivery-promise-time

The quote is modelled at two levels rather than as one fixed store constant: the Push/Fetch Menu restaurant object carries 'minimum_prep_time - Minimum preparation time of restaurant in minutes' (added 12-09-2024) and 'minimumdeliverytime', while Save Order accepts an order-level 'min_prep_time - order level Kitchen preparation time defined by the order platform' and the order callback returns 'minimum_prep_time - Kitchen preparation time conveyed by the restaurant' plus 'minimum_delivery_time - Delivery time mentioned by restaurant'. Shortfall: every documented value is asserted by the restaurant or the ordering platform; nothing in the blueprint or on any /poss page describes automatic derivation from current kitchen load, rider availability or zone drive time, and there are no drive-time or zone fields at all. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
Partial

Vendor documents explicit offline behavior for delivery: whether cash delivery orders, driver assignment, and driver settlement continue during an internet outage.

delivery-offline-behavior

CLAIM: vendor documents explicit offline behaviour for delivery — whether cash delivery orders, driver assignment and driver settlement continue during an internet outage. VERDICT: partial. SHORTFALL: only the order and cash legs are documented; driver assignment and driver settlement are not addressed anywhere. EVIDENCE (documented): "Swiggy and Zomato orders... Aggregator orders are the other gap, because Swiggy and Zomato send them over the internet and nothing reaches your screen with the line down. Those orders are not lost, they simply arrive late"; "Check the pending online orders once the connection returns, before you close the day"; cash settlement and day-end are listed as continuing, and the guide instructs "Switch payments to cash or a direct UPI QR that does not depend on the EDC machine". It also names a pre-built mitigation: "POSS lets you build backend-only item groups, such as a Power Failure Group for items you cannot serve during an outage." NOT documented: driver assignment or driver settlement offline — control inside the document: "driver" 0, "delivery boy" 0, "rider" 0. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/restaurant-pos-without-internet/ · retrieved 2026-09-17 adversarially verified

C

Digital ordering & guest-facing channels

Partial

Vendor ships a first-party, commission-free web ordering site on the restaurant's own branding/domain that writes orders directly into the POS with no per-order marketplace commission.

digital-first-party-web

"Restaurant website" is listed among Add-ons on the vendor pricing page, not included in any tier. The "without paying a single penny to third-party applications" line is comparative marketing about aggregator commissions, not a statement that the module is free. https://petpooja.com/poss/pricing · retrieved 2026-08-01 adversarially verified

C
Yes

The web/app ordering menu is generated from the same POS menu record as in-store — one item edit propagates to all first-party digital channels without a separate digital menu build.

digital-menu-single-source

'Upload and manage your website menu using POS' - the ordering site is driven from the POS menu record. https://petpooja.com/poss/restaurant-website · retrieved 2026-08-01

D
No

Vendor offers a branded native iOS and Android ordering app (published under the restaurant's own brand in the App Store/Play Store), not only a mobile web page or a shared multi-restaurant marketplace app. differentiator

digital-native-app

CLAIM: vendor offers a branded native iOS and Android ordering app published under the restaurant's own brand, not only a mobile web page or a shared marketplace app. VERDICT: no — the first-party guest channel is a website and a QR menu. EVIDENCE: the marketplace enumeration of 11 add-on services offers "Business website | Build personal connection with your customers through your brand website. Accept orders directly from your website to POS system without third-party aggregator or commissions", "Scan and order", and a self-ordering kiosk — no guest app. The plan matrix lists "Restaurant website", "OOW (Website)" and "QR Ordering / Digital menu" and no app (www.petpooja.com/poss/pricing publishes a complete three-plan matrix — Core, Growth, Scale at $50/$95/$135 per outlet per month billed annually and $65/$115/$150 monthly (the figures sit inside HTML comments, so a comment-stripping reader would miss them). The included list is closed: Cloud Billing, Inventory Module, 80+ Reports, In-built CRM, Menu management, Unlimited terminals & user rights, Central kitchen module, Multi-terminal billing; add-ons Kitchen display system, Captain ordering app, Restaurant website, Petpooja loyalty, Token Management System, Feedback App / QR, OOW (Website), QR Ordering / Digital menu; advanced features Dynamic reports; support On-call/ On-chat, Dedicated POC. No API, developer, integration or data-export line appears in any plan.). The vendor's own channel comparison ranks "POS-integrated (e.g., Petpooja My Website)" against Wix/WordPress/Google Business Profile — website routes only (blog.petpooja.com/industry-business-guides/create-restaurant-website-without-coding/). Petpooja's six published Play Store apps are all operator-side (Petpooja Merchant com.petpooja.billing 4.4.6, Petpooja Tasks, Petpooja Track, Attendo Admin/Employee, Attendo Face) — none is a white-label guest ordering app. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "white-label app" 0, "branded app" 0. POISON NAMED: "your own app" is NOT zero — 7 hits, and every one treats the app as something the restaurant obtains ELSEWHERE, with Petpooja only pushing menu to it ("Menu sync keeps one master menu in your POS and pushes it to Swiggy, Zomato and your own app", blog.petpooja.com/industry-business-guides/sync-menu-across-swiggy-zomato-and-pos/) or advising how to commission one (blog.petpooja.com/industry-business-guides/complete-guide-on-creating-online-food-ordering-app-for-your-restaurant/). That is channel support, not a vendor-published branded app. Retrieved 2026-09-17. https://www.petpooja.com/poss/restaurant-app-marketplace · retrieved 2026-09-17 adversarially verified

C
Partial

Guests can create an account with saved addresses, saved (tokenized) payment methods, and one-tap reorder of a previous order across first-party channels.

digital-account-saved-payment

CLAIM: guests can create an account with saved addresses, saved (tokenized) payment methods and one-tap reorder of a previous order across first-party channels. VERDICT: partial. SHORTFALL: guest history and address are retained and re-used, but only staff-side, and there is no saved payment credential and no one-tap reorder. EVIDENCE: Petpooja's call-centre module "Agents see a caller's past orders and saved address, so repeat customers do not repeat themselves... When the agent enters the number, the screen shows that customer's past orders and saved address." NOT satisfied: "token(is|iz)*" has one hit in 995 documents and it is RBI education, not a Petpooja feature; "card on file" 0, "saved card*" 0, "one-tap reorder" 0. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/restaurant-call-centre-software-phone-orders/ · retrieved 2026-09-17 adversarially verified

C
Partial

Digital checkout presents configurable or algorithmic upsell/cross-sell suggestions (rules-based add-ons or personalized recommendations from order history), with attach-rate reporting on those suggestions. differentiator

digital-upsell-engine

Petpooja's self-service kiosk product page (canonical https://www.petpooja.com/poss/self-service-kiosk; the same copy is on /ae/poss/self-service-kiosk), in a stat tile headed 'Higher average order value':'Smart upsell prompts surface the right combo, side, or add-on at the right moment without asking your staff to remember the script.' Checked verbatim in the raw HTML (one <p> element, no markup inside the span). Separately, blog.petpooja.com/industry-business-guides/advanced-ways-placing-orders-restaurant/ gives kiosks 'Built-in upsell prompts run on every single transaction.' That sentence is the second half of a list item and is category-level, so it is corroboration only. Established: the guest-facing kiosk checkout presents add-on and combo upsell prompts. Not established (the shortfall): any attach-rate or suggestion-performance reporting; whether prompts are operator-configured rules or history-based; and upsell on the web-ordering or QR channels. Petpooja's documented AI upsell is staff-side in the Captain app ('Suggests add-ons like item pairings and time-of-day picks while a captain takes the order'), which is not digital checkout. Grade C, product marketing page. https://www.petpooja.com/poss/self-service-kiosk · retrieved 2026-09-12

C
Partial

Supports future/scheduled orders with per-daypart throttling — capacity limits on orders or items per time slot that automatically close slots when the kitchen is saturated.

digital-scheduled-pacing

Save Order defines advanced_order ("Flag which says that placed order is advance or not. Value is Boolean either Y or N") with required preorder_date and preorder_time, and the spec states "for advance order the pre order date and time must be greater than or equal to current date and time of the system"; min_prep_time, urgent_order and urgent_time are also carried. So future/scheduled orders are a documented, first-class part of the order contract. Shortfall: nothing in the menu, get_store_status or update_store_status endpoints (which expose only an on/off store state plus a turn_on_time) or in the item_stock on/off endpoints exposes a per-time-slot or per-daypart cap on orders or items, so there is no documented mechanism that auto-closes a slot when the kitchen saturates - throttling is all-or-nothing store availability. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
Partial

Single digital ordering flow supports pickup, curbside (with arrival check-in), dine-in/QR table ordering, and delivery, with mode-specific fees and prep timing.

digital-fulfillment-modes

Dine-in QR, website pickup/delivery and aggregator delivery are covered. Curbside with arrival check-in and mode-specific fee/prep timing are not documented. https://petpooja.com/poss/scan-and-order · retrieved 2026-08-01

D
Partial

Supports guest-facing QR scan-to-order and/or scan-to-pay at the table that opens or attaches to the existing POS check, including splitting and tipping.

digital-qr-table

Same add-on gating as above; capability claimed on a marketing page with no documentation of check-attachment semantics or conflict handling when the counter edits the same bill. https://petpooja.com/poss/scan-and-order · retrieved 2026-08-01 adversarially verified

B
Partial

Vendor ships a self-order kiosk running the same menu and modifier logic as the POS, with accessibility-compliant UI and unattended EMV payment. differentiator

digital-kiosk

First-party kiosk using the same POS menu and pricing with UPI/card payment and built-in printer. No accessibility-compliant UI documentation. https://petpooja.com/poss/self-service-kiosk · retrieved 2026-08-01

D
Partial

Supports group ordering: a shareable link where multiple participants add their own items to one order under a per-person or total spend cap, with split or single payment.

digital-group-ordering

'Different guests can order separately from the same table' onto one bill. No shareable link, per-person spend cap, or split-payment mechanic documented. https://petpooja.com/poss/scan-and-order · retrieved 2026-08-01

D
No

Offers a distinct catering ordering flow with separate catering menu/minimums, lead-time rules, quotes or proposals, deposits, and invoice/house-account or ACH payment terms. differentiator

digital-catering-portal

CLAIM: a distinct catering ordering flow - separate catering menu/minimums, lead-time rules, quotes or proposals, deposits, invoice/house-account/ACH terms. VERDICT: no (moved from unknown). NEW SURFACE (334th): Petpooja's first-party digital ordering CLIENTS, fetched anonymously (GET only; no cart, no OTP, no POST). (a) Online Ordering Widget, https://oow.petpooja.com/ (Petpooja's own demo tenant "Petpooja Demo Restaurant", site_title 'Petpooja Widget'; the same CakePHP client serves every <outlet>.petpooja.com widget tenant, e.g. https://shaanchinese.petpooja.com/): its inline globalMessages dictionary is the complete guest-facing server message table of the order flow, 63 keys - OTP, cart, checkout, payment ("paymentOptionInvalid", "invalidPaymentProcessAmount"), coupons (8 keys), "minOrderAmountRequired" (one per-outlet minimum, restmainArr.minimum_order_amount), "advanceOrderRequired"/"advanceOrderInvalid" (a future time inside opening hours), "takeAwayError", order-status notes (pending/accepted/prepared/dispatch/ready/cancel/refund). No quote, deposit, balance, invoice or catering key. (b) Scan & Order, https://dinein.petpooja.com/orders/category/3jei1gsu/1 (65 message + 78 label keys) + dineincdn.petpooja.com common/main/order/utility js. Tokenised controls over widget html/js and dine-in html/js: catering 0/0/0/0, caterer 0, quote 0, quotation 0, deposit 0, invoice 0, bulk 0, "lead time" 0, "house account" 0, ACH 0, proposal 0, party 0; POISON NAMED: "event" 14 hits are all JS DOM events (event.preventDefault). (c) The vendor's own walkthrough of its My Website add-on (https://blog.petpooja.com/industry-business-guides/create-restaurant-website-without-coding/) enumerates the owner's setup - menu, payment methods (UPI, cards, COD), delivery radius/pickup rules, a minimum order value, a WhatsApp button - and routes a catering-sized enquiry OUT of the ordering flow: "Indians message businesses on WhatsApp for everything ... 'Can you do 40 plates of biryani for Saturday?' If the button is buried inside a Contact page three taps deep, those enquiries go to a competitor". (d) Online Ordering API v2.1.0 order model (326th): advanced_order + preorder_date/time, no deposit, quote or balance field. (e) www+blog census (995 docs, 331st): catering 0 on any www page; blog hits editorial. SHORTFALL vs claim, every conjunct: no separate catering menu (one menu per outlet), one generic minimum, lead time = "advance order" inside opening hours only, no quote/proposal, no deposit, payment is pay-now/COD only. Grade B: the vendor's shipped production client code, anonymously served. WEAKEST POINT: the widget is one of several first-party ordering surfaces (My Website templates sit behind the merchant login); the no rests on the widget + scan-and-order dictionaries + the vendor's own website walkthrough together. Retrieved 2026-09-18. https://oow.petpooja.com/ · retrieved 2026-09-18 adversarially verified

B
No

Vendor offers AI voice phone ordering (native or a named certified partner) that answers inbound calls and injects the completed order into the POS without staff transcription. differentiator

digital-voice-ai-phone

CLAIM: vendor offers AI voice phone ordering (native or a named certified partner) that answers calls and drops the order into the POS. VERDICT: no. BOUND/CORPUS (327th): (a) THE STORE-LEVEL POS WEB APP ITSELF — https://billing.petpooja.com/ is Petpooja's production store-level POS/back-office web app (its own Terms of Service names "www.billing.petpooja.com" as the Site). Its PUBLIC login page (94,412 bytes, server-rendered CakePHP, no SPA bundle) ships an inline `var active_function = {...}` object: a 166-entry registry of every add-on/integration the app can activate, each with file_name, logo and an activate_* handler (e.g. "26":{"file_name":"kds_details","activate":"activate_kds"}). Nonsense control: https://zzznope9987qq.petpooja.com/ and https://billing.petpooja.com/zzznope9987 return the *.petpooja.com wildcard catch-all (404, 1,691 bytes / 404, 7,430 bytes) while the root returns 200/19,180, so this host is real and is NOT the wildcard. Grade B: the vendor's own shipped production code, not marketing. The registry matches the marketing claim of "150+ third-party integrators". (b) the 995-document publisher-manifest census built in the 325th (blog.petpooja.com WordPress REST: 817 posts + 330 glossary + 12 pages, X-WP-Total confirmed; plus all 66 www.petpooja.com sitemap URLs incl. every legal page), 9,579,728 chars, HTML comments PRESERVED. (c) the three anonymous Apiary API blueprints held in the 326th (367,492 bytes). (d) trust.petpooja.com's own Scrut trust-centre document registry fetched anonymously. The registry does carry telephony-adjacent entries — call_center_details, device_calling_details (twice), whatsapp_details, sms_details — but nothing that answers a call and takes an order, and no voice-AI partner. THE NEAR MISS, STATED SO IT IS NOT MISTAKEN FOR THE CLAIM: www.petpooja.com/poss/captain-ordering-app answers its own FAQ "How does Ai-based technology help the Captain app?" with "Petpooja's Captain app is supported by Ai-tech, which helps captains add items for billing by AI voice recognition" — that is staff-side voice ITEM ENTRY on a handheld, not an AI agent answering the restaurant's phone. CONTROLS (www/blog/api/registry): "voice AI"|"AI voice" 1/0/0/0 (that single hit is the Captain-app sentence above). POISON FOUND AND REMOVED: an un-anchored `accessib` control returned 0 and would have published a FALSE zero — it needs a prefix-only match (`accessibility` is 3+29 hits); `PCI` un-anchored returns 31 blog hits that are ALL inside `NPCI` (National Payments Corporation of India); `Otter` un-anchored returns 6 hits inside longer words; `Olo` returns 1,171 hits inside `technology`. All controls below are anchored with (?<![A-Za-z0-9])...(?![A-Za-z0-9]) and run case-insensitively over every corpus named above, each reported separately. Retrieved 2026-09-18. https://billing.petpooja.com/ · retrieved 2026-09-18 adversarially verified

B
No

Supports AI voice ordering at the drive-thru lane, integrated with the POS menu/modifiers and with escalation-to-human handoff.

digital-drivethru-ai

CLAIM: supports AI voice ordering at the drive-thru lane, integrated with the POS menu/modifiers. VERDICT: no. BOUND/CORPUS (327th): (a) THE STORE-LEVEL POS WEB APP ITSELF — https://billing.petpooja.com/ is Petpooja's production store-level POS/back-office web app (its own Terms of Service names "www.billing.petpooja.com" as the Site). Its PUBLIC login page (94,412 bytes, server-rendered CakePHP, no SPA bundle) ships an inline `var active_function = {...}` object: a 166-entry registry of every add-on/integration the app can activate, each with file_name, logo and an activate_* handler (e.g. "26":{"file_name":"kds_details","activate":"activate_kds"}). Nonsense control: https://zzznope9987qq.petpooja.com/ and https://billing.petpooja.com/zzznope9987 return the *.petpooja.com wildcard catch-all (404, 1,691 bytes / 404, 7,430 bytes) while the root returns 200/19,180, so this host is real and is NOT the wildcard. Grade B: the vendor's own shipped production code, not marketing. The registry matches the marketing claim of "150+ third-party integrators". (b) the 995-document publisher-manifest census built in the 325th (blog.petpooja.com WordPress REST: 817 posts + 330 glossary + 12 pages, X-WP-Total confirmed; plus all 66 www.petpooja.com sitemap URLs incl. every legal page), 9,579,728 chars, HTML comments PRESERVED. (c) the three anonymous Apiary API blueprints held in the 326th (367,492 bytes). (d) trust.petpooja.com's own Scrut trust-centre document registry fetched anonymously. CONTROLS (www/blog/api/registry): drive-thru|drive-through 0/7/0/0 — all seven blog hits are industry prose (a 2019 NRA statistic, kitchen-layout advice, a list of fast-food chains), none describes a Petpooja lane product; "voice AI"|"AI voice" 1/0/0/0, and that one hit is the Captain handheld's item-entry voice recognition, not a lane. No drive-thru, lane, headset or order-confirmation-board entry exists in the store-level app's 166-entry add-on registry. POISON FOUND AND REMOVED: an un-anchored `accessib` control returned 0 and would have published a FALSE zero — it needs a prefix-only match (`accessibility` is 3+29 hits); `PCI` un-anchored returns 31 blog hits that are ALL inside `NPCI` (National Payments Corporation of India); `Otter` un-anchored returns 6 hits inside longer words; `Olo` returns 1,171 hits inside `technology`. All controls below are anchored with (?<![A-Za-z0-9])...(?![A-Za-z0-9]) and run case-insensitively over every corpus named above, each reported separately. Retrieved 2026-09-18. https://billing.petpooja.com/ · retrieved 2026-09-18 adversarially verified

B
Partial

Supports conversational SMS or chat ordering/reordering (text-to-order or text-a-link) that lands in the POS.

digital-sms-ordering

Petpooja's own post (WP modified 2026-09-07) lists five ordering channels, one of them 'Digital menus shared on WhatsApp', and states 'Petpooja POSS supports all five channels'. Its FAQ describes 'WhatsApp menu link for repeat customers. The POS merges all of these into one KOT and billing flow.' Both were checked verbatim in the raw HTML, each within a single paragraph. Established: a text-a-link path exists, where the operator shares a POS-hosted ordering link over WhatsApp and orders placed through it land in the POS as a KOT. Not established (the shortfall): conversational ordering or reordering inside SMS or chat (no inbound text-to-order, no bot, no reorder-by-reply); `WhatsApp ordering` has 1 blog hit and no Petpooja sentence. The link-sharing is also manual operator distribution, not a platform-sent reorder message. The post's detailed WhatsApp-menu passage is written about the category, so the Petpooja-specific support rests on the 'supports all five channels' sentence. Grade C, marketing blog. https://blog.petpooja.com/industry-business-guides/advanced-ways-placing-orders-restaurant/ · retrieved 2026-09-12

C
No

Supports Order with Google — the restaurant's direct ordering link is provisioned to the Google Business Profile as an ordering option (ideally set as 'Preferred by Business'), rather than leaving marketplace links as the only choice. differentiator

digital-google-order

CLAIM: the restaurant's direct ordering link is provisioned to the Google Business Profile as an ordering option (Order with Google), not left to marketplace links. VERDICT: no (moved from unknown). THE HOLD'S LAST OPEN REASON IS NOW READ. The 327th hold rested on add-ons whose contents nothing documented; the 331st showed local_growth/petpooja_growth are subscription plans, leaving only my_website/own_website_details ("a service no public surface bounds"). NEW EVIDENCE: Petpooja's own step-by-step walkthrough OF THAT ADD-ON, "How to Create a Restaurant Website Without Coding" (https://blog.petpooja.com/industry-business-guides/create-restaurant-website-without-coding/, published 2026-06-25, modified 2026-09-01, re-fetched live today at 200): "The walkthrough below uses Petpooja's My Website add-on ... Open the dashboard and turn on the website module. On Petpooja, it is a single toggle inside the marketplace. The moment you activate it, the system pulls your outlet name, address, phone number, and full menu from the POS database", then template/branding, menu clean-up, payment methods (UPI, cards, COD), delivery radius and pickup rules, a floating WhatsApp button, "Publish and order from your own phone" - "Petpooja's My Website add-on wraps this entire flow in under 30 minutes." The ONLY Google step the vendor gives its own add-on is a MANUAL link: "Link the site from the Instagram bio, the WhatsApp Business profile, and the Google Business listing." And the vendor states Google Business Profile cannot carry an order: route table "Google Business Profile | Free | Free | Under 1 hour | No (listing only)" in the "Online ordering?" column; "which gives every outlet a free page on Search and Maps but does not take orders"; "No ordering, no payments, no customer database, no loyalty programme. It is a signboard on Google, not a shop."; FAQ: "Google Business Profile gives you a free listing with menu and contact details. It does not support ordering or payments." A vendor that provisioned its ordering URL into Google's order-online action could not describe GBP as "listing only" in the table that sells its own website add-on, nor reduce the Google step to pasting a link into the listing. BOUND (every Petpooja surface that could carry the provisioning): (1) the store-level app's 166-entry add-on/channel registry (billing.petpooja.com login page, 327th, grade B): no Google ordering entry; (2) the Marketing client's only Google integration, marketing.petpooja.com (273/273 chunks, 333rd; re-grepped today): GBP reviews/posts/photos/insights, metric keys c_c, w_c, b_i_d_m, b_i_m_m, b_f_m_c, b_b - no food-orders metric; "Order with Google" 0, "order online" 0; (3) NEW TODAY: the Online Ordering Widget production client (https://oow.petpooja.com/, Petpooja's demo tenant, site_title 'Petpooja Widget': inline globalMessages dictionary 63 keys + common.js/custom.js/jqvldt4.js, 88,547 chars) and the Scan & Order client (https://dinein.petpooja.com/orders/category/3jei1gsu/1 + 4 dineincdn.petpooja.com scripts, 313,425 chars): "Order with Google" 0/0, "Reserve with Google" 0/0, "order online" 0/0; (4) the 995-document www+blog publication census (325th/331st): "Order with Google" 0, "Reserve with Google" 0, "Google ordering" 0; every GBP hit is local-SEO advice. Controls tokenised, word-boundary, case-insensitive. GRADE: C because the decisive statements are vendor blog prose; the registry and client bounds are B. WEAKEST POINT: the blog is editorial; it is the vendor describing its own add-on, not a settings page. Retrieved 2026-09-18. https://blog.petpooja.com/industry-business-guides/create-restaurant-website-without-coding/ · retrieved 2026-09-18 adversarially verified

C
No

Supports Apple Business Connect ordering placement — an 'Order Food' custom action on the Apple Maps place card pointing at the vendor's first-party ordering flow.

digital-apple-business-connect

CLAIM: Apple Business Connect ordering placement - an "Order Food" action on the Apple Maps place card pointing at the vendor's first-party ordering flow. VERDICT: no (moved from unknown). Same retirement of the 327th hold as digital-google-order: THE HOLD'S LAST OPEN REASON IS NOW READ. The 327th hold rested on add-ons whose contents nothing documented; the 331st showed local_growth/petpooja_growth are subscription plans, leaving only my_website/own_website_details ("a service no public surface bounds"). NEW EVIDENCE: Petpooja's own step-by-step walkthrough OF THAT ADD-ON, "How to Create a Restaurant Website Without Coding" (https://blog.petpooja.com/industry-business-guides/create-restaurant-website-without-coding/, published 2026-06-25, modified 2026-09-01, re-fetched live today at 200): "The walkthrough below uses Petpooja's My Website add-on ... Open the dashboard and turn on the website module. On Petpooja, it is a single toggle inside the marketplace. The moment you activate it, the system pulls your outlet name, address, phone number, and full menu from the POS database", then template/branding, menu clean-up, payment methods (UPI, cards, COD), delivery radius and pickup rules, a floating WhatsApp button, "Publish and order from your own phone" - "Petpooja's My Website add-on wraps this entire flow in under 30 minutes." The ONLY Google step the vendor gives its own add-on is a MANUAL link: "Link the site from the Instagram bio, the WhatsApp Business profile, and the Google Business listing." And the vendor states Google Business Profile cannot carry an order: route table "Google Business Profile | Free | Free | Under 1 hour | No (listing only)" in the "Online ordering?" column; "which gives every outlet a free page on Search and Maps but does not take orders"; "No ordering, no payments, no customer database, no loyalty programme. It is a signboard on Google, not a shop."; FAQ: "Google Business Profile gives you a free listing with menu and contact details. It does not support ordering or payments." Apple occurs 0 times in that walkthrough (tokenised "Apple" 0 in 11,065 chars; the only listings the vendor tells the owner to link are Instagram, WhatsApp Business and the Google Business listing). BOUND: store-level add-on registry (166 entries, 327th): no Apple entry; Marketing client (273 chunks): "Apple Maps" 0, "Business Connect" 0 - its 22 "Apple" tokens are all font stacks ("Apple Color Emoji"), UA sniffing ("Apple Computer"; tn="Apple" beside "iPad"/"Safari") and "Apple-converted-space" (POISON NAMED); NEW TODAY the Online Ordering Widget client (oow.petpooja.com, 88,547 chars) and Scan & Order client (dinein.petpooja.com, 313,425 chars): "Apple" 0/0, "Apple Maps" 0/0, "Business Connect" 0/0; www+blog census (995 docs): Apple Business Connect / Apple Maps place card 0, Apple otherwise only as an OS. GRADE C (vendor blog prose decisive; bounds B). WEAKEST POINT: niche weight, and the vendor never names Apple either way; the no rests on the add-on walkthrough being the complete owner flow. Retrieved 2026-09-18. https://blog.petpooja.com/industry-business-guides/create-restaurant-website-without-coding/ · retrieved 2026-09-18 adversarially verified

C
Partial

Loyalty accrual and redemption work inside the first-party digital ordering flow using the same guest identity as in-store, not as a separate post-purchase enrollment.

digital-loyalty-attach

CRM pools website, QR, Captain and in-house orders under one record; loyalty accrual and OTP redemption are described as POS-centric rather than in the web checkout. https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-01

D
Partial

Supports guest subscription / membership programs (recurring billing for a delivery-fee waiver, a per-period item entitlement, or a paid loyalty tier) managed in the platform.

digital-subscriptions

Petpooja's own product post (WP modified 2026-06-09), section 'What About Cafes That Also Do Takeaway Subscriptions?', whose example is 'A corporate office in Jubilee Hills ordering 15 filter coffees every morning at 9:30 AM'. It states: 'Petpooja POSS supports this through order scheduling: a subscription auto-generates a KOT at the scheduled time, so the barista sees it in the preparation queue alongside walk-in orders.' It adds 'The billing happens on schedule too'. Both were checked verbatim in one raw-HTML paragraph. Established: POSS manages a recurring scheduled order with scheduled billing, i.e. a per-period item entitlement for a subscribing customer. Not established (the shortfall): a guest-facing enrolment or recurring card/UPI charge (the post's example is an account-style corporate order with no collection method described); any delivery-fee-waiver or paid loyalty-tier membership, which remain unmentioned (`membership` has 0 sentences naming Petpooja); and any configuration reference. The source is a single blog paragraph at grade C. https://blog.petpooja.com/industry-business-guides/manage-a-cafe-without-chaos-poss-cafes/ · retrieved 2026-09-12

C
Partial

Discounts, coupon codes, and loyalty offers are defined once and honored identically across POS, kiosk, and first-party digital channels, with channel eligibility controls.

digital-promo-parity

Discounts and coupons configurable in POS and toggled on aggregator menus. Single-definition parity with channel eligibility is not documented; reviewers call the coupon engine weak. https://petpooja.com/poss/restaurant-billing-software · retrieved 2026-08-01

D
Partial

Vendor documents that the operator owns and can export first-party guest records (email, phone, consented marketing status, order history) in bulk, without a fee or vendor approval. differentiator

digital-guest-data-ownership

'Download the customer data as often as you want for free' - but the terms grant Petpooja a perpetual royalty-free licence to use that content and allow affiliate monetisation. https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-01

B
Partial

Digital checkout uses vendor-hosted fields or a hosted payment page so card data never touches the restaurant's page, with the vendor publishing PCI DSS 4.0 compliance (including the client-side script-integrity requirements effective March 2025) and supporting 3DS.

digital-checkout-pci-sca

331st MERGE REGRADE no -> partial/B: the claim is conjunctive and the agent's own evidence MEETS its first conjunct: Petpooja's web checkout hands card capture to the merchant's gateway (Razorpay), and the vendor states card data "is captured and stored directly by" those providers, i.e. a hosted payment page so card data never touches the restaurant's page. The vendor-publishes-PCI-DSS-4.0 conjunct FAILS (trust.petpooja.com lists SOC 2, ISO 27001:2022, SOC 1 only; record already no/B on pci-dss-4-attestation), and 3DS is the gateway's, not stated by Petpooja. One conjunct met, one failed = partial. AGENT PROPOSAL AS WRITTEN: 331st, MOVED OFF unknown. CLAIM: digital checkout uses vendor-hosted fields or a hosted payment page so card data never touches the restaurant's page, with the vendor publishing PCI DSS 4.0 compliance (incl. the March-2025 client-side script-integrity requirements) and supporting 3DS. VERDICT: no - Petpooja hosts no card fields of its own, publishes no PCI DSS position of any kind, and never mentions 3DS. EVIDENCE: (1) Petpooja's first-party web checkout is its Online Ordering Widget, and card acceptance there is the MERCHANT'S OWN gateway account: 'Can I use my own payment gateway for online orders? Yes! You can use your Razorpay gateway at the website widget for online orders.' (https://www.petpooja.com/poss/online-order-management-software FAQ; the same answer on the new https://www.petpooja.com/ae/poss/online-order-management-software), and /poss/restaurant-website offers only 'Integrate Payment gateways with the website'. (2) Petpooja's own legal text places card handling wholly outside itself: 'We do not collect, store or retain full payment card numbers, card verification values (CVV/CVC) or other complete card credentials. Card payments are processed by third-party payment gateways and payment service providers, and your card data is captured and stored directly by those providers in accordance with their own terms and privacy policies and applicable card-scheme security standards.' (https://www.petpooja.com/ae/privacy-and-policy s.6 'WE DO NOT STORE CARD DATA', a page no prior corpus held). (3) The vendor's attestation list is CLOSED and excludes PCI: trust.petpooja.com (Scrut trust vault, read whole by the 324th via its own API) publishes exactly three frameworks - SOC 2, ISO 27001:2022, SOC 1 - and the record already carries reliability-pci-dss-4-attestation = no/B and commercial-pci-dss-4-controls = no/B on that bound. So the publication conjunct fails on a bounded census, the 3DS conjunct is never addressed, and the hosted-field conjunct is delegated to a merchant-contracted third-party gateway rather than provided by the vendor. PUBLICATION CENSUS (331st, re-derived today, not inherited): (a) www.petpooja.com/sitemap.xml = 131 URLs, 131/131 held: 63 in the 325th corpus plus 68 fetched today that no prior corpus held (39 English: /ae/poss and all 30 /ae/poss/* feature pages, /ae legal pages, /us/poss, /ca/poss, /za/poss, /corporate_information, /escalation_matrix; plus the 29 /ae/ar/ Arabic pages); nonsense control https://www.petpooja.com/us/poss/zzznope9987 -> 404 (18,404 bytes), so the new pages are real. (b) blog.petpooja.com WordPress REST: X-WP-Total today posts 819, glossary 331, pages 12. CORPUS HOLE FOUND AND CLOSED: the 325th corpus that earlier petpooja `no`s cite as '330 glossary' actually held only 101 glossary entries (page 1 of 4); all 331 were fetched today with content (glossary?per_page=100&page=1..4), plus the 4 posts modified after 2026-09-16 (2 new). (c) the three anonymous Apiary blueprints (367,818 bytes). (d) the publisher's full app-store census: iTunes artistId 1362012012 (10 apps) and Google Play developer 'Prayosha Food Services Pvt. Ltd.' (8 apps), listing texts read. HTML comments preserved throughout; controls tokenised, word-boundary, case-insensitive. CONTROLS over www (131/131), blog (819 posts + 331 glossary + 12 pages), Apiary: `PCI` 0/0/0 (POISON: un-anchored `PCI` returns 31 blog hits, every one inside `NPCI`), `PCI DSS` 0, `3-D Secure`/`3D Secure` 0, `3DS` 0, `SCA` 0, `SAQ` 0, `hosted payment page`/`hosted fields` 0 (2 blog `hosted page` hits are QR-menu hosting); the 29 Arabic pages return 0 for every Latin-script control. KNOWN-POSITIVE: `Razorpay` 1 www + 2 /ae + 15 blog; `payment gateway` 2 www + 9 new pages + 40 blog. Retrieved 2026-09-18. https://trust.petpooja.com/ · retrieved 2026-09-18 adversarially verified

B
Partial

Digital channels support the same service-fee / dual-pricing / card-surcharge configuration as the POS, with the required guest-facing disclosure and correct handling of jurisdictions and card brands where surcharging is prohibited. differentiator

digital-surcharge-transparency

Fee configuration held in the POS is propagated to connected ordering channels and itemised for guest display: the menu push/fetch schema defines packaging_applicable_on (NONE / ITEM / ORDER), packaging_charge and packaging_charge_type (PERCENTAGE / FIXED), and Save Order carries service_charge with sc_tax_amount, packing_charges with pc_tax_percentage and pc_gst_details, and delivery_charges with dc_tax_percentage and dc_gst_details, each GST block splitting liability between "vendor" and "restaurant". Shortfall: this is the India service-fee/packaging-charge model only. Neither the API nor any product page documents card surcharging or dual (cash-discount) pricing, guest-facing surcharge disclosure text, or any jurisdiction- or card-brand-level rule for where surcharging is prohibited. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A

Guest data, loyalty & marketing

Partial

Maintains a single guest profile that automatically merges transactions from in-store POS, first-party web/app ordering, and kiosk under one identity (phone or email match), with documented dedup/merge behavior.

guest-loyalty-unified-profile

Consolidates online orders, Captain app, website orders and in-house orders 'into one data pool'. Dedup/merge behaviour on phone or email match is not documented. https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-01

D
Partial

Orders arriving from third-party marketplaces (DoorDash, Uber Eats, Grubhub) attach to a native guest profile with usable guest identity rather than landing as anonymous tickets. differentiator

guest-loyalty-thirdparty-identity-attach

Every marketplace that relays an order into Petpooja calls Save Order, whose payload requires a Customer object - "email", "name", "address", "phone", "latitude", "longitude" - alongside the Restaurant and Order blocks, so a Swiggy/Zomato/Dineout/ONDC order does not land as an anonymous ticket; the identity fields are part of the contract. Shortfall: the contract carries no customer id, no match/merge or dedupe rule, and no link back to a Petpooja guest record, so attachment to a native profile rests on the CRM feature page's assertion that customer information "collected from online orders, the Captain app, website orders, and in-house orders" is synced "into one data pool" - a grade-C marketing statement, not documentation of profile matching. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
Partial

Supports at least two of points-per-dollar, visit/punch-count, and spend-tier accrual as configuration, without custom development or a bolt-on loyalty vendor.

guest-loyalty-accrual-models

Pre-defined loyalty and cashback points allocated at billing, plus a top-up wallet. Visit/punch and spend-tier accrual models are not documented. https://petpooja.com/poss/restaurant-loyalty-program · retrieved 2026-08-01

D
No

Supports status tiers with automatic promotion and demotion driven by rolling-window spend or visit counts. differentiator

guest-loyalty-tiers

CLAIM: status tiers with AUTOMATIC promotion and demotion driven by rolling-window spend or visit counts. VERDICT: no. EVIDENCE: the loyalty product page and the public Virtual Wallet API together describe one mechanism — points credited per transaction into a per-customer wallet addressed by phone or card number (/record_transaction/, /get_virtual_wallet_points, credit/amount/expiry/card_no), redeemed by an SMS-delivered code. No status level, no threshold, no evaluation window. BOUND: same re-derived publisher manifest as guest-loyalty-wallet-pass (wp/v2/types enumerated; posts 818, glossary 331, pages 12; www sitemap 131 URLs of which 65 are /ae/, /ae/ar/, /ca/, /us/, /za/ locale duplicates of the 66 India paths held) plus the 367,818-byte Apiary API corpus and the 166-entry add-on registry. CONTROLS: `gold member|silver member|platinum member` 0, `auto*(upgrade|promote|demote)` 1 hit and it is prose about QR billing not being "automatically the upgrade", `rolling (window|12|twelve)` 0. POISON NAMED: the obvious control `\btier\b` is USELESS here — 355 hits, and the ones I sampled are "Tier-2 cities" in salary/GST posts and Delhi liquor-licence "L-1 to L-53" tiers; not one is a loyalty status tier. That is why the verdict rests on the membership-tier vocabulary and on the positive enumeration of what the wallet does, not on the word `tier`. Retrieved 2026-09-18. https://www.petpooja.com/poss/restaurant-loyalty-program · retrieved 2026-09-18 adversarially verified

C
Unknown

Documents explicitly what loyalty lookup, accrual, and redemption do when the POS loses connectivity (queue-and-reconcile vs blocked). differentiator

guest-loyalty-offline-behavior

Petpooja markets "works offline, cloud-based software" on /poss/restaurant-billing-software, /poss/online-order-management-software and /poss/restaurant-customer-management-software, but none of those pages says what degrades during an outage. The loyalty mechanics that are documented on /poss/restaurant-loyalty-program are connectivity-dependent on their face - redemption is "OTP-regulated" via a POS-generated SMS to the registered mobile number, and point credits trigger an SMS - yet no page states whether lookup, accrual and redemption queue and reconcile or are simply blocked offline. The Online Ordering API blueprint covers aggregator relay only and says nothing about terminal offline behaviour. support., help., kb., knowledge., docs., api., developer. and onlineordering.petpooja.com all return 404 or 500, so there is no help centre; the product surface is the 47 URLs in https://www.petpooja.com/sitemap.xml plus the Online Ordering API blueprint at onlineorderingapisv210.docs.apiary.io. Unresolved. || 324th: NEW SURFACE (324th): www.petpooja.com/offline-pos is a rebuilt on-premise product page (its HTML carries build comments such as 'check-ua bare-layout branch removed (page retired, Cleanup Tracker P2 #20)') that publishes an explicit offline/online split and a numeric offline window. WHAT STAYS LOCAL: 'Every bill and KOT', 'All dine-in and takeaway orders', 'Sales records and day-end reports'. WHAT IS SYNCED FROM PETPOOJA: 'Menu and price updates', 'Online orders from Zomato and Swiggy', 'Settings and app changes'. FAQ: 'Does It Work Without the Internet? Yes. Offline POS keeps billing for up to 5 days even if your internet goes down. When you reconnect, everything syncs back automatically.' LOYALTY IS IN NEITHER COLUMN - no loyalty, points, CRM, accrual or redemption word occurs anywhere on the page. Held unknown: the toggle is a marketing illustration (grade C), not an offline feature matrix; it describes the separate on-premise Offline POS SKU so it cannot bound a no for the cloud product; and this cell is a differentiator that needs A or B in either direction. Retrieved 2026-09-17. || 325th: MERGE HOLD (proposed no/C, held unknown): the offline guide lists loyalty in NEITHER column; silence inside one document is not a statement that loyalty stops working offline. PROPOSAL AS WRITTEN: CLAIM: documents explicitly what loyalty lookup, accrual and redemption do when the POS loses connectivity. VERDICT: no — the vendor publishes a dedicated offline document with two closed lists, and loyalty is in neither. EVIDENCE: in restaurant-pos-without-internet the "Keeps working" column is billing, bill printing, KOT printing, table and floor management, the saved menu, cash settlement and day-end; the "Waits for the line" column is Swiggy/Zomato orders, card and UPI on the EDC, cloud reports and dashboard, menu edits, and the online menu toggle. Tokenised control INSIDE that document: "loyalt*" 0, "reward" 0, "CRM" 0 (document length 10,833 chars) against 877 "loyalt*" hits across the corpus. The nearest adjacent statement is that Petpooja Loyalty is cloud-only ("A few cloud-only features, such as Petpooja Loyalty and WhatsApp CRM, are not available on Local", blog.petpooja.com/industry-business-guides/petpooja-pos-types-lite-android-local-electron-comparison/) — which is about the Local build, not about an outage. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. adversarially verified

F
Partial

Offer/discount engine exposes explicit stacking and precedence rules (exclusive vs combinable, order of application) as configuration. differentiator

guest-loyalty-offer-stacking-rules

CLAIM: offer/discount engine exposes explicit stacking and precedence rules (exclusive vs combinable, order of application) as configuration. VERDICT: partial — ORDER OF APPLICATION is configurable, exclusivity is not. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. EVIDENCE FOR the satisfied conjunct: the discounts master exposes an explicit precedence field, "discountorder (string) - Discount order is the rank for discount", plus per-item opt-out "ignore_discounts (string) - 0 - consider item for discount calculation, 1 - ignore item for discount calculation" and a base-vs-total application switch "discountontotal (string) - Discount apply on 1=Add on Total,0=Add on Core". The engine is substantial: discounttype 1=Percentage, 2=Fixed, 3=BOGO/BXGY, 7=Freebie, with applicability (All/Categories/Items), day, time window, min/max amount, max limit and coupon flag. SHORTFALL: no exclusive/combinable flag exists in the full discounts field list — nothing says whether two discounts may apply to the same bill or line. POISON NAMED: "stacking" appears 7 times in the corpus and every hit is "Category/Item rank for ordering/Stacking", i.e. menu display order, not offer stacking. BOUND: the Push Menu / Fetch Menu schema is Petpooja POS's OWN menu-master export — the blueprint names the objects "Variation master" and "AddonGroup -> AddonGroupItem master" and ids as "Unique PetPooja item id" — and its "+ Attributes" section enumerates EVERY field of EVERY menu object the POS emits: restaurants, ordertypes, categories, parentcategories, group_categories, items, variations, addongroups, addongroupitems, attributes, discounts, taxes. Denominator = that closed field list. Caveat stated honestly: this bounds the menu model the POS can express to a channel; it is not a census of the POS UI's behaviour. CONTROLS (tokenised, case-insensitive, word-boundary, over the 367,818-byte 3-blueprint corpus): nested 0, nest 0, depth 0, levels 0, allowance 0, matrix 0, grid 0, tier 0, tiers 0, throttle 0, throttling 0, capacity 0, effective 0, versioning 0, preview 0, publish 0, seat 0, cover 0, covers 0, precedence 0, exclusive 0, forecast 0, royalty 0, payroll 0, labour 0, labor 0. POISON FOUND AND DISCOUNTED: "stacking" scores 7 but EVERY hit is "Category/Item rank for ordering/Stacking" (z-order of menu tiles, not offer stacking); "crust" scores 2 and both are addongroup_name "Crust" / addonitem_name "Wheat Thin Crust" (a flat-priced add-on, NOT a second price axis); "free" as a standalone token scores 11 and every hit is a DISCOUNT/REWARD name or enum — "Get Free Coffee", "Get free any south indian dish", itemname "Way Free Way Pancakes", the loyalty "discount_type = [1=Percentage,2=Fixed,3=Free Item, 4= Free category]", and a table-status flag "1 indicates Free" — never an included-modifier allowance (the menu API spells its own giveaway type "Freebie", discounttype 7, added 15-10-2025); "child" scores 2, both in "the item object has a child object for the variations" (deprecation note); "seats" scores 8 but all are table CAPACITY in the reservation API; "included" scores 1 and it is "quantity included in this combo". Retrieved 2026-09-18. https://onlineorderingapisv3.docs.apiary.io/ · retrieved 2026-09-18 adversarially verified

B
Partial

Offers can be issued to a dynamically defined audience (rules over recency, frequency, spend, or items purchased) rather than only broadcast to the whole list. differentiator

guest-loyalty-targeted-offers

'100+ types of customer labels' drive targeted campaigns and group discounts. Dynamic rule-based audiences over recency/frequency/spend are not documented. https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-01

D
Partial

Automatically computes recency/frequency/monetary or equivalent lifecycle segments (new, regular, at-risk, lapsed, VIP) without the operator building the queries. differentiator

guest-loyalty-rfm-segmentation

331st, MOVED OFF unknown. CLAIM: automatically computes recency/frequency/monetary or equivalent lifecycle segments (new, regular, at-risk, lapsed, VIP) without the operator building the queries. VERDICT: partial/C. WHAT IS MET: the vendor states its built-in CRM computes recency, frequency and spend per guest in the background and surfaces inactive guests, with no query building: 'That is the job the CRM module inside Petpooja POSS does in the background. Every bill maps to a customer profile, so the system can rank buyers by spend and frequency and surface the ones worth naming as key accounts. Across 1,00,000+ restaurants, outlets use the built-in CRM reports to sort customers by recency and value' (https://blog.petpooja.com/glossary/key-account-management/); 'Order history, dietary tags, visit frequency, and loyalty points sit in the same system... outlets pull up the built-in CRM reports to segment guests by recency and spend, then fire off WhatsApp campaigns for birthdays, festivals, or win-back offers within the same dashboard' (https://blog.petpooja.com/glossary/guest-management/); and Petpooja Loyalty gives 'A single dashboard where the owner sees all wallets, balances, and inactive customers... Petpooja Loyalty, a CRM add-on inside Petpooja POSS, does all of the above' (https://blog.petpooja.com/industry-business-guides/restaurant-loyalty-program-guide-indian-owners/). SHORTFALL (named): no document names a set of precomputed LIFECYCLE segments (new / regular / at-risk / lapsed / VIP) or an RFM score - only sortable recency/frequency/spend ranking plus one 'inactive customers' view with no stated threshold, and the operator still picks the audience (the /poss CRM page describes segmentation as operator labels: 'Create customer labels... categorising and labelling your customer pool the way you want'); the vendor itself says chains 'might find value in a third-party platform's segmentation' features; and all three statements are vendor blog/glossary copy, grade C. NEW SURFACE: two of the three quotes are in glossary entries the 325th corpus never held (it had 101 of 330 glossary entries; all 331 fetched today via wp-json/wp/v2/glossary pages 1-4). Retrieved 2026-09-18. https://blog.petpooja.com/glossary/guest-management/ · retrieved 2026-09-18 adversarially verified

C
Partial

Ships triggered lifecycle automations (birthday, first-visit thank-you, lapsed win-back) as configurable always-on campaigns rather than one-off manual sends.

guest-loyalty-lifecycle-automation

'7+ unique campaign types' with automated birthday/occasion triggers. Lapsed win-back and first-visit thank-you as always-on automations are not documented. https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-01

D
Partial

Sends both email and SMS campaigns natively from the platform, not solely by handing the list to a third-party ESP. differentiator

guest-loyalty-native-email-sms

Native SMS campaigns and a dedicated SMS Service add-on. Native email campaigning is not documented. https://petpooja.com/poss/restaurant-sms-service · retrieved 2026-08-01

D
Partial

Handles or explicitly documents A2P 10DLC brand and campaign registration required for the operator to send SMS through the platform.

guest-loyalty-10dlc-registration

The SMS Marketing FAQ does explicitly document the A2P registration the operator must complete before sending: "What are the requirements to start the Petpooja SMS service? To use Petpooja's SMS service, the customer needs to get their sender id & template id approved by TRAI (Telecom Regulatory Authority of India)", and a "customised sender ID for your restaurant" is a listed feature - so the registration obligation is disclosed rather than left implicit, and it is placed on the operator. Shortfall: the regime documented is India's TRAI/DLT sender-ID and template-ID approval, not US A2P 10DLC brand and campaign registration, which appears nowhere on www.petpooja.com even though the site's own enquiry form offers US and Canada dialling codes; Petpooja neither performs nor documents 10DLC registration. https://www.petpooja.com/poss/restaurant-sms-service · retrieved 2026-08-06

C
Partial

Reports redemption and incremental sales attributable to a specific campaign or offer, tying redeemed offers to actual check totals. differentiator

guest-loyalty-campaign-attribution

Petpooja's own post (WP modified 2026-04-20), FAQ answer to 'How do I measure ROI from these partnerships?': 'With Petpooja POSS, the coupon tracking feature logs every redemption and gives you exact conversion numbers without manual counting.' Checked verbatim against the raw HTML (a single schema-faq-answer paragraph). Corroborated by the tenant storefront's message dictionary (Wayback 20260112185411 of braaicraftsmokehouse.petpooja.com), which enforces per-coupon limits: 'You have reached the redemption limit of this coupon.' Established: POSS records redemptions per coupon or promo code, so the redemptions attributable to a specific offer can be counted. Not established (the shortfall): any report tying those redeemed offers to the resulting check totals or incremental sales. 'Conversion numbers' is not defined, and no report catalogue names a per-campaign revenue view. A related blog post (win-customer-loyalty-with-your-restaurant-crm-reports) says, in a sentence split by two inline links and therefore paraphrased, that SMS and feedback campaigns can be created and tracked in POS. It does not say what the tracking reports. Grade C, marketing blog. https://blog.petpooja.com/operations-workflows/influencer-marketing-for-restaurant/ · retrieved 2026-09-12

C
Partial

Provides self-serve export of the full guest list and transaction history, including contact PII, via CSV or API, without a vendor fee or support ticket. differentiator

guest-loyalty-data-export-portability

I re-fetched the page. The sole supporting sentence is an FAQ line, "You can download the customer data as often as you want for free!" - no file format, no field list, no mention of transaction or order history, and no export procedure. The claim requires the full guest list AND transaction history including PII. Shortfall: only an unspecified "customer data" download is evidenced, and the terms cap post-termination retrieval at "within 2 days of such expiry or termination". https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-02 adversarially verified

D
Partial

Exposes a documented outbound guest and order event API or webhook stream that a CDP or marketing platform can subscribe to (e.g. Olo, Punchh, Bridg, Klaviyo). differentiator

guest-loyalty-cdp-event-api

Petpooja does document outbound push from the POS. The integration partner "must implement" a callback endpoint and pass it as callback_url on every Save Order; Petpooja then posts restID, orderID, status [-1=Cancelled, 1/2/3=Accepted, 4=Dispatch, 5=Food Ready, 10=Delivered], cancel_reason, minimum_prep_time, minimum_delivery_time, rider_name, rider_phone_number and is_modified. A rider_info webhook and partner-implemented item_stock / item_stock_off endpoints exist alongside it. Shortfall: the stream is order-status only, is delivered solely to the integration partner that relayed that specific order (there is no subscription or registration mechanism, and no events for website, Captain or in-store orders), and its payload contains no guest fields whatsoever - so a CDP or marketing platform such as Klaviyo cannot subscribe to guest or profile events. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
Partial

Triggers post-transaction feedback requests and routes responses by score, sending low scores to private service recovery and high scores toward public review sites. differentiator

guest-loyalty-review-capture-routing

First-party Customer Feedback add-on collects post-transaction surveys. Score-based routing to private recovery vs public review sites is not documented. https://petpooja.com/poss/customer-feedback-management · retrieved 2026-08-01

D
No

Includes a native referral mechanic with per-guest codes or links, attribution of the referred guest's first order, and two-sided rewards.

guest-loyalty-referral-program

Affirmative first-party statement of absence, made twice by Petpooja about its own product. (1) This post (WP modified 2026-06-16), in its 'Referral Rewards (Bring a Friend, Both Earn)' section: 'Petpooja POSS does not have a native referral engine'. The sentence continues through an inline link to say third-party platforms (Reelo, Bingage) that integrate with POSS by API offer referral flows; that part is paraphrased here, not quoted across the link. (2) https://blog.petpooja.com/industry-business-guides/best-restaurant-loyalty-software-india/ (modified 2026-06-18), describing the native loyalty module: 'WhatsApp drip campaigns and referral engines are not part of the native module; those need the WhatsApp CRM or SMS Service add-ons from the marketplace.' Both quotes were checked as exact substrings of the WordPress REST API raw HTML, each within a single paragraph. Established: Petpooja states that POSS and its native loyalty module have no native referral mechanic, which is what the claim asks about. Not established: whether a partner integration (Reelo/Bingage) delivers per-guest codes and two-sided rewards into POSS. That would be a partner capability, and the claim is scoped to native. Blog posts that describe Petpooja's own product are grade C, and the verdict is dated to those modification dates. https://blog.petpooja.com/growth-scaling/restaurant-loyalty-program-ideas-to-retain-customers/ · retrieved 2026-09-12

C
No

Issues an Apple Wallet or Google Wallet loyalty pass with push-updatable balance, as an alternative to requiring a branded app download. differentiator

guest-loyalty-wallet-pass

CLAIM: issues an Apple Wallet or Google Wallet loyalty pass with push-updatable balance, as an alternative to a branded app download. VERDICT: no. EVIDENCE OF WHAT IS SHIPPED INSTEAD: the dedicated loyalty product page enumerates redemption channels exhaustively and none is a wallet pass — "In how many ways can I use the Petpooja virtual wallet? ... Your customer can redeem points using messages sent by the POS system" (www.petpooja.com/poss/restaurant-loyalty-program, titled "Restaurant Loyalty Program and Virtual Wallet"); the public API carries a "Group Virtual Wallet APIs" with /get_virtual_wallet_points keyed on "Customer phone/Card" (petpoojaapi.docs.apiary.io) — a phone number and a physical/virtual card number, not a pass. BOUND (publisher manifest RE-DERIVED today, not inherited): blog.petpooja.com /wp-json/wp/v2/types enumerated — only post, page and glossary carry prose (the other 13 are block/template/nav/font/jetpack types); X-WP-Total posts 818, glossary 331, pages 12. www.petpooja.com/sitemap.xml is now 131 URLs, and a comm-diff against the 66 paths already on disk shows all 65 additions are /ae/, /ae/ar/ (Arabic), /ca/, /us/ and /za/ LOCALE DUPLICATES of pages already held, so 66 distinct content pages stands. The on-disk corpus (817 posts + 330 glossary + 12 pages + 66 www pages, 9.58 MB, HTML comments preserved) is 2 documents short of today's totals; I fetched the 5 newest posts and 5 newest glossary entries via the REST API and the controls are zero in them too. Added corpora: the 367,818-byte three-blueprint Apiary API corpus (grade B) and the 166-entry billing.petpooja.com `active_function` add-on registry. CONTROLS (tokenised, case-insensitive, over all four corpora at once): `apple wallet` 0, `google wallet` 0, `wallet pass` 0, `.pkpass` 0, `passkit` 0, `google pay pass` 0. KNOWN-POSITIVE in the same run so the harness is proven: `loyalty` 411, `virtual wallet` 34. Grade C because the decisive surface is the vendor's own marketing/product census rather than a settings enumeration. Retrieved 2026-09-18. https://www.petpooja.com/poss/restaurant-loyalty-program · retrieved 2026-09-18 adversarially verified

C
Partial

Provides admin tooling to fulfill guest data access and deletion requests (CCPA/CPRA-style) including deletion propagation to loyalty and marketing records.

guest-loyalty-privacy-rights-tooling

Only the access half exists, as a bulk export, and only in Petpooja's Reservation Manager add-on (reservations.petpooja.com), not in the core POS admin. There is no guest deletion or anonymisation and nothing propagates to POS CRM, loyalty or SMS records. The live vendor-served bundle assets/index-B4eal04F.js (3,571,847 chars, text/javascript; the host is a catch-all whose nonsense asset path returns the 1,284-byte HTML shell) has a page-access permission list at @2623394 containing {value:"export_customer_data",label:"Export Customer Data"}. The Customer Profile list gates the export on allowedActions.includes("export_customer_data") at @3537676. It downloads setAttribute("download","customer_report.xlsx") at @3550396 and then shows 'Data exported successfully' at @3550524, calling the endpoint "customers/customer_dump_v2" at @357346. This is a filtered bulk xlsx of the CRM list, not a per-guest subject-access response. A per-guest marketing flag is saved as do_not_send_updates at @3142389, and the bulk import template has a 'Do not send any Updates' column at @3527541. Controls, tokenised over the whole single-bundle client: the only delete routes are "/employee/delete_employee" at @356501 and "/registrationform/delete_form" at @356654. delete_customer, remove_customer, erasure, anonymise, gdpr, dpdp, ccpa and privacy all return 0. The 'customers removed' toast at @1990038 is a waitlist queue reset. The unsubscribe and opt_out hits are RTK Query, axios, FCM and PostHog library code. The same customer-data download also supports commercial-privacy-dsar-tooling (partial/D), a separate claim. Not scored no: the absence of a delete route in one add-on client is not a vendor-named alternative. https://reservations.petpooja.com/assets/index-B4eal04F.js · retrieved 2026-09-15 adversarially verified

A
Partial

Enforces loyalty fraud controls such as redemption velocity limits, manager approval on manual point adjustments, and flagging of employee self-redemption, with an audit log.

guest-loyalty-redemption-fraud-controls

OTP verification at POS for redemption, point expiry dates, and blacklisting a customer's wallet. Velocity limits and employee self-redemption flagging are not documented. https://petpooja.com/poss/restaurant-loyalty-program · retrieved 2026-08-01

D
Partial

Vendor documents AI/ML-generated recommendations for offer content, target audience, or send timing (claim-level; verify it is a shipped product feature, not a roadmap statement). differentiator

guest-loyalty-ai-offer-recommendation

MERGE REGRADE yes -> partial/B (333rd): the AI generates paid-ad creative promoting an offer the operator types, and a recommendations list of unverified scope; audience selection is rule-based and send timing is never labelled AI, so AI-recommended offer CONTENT is met only in part. CLAIM: vendor documents AI/ML-generated recommendations for offer content, target audience OR send timing, as a shipped feature. VERDICT: yes (moved from unknown), grade B, on the offer-CONTENT limb. THIS ANSWERS THE 332nd HOLD ("a grade-C promo clip ... never says AI/ML"): the evidence is now the vendor's own shipped Marketing client, which names AI in its UI and API and ships a recommendations surface. EVIDENCE (production bundle, anonymous GET, 2026-09-18): (1) AI RECOMMENDATIONS: https://marketing.petpooja.com/assets/adsApi-sGFK45kz.js calls GET "/ads/ai/recommendations" ({params:{refresh:1}}); https://marketing.petpooja.com/assets/AiAdsGeneration-BWgRTmVB.js polls it every 30 s while status is "pending" and, when "ready", renders each suggestion as a one-click chip: le.map(m=>Z({label:m.title, reason:m.reason, onClick:()=>ge(m.prompt)})) - a titled suggestion with a stated reason whose prompt seeds generation. (2) AI GENERATION OF OFFER CONTENT: the same client opens "/ads/ai/session", streams "/ads/ai/session/{id}/generate" and "/regenerate", and has "/ads/ai/enhance-prompt", "/ads/ai/brand-kit", "/ads/ai/image-credits", "/ads/ai/menu-items"; the prompt box's own examples are offers: "Create an ad for Independence day offering 20% off on entire menu...", "Promote a buy-one-get-one offer on your best-selling dessert...", "Create an ad campaign offering a free item", "Create an ad inviting customers to try your new seasonal menu..." (https://marketing.petpooja.com/assets/aiAdsGeneration-DaNVo9sC.js); the Meta flow shows "Reading your offer", "Adding your offer text", "Checking it against Meta's rules" (https://marketing.petpooja.com/assets/AiMetaAds-Cej8O9z5.js). (3) AI IS STATED IN THE UI: "Let AI Design ✨" and "Let AI decide - We will pick one of the best to match what each post is about" (https://marketing.petpooja.com/assets/adTheme-BPGt-AZm.js), "Logo could not be saved to your ad theme — AI ads may not carry it", "Your feedback helps us make AI better for your next session." (https://marketing.petpooja.com/assets/AdsFeedbackThankYou-3TmjLQ4h.js); routes /create-ai-ad and /create-meta-ai-ad. SHIPPED, NOT ROADMAP: it is in the production client with a credit meter and a payment step. SCOPE/SHORTFALL (stated so the merge can weigh it): the AI surface is AD creation (Meta/WhatsApp-status/Snapchat/Hotstar channels) promoting the restaurant's offers; AUDIENCE is rule-based, not AI - SegmentsPage-NUnMPUnd.js defines RFM rules ("Customer has visited 5 or more times and their last visit was within the last 45 days", "Create your personalised audience as per the rules set by you"), and the ad-theme page leaves lookalike reach to Meta ("We already know who eats with you and what they order. Meta can find more people like them", https://marketing.petpooja.com/assets/AdTheme-ms8jToMw.js); SEND TIMING is fixed defaults in AutomatedSetupPage-DKOW5ldx.js (birthday/anniversary "05:00 AM", test "09:00 AM"), and the only timing insight is a campaign-dashboard KPI tile "Best Time to Engage" (server field best_time_to_engage, demo value "7:00 P.M.", https://marketing.petpooja.com/assets/CampaignHoPage-DY0kT6al.js) shown beside Estimated Revenue / Msgs Delivered / Delivery Rate - an analytics figure never labelled AI, computed server-side by an unstated method (1 hit for "best time|optimal time|send time" over 273 chunks, this one). The claim's "or" is met on offer content alone. POISON: "AI" as a token also hits the bundled SheetJS codepage table (AddCustomersPage: AI:"Ì") and chart/motion vendor code (Ai[...]); every quote above is UI copy or an API path. SURFACE (333rd, new): marketing.petpooja.com, the production client of Petpooja's Marketing product (title "Marketing by Petpooja – Turning Conversations into Customers"; linked from the vendor's own YouTube description of "Aap Business Sambhaliye, Hum Rishta Sambhalenge | Petpooja Marketing Automation", https://www.youtube.com/watch?v=fzPO0ADIZIk). Anonymous Vite SPA: entry https://marketing.petpooja.com/assets/index-BTIJ_Bmd.js, __vite__mapDeps chunk census taken to a fixpoint = 273 JS chunks in 3 rounds, 0 misses (6.2 MB, .cache/q333/petpooja/a/mk/); 73-route manifest (/segments, /automated-setup, /create-ai-ad, /create-meta-ai-ad, /loyalty-setup, /google-review, /integrations ...). Source maps are SPA soft-200s (index-BTIJ_Bmd.js.map returns the 1,176-byte index.html shell, same as /zzznonsense9987x), so this is minified shipped code, grade B. Login not attempted; no backend endpoint called. Retrieved 2026-09-18. https://marketing.petpooja.com/create-ai-ad · retrieved 2026-09-18 adversarially verified

B
Partial

Offers native stored-value/gift card balances tied to the same guest profile and redeemable across all locations of the brand.

guest-loyalty-stored-value-gift

Loyalty Wallet holds stored value topped up by cash/card/UPI against the customer profile. Redeemability across all outlets of a brand is not documented. https://petpooja.com/poss/restaurant-loyalty-program · retrieved 2026-08-01

D

Labor & workforce

Partial

Employees clock in and out at the POS terminal using a PIN, badge, or card, with no separate time-clock hardware required.

labor-clock-in-at-pos

Petpooja Payroll is a first-party product covering attendance and leave, and reports reference staff scheduling data. Clock-in at the POS terminal by PIN/badge is not documented. https://www.petpooja.com/ · retrieved 2026-08-01

D
Partial

Captures a photo at punch (or performs facial verification) attached to the timecard entry, with a photo-only mode available that stores no biometric template. differentiator

labor-photo-punch-verification

Facial verification at punch, with the punch photo stored on the punch row, is in shipped code. Petpooja's first-party face-attendance kiosk app is Attendo: Face (formerly Petpooja Payroll; package com.petpooja.facerecognition, versionName 3.0.10 / versionCode 22 per the XAPK manifest). XAPK sha256 73509b345c453b5c263fa1da5ac2d0eb660962d4604e5684a06fabbba980b72a; base APK sha256 e660811c755b955287b7fca5fa787d6da5f257ae7a2f657a7823c35c4a5d25be; classes5.dex sha256 129a19b90c109802944c822f90f6b0ef75339c5520074e5e81023289a10ca94c. It was retrieved 2026-09-15 as a mirror binary from APKCombo. QUOTES, exact dex string_data boundaries: @6571989 'CREATE TABLE IF NOT EXISTS `punches` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `employeeId` INTEGER NOT NULL, `employeeName` TEXT, `logDate` TEXT NOT NULL, `logTime` TEXT NOT NULL, `punchPhotoPath` TEXT NOT NULL, `punchPhoto` TEXT, ...)'; @6512862 'ALTER TABLE punches ADD COLUMN punchPhotoPath TEXT NOT NULL DEFAULT '''; @6571304 'CREATE TABLE IF NOT EXISTS `faces` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT, `empId` TEXT, `embedding` TEXT NOT NULL, `punchTimes` TEXT NOT NULL)'; endpoint @6507863 '/attendance_regularization/add_punch_from_face_app'. OWNERSHIP: the classes are Petpooja's own, not an SDK's: Lcom/petpooja/facerecognition/util/PunchPhotoFileStore (saveBitmap) and util/S3UploadUtil (uploadPunchPhoto, uploadPunchPhotoFromFile), alongside 'Photo saved locally for employee ' and a 'punch_photo' key. Matching runs on the device (facenet_512 and MiniFASNet anti-spoof tflite models). The mobile employee app com.petpooja.employeepayroll 3.0.4 / vc41 (XAPK sha256 f407f1fec10e73ab12e425fea2762238165aecf4554da67d7ea313db6ab1ecb6; armeabi-v7a libapp.so sha256 9935b1965c5b143f8e5cc08c200668e798159597f5cd21e26173bcaddbbb0a5a) also carries @3022804 'is_photo_punch', @3567396 'punch_photo' and @4358284 'apiAddPunchPhoto'. These are isolated Dart string-pool entries with no adjacent UI copy, so they are corroboration only. POISON, not cited: androidx.camera ImageCapture classes, Glide/Lottie Image* classes, Amplify S3KeyFilter, and emoji/font names containing 'face'. SHORTFALLS: (1) No photo-only mode that stores no biometric template is evidenced. The kiosk's `faces` table holds an `embedding` (a biometric template) as NOT NULL. 'is_photo_punch' is a bare flag, and nothing says it skips matching or template storage. The vendor blog names only 'NFC cards and passcodes' as alternatives. (2) Attachment on the server side is inferred. The local `punches` row is a sync queue that is deleted after the API accepts the punch, so the photo reaching the server timecard rests on the S3 upload path and the 'punch_photo' key, not on a documented schema. Nothing is vendor-documented. (3) This is the separately sold Attendo (Petpooja Payroll) product, not the POSS restaurant POS, whose plan matrix at petpooja.com/poss/pricing has no attendance or time-clock line. This is the same binary as labor-offline-time-punch, but that cell rests on a different conjunct (the store-and-forward queue), so it is not a double count. https://apkcombo.com/petpooja-payroll-face/com.petpooja.facerecognition/download/apk · retrieved 2026-09-15 adversarially verified

A
Partial

Supports mobile clock-in restricted by geofence or location validation for staff who do not punch at a fixed terminal.

labor-geofenced-mobile-punch

Petpooja's first-party employee app 'Attendo: Employee' (com.petpooja.employeepayroll, versionName 3.0.4 / versionCode 41, Flutter; XAPK sha256 f407f1fec10e73ab12e425fea2762238165aecf4554da67d7ea313db6ab1ecb6, retrieved 2026-09-15 from the APKCombo mirror; armeabi-v7a libapp.so sha256 9935b1965c5b143f8e5cc08c200668e798159597f5cd21e26173bcaddbbb0a5a). It ships geofence-restricted punching in its own code. Dart string pool quotes, with file offsets in libapp.so: @3014540 'You are not currently located in the designated area to punch in.'; @4109284 'Geofencing is on, but location data is missing. You can't punch in.'; @3263660 'Your location was turned off while geofence was active. You have been auto punched out and the event has been reported to your admin.'; @3480804 'Auto punch-out geofencing activated by your admin'; @3616868 'apiGeoFenceSendFenceEvent'. The code lives under @3768388 'package:petpooja_payroll_employee/features/geo_fence/service/geofence_task_handler.dart', which is the only geofence package path in the binary; no third-party geofence_service plugin path is present. The fence is admin-configured per organisation, with fields @3454532 'geo_fence_radius', @3079492 'allowed_radius', @4009244 'geo_fence_configs' and @4181948 'geo_fence_outside_confirm_count'. POISON: classes.dex also carries Google Play Services geofencing SDK strings ('GEOFENCE_TRANSITION_ENTER', 'Invalid radius: '). They are the platform API underneath and are not cited. The vendor's setup guide (blog.petpooja.com/people-payroll/geo-tracking-works-petpooja-payroll/, retrieved 2026-08-06) gives the admin path: 'go to Employees, then Attendance Permission. Toggle on Mobile Attendance for each target employee'. It also says 'Standard mobile attendance captures a single GPS coordinate at punch-in and punch-out', and the payroll product page says 'Authorise employees to punch-in for their shift based on the location assigned by their employer.' SHORTFALLS: (1) This is the separately priced Petpooja Payroll/Attendo product, quoted in that guide at a base INR 8,000/year with Geo Tracking a further INR 1,000/employee/year, not the POSS subscription. (2) Radius and outside-confirmation count exist only as configurable fields in the binary; no default, allowed range or tolerance value is published anywhere. (3) The punch-blocking behaviour is evidenced only by shipped code in a mirror-retrieved binary, which is tied to the vendor by its package id, Petpooja Dart namespace and Play developer listing (Prayosha Food Services Pvt. Ltd.). No vendor documentation describes the block. https://apkcombo.com/attendo-employee/com.petpooja.employeepayroll/download/apk · retrieved 2026-09-15 adversarially verified

A
Partial

Records time punches while the POS is offline and reconciles them on reconnect without loss or duplicate entries, with the behavior documented. differentiator

labor-offline-time-punch

Petpooja's first-party face-attendance kiosk app, Attendo: Face (formerly Petpooja Payroll; Play package com.petpooja.facerecognition, versionName 3.0.10 / versionCode 22 per the XAPK manifest; XAPK sha256 73509b345c453b5c263fa1da5ac2d0eb660962d4604e5684a06fabbba980b72a, base APK sha256 e660811c755b955287b7fca5fa787d6da5f257ae7a2f657a7823c35c4a5d25be, retrieved 2026-09-15 as a mirror binary from APKCombo), writes each punch to an on-device Room database and syncs it to the server later. That is a store-and-forward punch queue with retry state, in shipped code. QUOTES, from the dex string table of classes5.dex (sha256 129a19b90c109802944c822f90f6b0ef75339c5520074e5e81023289a10ca94c), exact string boundaries: @6571989 'CREATE TABLE IF NOT EXISTS `punches` (... `syncStatus` INTEGER NOT NULL DEFAULT 0, `createdAt` INTEGER NOT NULL, `syncedAt` INTEGER, `retryCount` INTEGER NOT NULL DEFAULT 0, `lastRetryAt` INTEGER, `lastError` TEXT)'; @7708258 'Punch saved locally with ID: '; @6495382 '), keeping in local DB for background sync'; @7708107 'Punch deleted from local DB after API success'; @7687992 'No internet connection, photo queued for upload when connection returns'; @7688550 'No unsynced punches found'; @6183959 ' has exceeded max retry count'; endpoint @6507863 '/attendance_regularization/add_punch_from_face_app'. OWNERSHIP: the code is in Petpooja's own package, not an SDK. The classes are Lcom/petpooja/facerecognition/util/PunchSyncService (performSync, processBatch, updatePendingPunchCount), data/repository/PunchRepository (savePunch, getUnsyncedPunches, markPunchesAsSynced, updateRetryInfo, hasRecentPunch), data/cache/dao/PunchDao_Impl, data/cache/entity/PunchEntity and data/remote/model/faceapp/MultiplePunchSyncRequest. Face matching also runs on the device (facenet_512 and MiniFASNet tflite models, plus a local `faces` table), so identifying the employee does not need the network. POISON: the same dex set also contains an offline/queue vocabulary that is not Petpooja's (the Firebase 'upload_queue', WorkManager 'ENQUEUED', and AWS Amplify DataStore 'pendingMutations' and 'DuplicateProviderException'). None of these is cited, and the evidence does not rest on the token 'offline'. SHORTFALLS: (1) Not documented. The claim requires the behaviour to be documented, but this is inferred from code, and Petpooja's own pages only say sync is 'real-time'. (2) There is no evidence that reconciliation avoids duplicates. The only guard is on the capture side: a local check (PunchRepository.hasRecentPunch, with a recognition cooldown, 'ms), skipping cooldown for next punch'). The app deletes a row after the API accepts it, but there is no idempotency key and no server-side duplicate rule, so a punch the server accepted and the app failed to delete could be re-sent. (3) The queue is in the separately sold Attendo face-kiosk app, not the POSS terminal, which carries no time clock. The claim is worded 'while the POS is offline'. This follows how the record already scores the payroll product's labour cells (labor-photo-punch-verification and labor-geofenced-mobile-punch, both partial with the same named shortfall). https://apkcombo.com/petpooja-payroll-face/com.petpooja.facerecognition/download/apk · retrieved 2026-09-15 adversarially verified

A
Partial

Permissions are grantable per discrete action (void, comp, discount, refund, drawer open, price change, report access) per role and per location, not limited to fixed cashier/manager/admin tiers.

labor-granular-rbac

'User rights management' regulates staff access and unlimited user rights ship on every tier. Grantability per discrete action per role per location is not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Partial

Manager overrides and approvals are attributed to the individual approver and written to an immutable audit trail queryable after the fact.

labor-manager-override-audit

Reports cover bill modifications, discounted and cancelled orders, and staff actions. An immutable, queryable approver-attributed audit trail is not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Partial

Builds and publishes employee shift schedules inside the same platform that holds the timekeeping data, rather than requiring a third-party scheduling app. differentiator

labor-native-scheduling

Staff scheduling data appears in reports and the separate Petpooja Payroll product handles attendance/leave. Schedule building and publishing inside the POS platform is not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
No

Generates recommended staffing levels or labor hours by daypart from the operator's own POS sales history, not just a static template. differentiator

labor-demand-labor-forecast

CLAIM: generates recommended staffing levels or labour hours by daypart from the operator's own POS sales history, not just a static template. VERDICT: no (moved from unknown). NEW SURFACE (333rd): A COMPLETE CENSUS OF ATTENDO (formerly Petpooja Payroll, the vendor's only labour product; the existing labour partials on this record already rest on it). (1) The Attendo WEB ADMIN at payroll.petpooja.com (the login link on attendohr.com): a Vite app whose /login page loads /assets/index-3b7c82b1.js; every chunk the loader names was fetched to a FIXPOINT, 3 rounds, 124/124 files, 0 misses (nonsense-path control: /assets/zzz-nonsense-12345678.js returns the 1,711-byte SPA shell, which the crawler rejects); 92 react-router paths and 234 backend endpoint paths enumerated. (2) The two Android apps from the publisher's own Play listing, unpacked (never executed), Flutter AOT libapp.so string tables: "Attendo: Employee" com.petpooja.employeepayroll 3.0.4 (34,288 strings; its complete API-constant registry is 39 calls) and "Attendo: Admin" com.petpooja.attendance 4.0.2 (51,896 strings; 90 API constants). Both are single-module Flutter builds (no deferred-component splits in the XAPK: only language/ABI/density config splits). Scratch: .cache/q333/petpooja/b/pay/ and /apk/. EVIDENCE: the only staffing-level object in the vendor's labour product is an OPERATOR-ENTERED requirement per shift per day: endpoints /shift_management/save_staff_requirements and /shift_management/get_shift_day_wise_staff_requirements (reducer state dayWiseStaffReq, toast "Staff Requirement Saved Successfully") - i.e. the static template the claim excludes. No sales data enters Attendo: CONTROLS (web chunks) sales 23 (ALL POISON: designation names "Sales Executive", "Sales Manager", "Inside Sales Rep" and the referral text "Our sales team reaches out"), revenue 0, turnover 0, forecast 0 (the one FORECAST literal is the xlsx library's Excel function table, excluded with the third-party libs), "labour cost" 0, POS 0, order(s) 47 (all column-order config). The vendor's own statement that "Attendo does not share data or logins with POSS, Petpooja Invoice or Petpooja Tasks" (blog.petpooja.com/people-payroll/petpooja-payroll-is-now-attendo/) closes the POSS->labour path; POSS's own AI inventory is purchasing-side only (existing note). The 332nd's "Inventory Dashboard" ML prediction is raw-material stock cover, not staffing. Controls are tokenised, word-boundary, case-insensitive, run over the 110 first-party web chunks (third-party libs excluded: vendor, xlsx, jspdf, lodash, spreadsheet etc.; 82,778 string literals, 1.80 M chars) and both app string tables; KNOWN-POSITIVE controls: shift(s) 217, leave 149 (the regexes work). Retrieved 2026-09-18. https://payroll.petpooja.com/login · retrieved 2026-09-18 adversarially verified

B
Unknown

Displays labor cost as a percentage of sales in real time during service on a manager view or POS, not only in end-of-day or next-morning reports. differentiator

labor-realtime-labor-percent

The POSS reporting surface is described on www.petpooja.com/poss/reports-and-analytics (single-dashboard monitoring, tax reporting, user-rights/bill-modification reports, head-office module) and quantified as '80+ Reports' in every tier on www.petpooja.com/poss/pricing; neither names a labour-cost metric, and the pricing matrix contains no attendance or payroll line at any tier. Wage and hour data sits in the separately sold Petpooja Payroll product (www.petpooja.com/payroll), which is documented as consuming attendance, shifts, leave and overtime and producing salary reports - nothing in blog.petpooja.com/people-payroll/petpooja-payroll-features/ or /how-petpooja-payroll-works/ describes POS sales flowing into it, which is what a live labour-percent view would require. No manager-view or live-KPI screen is documented on any host; there is no help centre (support./help./kb.petpooja.com all fail to resolve) to check further. || 325th: MERGE HOLD (proposed partial/C, held unknown): one marketing sentence, while the payroll product (Attendo) is documented as sharing no data with the POS; the mechanism the sentence needs is denied elsewhere in the same corpus. PROPOSAL AS WRITTEN: CLAIM: displays labor cost as a percentage of sales in real time during service on a manager view or POS, not only in end-of-day or next-morning reports. VERDICT: partial. SHORTFALL: the vendor claims a live ratio through P&L reporting but names no manager view or POS screen that shows it during service, and labour input is a separate product. EVIDENCE: "For restaurants, a POS with P&L reporting like Petpooja POSS sets what you pay your staff against live sales, so the labour cost percentage moves with the day's revenue and a manager can catch a slow lunch dragging the ratio up while there is still time to adjust the evening roster." Against that: the payroll/attendance product is a separate system — "Attendo does not share data or logins with POSS, Petpooja Invoice or Petpooja Tasks" (https://blog.petpooja.com/people-payroll/petpooja-payroll-is-now-attendo/) — so actual clocked hours are not demonstrably the input. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. || 333rd: 333rd NEW SURFACE (not settled): the Attendo web admin at payroll.petpooja.com censused to a Vite loader fixpoint (124/124 files, 0 misses, 234 endpoints, 92 routes) plus the Attendo Employee/Admin Android apps unpacked. Attendo holds NO sales data: revenue 0, turnover 0, "labour cost" 0, POS 0; "sales" 23 hits are all designation names / referral text; "sales-linked incentives" on attendohr.com marketing is a manually keyed "Incentive Amount"/"Incentive Reason" payroll entry. Its reports are /reports/{accounting, attendance_master, branch_wise_punch, compliance_payroll, daily_punch, data_analytics, leave_list, leave_taken, loan_arrears_logs, muster, payroll, shift_wise_attendance, work_duration, working_hours}; "Dynamic Reports" (/data-analytics) loads a SERVER-defined list the bundle cannot see, and the POSS side's 80+ report catalogue is still unenumerated, so no `no`. Retrieved 2026-09-18. adversarially verified

F
Partial

Warns or blocks at clock-in when an employee is approaching or would cross a configured overtime threshold, before the overtime is incurred. differentiator

labor-overtime-prevention

The Easy Payroll feature list says 'Enforce overtime & late entry rules with a penalty', and blog.petpooja.com/people-payroll/petpooja-payroll-features/ adds that 'Attendance is then evaluated against the assigned shift timings. Late arrivals, early departures, overtime: all captured automatically.' So a configured overtime threshold exists. The missing half is the one the claim is about: every documented enforcement is retrospective, applied when salary is calculated, and no warning, prompt or block is documented at the moment of clock-in - the face scanner, biometric and mobile punch flows are all described as recording the punch and syncing it, with no eligibility check. Also a separate SKU from the POS. https://www.petpooja.com/payroll · retrieved 2026-08-06

C
No

Configures meal and rest break rules per state or jurisdiction, prompts required break attestation, and flags missed breaks for premium pay. differentiator

labor-break-compliance-by-state

CLAIM: configures meal and rest break rules per state/jurisdiction, prompts break attestation, and flags missed breaks for premium pay. VERDICT: no (moved from unknown). NEW SURFACE (333rd): A COMPLETE CENSUS OF ATTENDO (formerly Petpooja Payroll, the vendor's only labour product; the existing labour partials on this record already rest on it). (1) The Attendo WEB ADMIN at payroll.petpooja.com (the login link on attendohr.com): a Vite app whose /login page loads /assets/index-3b7c82b1.js; every chunk the loader names was fetched to a FIXPOINT, 3 rounds, 124/124 files, 0 misses (nonsense-path control: /assets/zzz-nonsense-12345678.js returns the 1,711-byte SPA shell, which the crawler rejects); 92 react-router paths and 234 backend endpoint paths enumerated. (2) The two Android apps from the publisher's own Play listing, unpacked (never executed), Flutter AOT libapp.so string tables: "Attendo: Employee" com.petpooja.employeepayroll 3.0.4 (34,288 strings; its complete API-constant registry is 39 calls) and "Attendo: Admin" com.petpooja.attendance 4.0.2 (51,896 strings; 90 API constants). Both are single-module Flutter builds (no deferred-component splits in the XAPK: only language/ABI/density config splits). Scratch: .cache/q333/petpooja/b/pay/ and /apk/. EVIDENCE: breaks exist and are modelled only as a fixed window on a SHIFT: the shift editor's validation strings are "Break From" / "Break To", " Add Break", "Break start time must be after shift start time", "Break end time must be before shift end time", "Break time must be within shift hours"; reporting shows "Break Hour" / "Total Break Hours" (Working Hours Report) and the apps show "Break Time", "Break Usage", "On Break" (apiGetEmployeeBreakHours). There is no per-state break rule set, no attestation prompt and no missed-break premium anywhere. State-level configuration that DOES exist is statutory payroll only: "Professional Tax & Labour Welfare Fund" (/pl-and-lwf-settings, PTLWFConfigs). CONTROLS (web / employee app / admin app): attest* 0/0/0, premium 0/0/0, "missed break" 0/0/0, meal 0/0/0, "rest period|rest break" 0/0/0, break(s) 133/present/present (read: all shift break windows, break-hour totals, or JS `break;` statements). POISON NAMED: most web "break" tokens are JavaScript `break;case` statements and CSS class names (ps-break-div); `state` (68) is address/PT-LWF state pickers (/organizations/getstates) and React state. Consistent with attendohr.com/llms-full.txt (331st: "Fixed Break Hours" only). Controls are tokenised, word-boundary, case-insensitive, run over the 110 first-party web chunks (third-party libs excluded: vendor, xlsx, jspdf, lodash, spreadsheet etc.; 82,778 string literals, 1.80 M chars) and both app string tables; KNOWN-POSITIVE controls: shift(s) 217, leave 149 (the regexes work). Retrieved 2026-09-18. https://payroll.petpooja.com/login · retrieved 2026-09-18 adversarially verified

B
No

Supports predictive-scheduling ordinances by tracking advance-notice deadlines for published schedules and calculating predictability pay owed for employer-initiated changes.

labor-fair-workweek-support

CLAIM: supports predictive-scheduling ordinances by tracking advance-notice deadlines for published schedules and calculating predictability pay for employer-initiated changes. VERDICT: no. EVIDENCE: no such regime exists in the vendor's jurisdiction or its product corpus; scheduling content is rostering and leave ("open shift" 25 hits are the generic glossary definition of an unfilled shift, not an ordinance clock). BOUND/CONTROLS: Petpooja's payroll product is Attendo (formerly Petpooja Payroll), and its published corpus is Indian statutory throughout. Over the same 995-document census: "Form 16" 86 hits, and the corpus carries dedicated guides to PF/EPFO, ESIC, gratuity, TDS, POSH, leave encashment and the Labour Codes. The US instruments are absent entirely. Controls: "predictive schedul*" 0, "fair workweek" 0, "advance notice" 0 in a scheduling sense, "predictability pay" 0. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. https://blog.petpooja.com/people-payroll/petpooja-payroll-is-now-attendo/ · retrieved 2026-09-17 adversarially verified

C
No

Enforces minor-labor restrictions (age-based maximum hours, prohibited time windows, school-day limits) at both scheduling and clock-in.

labor-minor-labor-rules

CLAIM: enforces minor-labour restrictions (age-based maximum hours, prohibited windows, school-day limits) at both scheduling and clock-in. VERDICT: no (moved from unknown). NEW SURFACE (333rd): A COMPLETE CENSUS OF ATTENDO (formerly Petpooja Payroll, the vendor's only labour product; the existing labour partials on this record already rest on it). (1) The Attendo WEB ADMIN at payroll.petpooja.com (the login link on attendohr.com): a Vite app whose /login page loads /assets/index-3b7c82b1.js; every chunk the loader names was fetched to a FIXPOINT, 3 rounds, 124/124 files, 0 misses (nonsense-path control: /assets/zzz-nonsense-12345678.js returns the 1,711-byte SPA shell, which the crawler rejects); 92 react-router paths and 234 backend endpoint paths enumerated. (2) The two Android apps from the publisher's own Play listing, unpacked (never executed), Flutter AOT libapp.so string tables: "Attendo: Employee" com.petpooja.employeepayroll 3.0.4 (34,288 strings; its complete API-constant registry is 39 calls) and "Attendo: Admin" com.petpooja.attendance 4.0.2 (51,896 strings; 90 API constants). Both are single-module Flutter builds (no deferred-component splits in the XAPK: only language/ABI/density config splits). Scratch: .cache/q333/petpooja/b/pay/ and /apk/. EVIDENCE: scheduling (roster spreadsheet /roster, /employees-shifts-assign-new) and clock-in (apiPunchInOutWithGeo, face/biometric device sync) carry shift-timing rules only ("Selected time not allowed as per shift timing rules", shift_start_buffer_time, shift_full_day_buffer/half_day_buffer); nothing reads the employee's age. Date of birth is captured as a profile field ("Date of Birth", dob); no roster or punch validation string references age or date of birth. CONTROLS (web / employee app / admin app): minor(s) 1/0/0, "under 18|underage" 0/0/0, juvenile|"child labour" 0/0/0, school 0/0/0, age 10/1/4. POISON NAMED: the one web "minor" is "Minor Discrepancy" (a background-verification result status beside "Major Discrepancy"); every app "age" is HTTP cache "max-age"; every web "age" is the payroll formula engine's variable AGE in professional-tax test rows ({AGE:30,GROSS_SALARY:5e4,...}) or a cookie Max-Age, not a labour rule. POSS itself has no scheduling or time-clock module (existing notes; pricing matrix). Controls are tokenised, word-boundary, case-insensitive, run over the 110 first-party web chunks (third-party libs excluded: vendor, xlsx, jspdf, lodash, spreadsheet etc.; 82,778 string literals, 1.80 M chars) and both app string tables; KNOWN-POSITIVE controls: shift(s) 217, leave 149 (the regexes work). Retrieved 2026-09-18. https://payroll.petpooja.com/login · retrieved 2026-09-18 adversarially verified

B
No

Computes tip pooling and tip-outs automatically per shift from configurable rules (percentage of sales, hours worked, points, or role), rather than requiring a manual spreadsheet.

labor-tip-pooling-rules

CLAIM: computes tip pooling and tip-outs automatically per shift from configurable rules. VERDICT: no — the vendor says in its own words that the product does not do it. EVIDENCE: blog.petpooja.com/glossary/tip-management/ (Petpooja's own glossary, a vendor page): "Petpooja POSS does not split a tip pool for you, and no honest page should claim otherwise. What it does give you is the evidence the split rests on: reports covering your restaurant's day-end sales, online orders, staff actions and inventory consumption, across 80+ business reports." The same page tells the operator to "agree it in writing" using a downloadable shift template and to "keep the payout record separate from wages", i.e. the split lives outside the software. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "tip pool*" 4 hits (all on this page and its FAQ), "tip-out" 0, "points split" only inside the page's invented illustration. Retrieved 2026-09-17. https://blog.petpooja.com/glossary/tip-management/ · retrieved 2026-09-17 adversarially verified

C
No

Retains a per-shift, per-employee record of tips received, amounts contributed to the pool, and amounts distributed from the pool, exportable for audit.

labor-tip-distribution-audit-trail

CLAIM: per-shift, per-employee record of tips received, contributed to the pool and distributed from the pool, exportable for audit. VERDICT: no — two of the three legs cannot exist. EVIDENCE: "Petpooja POSS does not split a tip pool for you" (blog.petpooja.com/glossary/tip-management/); what it offers instead is named exactly: "reports covering your restaurant's day-end sales, online orders, staff actions and inventory consumption". The page instructs the operator to "Keep the payout record separate from wages so the two never get confused at audit" — the distribution record is deliberately outside the system. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. https://blog.petpooja.com/glossary/tip-management/ · retrieved 2026-09-17 adversarially verified

C
No

Payroll export separates cash from charged qualified tips and carries a Treasury tipped-occupation code, supporting the W-2 Box 12 code TP and Box 14b reporting required for tax year 2026. differentiator

labor-qualified-tips-w2-reporting

CLAIM: payroll export separates cash from charged qualified tips and carries a Treasury tipped-occupation code, supporting W-2 Box 12 code TP and Box 14b for tax year 2026. VERDICT: no. EVIDENCE: the vendor's payroll product is built to Indian payroll instruments, and it does not carry tips at all — "Because tips are not salary, they sit outside net salary and outside the payslip" and "Petpooja POSS does not split a tip pool for you" (blog.petpooja.com/glossary/tip-management/). Attendo is also a separate system from the POS: "Attendo does not share data or logins with POSS, Petpooja Invoice or Petpooja Tasks" (https://blog.petpooja.com/people-payroll/petpooja-payroll-is-now-attendo/). BOUND/CONTROLS: Petpooja's payroll product is Attendo (formerly Petpooja Payroll), and its published corpus is Indian statutory throughout. Over the same 995-document census: "Form 16" 86 hits, and the corpus carries dedicated guides to PF/EPFO, ESIC, gratuity, TDS, POSH, leave encashment and the Labour Codes. The US instruments are absent entirely. Controls: "W-2" 0, "Box 12" 0, "Box 14" 0, "tipped occupation" 0, "qualified tips" 0. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. https://blog.petpooja.com/people-payroll/petpooja-payroll-is-now-attendo/ · retrieved 2026-09-17 adversarially verified

C
Partial

Vendor processes payroll itself as a first-party product (tax filing and direct deposit), as opposed to exporting to a third-party payroll provider only. differentiator

labor-native-payroll

Petpooja Payroll is a first-party product for attendance, leave and payroll management. Statutory tax filing and direct-deposit disbursement by Petpooja are not documented. https://www.petpooja.com/ · retrieved 2026-08-01

D
Partial

Exports timecards, wages, and tips in documented formats or via direct integration for at least two major payroll providers (e.g. Gusto, ADP, Paychex, QuickBooks).

labor-payroll-export-formats

FAQ: 'Payroll reports, attendance summaries, and payslips can all be exported from the web dashboard. These reports can be shared with accountants or integrated into external bookkeeping systems.' www.petpooja.com/payroll adds '6+ industry-standard reports and unlimited customisable reports', 'download reports in excel or export to google sheets'. Shortfalls against the claim as worded: the export targets are generic spreadsheet/bookkeeping formats, not a documented format or direct integration for any named payroll provider - no provider is named on any Petpooja host; and tips are not a tracked field anywhere in the payroll model, so tips cannot be exported. Note also that Petpooja is itself the payroll engine here (PF/ESIC/PT/LWF, payslips), which is why no third-party payroll connector exists, but the claim asks about provider-format export and that is not met. https://blog.petpooja.com/people-payroll/petpooja-payroll-features/ · retrieved 2026-08-06

C
No

Employees can request shift swaps or claim open shifts in a self-service app, subject to a manager approval workflow that enforces overtime and role eligibility. differentiator

labor-shift-swap-workflow

CLAIM: employees can request shift swaps or claim open shifts in a self-service app, subject to manager approval that enforces overtime and role eligibility. VERDICT: no (moved from unknown). ANSWERS THE 331st HOLD (marketing copy C positive, contradicted by the vendor's own enumerations) WITH THE SHIPPED PRODUCT ITSELF. NEW SURFACE (333rd): A COMPLETE CENSUS OF ATTENDO (formerly Petpooja Payroll, the vendor's only labour product; the existing labour partials on this record already rest on it). (1) The Attendo WEB ADMIN at payroll.petpooja.com (the login link on attendohr.com): a Vite app whose /login page loads /assets/index-3b7c82b1.js; every chunk the loader names was fetched to a FIXPOINT, 3 rounds, 124/124 files, 0 misses (nonsense-path control: /assets/zzz-nonsense-12345678.js returns the 1,711-byte SPA shell, which the crawler rejects); 92 react-router paths and 234 backend endpoint paths enumerated. (2) The two Android apps from the publisher's own Play listing, unpacked (never executed), Flutter AOT libapp.so string tables: "Attendo: Employee" com.petpooja.employeepayroll 3.0.4 (34,288 strings; its complete API-constant registry is 39 calls) and "Attendo: Admin" com.petpooja.attendance 4.0.2 (51,896 strings; 90 API constants). Both are single-module Flutter builds (no deferred-component splits in the XAPK: only language/ABI/density config splits). Scratch: .cache/q333/petpooja/b/pay/ and /apk/. EVIDENCE: the EMPLOYEE app's whole API registry is: apiAddPunchPhoto, apiApplyTabRegularization, apiDeleteDocument, apiFetchRegularization, apiGeoFence*, apiGeoTrack*, apiGetAnnouncement, apiGetCalendarData, apiGetCommonAssignShift, apiGetDashboard, apiGetEmployeeDetails, apiGetHoliday, apiGetLeave, apiGetLeaveBalance, apiGetLoanArrears(+Transaction), apiGetNotification, apiGetPayslip*, apiGetPromotionsDetails, apiGetRosterShift, apiHoLogin, apiLoginResetRequest, apiLogout, apiOtpLogin, apiPunchInOutWithGeo, apiRegularizationPunch, apiRenewToken, apiSaveLanguage, apiSaveLeave, apiSendOtp, apiSubmitOfferReview, apiUploadDocument, apiWithdrawLeaveAndRegularizationRequest: shifts are READ-ONLY to the employee ("Shift View", "Upcoming Shifts"); the only things an employee can submit are leave, attendance regularisation and a login reset. The web admin's approval inbox (chunk ApprovalRequestsUpdated) enumerates its request types as label:"Attendance" | label:"Leave" | label:"Login Reset", and the employee-actions list as "Attendance Requests" | "Leave Requests" - matching the vendor tutorial "How to approve requests in Attendo" (BnaaUUAjlR4). Shift endpoints are all admin-side (/shift_management/save_roster, save_day_wise_roster, employees_shifts/assign_shifts_new, save_mapping ...); none is an employee swap or claim. CONTROLS (web / employee app / admin app): swap* 7/0/1, "open shift" 27/2/3, "shift request|swap request|shift change" 0/0/0, claim* (web) 0. POISON NAMED: web "swap" = iconType:"swap" on a CTC/gross recalculation card and antd's "swap-right" icon, plus Buffer.prototype.swap16/32/64; "Open Shift" is a SHIFT TYPE, the roster's own tooltip says "Open Shift: Flexible timing based on punch" / "Open Shift will replace all regular shifts" (and "Open Shift Regularization" is its punch-correction request), not an open-shift pool; "shift_switch_decision" is the admin's switch between old/new shift-module modes; the admin app's one tile subtitle "Roster & swap" sits beside "Apply & balance", "Files & proofs", "Profile & contact" on the employee-profile screen, i.e. a MANAGER re-assigning the roster ("Assign or Replace shift"), not an employee request. The attendohr.com marketing sentences ("Staff request leave or swap shifts from the app") are grade C and are contradicted by the shipped apps above. Controls are tokenised, word-boundary, case-insensitive, run over the 110 first-party web chunks (third-party libs excluded: vendor, xlsx, jspdf, lodash, spreadsheet etc.; 82,778 string literals, 1.80 M chars) and both app string tables; KNOWN-POSITIVE controls: shift(s) 217, leave 149 (the regexes work). Retrieved 2026-09-18. https://payroll.petpooja.com/login · retrieved 2026-09-18 adversarially verified

B
No

Provides digital new-hire onboarding that collects W-4 and I-9 documentation and supports E-Verify submission.

labor-digital-onboarding-i9

CLAIM: digital new-hire onboarding collecting W-4 and I-9 documentation with E-Verify submission. VERDICT: no. EVIDENCE: Attendo's published onboarding is Indian — PF/ESIC registration, Form 16 issuance, POSH paperwork — and the US federal instruments appear nowhere. BOUND/CONTROLS: Petpooja's payroll product is Attendo (formerly Petpooja Payroll), and its published corpus is Indian statutory throughout. Over the same 995-document census: "Form 16" 86 hits, and the corpus carries dedicated guides to PF/EPFO, ESIC, gratuity, TDS, POSH, leave encashment and the Labour Codes. The US instruments are absent entirely. Controls: "I-9" 0, "W-4" 0, "E-Verify" 0, "right to work" 0. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. https://blog.petpooja.com/people-payroll/petpooja-payroll-is-now-attendo/ · retrieved 2026-09-17 adversarially verified

C
Partial

Reports per-employee sales performance metrics (average check, items or category attachment rate, void and comp rate) by server or cashier. differentiator

labor-server-performance-metrics

Reports cover staff actions and scheduling data. Per-server average check, attachment rate and void/comp rate are not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D

Inventory, purchasing & cost control

Partial

Supports multi-level recipe/BOM costing where a recipe can contain sub-recipes (prep items) and plate cost recalculates automatically when any component ingredient's cost changes.

inventory-recipe-bom-costing

'Multi-stage recipe management' implies sub-recipes with consumption tracked across production stages. Automatic plate-cost recalculation on ingredient price change is not documented. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-01

D
Partial

Stores purchase unit, recipe unit, and count unit per item with explicit conversion factors, plus a yield/waste percentage applied to raw-to-usable conversion.

inventory-unit-conversion-yields

Petpooja Purchase (the first-party Purchase Manager app, which the vendor says is included free with a Petpooja POSS account and which pushes purchased raw materials into Petpooja Inventory) stores a per-raw-material conversion from the supplier's purchase unit to the Petpooja inventory unit. Its served Angular chunk carries a table headed 'Item' | 'Purchase Unit' | 'Petpooja Unit' | 'Conversion Qty' with a 'Pending Conversion (' row count, the tooltip 'This raw material has no Petpooja unit configured yet - fix that first, then the conversion qty can be saved here.', the error 'Petpooja Conversion unit is required.', and 'Auto Conversion' and 'Conversion Activity Logs' controls. A sibling chunk (5951) shows the integration card 'Seamlessly push all the raw materials purchased to Petpooja Inventory without any hassle' and activation by 'restaurant sync code from Petpooja POSS'. Shortfall: only a single purchase-to-inventory unit pair is evidenced. No separate recipe unit versus count unit, and no yield or waste percentage, appears in the Purchase app. The POS inventory module that would hold recipe units was not publicly reachable. Controls, tokenised over the 256,264-byte chunk: yield appears 3 times, all as JavaScript generator `yield Promise.all` (poison). waste, wastage and recipe appear 0 times. https://purchase.petpooja.com/1343.a1da196e0972fe78.js · retrieved 2026-09-15 adversarially verified

A
Partial

Produces a theoretical-vs-actual usage variance report per item for a defined count period, showing theoretical usage from POS sales times recipe, actual usage from counts plus receipts, and the variance in both units and currency. differentiator

inventory-theoretical-vs-actual

Petpooja describes a Variance Report that 'checks units used against units sold' and 'gives you the difference between the ideal stock that should be available at the end of the day and the stock that actually remained', sitting alongside a Consumption Report covering 'stock count, purchases, and the inventory returned to the vendor or wasted'. The theoretical side is real: the POS 'automatically deduct[s] your stock when used' from uploaded item-wise recipes (www.petpooja.com/poss/restaurant-inventory-management-software). Shortfalls: the description appears in an educational listicle rather than a report specification; the variance period is fixed at end-of-day rather than a user-defined count period; and nothing states the variance is expressed per item in currency as well as units - the only currency framing in the article attaches to the separate Waste Report. https://blog.petpooja.com/procurement-cost-control/bar-inventory-reports/ · retrieved 2026-08-06

C
Partial

Depletes ingredient on-hand quantities in near real time as orders are fired at the POS, including depletion driven by modifier selections, not only in an end-of-day batch. differentiator

inventory-realtime-depletion

The page claims recipe-driven deduction - "Upload your item-wise recipe in the software & let the smart POS look after your consumption rate", "automatically deduct your stock when used", plus "low stock" alerts. That is a marketing claim with no timing stated. Shortfall: nothing distinguishes near-real-time depletion from an end-of-day batch, modifier-driven depletion is nowhere documented, and the Inventory Module starts at the Growth tier. Petpooja publishes no admin guide or help centre against which any of this could be confirmed. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-02 adversarially verified

D
Partial

Automatically 86s (marks unavailable) menu items on the POS, online ordering, and connected third-party delivery menus when a component ingredient hits zero or a configured threshold. differentiator

inventory-86-auto-sync

I re-fetched the page. What it actually offers is an operator action, not automation: "Toggle your online menu ON/OFF basis of stock availability" and "manage the availability of menu items both for dine-in & online menu". The online-order page is the same - "toggle any online menu item On or Off as per your inventory". Shortfall: nothing documents an automatic 86 when a component ingredient hits zero or a configured threshold, nothing documents the change reaching Swiggy/Zomato menus automatically, and the Inventory Module is absent from the Core tier on the vendor's own pricing matrix. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-02 adversarially verified

D
Partial

Supports full physical inventory, ad-hoc spot counts of a subset, and scheduled recurring cycle counts, with each count's variance recorded as separate history rather than overwriting prior counts.

inventory-count-modes

CLAIM: full physical inventory, ad-hoc spot counts of a subset, and scheduled recurring cycle counts, each count's variance kept as separate history. VERDICT: partial. SHORTFALL: a full dated closing-stock count and an ad-hoc per-item count exist in the POSS inventory module, but no scheduled recurring cycle-count programme is shown, and whether each count's variance is kept as its own history row is not shown (only an "Opening Closing Report" and a "Manual Adjustment Report" exist by title). EVIDENCE: NEW SURFACE: the vendor's official tutorial channel "Petpooja Tutorials" (youtube.com/@PetpoojaTutorials, channel UCCAKlH4ogL0PvuUErRk5TWQ; every description signs off "E-mail us at: support@petpooja.com"), never opened by a prior pass (q328 read the marketing channels only). Playlist "English | Petpooja - Operations - Inventory" (PLJN6xufi3qM6_ga0xOUCvgu9AA5D10abM) holds 66 titled how-to videos. Captions are not retrievable (timedtext now needs a PO token) and stream URLs are SABR-only, so the screens were read from YouTube's own storyboard sprite sheets (i.ytimg.com/sb/<id>/storyboard3_L3, 320x180 per frame, 1 frame per 1-2 s), converted to PNG and read as images; only large UI labels are legible at that size. "Petpooja | Closing & Opening Stock Entry | English" (https://www.youtube.com/watch?v=dkgbCfxk8A4, published 2025-11-26, 108 s, current "PETPOOJA POSS" UI): menu "Manage Stock > Available Stock / Closing stock"; screen "Closing Stock" with filters "Raw Material", "Category" (All), "Date" (14 Oct 2025) and a dropdown "Closing stock being updated as: Daily"; grid columns "Category | Raw Material | Closing Stock (14 Oct 2025) | Update Your Closing Stock | Comments" with Save = the full count, filterable to a category subset; a separate "+ Add Stock" form "Add Closing Stock" with "Date*" and rows "Raw Material | Closing Stock | Unit | Comments" plus "+ Add New" = a dated count of selected items only; Import / Export (Download PDF, Uploaded Files). Corroborated by the 2023 video "Petpooja | Closing Stock | English" (https://www.youtube.com/watch?v=7BoHRhPwYBU; menu Inventory > Consumption > Sales / Transfer / Request for Sales Return / Sales Return / Wastage / Expired Materials / Closing Stock) and by playlist titles "Opening Closing Report", "Manual Adjustment Report", "Stock Summary Report", "Current Stock Report". The storyboard resolution makes the labels readable but not the dropdown's other options, so the "Daily" setting is NOT read as a cycle-count schedule. Corpora grepped first (no settling hit): q325 blog REST census + www census, munshi/tasks/reservations bundles, the billing APK strings (a thin webview wrapper for billing/inventory.petpooja.com). Retrieved 2026-09-18. https://www.youtube.com/watch?v=dkgbCfxk8A4 · retrieved 2026-09-18 adversarially verified

B
Partial

Provides a mobile/tablet counting app supporting barcode or QR scanning that continues to accept counts with no network connectivity and syncs on reconnect.

inventory-mobile-count-offline

CLAIM: a mobile/tablet counting app with barcode/QR scanning that accepts counts offline and syncs on reconnect. VERDICT: partial (moved from unknown). EVIDENCE: the 331st could not read the tutorial "Petpooja | Inventory App | English" at storyboard size. At 1080p, every frame shows the vendor's marketplace card for the add-on: "Inventory Application - Manage your restaurant's daily stock, purchases, and wastage all in one place" and, under Description, "Petpooja Inventory Application is a mobile application designed to help restaurants manage their stock efficiently. It lets you update closing stock, record daily purchases, and log wastage, all in one place. Fully integrated with Petpooja POSS, the app keeps your inventory accurate and up-to-date in real-time. It also allows staff to share closing stock reports directly with the owner over WhatsApp." The transcripts (English and Hindi, Bl9nU_sWkyU) say the same: daily closing-stock entry on the mobile app. So the counting app exists on a phone. SHORTFALLS: barcode scanning is documented only on the owner-dashboard inventory ("Inventory Setting" tutorial 1iZHgRxtjdk: "the staff member can attach a laser scanner and scan all those barcodes"), not in the mobile app. Offline counting and sync-on-reconnect are not stated for the app: its only offline stock surface is the POS main-server "Offline Stock Listing" (X7j_NWBHRgo), which the tutorial says works "only via your main server". Grade C: a promotional explainer and marketplace card, not a how-to. Retrieved 2026-09-18. https://www.youtube.com/watch?v=_Fiq8oVqU8A · retrieved 2026-09-18 adversarially verified

C
Partial

Ships pre-built electronic vendor catalog and order-transmission integrations with named broadline distributors (e.g. Sysco, US Foods, Performance Food Group) that send purchase orders and receive invoices electronically rather than by emailed PDF. differentiator

inventory-vendor-catalogs-edi

Raise and accept purchase-order tickets directly with suppliers, with per-supplier frequently-ordered tracking and e-way bills auto-uploaded to GST portals. No named broadline distributor catalogues. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-01

D
Partial

Ingests supplier invoices from photo, PDF, or email and extracts line-item detail (item, quantity, unit, price) into the inventory ledger without manual line entry. differentiator

inventory-invoice-ocr

The AI feature table lists 'AI invoice scanning - Reads a photographed bill into your system', and the article instructs 'Start photographing supplier invoices so the AI reads each one into a purchase entry, instead of anyone typing it', with the resulting purchase entries feeding food-cost and margin figures and syncing stock to POSS. Shortfalls: only the photo path is documented - no PDF upload and no invoice-by-email ingestion; the extracted fields are never enumerated, so line-item detail (item, quantity, unit, price) is asserted only by implication; and the feature sits in Petpooja Purchase, whose pricing the same article explicitly declines to state ('Pricing depends on the plan and product'), while the free Purchase Manager add-on documented at www.petpooja.com/poss/purchase-manager lists five core capabilities that do not include invoice scanning. https://blog.petpooja.com/procurement-cost-control/petpooja-ai-features-help-restaurants-decide-better/ · retrieved 2026-08-06

C
Partial

Tracks per-item purchase price history across invoices and alerts when a received price exceeds the prior or contracted price by a configurable threshold. differentiator

inventory-price-change-alerts

'Track your inventory purchases, recipe costs, and raw material price trends with Petpooja's restaurant inventory software' - so per-item purchase price history exists. The Purchase Manager add-on adds a live price dimension: 'Rates refresh in real time, so you see the actual price at the moment you are ordering, not yesterday's rate card', with prices updating in-cart before order confirmation (www.petpooja.com/poss/purchase-manager). Shortfall: both mechanisms are pre-purchase comparison and retrospective trend viewing. No configurable threshold, and no alert fired when a received or invoiced price exceeds the prior or contracted price, is documented anywhere - the alerting Petpooja does document on the inventory side is low-stock and expiry-stock alerts, not price alerts. https://www.petpooja.com/poss/reports-and-analytics · retrieved 2026-08-06

C
Partial

Maintains par levels per item per location and generates suggested purchase order quantities from on-hand versus par, with at least one mode driven by a sales forecast rather than a static par. differentiator

inventory-par-auto-suggest

Low-stock alerts and frequently-ordered-item tracking per supplier per outlet. Par-versus-on-hand suggested PO quantities and forecast-driven pars are not documented. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-01

D
Partial

Provides a structured waste/spoilage logging workflow with reason codes that debits inventory and reports waste cost separately from usage variance.

inventory-waste-logging

Damaged-stock returns exist within the central-kitchen module and the vendor claims 65% wastage reduction. A reason-coded waste log with separate waste-cost reporting is not documented. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-01

D
Yes

Supports inter-location inventory transfers as a two-sided transaction crediting the sending location and debiting the receiving location, with an in-transit or approval state.

inventory-transfers

Multi-outlet stock movement between locations with delivery route creation, managed from a single dashboard. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-01

D
Yes

Supports a commissary/central kitchen model where one location produces prep items and issues or sells them to other locations at a computed transfer cost.

inventory-commissary

Dedicated central-kitchen module with request/supply between outlets and damaged-stock returns; included on all pricing tiers. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-01

D
No

Captures lot/batch numbers at receiving and links them through production to sales or transfers, enabling a backward and forward recall trace.

inventory-lot-traceability

CLAIM: captures lot/batch numbers at receiving and links them through production to sales or transfers for recall tracing. VERDICT: no (moved from unknown). THIS IS THE STORE-LEVEL POSS INVENTORY MODULE ITSELF (owner's dashboard > Inventory on billing.petpooja.com), not a sibling product. The 328th and 333rd notes held this cell because Munshi, Invoice by Petpooja and the two Purchase apps are different products. This note bounds the POSS module's own RECEIVING FORM and its COMPLETE SETTINGS PAGE. (1) RECEIVING FORM: the vendor tutorial "Petpooja | Stock Purchase | English" (Petpooja Tutorials channel, uploaded 2023-10-19, 8:26) walks the whole inward-entry form. Header: source (supplier / kitchen / outlet), supplier, purchase invoice number, GST number (auto-fetched), payment type, an "update inventory stock" checkbox, invoice image files. Line items: "the first corner is of a check box ... the second is of the item name ... third it will ask you the quantity ... then the unit and the price ... the amount will Auto populate and the columns for taxation ... then it will ask you for an optional description", plus Add Discount, Add Delivery Charges and Add TCS. The 1080p frames at 6:51 and 8:28 show the "Raw Material Details" grid with exactly these columns: Name* | Qty* | Unit* | Price | Amount | Tax (CGST/SGST/IGST) | Description, with "Stock Qty" under the item. No lot, batch or serial field exists at receiving. (2) SETTINGS: in "Petpooja | Inventory Setting | English" (1iZHgRxtjdk, 2023-10-19, 20:45) the presenter says "let us see all the configurations which are possible in inventory ... we'll be dissecting all of the settings individually" and reads every one of the ~35 settings through to Save. The frames at 0:40 and 19:10 show the first and last blocks; the last setting is "Automatically generate an invoice number when creating a sales record with a prefix". The settings cover auto consumption, mapped kitchens, par-stock notifications, out-of-stock toggling, ship-to/bill-to, round-off, invoice labels, online-cancel reversal, the moving-average window (15-90 days), cess, negative-stock rules, edit/delete lock, back-dating, PO approval, proforma, conversion costing, preconfigured return/wastage reasons, outlet-type ownership, barcode use, MOQ and T&C. There is no batch/lot tracking setting. CONTROLS (tokenised, word-boundary, case-insensitive) over these two transcripts: batch 0, lot/lots 0, "lot no|lot number" 0, trace* 0, expir* 0. "serial" 1 is POISON (invoice auto-numbering); "barcode" 2 is item barcode scanning, not lot. Over the 198-transcript tutorial census (332nd): batch 1 ("distributed batch wise", POISON), lot 8 (all "a lot of"), trace 0, recall 1 (KDS KOT recall, POISON). The inventory report roster on the same channel has no lot, trace or recall report. It lists Current Stock, Stock Summary, Consumption, Orderwise Consumption, Food Costing, Semi-Finished FCR, Purchase, Supplier, PO Variance/Approval/Received, Internal Transfer, Item-wise Internal Transfer, Outletwise Item Dispatch, Routewise Dispatch, Manual Adjustment, Opening-Closing, Monthly Earnings & Expense and the Karnataka Excise register. CURRENT-STATE CORROBORATION: the vendor's 2026 Purchase Manager (com.petpooja.purchase_manager 1.0.13) and Purchase Scan (com.invoice.briefcase 2.3.2) apps show batch 0 and "lot no|lot number" 0 (333rd). SCOPE NOTE: "Batch & Expiry Tracking" exists only on www.petpooja.com/invoice (Invoice by Petpooja, a GST SME billing product) and in Munshi's Tally OCR dictionary. Neither is POSS. The 2023 tutorials show the current owner's-dashboard generation (the same billing.petpooja.com UI as the 2024 Owner's Dashboard tutorial), not a retired one. Grade B: a vendor tutorial walking the actual product UI. Retrieved 2026-09-18. https://www.youtube.com/watch?v=8lWbEfwWii0 · retrieved 2026-09-18 adversarially verified

B
Partial

Tracks expiration or use-by dates on received and prepped items and surfaces an expiring-soon report or alert before spoilage.

inventory-shelf-life-expiry

'Low & expiry stock alerts: You can set low stock alerts and expiry stock alerts on every ingredient in your restaurant so that you can be notified in advance.' That is a first-party statement of a per-ingredient expiry alert fired ahead of the event, which is the alert half of the claim. Shortfalls: the alert is described as a per-ingredient setting, not as tracking of a date captured at receiving or on a prepped batch - no receiving-time expiry date field or prep/production date is documented anywhere, including www.petpooja.com/poss/restaurant-inventory-management-software and the purchase flows; and no expiring-soon report appears in the inventory report types Petpooja lists. Expiry is otherwise mentioned only as a wastage reason in the Waste Report. https://blog.petpooja.com/operations-workflows/must-try-features-petpooja-pos/ · retrieved 2026-08-06

C
Partial

Supports partial-bottle liquid inventory by weight (scale integration) or by bottle fraction for bar and beverage counting.

inventory-bar-partial-bottle

MERGE DOWNGRADE yes -> partial (325th): per-peg recipe deduction in millilitres and a daily closing-stock check are real liquid stock tracking, but the claim is partial-bottle COUNTING by weight or bottle fraction, and no scale or tenths entry is described. CLAIM: supports partial-bottle liquid inventory by weight (scale integration) OR by bottle fraction for bar and beverage counting. VERDICT: yes, on the bottle-fraction branch. EVIDENCE: https://blog.petpooja.com/industry-business-guides/bar-brewery-pos-india-liquor-pilferage-control/ (modified 2026-07-06): "In Petpooja POSS, you set each drink as a recipe with its measure, a 30 ml or 60 ml peg, for example. When a bartender bills that drink, the system removes that measure from the bottle's stock on its own." And the count side: "A daily stock closing check then does the real work. It shows closing-stock accuracy as a figure and marks any day you skipped. The gap between what the bills recorded and what is actually left in the bottle then shows up the next morning." A companion page states it as a capability: "A bar and brewery POS records liquor stock bottle by bottle, tracks pour against sale" (blog.petpooja.com/finance-compliance/liquor-licence-cost-india-fee-breakdown/). NOTE ON THE OTHER BRANCH: the weight branch is absent — "flow meter" 0, "pour spout" 0, "tap wall" 0, "self-pour" 0, "free-pour" 0; "weighing scale*" 17 hits, none in a bar or liquor context (7 in a grocery-POS competitor comparison, 4 on the retail Petpooja Invoice page, the rest bakery equipment and units of measurement). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/bar-brewery-pos-india-liquor-pilferage-control/ · retrieved 2026-09-17 adversarially verified

C
Partial

Exports period COGS and accounts-payable invoice detail in a named accounting system's import format (e.g. QuickBooks, Sage Intacct, NetSuite) with GL account mapping configurable per item category.

inventory-cogs-gl-export

Half the claim is met, in Petpooja Purchase, the vendor's purchase and payables app. Its live Angular chunks (fetched again 2026-09-15, served as application/x-javascript; the host returns a 48 KB HTML page with status 200 for made-up paths) include a route titled 'Tally Configuration Management' (5174 @9261). That route has 'Sync All Ledgers' / autoMapAllLedgers (@1705) and ledger-mapping worksheets for purchase, product-percentage, tag-percentage, sub-category, creditor-payable, taxation, TDS, cost-center and godown (@10989). The sub-category sheet's columns are ["Description","Ledger","Ledger Type","Message","On Tally","GST Rate (%)"] (@47305). The main bundle calls /tally-sub-category-ledger-mappings and /tally-purchase-voucher-config-ledger-mappings (@371684). Chunk 8427 has a 'Push & Update to Tally' button that calls pushInvoiceToTally() (@7323), plus Voucher / Item / Accounting Mode (@20142) and 'Auto-Create Ledger' (@50612). So purchase (AP) invoices are pushed to a named accounting system (Tally) as vouchers, with ledgers mapped per sub-category. Shortfalls: (1) no period COGS is computed or exported. The word COGS and the phrase 'cost of goods' appear 0 times in the main bundle and in chunks 5174, 8427 and 5951; the export is purchase and expense vouchers only. (2) Tally is the only target; QuickBooks appears 0 times. (3) In the main bundle (@337247) the 'Tally ERP' menu carries requiresPaid:!0 and featureFlag "showPushToTally", so this is a paid feature of the Purchase add-on, not core POS billing. https://purchase.petpooja.com/5174.80c247c0b699b8c8.js · retrieved 2026-09-15 adversarially verified

A
Yes

Inventory and recipe costing are delivered natively by the POS vendor rather than requiring a separately-contracted third-party product (e.g. MarginEdge, MarketMan, Restaurant365) to function. differentiator

inventory-native-not-partner

Score survives but the citation is wrong and the tier claim is fabricated-by-inference. The pricing page's visible matrix contains no "Inventory Module" or "Menu Management" row at all, so "ships in the Growth and Scale tiers" is unsupported. The correct support is the inventory page itself, which sits under the POSS product nav alongside Billing/Online ordering/Reporting and claims item-wise recipes, automatic deduction, central kitchen, inter-outlet transfers with delivery routes, supplier POs and GST e-way-bill upload. Native: yes. Tier placement: unknown. https://petpooja.com/poss/restaurant-inventory-management-software · retrieved 2026-08-01 adversarially verified

B
Partial

Joins recipe cost to actual item sales mix to report contribution margin per menu item, and flags items whose margin fell below a configured threshold after ingredient cost changes. differentiator

inventory-menu-margin-linkage

ESTABLISHED (first conjunct, per-item margin from cost joined to sales): Petpooja's Ask Me Anything, on Electron POS, returns an item-wise profit and loss on request -- example question 'Get me an item-wise profit and loss for last week.' and the illustration 'Ask Me Anything returns the breakdown.' followed by 'The owner spots that one dessert sells well but earns little.' Corroborated as to inputs by blog.petpooja.com/growth-scaling/use-ai-for-menu-engineering-restaurants/ (modified 2026-07-25): 'Its sales report gives you the menu mix for each dish, and recipe costing gives the food cost, so both axes of the matrix come from one place.' (raw HTML has an <a> link on the preceding sentence's 'Petpooja POSS', none inside this span). NOT ESTABLISHED (second conjunct): a configured margin threshold or an automatic flag when ingredient cost changes push an item below it. The menu-engineering post's alert sentence 'AI flags the shift the week it happens, not at the next quarterly review.' is written about AI menu engineering as a category, not asserted of a Petpooja screen, so it is not relied on. Also not established: that 'profit' in the item-wise P&L is contribution margin from recipe cost rather than some other cost basis (inferred from the corroborating post, not stated). Grade C. https://blog.petpooja.com/operations-workflows/restaurant-ai-assistant-ask-me-anything/ · retrieved 2026-09-12

C

Reporting, BI & data access

Partial

Provides a live sales dashboard reflecting transactions within minutes of the sale, accessible from both a browser and a mobile app off-premise.

reporting-realtime-dashboard

Cloud single-dashboard monitoring accessible off-premise. A dedicated owner mobile app for live sales is not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Yes

Generates a daily close-out/EOD report reconciling gross sales, net sales, tax, tips, discounts, refunds, tender types, and expected cash deposit in one document.

reporting-eod-closeout

Day-end reports in under 5 minutes covering sales, payment status, tax/income summaries and cash-drawer operations. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Partial

Provides a product mix (PMIX) report at individual menu item AND modifier level with quantity, gross and net sales, filterable by daypart and revenue center.

reporting-pmix-modifier-level

Item-wise sales and consumption reporting is documented. Modifier-level PMIX with daypart and revenue-center filters is not. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Partial

Produces an audit report of comps, voids, discounts, and price overrides attributed to the employee who applied them and the manager who approved them, with reason codes and timestamps.

reporting-comps-voids-audit

'Detailed reports on bill modifications, discounted/cancelled orders, cash drawer operations.' Reason codes and named approver attribution are not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Partial

Reports cash over/short per drawer, per shift, and per employee, comparing counted cash to expected cash from tendered transactions and paid-outs.

reporting-cash-over-short

Cash-drawer operation reporting exists. Explicit over/short per drawer, shift and employee against expected cash is not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Unknown

Reports sales per labor hour and labor cost as a percentage of sales by hour, by department, and by employee, using actual clocked hours from the POS time clock.

reporting-labor-productivity

The claim requires actual clocked hours from the POS time clock. The POSS plan matrix at www.petpooja.com/poss/pricing enumerates Cloud Billing, Inventory Module, 80+ Reports, in-built CRM, menu management, unlimited terminals and user rights, central kitchen and multi-terminal billing, with add-ons for KDS, captain app, website, loyalty, token, feedback, QR ordering and dynamic reports - no attendance, time-clock, scheduling or labour module at any tier. Clocked hours live in the separately sold Petpooja Payroll product (www.petpooja.com/payroll), whose documented calculation inputs are attendance, shifts, leave and overtime, with no sales feed described in blog.petpooja.com/people-payroll/how-petpooja-payroll-works/ or /petpooja-payroll-features/. www.petpooja.com/poss/reports-and-analytics names no labour metric. I could not enumerate the 80+ POSS reports - Petpooja publishes no report catalogue and has no help centre (support./help./kb./developer.petpooja.com all fail) - so a per-hour or per-employee labour report cannot be ruled out, only left unresolved. || 333rd: 333rd NEW SURFACE (not settled): the Attendo web admin (payroll.petpooja.com, 124/124 Vite chunks, 0 misses) has clocked hours ("Working Hours Report": Name, ID, Roles, Designation, Department, Working Hour, Break Hour, KMs; /reports/work_duration, /reports/working_hours, /reports/shift_wise_attendance) but no sales input at all (revenue 0, turnover 0, POS 0; "sales" = designation names only), so sales-per-labour-hour cannot be computed in the labour product; the POSS report catalogue remains unenumerated and POSS has no time clock of its own on any censused surface, so the cell stays unknown rather than `no`. Retrieved 2026-09-18. adversarially verified

F
Partial

Reports per-server metrics including average check, items per check, attachment rate for named categories, and tips as a percentage of sales. differentiator

reporting-server-scorecards

'Report #82 in Petpooja POSS is the Captain Performance Report. It shows sales per captain from the captain app, broken down by order count, item mix, and total value', and is used to spot 'which captains have higher cancellation rates, which ones use modifiers consistently, and which ones drive more upsell'. Average check is derivable from total value over order count but is not a stated column. Shortfalls: no items-per-check figure, no attachment rate for named categories, and no tip percentage - tips are not a tracked field anywhere in Petpooja's published model. Scope shortfall too: the report reflects orders taken through the Captain App, which the same page's FAQ says 'works only with Electron POS and Local POS. It is not available on Petpooja Lite or the basic Android POS', and the captain app is an add-on rather than a bundled module on www.petpooja.com/poss/pricing. https://blog.petpooja.com/industry-business-guides/petpooja-captain-ordering-reduces-order-errors/ · retrieved 2026-08-06

B
Partial

Reports revenue and margin by fulfillment channel — dine-in, direct online, first-party delivery, and each third-party marketplace separately — net of marketplace commission fees. differentiator

reporting-channel-profitability

Same source, same problem: marketing page, not documentation, and the module behind it is a priced add-on. Commission/margin-per-aggregator breakout is a claim, not a documented report spec. https://petpooja.com/poss/online-order-reconciliation · retrieved 2026-08-01 adversarially verified

B
Partial

Provides a consolidated multi-location report with side-by-side location comparison and drill-down from group total to a single location and then to an individual transaction. differentiator

reporting-multiloc-drilldown

Head-office module shows all outlets on one dashboard with city-wise and zone-wise grouping. Drill-down from group total to individual transaction is not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Partial

Includes a self-service report builder letting a non-developer choose dimensions, measures, and filters and save the result, rather than only fixed canned reports. differentiator

reporting-custom-report-builder

A 'Dynamic Reports' marketplace add-on is listed under Analytics. Dimension/measure/filter self-service builder behaviour is not documented. https://petpooja.com/poss/restaurant-app-marketplace · retrieved 2026-08-01

D
Yes

Supports scheduling any report for automatic recurring delivery by email or to a shared destination on a defined cadence and recipient list.

reporting-scheduled-delivery

Automated report alerts delivered by email on a configured basis. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
No

Offers automated recurring bulk export of transaction-level raw data to a customer-controlled destination (S3, SFTP, Snowflake, BigQuery, or equivalent), not just manual CSV download. differentiator

reporting-raw-warehouse-export

CLAIM: automated recurring bulk export of transaction-level raw data to a customer-controlled destination (S3, SFTP, Snowflake, BigQuery or equivalent), not just manual CSV download. VERDICT: no. EVIDENCE: what the vendor publishes is manual CSV and dashboard reporting — the Merchant app's own string pool calls https://billing.petpooja.com/orders/day_end_summary_export_csv, and the plan matrix tops out at "Dynamic reports | A fully customizable reporting dashboard" plus "80+ Reports" (www.petpooja.com/poss/pricing publishes a complete three-plan matrix — Core, Growth, Scale at $50/$95/$135 per outlet per month billed annually and $65/$115/$150 monthly (the figures sit inside HTML comments, so a comment-stripping reader would miss them). The included list is closed: Cloud Billing, Inventory Module, 80+ Reports, In-built CRM, Menu management, Unlimited terminals & user rights, Central kitchen module, Multi-terminal billing; add-ons Kitchen display system, Captain ordering app, Restaurant website, Petpooja loyalty, Token Management System, Feedback App / QR, OOW (Website), QR Ordering / Digital menu; advanced features Dynamic reports; support On-call/ On-chat, Dedicated POC. No API, developer, integration or data-export line appears in any plan.). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "SFTP" 0, "S3 bucket" 0, "data warehouse" 0, "BigQuery" 0, "webhook*" 0, "scheduled export" 0. POISON NAMED: "snowflake*" is NOT zero — 3 hits, all Christmas decorations ("centrepieces, snowflakes and scented candles", blog.petpooja.com/operations-workflows/christmas-restaurant-decoration-ideas/); the data platform appears nowhere. Only the Petpooja Local build offers scheduled copies, and of the whole database to the operator's own Bridge Server hardware, not a transaction feed ("You can schedule a daily, weekly or monthly copy of your data on your own hardware", blog.petpooja.com/industry-business-guides/petpooja-pos-types-lite-android-local-electron-comparison/). Retrieved 2026-09-17. https://www.petpooja.com/poss/pricing · retrieved 2026-09-17 adversarially verified

C
No

Publishes a documented public REST or GraphQL API covering orders, payments, menu, and labor data, with self-service developer credentials obtainable without a signed partner agreement. differentiator

reporting-public-api

GRADE AND RATIONALE CORRECTION (the value stands). The 325th recorded this no at grade C from a marketing integrations page. NEW SURFACE (326th): Petpooja publishes THREE anonymous Apiary API references that no prior pass held — "OnlineOrdering APIs - V3" (https://onlineorderingapisv3.docs.apiary.io/, blueprint 85,878 bytes via /api-description-document), "PetpoojaOnlineOrdering APIs - V2.1.0" (https://onlineorderingapisv210.docs.apiary.io/, 115,978 bytes) and "Petpooja" (https://petpoojaapi.docs.apiary.io/, 165,962 bytes: Virtual Wallet, Table Reservation, DineIn-QR, Cart Calculation, Menu Sharing, Sales Data, Third-Party Delivery/Tracking/Loyalty, CRM). Nonsense control: https://zzznonsense9987.docs.apiary.io/ returns Apiary's 404 shell (1,651 bytes, <html class="pageNon200">) while each of the three returns its own titled page, so these are real documents, not a wildcard 200. Grade B: vendor-published API reference, fetched anonymously. Combined corpus 367,818 bytes. The API IS documented and public, so the old rationale was wrong; the claim still fails on its credentialing conjunct, now at grade B from the vendor's own text: "Access to developer account of staging/production : https://developerapi.petpooja.com/ ... Credentials for both staging and production environment will be provided by petpooja team." (developerapi.petpooja.com itself answers 403 uniformly on /, /docs, /swagger, /robots.txt and a nonsense path, i.e. a WAF refusal, not a self-service signup). Coverage is also short of the claim: menu (Push/Fetch Menu), orders (Save Order, Update Order Status, callback), sales (Get restaurant Sales Data, Get Item wise Sale Data), reservations, wallet/loyalty and CRM are documented; payments processing and labor data are not (tokenised controls over the 367,818-byte corpus: payroll 0, labor 0, labour 0, employee 0, shift 0). So: documented, public, partner-gated, and not covering payments or labor. Retrieved 2026-09-18. https://onlineorderingapisv210.docs.apiary.io/ · retrieved 2026-09-18 adversarially verified

B
Partial

Emits outbound webhooks for order and payment lifecycle events to a customer-supplied endpoint, with documented retry behavior and payload signature verification. differentiator

reporting-webhooks

Petpooja's Online Ordering API v2.1.0 blueprint (the rendered docs page is client-side only; this is the source document it loads) documents genuine outbound webhooks to a customer-supplied endpoint: 'Order Callback Request/Response [/callback] - Online order integration partner must implement this endpoint to allow PoS partner to notify about order status updates', with the endpoint passed per order as callback_url and a payload carrying restID, orderID, status (-1 cancelled, 1/2/3 accepted, 4 dispatched, 5 food ready, 10 delivered), cancel_reason, prep/delivery times, rider details and is_modified. Petpooja also pushes the full menu to an integrator endpoint after every change and calls integrator-hosted item-stock endpoints. Shortfalls: the callback request's documented attribute list contains no signature, HMAC, token or app_key field, so there is no payload verification (the app_key/app_secret/access_token triple appears only on inbound calls TO Petpooja); no retry, backoff or delivery-guarantee behaviour is stated anywhere in the document; the events are order-lifecycle only, with no payment events (payment appears solely as a payment_type string on the inbound order); and access is scoped to registered integration partners - 'Credentials for both staging and production environment will be provided by petpooja team' - not to any merchant with an endpoint. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
Unknown

API and raw-data access are included in the standard subscription rather than gated behind an additional per-location fee, revenue share, or enterprise-only contract. differentiator

reporting-api-not-upcharged

Re-checked with the primary source this time rather than the third-party listing. The Petpooja Online Ordering API blueprint (onlineorderingapisv210.docs.apiary.io/api-description-document) says only 'Access to developer account of staging/production: https://developerapi.petpooja.com/. Credentials for both staging and production environment will be provided by petpooja team' - no price, no plan requirement, no revenue share, and developerapi.petpooja.com returns 403 without credentials. The vendor plan matrix at www.petpooja.com/poss/pricing lists no API or integration line item at Basic, Core, Growth or Scale; API access appears in neither the included features nor the add-ons list, so the pricing page does not gate it and does not include it either. www.petpooja.com/poss/restaurant-integrations only invites prospective partners to 'contact us'. The earlier refutation stands - API Integration is not Scale-only on the SoftwareSuggest listing - and no first-party statement of API packaging or cost exists, so unknown. || 325th: MERGE HOLD (proposed no/C, held unknown): a plan matrix that does not mention the API shows neither that API access is included nor that it is charged; the claim is not settled by that silence. PROPOSAL AS WRITTEN: CLAIM: API and raw-data access are included in the standard subscription rather than gated behind an extra fee, revenue share or enterprise-only contract. VERDICT: no — API access is not part of any published plan; it is reached by becoming an integration partner. EVIDENCE: www.petpooja.com/poss/pricing publishes a complete three-plan matrix — Core, Growth, Scale at $50/$95/$135 per outlet per month billed annually and $65/$115/$150 monthly (the figures sit inside HTML comments, so a comment-stripping reader would miss them). The included list is closed: Cloud Billing, Inventory Module, 80+ Reports, In-built CRM, Menu management, Unlimited terminals & user rights, Central kitchen module, Multi-terminal billing; add-ons Kitchen display system, Captain ordering app, Restaurant website, Petpooja loyalty, Token Management System, Feedback App / QR, OOW (Website), QR Ordering / Digital menu; advanced features Dynamic reports; support On-call/ On-chat, Dedicated POC. No API, developer, integration or data-export line appears in any plan. Access is negotiated: "Become our integration partner | Connect with us to integrate your service with Petpooja POS" (www.petpooja.com/poss/restaurant-integrations), and the marketplace page counts "150+ third-party integrations" without publishing terms for any of them. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "API access" 0, "API fee" 0. POISON NAMED: "revenue share" 5 hits, none about API pricing — the reseller programme ("Enjoy 25% revenue share on gross sales, for your first 50 clients", www.petpooja.com/southafrica-reseller) and market-size statistics. Retrieved 2026-09-17. adversarially verified

F
Partial

Core reporting beyond basic sales summaries — labor vs sales, PMIX, comps/voids audit, multi-location comparison — is available on the entry-level paid plan rather than requiring a higher tier or an add-on analytics SKU. differentiator

reporting-tier-paywall

Re-reading the vendor's own tier matrix refutes the unqualified yes: "80+ Reports" and in-built CRM do sit on Core, but "Dynamic reports" is a Scale-tier-only row, and the Inventory Module and Menu management start at Growth - so stock, COGS and menu-driven reporting are not on the entry plan. Shortfall: Petpooja publishes no report catalogue, so whether the Core "80+" set includes PMIX, labour-vs-sales, a comps/voids audit or multi-outlet comparison is undocumented, and the top of that range is explicitly paywalled. https://petpooja.com/poss/pricing · retrieved 2026-08-02 adversarially verified

C
Partial

Documents a historical retention window of at least 24 months of transaction-level detail queryable in the reporting UI, with no silent truncation or archive retrieval fee. differentiator

reporting-history-retention

The Dynamic Reports FAQ answers 'What is the time range to know my data in dynamic reports?' with 'you can view your business data going back decades as long as it has been recorded in the system' - an assertion of no retention limit that comfortably exceeds 24 months if taken at face value. Shortfalls: it is a marketing FAQ for a priced add-on (Dynamic Reports is listed under 'Advanced features' on www.petpooja.com/poss/pricing and under Add-ons/ANALYTICS on this page and the marketplace), not a documented retention policy; it says nothing about transaction-level granularity as opposed to aggregates; and no retention window, truncation behaviour or archive-retrieval fee is stated for the standard 80+ report set that Core, Growth and Scale subscribers get without the add-on. https://www.petpooja.com/poss/restaurant-analytics-insights · retrieved 2026-08-06

C
Partial

Sends proactive push or email alerts when an operator-configured metric breaches a threshold or deviates from its historical pattern (e.g. void spike, sales below forecast, discount rate anomaly). differentiator

reporting-anomaly-alerts

Automated report alerts and low-stock alerts exist. Operator-configured metric thresholds or deviation-from-pattern alerting is not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Partial

Offers a natural-language query or AI assistant that answers ad-hoc questions against the operator's own sales and labor data and returns a figure or chart, not a generic help-article response.

reporting-nl-query

Vendor blog post (WP id 46438, modified 2026-07-29) describing Petpooja's own feature, which supersedes the prior rationale's reliance on the older purchasing-AI post's 'not a chatbot' line. ESTABLISHED: a plain-English assistant built into the POSS dashboard that answers ad-hoc questions from the tenant's own data and returns the figure: 'Ask Me Anything is a restaurant AI assistant built into Petpooja POSS.'; 'Ask Me Anything skips those steps and replies with the number.'; 'You ask in plain English; it answers from your own Petpooja outlet data' (a single list item); example questions include 'Get me an item-wise profit and loss for last week.' and a sales-by-hour question. SHORTFALLS: (1) labour data is not established -- the only staff-related example is a biller-performance (sales-side) question, and nothing says it reads attendance or payroll data; (2) a chart response is not described, only numbers and breakdowns; (3) scope is limited to one POS type: 'Ask Me Anything is available on Petpooja's Electron POS.' (it states no plan-tier restriction, but Lite/Android/Local are not named). Grade C: first-party blog marketing its own feature, not a help article. https://blog.petpooja.com/operations-workflows/restaurant-ai-assistant-ask-me-anything/ · retrieved 2026-09-12

C
Partial

Reports guest-level analytics including new versus returning guest counts, visit frequency, and lifetime spend cohorts tied to identifiable guest records from loyalty or online ordering. differentiator

reporting-guest-cohorts

CRM tracks purchase history and supports 100+ customer labels. New-versus-returning counts, frequency and lifetime-spend cohorts are not documented as computed reports. https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-01

D
Unknown

Produces a forward sales forecast at daypart or hourly granularity from the location's own history, exposed in the reporting UI and consumable by scheduling or ordering workflows. differentiator

reporting-sales-forecast

blog.petpooja.com/operations-workflows/ai-sales-forecasting-restaurants-guide/ looks like a hit but is not one: it describes the category ('it is not a separate app you buy; it usually sits inside the POS or restaurant software you already run'), never says Petpooja provides it, and its only Petpooja reference is that restaurants 'on Petpooja' who plan against a forecast waste less. The vendor's own AI inventory - blog.petpooja.com/procurement-cost-control/petpooja-ai-features-help-restaurants-decide-better/ - lists Best Match, live price comparison, invoice scanning and stock sync, all backward- or present-looking, and frames the P&L and food-cost outputs as reports. www.petpooja.com/poss/reports-and-analytics and /poss/restaurant-analytics-insights describe historical dashboards and customisable report building with no projection. No forward-looking report is named anywhere, but the 80+ POSS report catalogue is unpublished and there is no help centre, so unresolved. || 325th: MERGE HOLD (proposed partial/C, held unknown): one marketing sentence claims AI demand forecasting while the vendor own forecasting explainer positions the product only as the data source; self-contradicting grade-C copy cannot carry a partial on a differentiator. PROPOSAL AS WRITTEN: CLAIM: produces a forward sales forecast at daypart or hourly granularity from the location's own history, exposed in the reporting UI and consumable by scheduling or ordering workflows. VERDICT: partial. SHORTFALL: the vendor claims demand forecasting as a shipped AI capability feeding prep, but publishes no granularity, no reporting-UI location and no scheduling hand-off — and a differentiator yes needs grade A or B, which a marketing claim is not. EVIDENCE: "Petpooja POSS covers all four layers on one platform, with AI running underneath it: demand forecasting that sets your prep numbers, invoice scanning that reads a photo instead of asking you to type, and payout matching that flags a short settlement before you notice it." Petpooja's own forecasting explainer, by contrast, is generic and positions the product only as the data source: "That is the foundation a platform like Petpooja POSS provides" (blog.petpooja.com/operations-workflows/ai-sales-forecasting-restaurants-guide/). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "forecast*" is frequent but almost entirely category education; "hourly forecast" 0. POISON NAMED: "daypart*" 8 hits, every one the Digital Display System rotating menu-board CONTENT by daypart, not a sales forecast (blog.petpooja.com/industry-business-guides/manage-digital-menu-boards-across-multiple-locations/). Retrieved 2026-09-17. || 332nd: 332nd NEW SURFACE: the "Dynamic Reports" tutorial transcript (bSaid-RT_fM; lead named in the 331st) describes a customisable dashboard of charts to "check the performance daily, weekly, monthly, or yearly, or even in the festival days, and also compare performance across outlets and brands". Everything described looks backward, with no projection. The only prediction in the 198-transcript channel census is raw-material stock cover ("Inventory Dashboard" Dc8_zmBpIAE: "our ml models will predict that for you on the basis of your past consumption" how many days the stock lasts) and the purchase-planning USP (jJRADeqLpuA). Neither is a sales forecast by daypart or hour. "forecast*" 1 (the inventory introduction, generic). Retrieved 2026-09-18. adversarially verified

F
No

Generates payroll- and tax-ready tip reporting: declared versus charged tips per employee, tip pool distribution detail, and a tax liability summary by jurisdiction.

reporting-tip-tax-compliance

CLAIM: payroll/tax-ready tip reporting — declared vs charged tips per employee, pool distribution detail, tax liability summary by jurisdiction. VERDICT: no. EVIDENCE: the pool-distribution leg is absent by the vendor's own statement ("Petpooja POSS does not split a tip pool for you"), and the same page states the Indian tax position that takes tips out of payroll altogether: "Because tips are not salary, they sit outside net salary and outside the payslip", "No TDS on tips as salary" (ITC Ltd v CIT). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "declared tip*" 0, "charged tip*" 0, "tip report*" 0. Retrieved 2026-09-17. https://blog.petpooja.com/glossary/tip-management/ · retrieved 2026-09-17 adversarially verified

C

Multi-location, franchise & enterprise governance

Yes

Supports a named organizational hierarchy of at least three levels (e.g. enterprise > region/group > location) as a first-class object that reporting and permissions can be scoped to, not just a flat list of locations.

multi-location-org-hierarchy

Head-office module with city-wise and zone-wise groupings above individual outlets gives at least three scoped levels for reporting. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Partial

A corporate-level menu can be authored once and published to a chosen set of locations in a single action, with a publish/version history showing what was pushed, when, and by whom.

multi-location-central-menu-publish

'Update the entire menu of your restaurant in just one single click' plus head-office oversight. Targeted multi-outlet publish with version history is not documented. https://petpooja.com/poss/restaurant-menu-management-software · retrieved 2026-08-01

D
Partial

Corporate menu items expose per-field override rules so a location can change some attributes (e.g. price, availability) while corporate locks others (e.g. name, image, recipe), and locked fields are not editable at store level. differentiator

multi-location-local-override-policy

"A POS built for multiple outlets lets you set item availability and price per outlet or per channel, from one dashboard... Head office stays in control, and each manager only sees what applies to their branch", with the worked example of one brand keeping a chicken biryani at two different prices in two outlets. The menu-management guide adds that outlets "inherit" a master menu "with room to override where local prices differ". Shortfall: only price and availability are named as overridable; Petpooja documents no per-field override rule set, no lock on name/image/recipe, and no statement that a locked corporate field is greyed out or rejected at store level. The multi-outlet guide treats this as an operating policy the owner must decide ("Decide what stays local... work out what head office owns and what an outlet may change"), not as a configurable permission. https://blog.petpooja.com/industry-business-guides/pos-features-for-menu-management/ · retrieved 2026-08-06

C
Partial

Supports price tiers/zones so one menu item carries different prices per location group, per order channel, and per daypart without duplicating the item record.

multi-location-price-zones

Distinct menus and prices per dine-in area and per aggregator platform. Location-group price tiers on a single item record are not documented. https://petpooja.com/poss/restaurant-menu-management-software · retrieved 2026-08-01

D
Unknown

Menu, price, and promo changes can be scheduled to activate at a future date/time interpreted in each target location's own timezone, and can be rolled back after activation. differentiator

multi-location-scheduled-publish

Checked the two first-party menu guides on blog.petpooja.com (pos-features-for-menu-management, restaurant-menu-management-software-guide), the multi-outlet menu push guide, and www.petpooja.com/poss/restaurant-menu-management-software. What is documented is recurring time-based menus ("the item appears and disappears on schedule" for breakfast/happy-hour windows) and a head-office push that is triggered when the operator clicks it; the vendor's own worked example of a Diwali card is "prepare the new card in advance and push it to every outlet on the morning of the festival, in one action", i.e. a manual same-day push rather than a future-dated activation. No page states that a push can be dated forward, that activation is interpreted in each outlet's local timezone, or that an activated push can be rolled back - the push log is described only as a status/history screen. Unresolved because the vendor publishes no admin documentation for the head-office push dialog itself (support./help./kb.petpooja.com do not exist).

F
Unknown

A new location can be provisioned by cloning a documented configuration template (menu, taxes, roles, printers, modifiers, tenders) rather than being configured from scratch, and the vendor publishes the expected time-to-open. differentiator

multi-location-new-store-template

Checked blog.petpooja.com/industry-business-guides/run-multiple-outlets-one-pos-local-system ("When a new outlet comes on, the Petpooja team maps it to your setup and connects it"), the POS Local hardware/setup guide (a 4-step install performed by Petpooja staff), the POS-types comparison (items and history carry across when you change POS TYPE, which is not the same as cloning an outlet), and the large-chain vertical page. None describes cloning a source outlet's menu, taxes, roles, printers, modifiers or tenders into a new one, and none publishes an expected time-to-open; the vendor's only speed statement is in a payroll article ("live in minutes") about attendance devices, not POS configuration. Note that outlet-to-outlet item copy IS attributed in Petpooja's own comparison article to a competitor (eZee), not to Petpooja. Unresolved because outlet provisioning is a Petpooja-performed onboarding service with no published runbook. || 332nd: 332nd: over the 198-transcript tutorial census, "clone*" 4 hits, all POISON: "print clone" means extra printed copies (Printer Management). "template*" 14 hits: email templates (inventory) and Attendo rights templates, none an outlet configuration template. "new outlet" 1, not about provisioning. No outlet-cloning tutorial exists on the channel. Retrieved 2026-09-18. adversarially verified

F
Partial

The permission model distinguishes a franchisor/corporate tenant from an independently-owned franchisee tenant, so corporate can see franchisee sales and enforce config while the franchisee owns its own employees, banking, and labor data. differentiator

multi-location-corp-vs-franchisee-roles

"The franchisor's HR head needs to see attendance, salary processing status, and compliance deadlines for every outlet from a single login. But the Jaipur franchisee should only see Jaipur's data. Petpooja Payroll is built around this exact model: a head-office view of all branches with role-based access at the franchise level." The article also models COCO/FOCO/FOFO employer split. On the POS side the large-chain page offers a head-office dashboard over all outlets plus "outlet-wise staff rights". Shortfall: the franchisor/franchisee split is documented in the separate Petpooja Payroll product, not in the POS permission model; the POS side is outlet-scoped user rights inside one account, and nothing states that a franchisee is a distinct tenant owning its own banking/settlement and labour data while corporate enforces config. Grade C throughout - vendor blog and vertical pages, no admin guide. https://blog.petpooja.com/people-payroll/franchise-payroll-businesses-india/ · retrieved 2026-08-06

C
Unknown

Calculates franchise royalty, ad-fund, and marketing-fee amounts automatically from POS net sales on a defined schedule, with a configurable royalty basis (gross vs net of discounts/comps/third-party). differentiator

multi-location-royalty-calculation

Checked www.petpooja.com/poss/large-chain-restaurant-pos-software, which enumerates the head-office module as centralised menu management, centralised monitoring with outlet zones, ERP integration/data lake, central kitchen and multi-outlet reporting - no royalty, ad-fund or franchise-fee line. Also searched blog.petpooja.com via its WordPress search API for "royalty" and "franchisee": the hits are franchise-investment and conclave articles (expansion checklists, investor guides), none describing a Petpooja royalty engine, and the franchise payroll guide covers wages rather than franchise fees. Unresolved rather than absent: a vertical overview page is not an exhaustive module enumeration, and Petpooja publishes no head-office admin documentation. || 325th: MERGE HOLD (proposed no/C, held unknown): a blog listicle of seven chain features is not a closed product enumeration. PROPOSAL AS WRITTEN: CLAIM: calculates franchise royalty, ad-fund and marketing-fee amounts automatically from POS net sales on a defined schedule, with a configurable royalty basis. VERDICT: no. EVIDENCE: The vendor publishes a closed feature list for chains — "POS Features To Efficiently Manage Large Chain Outlets": 1 Centralized Monitoring, 2 Central Kitchen Management, 3 Purchase Order Management, 4 Online Ordering Reconciliation, 5 Dynamic Reports, 6 Loyalty Wallet, 7 Centralised Aggregator Menu Management (https://blog.petpooja.com/growth-scaling/petpooja-pos-features-that-simplify-large-chain-management/). Nothing computes a fee from net sales; the franchise-facing capability is access control and zoning ("the chain owner can regulate the amount of access that is to be provided to the outlet/ franchise owner", "creating zone-wise outlet distribution"). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. POISON NAMED: "royalt*" 49 hits, all irrelevant — franchising advice aimed at brand owners ("you earn a royalty share per outlet instead of keeping all the profit") and IP boilerplate in three Terms documents ("royalty-free, and sub-licensable license"). "franchis*" 972 hits, none naming a royalty calculation feature; "ad fund" 0, "royalty basis" 0; "marketing fee" 1 hit, POISON — generic franchise-buyer advice ("It can include royalties on sales, marketing fees, inventory expenses", blog.petpooja.com/growth-scaling/pros-cons-of-a-restaurant-franchise/). Retrieved 2026-09-17. || 332nd: 332nd NEW SURFACE: transcript of the tutorial "Petpooja | Outlet Type (Configuration)" (WK8iWms66co; lead named in the 331st). Franchise ownership is modelled: "the four types being company owned company operated, franchise owned franchisee operated, company owned franchisee operated and franchisee-owned company operated. These four types have different operational settings", set under All Outlets > Inventory > Outlet type in the owner's dashboard. It is an INVENTORY setting, and no fee, royalty or ad-fund computation is described. The "Petpooja Outlet Types" tutorial (3QG_WZy4xRg) names only outlet, central kitchen, head office and zone. Over the 198-transcript channel census, "royalt*" 0 and "commission" 1 (an expense example in the Monthly Earnings report). Still not a closed module enumeration. Retrieved 2026-09-18. adversarially verified

F
Unknown

Supports automated ACH/debit collection of calculated royalties and fees from franchisee accounts, with a franchisee-visible statement of what was charged.

multi-location-royalty-collection

Checked the large-chain head-office page, the pricing page (which bills the operator per outlet and lists no franchisee-billing service), the marketplace add-on catalogue at /poss/restaurant-app-marketplace (11 first-party services: wireless calling device, kiosk, scan-and-order, purchase manager, digital display, captain app, KDS, token management, table reservation, website, loyalty wallet, SMS, feedback, reconciliation, dynamic reports - none financial-collection), and blog searches for "royalty" and "franchisee". Petpooja Pay+ is described only as a payment/reconciliation layer for guest payments, not for inter-company collection. Nothing states that fees are debited from franchisee accounts or that a franchisee-visible statement exists. Unresolved: an add-on directory is not an exhaustive enumeration. || 325th: MERGE HOLD (proposed no/C, held unknown): a blog listicle of seven chain features is not a closed product enumeration. PROPOSAL AS WRITTEN: CLAIM: automated ACH/debit collection of calculated royalties and fees from franchisee accounts, with a franchisee-visible statement. VERDICT: no — there is no calculated royalty to collect and no collection rail. EVIDENCE: The vendor publishes a closed feature list for chains — "POS Features To Efficiently Manage Large Chain Outlets": 1 Centralized Monitoring, 2 Central Kitchen Management, 3 Purchase Order Management, 4 Online Ordering Reconciliation, 5 Dynamic Reports, 6 Loyalty Wallet, 7 Centralised Aggregator Menu Management (https://blog.petpooja.com/growth-scaling/petpooja-pos-features-that-simplify-large-chain-management/). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "ACH" 0, "NACH" 0, "direct debit" 0, "franchisee statement" 0. POISON NAMED: "e-mandate" 5 and "auto-debit" 6 are NOT zero and none is a royalty rail — every hit is accounting-glossary education (blog.petpooja.com/glossary/recurring-invoice/ "Recurring Invoice vs Auto-Debit... RBI e-mandate rules and the bank", glossary/one-time-payment/, and bank-reconciliation posts). The only money-out rail the vendor publishes is its own subscription billing and an HDFC current-account application inside Petpooja Finance. Retrieved 2026-09-17. adversarially verified

F
Yes

Provides above-store reporting that aggregates sales, labor, discounts, voids, and item mix across any selected set of locations in one view, with store-vs-store ranking and variance flags.

multi-location-consolidated-reporting

Head-office module aggregates data from all outlets on a single dashboard with city and zone groupings, including inventory consumption and procurement expense. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Unknown

Item-level sales roll up across locations under a shared corporate item ID even when stores have renamed or locally priced the item. differentiator

multi-location-normalized-item-rollup

Checked the large-chain page ("Download outlet-wise reports on sales, inventory, online orders, staff performance" - outlet-wise, not consolidated by item), the multi-outlet menu guide, and the POS Local dashboard report list (Day End Summary, Item Report, Order Master, Executive Sales - drawn from one shared database but not described as normalising renamed items). The Online Ordering API blueprint at jsapi.apiary.io/apis/onlineorderingapisv210.apib exposes item ids only inside a single restID's menu payload, so it gives no evidence of a cross-outlet corporate item key. The vendor's own multi-outlet guide describes local renaming as menu DRIFT that breaks the item master rather than as something reporting normalises. Unresolved: no reporting schema or head-office admin doc is published.

F
Partial

Gift cards issued at one location are redeemable at any other location in the brand, with a reported outstanding-liability balance and inter-store settlement/redemption reconciliation between owners.

multi-location-cross-location-giftcard

Liability reporting is documented: "Read the Gift Card Transaction Report in week one. It gives a running summary of every balance issued and redeemed", and "outstanding balances carry into year-end reports as a liability until they expire". Cross-outlet redemption is explicitly NOT guaranteed - FAQ 4, "Can a gift card be used across all outlets of a chain? This depends on how your outlets are set up, so confirm it with your account manager... If you want one balance that travels across several counters, a virtual wallet is built for that." Further shortfalls: gift cards are listed as available on Electron POS only, and no inter-store settlement or redemption reconciliation between separate owners is described anywhere. https://blog.petpooja.com/growth-scaling/restaurant-gift-cards-how-to-run-programme-from-pos/ · retrieved 2026-08-06

C
Partial

A single customer loyalty profile, balance, and stored order history is shared across all locations in the brand rather than being per-location.

multi-location-cross-location-loyalty

"Card top-up and a Virtual Wallet let a diner or employee load a balance once and spend it at any counter... Every order at any counter deducts from that balance", with all counters running under one account and a wallet/credit report available centrally; the loyalty add-on page adds "Monitor all your customer wallets and their points on a single dashboard", and the CRM page says customer data from online, captain, website and in-house orders lands in "one data pool". Shortfall: the shared balance is documented for counters inside a single food-court/canteen account, not for separate outlets of a chain - Petpooja's gift-card guide says whether one balance works across all outlets "depends on how your outlets are set up, so confirm it with your account manager". Order history and profile sharing across outlets is not stated, and Petpooja Loyalty is listed as unavailable on the POS Local build. https://blog.petpooja.com/industry-business-guides/food-court-canteen-pos-multi-counter-billing/ · retrieved 2026-08-06

C
Partial

A single location/terminal can operate two or more distinct brands or virtual brands with separate menus, receipts/branding, and separately reportable revenue, on the same hardware and drawer. differentiator

multi-location-multi-brand

"Virtual Brand Management - Smoothly manage multiple cloud kitchen brands within the same setup segregated by different tabs. Handle all orders for all brands across aggregators on one POS software, at no extra charge." The POS-types guide lists "brand grouping" as an Electron POS capability for a cloud kitchen running several brands, and the kiosk page describes food-court multi-brand routing so "one brand's order never lands in another brand's KOT printer". Shortfall: the evidence is vertical marketing copy (grade D), and it covers brand segregation of incoming aggregator orders and kitchen routing only - no documentation of separate per-brand menus in the dine-in biller, per-brand receipt/branding, per-brand revenue reporting, or shared-drawer handling. A differentiator yes would need grade A/B, and Petpooja publishes no admin guide. https://www.petpooja.com/poss/cloud-kitchen-pos-software · retrieved 2026-08-06

D
Partial

Tax configuration is per-location with support for multiple simultaneous tax rates, jurisdiction-specific rules (e.g. prepared-food vs grocery, inclusive vs exclusive tax), and per-location tax exemptions.

multi-location-multi-tax-jurisdiction

Taxes configurable per service type, dine-in area and 'regional norms', with GST handling. Per-location exemptions and inclusive/exclusive rules across jurisdictions are not documented. https://petpooja.com/poss/restaurant-billing-software · retrieved 2026-08-01

D
Partial

Produces an immutable audit log of who changed which configuration object (price, tax, permission, discount) at which location and when, exportable or queryable by corporate. differentiator

multi-location-config-audit-log

The push log is "a screen showing the outlets a change affected, the parts of the menu that went out, how far each one got, and a record of every push", which the vendor says to "read as an audit trail" and which settles disputes with a franchise partner about a price they claim never arrived. Separately, POS Local "records every change made to an order after it is placed, from an edited amount to a removed item or a deleted bill, across all your outlets", paired with User Management so "activity ties back to a named account". Shortfall: the order-edit log is transactional, not configuration; the menu push log records what went where but no page states it records WHICH USER pushed, and it covers menu/price pushes only - not tax, permission or discount objects. No immutability guarantee and no export/query interface is documented. https://blog.petpooja.com/industry-business-guides/multi-outlet-menu-management-update-every-outlet/ · retrieved 2026-08-06

C
Partial

Publishes a documented multi-location API (or data warehouse/BI export) that returns transaction-level data across all locations in one authenticated call, without per-location credentials. differentiator

multi-location-enterprise-api

Large-chain page: "Push all your sales, inventory and customer data directly to your ERP management software. Get access to a data lake enabling integration with any ERP like Dynamic NAV, Tally, SAP, etc." - a cross-outlet export offer, but with no published spec, schema or endpoint. The one API Petpooja does publish, the Online Ordering v2.1.0 blueprint (raw source at jsapi.apiary.io/apis/onlineorderingapisv210.apib, rendered at onlineorderingapisv210.docs.apiary.io), is the opposite shape: 10 endpoints (Push Menu, Fetch Menu, Save Order, order callback, order status, rider webhook, item stock on/off, get/update store status), every one scoped to a single "restID (required) - Unique restaurant mapping id" with app_key/app_secret/access_token issued per mapped restaurant. It returns no transaction-level sales data and has no account-level or multi-outlet authentication. So: cross-location data movement is claimed at marketing level, and the documented API is per-location-credentialed and order-oriented. https://www.petpooja.com/poss/large-chain-restaurant-pos-software · retrieved 2026-08-06

C
Partial

Labor rules (overtime, break enforcement, predictive-scheduling compliance) are configurable per location or location group and enforced at the terminal, not just reported after the fact.

multi-location-central-labor-policy

"When you open a new branch in Karnataka after running five outlets in Gujarat, the system should let you configure Karnataka's minimum wages, PT slab, and overtime rules in one setup... One-time configuration, applied from the first payroll run", plus "Shift scheduling that respects local labour law" for split shifts, overtime caps and weekly-off calculations that "differ by state under the local Shops & Establishments Act", and statutory deductions computed on the employee's work state. Shortfall: this is the separate Petpooja Payroll product, not the POS; attendance is captured on Petpooja's face-scanner/biometric device and rules are applied when payroll is processed. Nothing documents enforcement at the terminal - no blocked clock-in, no break-violation prompt, no predictive-scheduling notice at the POS - so the claim's "enforced at the terminal, not just reported after the fact" half is unmet. https://blog.petpooja.com/people-payroll/franchise-payroll-businesses-india/ · retrieved 2026-08-06

C

Hardware & physical footprint

Partial

The POS software runs on commodity off-the-shelf hardware (standard iPads, Android tablets, or PCs) that the operator can buy from a third party, rather than only on vendor-supplied proprietary terminals. differentiator

hardware-commodity-devices

Petpooja sells no proprietary terminal and its own setup guide describes operator-owned commodity kit, but it is specific and demanding: "You need 1 dedicated computer with an Intel i5 or i7 processor, an SSD, and a UPS", "1 TB SSD (an SSD is required; a regular hard disk is not supported for production use)", "A desktop CPU is preferred over a laptop". Shortfall: the POS Local deployment needs a dedicated spec'd desktop rather than any device on hand, Petpooja GO ships on a vendor-supplied Paytm device, and no first-party compatibility list exists. Evidence is a vendor blog post, not product documentation. https://blog.petpooja.com/industry-business-guides/petpooja-pos-local-hardware-setup-guide/ · retrieved 2026-08-02 adversarially verified

D
Partial

Vendor documentation names the specific client operating systems supported (iOS/iPadOS, Android, Windows, Linux/web) and states minimum OS versions and device specs.

hardware-os-platforms

Windows and Android are named for POS and KDS; Captain app is Android. Minimum OS versions and device specifications are not published. https://petpooja.com/poss/kitchen-display-system · retrieved 2026-08-01

D
No

Offers a purpose-built handheld ordering device with an integrated card reader (not a phone case add-on), with published drop rating and IP ingress rating.

hardware-handheld-purpose-built

Petpooja documents the alternative rather than a device. The Captain Ordering App is 'Configured to work on any android phone', and the UAE POS page's hardware FAQ says 'Petpooja runs on Android POS terminals, tablets, receipt printers, and kitchen display screens.' and 'Hardware is sourced via our partners' (www.petpooja.com/ae/poss). No page presents a Petpooja purpose-built ordering handheld with an integrated card reader. Tableside card settlement is described only alongside partner EDC card machines ('Captains taking orders tableside can settle bills on the spot', in the EDC / Pay+ post). No drop or ingress rating is published for any ordering device. Over 947 vendor documents, tokenised: `handheld` 11 hits in 5 docs (generic hardware-guide prose), `rugged` 2 and `IP65` 1 (both third-party biometric attendance devices), `Sunmi` 0. Grade C: a vendor product page. https://www.petpooja.com/poss/captain-ordering-app · retrieved 2026-09-12

C
No

The handheld supports hot-swappable or field-replaceable batteries, or the vendor publishes a rated battery life for a full shift. differentiator

hardware-handheld-battery-swap

The Captain Ordering App is "Configured to work on any android phone", and its FAQ: "You can run the captain app on multiple android-based tabs and mobile phones!" The wireless-calling-device page repeats that captain alerts arrive on "any Android tablet your captains already use", and the POS-types comparison lists the Captain App as software available on Local and Electron builds with no Petpooja-branded handheld SKU. Petpooja's own hardware catalogue on /poss/restaurant-app-marketplace sells a wireless calling device, a kiosk and (under Payroll) a face scanner - no server handheld. With the handheld being customer-supplied consumer Android, Petpooja neither offers a field-replaceable battery nor publishes any shift battery rating; note that it DOES publish a battery figure for the one handheld device it does sell, the wireless calling device ("15 to 20 days"), which shows the absence here is not merely an unpublished spec. https://www.petpooja.com/poss/captain-ordering-app · retrieved 2026-08-06

C
Partial

Handhelds support cellular/LTE connectivity as a documented fallback when store Wi-Fi drops, either built into the device or via a vendor-supplied failover.

hardware-handheld-lte

CLAIM: handhelds support cellular/LTE connectivity as a documented fallback when store Wi-Fi drops, built into the device or via a vendor-supplied failover. VERDICT: partial (moved from unknown), grade C. EVIDENCE: the vendor's own product clip "Smart, Handy & Quick android restaurant POS by Petpooja" (main channel, uploaded 2022-10-20, 59 s; https://www.youtube.com/watch?v=21Q_elB99Fg) sells a VENDOR-SUPPLIED handheld: "Presenting to you this unbeatable combo offer of Android POS hardware plus Pet Pooja subscription now at just INR 18,000 per year ... Plus, you can carry it anywhere in the restaurant. Its core features include built-in printer, one-year warranty, durable and sturdy body, nano SIM slot, mobile data plus Wi-Fi connection" (local faster-whisper transcript, [34s]-[37s]). The 1080p frames at 42-50 s show a SIM card being inserted into the handheld and two captioned icons, "Mobile data" and "Wi-Fi" (frames .cache/q334/petpooja/v/fr/21Q/). So the "built into the device" half is met on hardware Petpooja itself sells, which the prior note (captain handheld = the operator's own phone) did not have. SHORTFALL: nothing says the device FAILS OVER to cellular when Wi-Fi drops (automatic or documented), and the source is a 2022 marketing clip (C), so partial, not yes. Also, the POS Local build routes captain devices over the outlet LAN (prior note), a path cellular would not serve; this device runs the cloud Android POS. SURFACE (334th, new): Petpooja's MAIN YouTube uploads (the 222 videos the 332nd/333rd never transcribed; channel "Petpooja - #1 Software for SMEs", UCuqfPCWgldJU7Uw-On-vWXQ). YouTube captions were IpBlocked, so AUDIO was downloaded with yt-dlp and transcribed locally with faster-whisper large-v3-turbo (GPU): 178 of 188 short uploads (<=200 s or undated shorts; 4 are "not available", 6 refused the audio download with HTTP 403) = 134 with speech, plus 3 of 34 long webinars (xgPVk13wrdI, gcc4kkHCKd8, OGzgt4XY0dw; third-party consultants, grade D at best). Hindi/Gujarati/Indonesian tracks read in the original script. Transcripts: .cache/q334/petpooja/v/asr/. Retrieved 2026-09-18. https://www.youtube.com/watch?v=21Q_elB99Fg · retrieved 2026-09-18 adversarially verified

C
Partial

Terminals continue to take orders, print to kitchen, and record cash sales with the internet down, and the vendor documents explicitly which functions degrade (card auth, loyalty lookup, refunds).

hardware-offline-mode

Offline billing since 2017 plus a 'Local POSS' SKU storing data on the local device. No published matrix of which functions degrade offline. https://petpooja.com/poss/restaurant-billing-software · retrieved 2026-08-01

D
Partial

Sells or supports a dedicated kitchen display system with bump-bar or touch input, station routing, and course/fire timing, as a first-party product rather than an integration-only dependency.

hardware-kds

Petpooja's own pricing page lists "Kitchen display system" in the Add-ons block, not the included-features block (Cloud Billing, 80+ Reports, in-built CRM, unlimited terminals/user rights, central kitchen module, multi-terminal billing, on-call/on-chat support). It is a first-party but separately-purchased module at unpublished price. A flat "yes" reads as bundled KDS. https://petpooja.com/poss/pricing · retrieved 2026-08-01 adversarially verified

C
Partial

Offers a self-order kiosk running the same menu and modifier engine as the POS, in both countertop and freestanding form factors, with integrated payment and accessibility (ADA) compliance documented. differentiator

hardware-kiosk

Wall-mount and floor-mount kiosks at 22/27/32 inches with built-in thermal printer and UPI/card payment, via Addsoft and Posbank. No ADA documentation. https://petpooja.com/poss/self-service-kiosk · retrieved 2026-08-01

D
No

Supports drive-thru-specific hardware: outdoor digital menu boards, order confirmation displays, and speaker/headset integration, with a documented timer/speed-of-service measurement.

hardware-drive-thru

CLAIM: drive-thru hardware — outdoor digital menu boards, order confirmation displays, speaker/headset integration — with a documented timer/speed-of-service measurement. VERDICT: no. EVIDENCE: Petpooja's Digital Display System is published as indoor menu boards only ("Turn the TVs in your outlet into digital menu boards", Android TV v7.1.1+, www.petpooja.com/poss/restaurant-app-marketplace and blog.petpooja.com/industry-business-guides/digital-display-systems-restaurants-india/); no outdoor board, confirmation display or headset appears in the marketplace enumeration of 11 add-on services. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "drive-thru" 3 + "drive-through" 5 = 8 hits in 995 documents and every one is generic industry prose about the format (fast-casual definitions, a layout guide, a 2019 US takeout statistic, an AI voice-kiosk aside) — none describes a Petpooja capability. "headset" 0, "order confirmation display" 0, "pull forward" 0, "tandem lane" 0. POISON NAMED: "speed of service" 3 hits, all a customer-feedback rating line ("Speed of service | 1 to 5", blog.petpooja.com/operations-workflows/what-to-include-in-a-restaurant-customer-feedback-form/), never a timer. The vendor also publishes a closed outlet-type list (fine dine, QSR, cafe, food court, cloud kitchen, ice cream & desserts, bakery, bar & brewery, pizzeria, large chain) with no drive-thru format in it. Retrieved 2026-09-17. https://www.petpooja.com/poss · retrieved 2026-09-17 adversarially verified

C
Partial

Works with standard ESC/POS thermal receipt and kitchen printers from more than one manufacturer (e.g. Epson and Star), including LAN/Ethernet printers, rather than only vendor-branded printers.

hardware-printer-compatibility

Per-station printer assignment on commodity hardware implies standard thermal printers. No published multi-manufacturer compatibility list. https://petpooja.com/poss/restaurant-billing-software · retrieved 2026-08-01

D
Partial

Supports the standard peripheral set — cash drawers (including multi-drawer per terminal), barcode scanners, scales for by-weight items, and customer-facing displays — with a published compatibility list.

hardware-peripherals

Cash-drawer reporting, thermal printers, wireless calling device and digital display system are supported. Scales, barcode scanners and a published compatibility matrix are not documented. https://petpooja.com/poss/restaurant-app-marketplace · retrieved 2026-08-01

D
Unknown

Card entry happens on a PCI-listed PTS device using validated point-to-point encryption, so the POS application and tablet stay out of PCI scope; the vendor states the merchant's SAQ type.

hardware-p2pe-terminal

Checked www.petpooja.com/security (a vulnerability-disclosure programme with scope and safe-harbour terms - no PCI DSS, PTS or P2PE statement), the pricing page, the marketplace catalogue, and blog.petpooja.com/finance-compliance/card-vs-upi-why-restaurant-payment-reports-never-match, which describes Petpooja Pay+ as "the payment layer inside POSS" that splits card/UPI/wallet/cash tenders and reconciles them against "what the provider actually paid" for "connected terminals and UPI partners" - i.e. Petpooja integrates acquirer-supplied terminals rather than certifying its own. The captain app page mentions single-tap card payments under INR 5000, again over a third-party rail. No page names a PCI-listed PTS device, a validated P2PE solution, or the merchant's SAQ type. Unresolved: Indian acquirer terminals do keep card entry off the POS in practice, but Petpooja makes no scope statement I can cite. || 331st: MERGE HOLD (proposed partial/C, held unknown): 331st merge: card entry on an ACQUIRER's terminal (Paytm, Razorpay, Pine Labs...) with 'the POS acts only as the initiator' is an adjacent arrangement, not a PCI-listed PTS device the vendor names; Pay+ is 'in active pilot' and the source is a blog (grade C). No PTS listing, no P2PE, no SAQ statement: a partial would shortfall every conjunct the claim actually tests. PROPOSAL AS WRITTEN: CLAIM: card entry happens on a PCI-listed PTS device using validated P2PE so the POS application stays out of PCI scope; the vendor states the merchant's SAQ type. VERDICT: partial/C. WHAT IS SATISFIED (vendor-authored, on disk in the 325th blog WP-REST census but never read against this cell): the vendor's own explainer of its payment layer states that card entry happens on a separate acquirer terminal and the POS never touches the card - 'An EDC machine ... is the small card terminal at your restaurant counter. It reads a customer's debit or credit card, sends the payment for approval' and, for Petpooja Pay+, 'The POS only starts the request, and the rest of the payment runs over the internet'; 'The POS acts only as the initiator, while Finance manages the rest of the payment and all partner communication'; terminals come from the merchant's acquirer - 'The live partners you can choose from include Paytm, Razorpay, Pine Labs, Mosambee, and BharatPe'. So the architecture is semi-integrated with card data captured only on the acquirer's terminal. SHORTFALL (named): Petpooja nowhere states that those terminals are PCI-listed PTS devices, that a validated P2PE solution is in use, that the POS is out of PCI scope, or the merchant's SAQ type - anchored controls over the 66-page www corpus, 1,159-document blog corpus, 3 Apiary blueprints, the billing.petpooja.com registry and the merchant APK strings: P2PE 0, SAQ 0, PCI 0 (un-anchored 'PCI' hits are all inside 'NPCI' - poison), 'point-to-point' 0. Pay+ is also described as 'in active pilot', so the cloud-routed flow is not yet general. Grade C: a blog explainer, not product documentation. Retrieved 2026-09-18. || 333rd: MERGE HOLD (proposed no/B, held unknown): The claim tests whether card entry happens on a PCI-listed P2PE device; the proposal itself says the acquirers on Petpooja's payment path (Pine Labs, Paytm, Mosambee) hold the P2PE listings, so card entry may well occur on validated P2PE. Zero Petpooja entries in the register do not establish that card entry is NOT P2PE-protected; the missing SAQ statement is a shortfall, not a `no`. PROPOSAL AS WRITTEN: CLAIM: card entry happens on a PCI-listed PTS device using validated P2PE so the POS and tablet stay out of PCI scope; the vendor states the merchant's SAQ type. VERDICT: no (moved from unknown). ANSWERS THE 331st HOLD ("a partial would shortfall every conjunct") by bounding each conjunct: (1) VENDOR P2PE: the complete PCI SSC P2PE register as re-derived today through the council page's own public listing call (.cache/q332/urbanpiper/a/p2pe-Valid.json 136 solutions + p2pe-Expired.json 59 = the whole register, 2026-09-18): "Petpooja" 0, "Prayosha" (the legal entity, Prayosha Food Services Pvt. Ltd.) 0 in both. The acquirers Petpooja routes card payments to DO hold their own listings (Pine Labs Pvt. Ltd "Plutus P2PE Solution" ref 2024-00680.001; Paytm "All-in-One Payment Suite"; "Mosambee (Mod91 Payment Solutions)"), while Razorpay and BharatPe have none - so whether a Petpooja merchant's card entry is P2PE depends on which acquirer's terminal they rent, and it is the ACQUIRER's product, not the vendor's (331st rule: an acquirer's terminal is not the vendor's PTS device). (2) VENDOR PTS DEVICE: Petpooja sells no card terminal; card entry is on the acquirer's EDC ("The POS acts only as the initiator ... The live partners you can choose from include Paytm, Razorpay, Pine Labs, Mosambee, and BharatPe", blog.petpooja.com/industry-business-guides/petpooja-finance-money-layer-in-pos/). (3) SAQ STATEMENT: none; the vendor's own trust vault (trust.petpooja.com, Scrut tenant registry: SOC 2 Type II, ISO 27001, SOC 1 Type 2 only) and the anchored controls already recorded on this cell over the www + blog publisher census, the 3 Apiary blueprints, the billing.petpooja.com registry and the merchant APK: SAQ 0, P2PE 0, "point-to-point" 0, PCI 0 once NPCI (National Payments Corporation of India) is excluded as poison. Same basis on which the siblings payments-p2pe-pci4 and commercial-pci-p2pe-tokenization landed no/B. Retrieved 2026-09-18. adversarially verified

F
Partial

Supports contactless acceptance directly on a commodity phone or tablet (Tap to Pay on iPhone / Tap to Pay on Android) with no separate reader. differentiator

hardware-tap-to-phone

'Single tap contactless card payments under INR 5000' on the Android Captain device, plus UPI and wallets, with no separate reader described. https://petpooja.com/poss/captain-ordering-app · retrieved 2026-08-01

D
No

Hardware prices are published per SKU on the vendor's public site, rather than quote-only. differentiator

hardware-pricing-transparency

Hardware is quote-only and partner-sourced. The kiosk page shows 'Trusted Hardware Partners' with no price and routes buyers to Book A Demo. Its only currency figures are ROI claims (₹25k+ saved per month on cashier; AED 1,000+ on the UAE page), not prices. The UAE POS page's FAQ says 'Hardware is sourced via our partners' (www.petpooja.com/ae/poss). Sweep over 947 vendor documents with HTML comments stripped: 279 currency figures within 80 characters of a hardware noun, 23 of them within 200 characters of 'Petpooja'. All 23 were read, and all are third-party prices (PALAS 'Rs 54,000'), market ranges, or ROI estimates. The nearest thing to a vendor hardware price is a blog table pricing an attendance bundle, 'Biometric Device & Software Solution (First Year)', at ₹9,000 under the heading 'Typical range*'. Its footnote calls these July 2025 street prices and points to petpooja.com for the current offer. That is a payroll attendance bundle self-described as a street price, not a per-SKU POS hardware price. Grade C: a vendor product page. https://www.petpooja.com/poss/self-service-kiosk · retrieved 2026-09-12

C
Partial

Hardware can be purchased outright (owned) as an alternative to a mandatory lease or subscription-bundled rental, and the vendor states which. differentiator

hardware-ownership-vs-lease

"Is the hardware a one-time cost? Yes, in the main. The computer is a one-time purchase that you own. A cloud plan, by contrast, is a recurring fee for as long as you use it... For most owners, the machine is the main upfront cost, with the software billed as a yearly fee." The billing hardware is merchant-supplied throughout - the POS-types comparison runs the four builds on "any Android phone", "any Android device (7-inch or larger) or all-in-one terminal", and "laptop, desktop or billing terminal" - and www.petpooja.com/poss/pricing quotes software only, per outlet, with no lease or hardware-rental line. Shortfall: this covers hardware the merchant buys for itself. For the hardware Petpooja actually supplies (self-service kiosk, wireless calling device, Payroll face scanner) no page states purchase versus rental terms or a price; the kiosk page only implies purchase via a "4 mo hardware payback" figure, and the payroll bundle advertises "software, hardware, setup all included" in a per-outlet subscription, which points the other way. https://blog.petpooja.com/industry-business-guides/petpooja-pos-local-hardware-setup-guide/ · retrieved 2026-08-06

C
Unknown

Vendor documentation confirms whether hardware purchased from the vendor remains usable with other software after cancellation, i.e. it is not software-locked or remotely bricked. differentiator

hardware-usable-after-churn

Read www.petpooja.com/terms-and-conditions and /cancellation-and-refund-policy end to end: both address subscription fees, refunds, termination and a 2-day post-termination data-download window, with no clause about hardware, device deactivation or return. The POS Local setup guide says the merchant buys and owns the server PC and the POS-types page shows all four builds running on commodity Android/Windows/Mac devices the merchant supplies, which makes software-locking implausible for billing hardware - but that is inference, not a vendor statement, and it does not cover the devices Petpooja does sell (kiosk, wireless calling device, Payroll face scanner), each of which pairs to a Petpooja account. Unresolved: no first-party statement either way exists to cite. || 327th: NEW SURFACE (327th), NOT SETTLED BECAUSE OF PRODUCT SCOPE. The existing note says no vendor statement about hardware exists in the legal set. One does, but in a SIBLING PRODUCT'S agreement: www.petpooja.com/payroll/terms-and-conditions clause 8 states "Services offered by the Company shall be coupled with a Software and Hardware installed at the location of business as instructed by the User/Authorised User. THERE WILL BE NO BUYBACK OF THE HARDWARE after the duration of the Term under this agreement." and "Hardware once installed shall not be shifted to any other place and THE PLATFORM AND THE HARDWARE CANNOT BE SEGREGATED AND USED INDEPENDENTLY." That is a direct statement that the hardware is not usable apart from the platform — but that agreement defines "Services" as "the payroll service ... onboard new employees, track their daily attendance, generate daily/monthly attendance report, payroll calculation along with salary slips", i.e. Petpooja Payroll (Attendo) and its biometric/face device, NOT the POS. Per the 326th merge rule that a sibling product's docs do not bound the store-level POS, this is recorded rather than scored. BOUND: all 66 www.petpooja.com sitemap URLs were re-read; "buyback" occurs exactly once in the whole corpus and it is this clause, and no POS-scoped subscription agreement is published (probed 2026-09-18: /poss/terms-and-conditions, /poss/terms, /pos/terms-and-conditions, /subscription-agreement, /msa, /eula, /merchant-agreement all 404 to the *.petpooja.com catch-all). Retrieved 2026-09-18. || 334th: MERGE HOLD (proposed no/B, held unknown): The Payroll/Attendo terms clause 8 ('the Platform and the Hardware cannot be segregated and used independently', no buyback) was HELD by the 327th on product scope: it governs the Attendo attendance device of a sibling labour product, not POS hardware, and Petpooja's POS hardware is partner-sourced. Same shape, not re-landed. PROPOSAL AS WRITTEN: CLAIM: vendor documentation confirms whether hardware purchased from the vendor remains usable with other software after cancellation, i.e. it is not software-locked. VERDICT: no (moved from unknown). The vendor's own agreement states the opposite of usable. THIS ANSWERS THE 327th SCOPE CONCERN. That note held the Payroll clause because the agreement's Services are the payroll service, not the POS. But this claim is about HARDWARE PURCHASED FROM THE VENDOR, and Petpooja sells no POS hardware of its own: "Hardware is sourced via our partners" (www.petpooja.com/ae/poss); the kiosk page shows "Trusted Hardware Partners" with no price; billing runs on merchant-owned commodity Android/Windows/Mac devices. So the Attendo device is the vendor-sold hardware whose terms are published. Attendo is already treated as Petpooja's own product on this record (4 labour no/B in the 333rd), and hardware-rma-sla partial/C rests on the same device. EVIDENCE: clause 8 of www.petpooja.com/payroll/terms-and-conditions, re-fetched live 2026-09-18 (119,154 bytes): "There will be no buyback of the Hardware after the duration of the Term under this agreement" and "Hardware once installed shall not be shifted to any other place and the Platform and the Hardware cannot be segregated and used independently." BOUND (327th): "buyback" occurs exactly once in the 66-page www census + 1,159 blog documents. No POS-scoped subscription agreement is published: /poss/terms-and-conditions, /poss/terms, /subscription-agreement, /msa, /eula and /merchant-agreement all return 404. SHORTFALL/SCOPE: no Petpooja statement covers partner-sourced POS devices either way. Weakest row of this batch: if the merge keeps the 327th product-scope reading, hold unknown with this note. Retrieved 2026-09-18. adversarially verified

F
Partial

Publishes a hardware warranty term and a replacement/advance-exchange SLA with a stated turnaround (e.g. next-business-day depot swap). differentiator

hardware-rma-sla

"Petpooja Payroll ships its own face-scanner device with a lifetime warranty, so whether the branch is in Vastrapur or Madhapur, every outlet captures attendance the same way." That is a published warranty term. Shortfall: it covers the attendance device in the separate Payroll product only; no warranty term is published for the self-service kiosk, the wireless calling device or any billing hardware, and no replacement or advance-exchange SLA with a stated turnaround (depot swap, next-business-day, on-site window) appears on any page - /poss/support advertises 24x7 multilingual phone and chat support with a named point of contact per outlet, which is a software support commitment, not a hardware RMA. The terms and cancellation pages contain no hardware clauses at all. https://blog.petpooja.com/people-payroll/franchise-payroll-businesses-india/ · retrieved 2026-08-06

C
Partial

Staff can run the ordering or payment app on their own personal phone (BYOD) with a documented permission and security model.

hardware-byod

Captain app runs on any Android phone, making staff BYOD practical. A documented permission and security model for personal devices is absent. https://petpooja.com/poss/captain-ordering-app · retrieved 2026-08-01

D
Unknown

Provides a remote device-management console showing each terminal, printer, and KDS as online/offline, with remote reboot, software-version visibility, and staged rollout of updates. differentiator

hardware-remote-device-management

Checked the POS Local hardware/setup guide and the multi-outlet POS Local guide (the Local Dashboard is described as carrying four sales reports - Day End Summary, Item Report, Order Master, Executive Sales - not device health; installs, static IP changes and outlet mapping are performed by the Petpooja team), the POS-types comparison, the KDS/token/kiosk device pages (the kiosk page promises "continuous software updates" but describes no rollout control), and the marketplace add-on catalogue. The only device-status surface found anywhere is on www.petpooja.com/payroll - "Easily track the status of your biometric device" - which is the attendance device in a different product. Nothing documents an online/offline view of terminals, printers and KDS, remote reboot, per-device software-version visibility, or staged/ringed update rollout. Unresolved: Petpooja publishes no operations or admin console documentation. || 327th: NEW SURFACE (327th), NOT SETTLED. BOUND/CORPUS (327th): (a) THE STORE-LEVEL POS WEB APP ITSELF — https://billing.petpooja.com/ is Petpooja's production store-level POS/back-office web app (its own Terms of Service names "www.billing.petpooja.com" as the Site). Its PUBLIC login page (94,412 bytes, server-rendered CakePHP, no SPA bundle) ships an inline `var active_function = {...}` object: a 166-entry registry of every add-on/integration the app can activate, each with file_name, logo and an activate_* handler (e.g. "26":{"file_name":"kds_details","activate":"activate_kds"}). Nonsense control: https://zzznope9987qq.petpooja.com/ and https://billing.petpooja.com/zzznope9987 return the *.petpooja.com wildcard catch-all (404, 1,691 bytes / 404, 7,430 bytes) while the root returns 200/19,180, so this host is real and is NOT the wildcard. Grade B: the vendor's own shipped production code, not marketing. The registry matches the marketing claim of "150+ third-party integrators". (b) the 995-document publisher-manifest census built in the 325th (blog.petpooja.com WordPress REST: 817 posts + 330 glossary + 12 pages, X-WP-Total confirmed; plus all 66 www.petpooja.com sitemap URLs incl. every legal page), 9,579,728 chars, HTML comments PRESERVED. (c) the three anonymous Apiary API blueprints held in the 326th (367,492 bytes). (d) trust.petpooja.com's own Scrut trust-centre document registry fetched anonymously. The registry DOES contain an entry the atlas had no evidence of: "device_management_details" (with an activate_service_common handler), alongside hardware entries bluetooth_printer_details, weighingscale_details, digital_display_details, posiflex_details, posbank_details, imin_details, essae_details and lenovo_details. So the store-level POS app ships a device-management add-on. What it does is NOT documented anywhere: anchored controls for "device management" (allowing the underscore), "remote device", "device health", "reboot" return 0 across all 66 www pages, 1,159 blog documents and the three API blueprints ("firmware" has 2 blog hits, both generic hardware prose). An add-on's registry name is a label, not a shipped capability description (the 260th proved flag/feature names are homonyms of atlas claims), so this cannot carry a value in either direction — but it does retire the previous note's "the only device-status surface found anywhere is on www.petpooja.com/payroll". Retrieved 2026-09-18. || 328th: THREE NEW SURFACES PROBED, NONE SETTLES IT, AND TWO ROUTES ARE NOW CLOSED FOR THIS VENDOR. (a) WILDCARD CONTROL FIRST: *.petpooja.com is a wildcard and a nonsense subdomain (zzznonsense9987x.petpooja.com) returns a 1,691-byte 404 shell; fleet, community, site, analytics, bsr, news, amd, pos, app, my, petpoojademo, bookyapp, onlineordcb and pppossagentdashboard all return that exact shell (same sha1), so they are NOT live hosts and must not be read as evidence. (b) The Merchant APK's certificate-pinning assets (x_com.petpooja.billing/base/assets/flutter_assets/assets/certs/*.pem, on disk since the 325th and never enumerated) name the POS BACKEND hosts: api, billing, community, internal, inventory, menu .petpooja.com. Probed today: api 404, internal DNS/TLS failure, community = wildcard shell, inventory 200 but the whole body is a JS redirect to billing.petpooja.com/users/dashboard/, menu 200 and it is a sign-in page served off menucdn.petpooja.com. Every device-facing surface is behind the merchant login; nothing anonymous documents a device console. (c) GOOGLE PLAY ROSTER IS COMPLETE AND CONTAINS NO POS: a Play search for "petpooja" returns exactly six Petpooja packages — com.petpooja.billing, com.petpooja.attendance, com.petpooja.employeepayroll, com.petpooja.facerecognition, com.petpooja.task_manager, com.petpoojatrack.app; the /store/apps/developer?id=Petpooja page is a 404. There is no Petpooja POS, Captain or KDS app on Play, which is consistent with POS Local being a Windows/Android sideloaded build and means no store-level app listing exists to enumerate terminals from. (d) ROUTE CLOSED: newcode.petpooja.com is a self-hosted GitLab 18.5.1; /api/v4/projects?per_page=100 returns [] (zero public projects), so there is no vendor source-code census to be had. (e) ROUTE CLOSED: the @Petpooja YouTube channel (UC44UyjjM6swHfD7NtNsHxIA) serves /videos as a 91 KB shell whose ytInitialData carries only the Home tab and player-keyboard strings — no video grid, with or without SOCS/PREF consent cookies — so the tutorial-title enumeration route is not available for this vendor. Retrieved 2026-09-18. || 332nd: 332nd NEW SURFACE: the "Owner's Dashboard" tutorial (ReK9on1tAXc), frame at 4:28 (1080p). The only device-status element in the remote dashboard is an OUTLET-level card, "Pos Sync On 12 Feb 2024 | 5:47 pm" and "Order Sync On 12 Feb 2024 | 4:51 pm", with one resync button ("you can see the last sync time of your POS ... if you want to resync them you can click here"). It does not list terminals, printers or KDS one by one. Version visibility is LOCAL to each terminal ("POS" tutorial zPwJPJmhsek: the "reference ID, the version of the app and the biller name will be always displayed" in the terminal's side menu, with a check-for-updates tick there). Controls over the 198 transcripts: reboot 0, restart 0, "remote*" 2 (both Attendo remote punch-in). This is adjacent, not a partial. Retrieved 2026-09-18. || 334th: 334th NEW SURFACE (not settled): the App Router route chunks of business-admin.petpooja.com, never fetched before (the 325th census regex skipped the parenthesised app/(platform)/(dashboard)/* paths). That is 8 route pages (activity-tracker, admin-users, integration, organization-payments, organizations, pos-errors, release-management, users) plus 3 layouts. It IS a device and release console. "POS Errors" lists each Machine Id / Machine Name / POS Counter Id with "POS Version", "Hardware Count" and "Last Seen At". "Release Management" reads "Manage application versions and update rollouts", with "Add Rollout", "Group is required for a phased rollout", "Force Update" and "Live At". But (a) it is VENDOR-INTERNAL staff tooling (Super Admin/Staff roles, "Sales Person", org Force Lock), not an operator console. (b) It serves a different product: organisations with the services "POS & eBill", Billfree/Tally integrations and the API host business-api.petpooja.com (the SME Business/eBill line), not POSS restaurants and outlets. Neither bounds the operator-facing POSS surface. The owner's dashboard still shows only an outlet-level POS/Order sync card (332nd). Retrieved 2026-09-18. adversarially verified

F
No

Integrates with specialty beverage hardware — self-pour tap walls, flow meters, or liquor pour spouts — such that pours post to a POS tab automatically.

hardware-selfpour-scales

CLAIM: integrates with specialty beverage hardware — self-pour tap walls, flow meters or liquor pour spouts — such that pours post to a POS tab automatically. VERDICT: no. EVIDENCE: Petpooja's dedicated bar/brewery document enumerates the bar hardware and control surface it supports (recipe-based liquor deduction, consumption and variance tracking, pilferage controls, user rights, multi-terminal bar-vs-food printing, happy-hour pricing, individual tabs and split bills, state excise reports) and no pour hardware appears; pours reach stock only by being billed by hand ("Stock deducts that measure the moment the drink is billed"). www.petpooja.com/poss/bar-and-brewery-pos-software likewise lists no beverage hardware. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "flow meter*" 0, "pour spout*" 0, "tap wall*" 0, "self-pour" 0, "free-pour" 0. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/bar-brewery-pos-india-liquor-pilferage-control/ · retrieved 2026-09-17 adversarially verified

C
Partial

Supports inbound caller ID hardware or a telephony integration that pops the customer record and order history at the POS on an incoming call.

hardware-callerid-integration

"When the agent enters the number, the screen shows that customer's past orders and saved address. A regular does not have to spell out their lane again", and the order the agent builds drops into the chosen outlet's POS queue and prints a KOT. Shortfall: there is no telephony integration and no caller-ID hardware - the lookup is triggered by a manually keyed phone number, and the vendor is explicit that "Nothing about the call itself is recorded here. Call length and recordings belong to your phone system, not to the ordering screen." So the customer record surfaces on the order screen but nothing pops on an incoming call, and the module runs on Electron, Local and Android POS but not on POS Lite. https://blog.petpooja.com/industry-business-guides/restaurant-call-centre-software-phone-orders/ · retrieved 2026-08-06

C

Integrations, API & extensibility

Partial

Public, self-serve API reference documentation is readable without a signed partner agreement, NDA, or sales call.

extensibility-public-api-docs

Petpooja publishes one API reference that anyone can read without an account: the 'PetpoojaOnlineOrdering APIs - V2.1.0' API Blueprint (HTTP 200 anonymously, 115,978 bytes). Its opening sentence sets its scope: 'Petpooja Integration Platform API enables restaurant partner to manage store, menus and orders received/placed from online order aggregator.' It documents ten POST resources (/pushmenu_endpoint, /fetchmenu, /saveorder, /callback, /orderstatus, /rider_info_webhook, /item_stock, /item_stock_off, /get_store_status, /update_store_status) with request and response bodies, attribute tables, a changelog and 200/400 responses. Its auth model is static keys; app_key is 'Unique code which allows you to track and identify application.[32 characters]'. SHORTFALL: (1) it covers only the online-ordering integrator surface, with no reporting, employee or inventory object (`report` 0, `employee` 0, `inventory` 0). (2) Reading is open but building is not: 'Credentials for both staging and production environment will be provided by petpooja team.', and the integrations page routes partners to 'Connect with us to integrate your service with Petpooja POS'. (3) It is a standalone artefact rather than a developer portal. No Petpooja page links to it (`apiary` 0 across 120 www pages, 823 blog posts and 12,898 Wayback CDX lines), its HOST line is a placeholder (internal_or_external_URL_Address.com), and the developer-account host it names, developerapi.petpooja.com, was not assessed. Grade A: API reference documentation authored by the vendor. https://jsapi.apiary.io/apis/onlineorderingapisv210.apib · retrieved 2026-09-12

A
Unknown

API access is included in the base subscription at no additional per-location fee, surcharge, or upgraded plan requirement. differentiator

extensibility-api-access-cost

Enumerated www.petpooja.com/sitemap.xml (46 URLs, no developer or API-pricing page) and read the whole plan comparison on www.petpooja.com/poss/pricing: the Core/Growth/Scale matrix lists Cloud Billing, Inventory Module, 80+ Reports, in-built CRM, Menu management, unlimited terminals and user rights, central kitchen module, multi-terminal billing, the add-on list, Dynamic Reports and support tiers, with no API or integration line item at any tier. Petpooja's own Online Ordering API blueprint (onlineorderingapisv210.docs.apiary.io) says only that credentials for staging and production 'will be provided by petpooja team' and states no fee, and developerapi.petpooja.com returns HTTP 403 to an anonymous request. No first-party statement exists either way, so neither inclusion in the base subscription nor a surcharge can be asserted. || 324th: 324th, RE-PROBE OF THE RECORDED 403 UNDER THIS SESSION'S CURL RULE: developerapi.petpooja.com, the developer-account host the Online Ordering blueprint names, was re-fetched with curl carrying a browser UA plus the Accept/Accept-Language pair. It still returns HTTP 403, and the refusal is a BLANKET nginx 403 of 520 bytes on EVERY path tested - /, /docs, /robots.txt and a nonsense path all return byte-identical bodies. So it is an IP or credential allow-list, not a Cloudflare bot artefact and not a soft-200 catch-all; no API pricing is readable there by any anonymous route. Also re-derived this session: www.petpooja.com/sitemap.xml now holds 131 URLs (the existing note's figure of 46 is stale) and still contains no developer, API or integration-pricing page. Retrieved 2026-09-17. || 325th: MERGE HOLD (proposed no/C, held unknown): same as reporting-api-not-upcharged: the plan matrix is silent on the API. PROPOSAL AS WRITTEN: CLAIM: API access is included in the base subscription at no additional per-location fee, surcharge or upgraded plan requirement. VERDICT: no. EVIDENCE: www.petpooja.com/poss/pricing publishes a complete three-plan matrix — Core, Growth, Scale at $50/$95/$135 per outlet per month billed annually and $65/$115/$150 monthly (the figures sit inside HTML comments, so a comment-stripping reader would miss them). The included list is closed: Cloud Billing, Inventory Module, 80+ Reports, In-built CRM, Menu management, Unlimited terminals & user rights, Central kitchen module, Multi-terminal billing; add-ons Kitchen display system, Captain ordering app, Restaurant website, Petpooja loyalty, Token Management System, Feedback App / QR, OOW (Website), QR Ordering / Digital menu; advanced features Dynamic reports; support On-call/ On-chat, Dedicated POC. No API, developer, integration or data-export line appears in any plan. The three-plan enumeration is the vendor's own complete statement of what a subscription buys, and API/developer access is absent from all three tiers, while integration is routed through a partner contact form. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Retrieved 2026-09-17. adversarially verified

F
Yes

The vendor publishes its partner/marketplace commercial terms (referral fee, revenue share percentage, or per-location partner fee) in public documentation.

extensibility-partner-revshare

The POSS Reseller Program page publishes the commercial term directly: refer Petpooja POS and 'earn 15% of assured revenue', followed by 'No hidden charges. Straight commission with every conversion.' Registration is gated on document screening. Integration-partner terms, by contrast, are not published - /poss/restaurant-integrations offers only a 'Become our integration partner' contact mailto. https://www.petpooja.com/poss/reseller-program · retrieved 2026-08-06

C
Partial

A free sandbox or test environment with seeded data is available to developers without owning a paid production account. differentiator

extensibility-free-sandbox

The Online Ordering API V2.1.0 blueprint states: 'Access to developer account of staging/production : https://developerapi.petpooja.com/' and 'Credentials for both staging and production environment will be provided by petpooja team.' A staging environment therefore exists and is distinct from production. Shortfall: there is no self-service signup - credentials are issued by hand by the Petpooja team to approved integration partners, developerapi.petpooja.com returns HTTP 403 to an anonymous request, and the blueprint documents no seeded test data or test-restaurant fixtures. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
No

Third-party apps authenticate via OAuth 2.0 with scoped, operator-granted, individually revocable permissions (not shared static API keys or credential sharing).

extensibility-oauth-partner-apps

Every endpoint in the complete V2.1.0 blueprint authenticates with the same three static shared secrets passed in the JSON request body - app_key ('Unique code which allows you to track and identify application.[32 characters]'), app_secret ('Unique code for transfer secret data.[40 characters]') and access_token ('[40 characters]') - with Fetch Menu instead taking an 'access-token:' request header. The specification contains no OAuth flow, no authorization endpoint, no bearer token, no scope parameter and no per-operator grant or revocation mechanism anywhere across its ten endpoints. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
Partial

The platform pushes real-time webhooks for order lifecycle events (created, modified, paid, voided, refunded) rather than requiring polling.

extensibility-webhooks-push

Real server push exists: the Order Callback endpoint ('Online order integration partner must implement this endpoint to allow PoS patner to notify about order status updates post successfull order relay') delivers status values '-1 = Cancelled, 1/2/3 = Accepted, 4 = Dispatch, 5 = Food Ready, 10 = Delivered' plus cancel_reason, minimum_prep_time, rider details and an is_modified flag; Push Menu is pushed 'after every change'; and the Rider Information webhook exists expressly to update delivery status 'without continuously polling with check order status'. Shortfall: callbacks fire only for orders the partner itself relayed via /saveorder (keyed on restID plus the partner's own clientorderID) - there is no order-created, paid, voided or refunded event, and no feed at all for POS-originated dine-in or counter orders. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
No

Webhooks are cryptographically signed (e.g. HMAC) AND documented to retry with backoff, with a replayable event log for missed deliveries. differentiator

extensibility-webhook-reliability

The Order Callback request body's complete documented attribute list is restID, orderID, status, cancel_reason, minimum_prep_time, minimum_delivery_time, rider_name, rider_phone_number and is_modified - no signature, digest, nonce or timestamp field of any kind, so deliveries are unsigned. The item-stock and store-status callbacks likewise carry only restID and payload fields. Searching the entire blueprint returns no occurrence of HMAC, signature, retry, backoff, redelivery or replay, and no event log or missed-delivery recovery endpoint is defined. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
Partial

A public write API accepts externally originated orders into the POS as first-class tickets that fire to KDS/printers and land in reporting.

extensibility-order-injection-api

Aggregator and QR orders inject as first-class tickets firing to KOT/KDS, implying a working write path - but no public order-injection API is documented for third parties. https://petpooja.com/poss/online-order-management-software · retrieved 2026-08-01

E
No

Menu items, modifiers, and prices can be written and updated via API, not just read. differentiator

extensibility-menu-write-api

In the complete ten-resource V2.1.0 blueprint, menu data moves outbound only. For Push Menu it says 'We require an endpoint from the integrator on which petpooja will push the menu after every change.' Fetch Menu lets the integrator pull the catalogue. The two stock endpoints are also outbound ('This API Endpoint has to be provided by integrator. Petpooja will call this endpoint for toggling the item stock status in the menu on integrator platform'), and in any case they only flip in-stock status. The only calls that write into the Petpooja POS are /saveorder, /orderstatus (cancel only: 'status (required, string) - [-1=Cancelled]') and /rider_info_webhook (rider details; 'This is the webhook to update the rider information for Petpooja POS'). None of them touches menu data. No endpoint creates or updates items, variations, addons or prices in Petpooja. Grade A: vendor API reference. https://jsapi.apiary.io/apis/onlineorderingapisv210.apib · retrieved 2026-09-12

A
No

Every core object the API can read (orders, menu, customers, employees, inventory) can also be written or updated via the same API. differentiator

extensibility-data-symmetry

The published API is asymmetric on its face. Menu is fully readable (Fetch Menu returns restaurant details, categories, items, variations, addongroups, taxes and discounts) but has no write counterpart. Orders can be written (/saveorder) and cancelled (/orderstatus) but not read back. Customers appear only as an inbound object on Save Order ('OrderInfo / Customer (object)'). Rider information is write-only into the POS (/rider_info_webhook). Store status is not a Petpooja object exposed for read and write: Petpooja pushes and queries it against endpoints the integrator hosts, since /get_store_status 'has to provided by Integration partner' and /update_store_status 'is used by merchant to tell integration partner to on/off the store'. There is no employee or inventory object anywhere in the specification (`employee` 0, `inventory` 0). Grade A: vendor API reference. https://jsapi.apiary.io/apis/onlineorderingapisv210.apib · retrieved 2026-09-12

A
No

API rate limits are published as specific numeric quotas with documented throttling behavior and headers.

extensibility-published-rate-limits

The blueprint documents request and response bodies, full attribute tables and named error codes (SO_105, SO_106, UOS_105 among others) for all ten endpoints, and defines 200 and 400 responses only. It contains no numeric quota, no requests-per-second or per-minute figure, no 429 response, no throttling description and no rate-limit or retry-after header anywhere in the document. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
No

The vendor is a named DoorDash Preferred Integration Partner (DPIP) under the 2026 program requirements. differentiator

extensibility-doordash-preferred

DoorDash publishes its own complete provider registry at https://merchants.doordash.com/api/partner-integrations — 64 providers, each carrying a `qualityStatus` of PREFERRED (12), CERTIFIED (47) or AT_RISK_OF_SUSPENSION (5), plus a count of how many of the eight high-quality features the provider has built. It is served anonymously and merchants.doordash.com/robots.txt permits it (Allow: / with only /cdn-cgi/ and /monitoring barred). This is what the program page means when it says the roster is tracked in real time, and it is a CENSUS rather than a floor: every provider integrated with DoorDash appears in it with a tier, so a vendor that is absent altogether is not in the programme at any tier. This vendor appears nowhere in the 64 entries, under any provider id or friendly name — checked mechanically against both fields, with the only near-misses being substring coincidences (Speedline against Lightspeed, vroom_restaurant against Restaurant365) that were read and rejected. SUPERSEDES the 2026 announcement post most of this corpus cited: that post introduces its ten names with the word `include`, which makes it a floor and never a ceiling, and reading it as a ceiling is what produced this cell's prior grade. GRADE HARMONISED TO B, 2026-09-11: this URL was first written at grade A. The adversarial pass ruled E on the principle that the rubric grades by the publisher's relationship to the SCORED vendor, and DoorDash is not that vendor. B is the settlement, for two reasons that are not preference: 39 rows already graded a DoorDash-published document B on this claim before today, and one URL on one claim cannot carry two grades; and E is unworkable, because nine of the 47 rows are `yes` on a differentiator-weight claim, which the grade floor refuses below B. B reads as the product documentation of the programme's own publisher, which is what this registry is. The dissent is recorded in verification.jsonl. https://merchants.doordash.com/api/partner-integrations · retrieved 2026-09-11

B
No

Direct, first-party certified integrations exist with DoorDash, Uber Eats, and Grubhub without requiring a paid middleware layer (Otter/Chowly/Deliverect/Checkmate). differentiator

extensibility-first-party-delivery-integrations

DoorDash's own registry of integration providers (served anonymously; merchants.doordash.com/robots.txt allows / and bars only /cdn-cgi/ and /monitoring) lists 64 providers. Petpooja is not among them: `Petpooja`, and even the substring `pooja`, occur zero times in the 158,067-byte response, while the control `toast` is present. The claim needs certified first-party integrations with all three of DoorDash, Uber Eats and Grubhub, so absence from DoorDash's roster fails the DoorDash conjunct on DoorDash's own record. This no rests on that conjunct. Uber Eats and Grubhub are not separately shown absent. Petpooja's own pages are consistent with it. The India ordering page lists aggregator and rider integrations as '150+ different third-party integrators, including...', which is a floor. The UAE POS page lists 'Delivery apps: Talabat, Deliveroo, Careem, Noon'. /us/poss and /ca/poss name no delivery marketplace. Over 947 Petpooja documents: `DoorDash` 1 and `Grubhub` 4 (food-photo statistics and generic mentions), `UberEats` 1 (UrbanPiper Prime's channel list in a competitor round-up), `Uber Eats` 0. Grade B, matching this record's extensibility-doordash-preferred cell on the same DoorDash-published registry. https://merchants.doordash.com/api/partner-integrations · retrieved 2026-09-12

B
No

The POS is a supported endpoint for at least two major aggregation middleware platforms (Deliverect, Chowly, Otter, Checkmate, ItsaCheckmate).

extensibility-middleware-compatibility

CLAIM: the POS is a supported endpoint for at least two major aggregation middleware platforms (Deliverect, Chowly, Otter, Checkmate/ItsaCheckmate). VERDICT: no/B, by ROSTER ARITHMETIC (the shape accepted for erpnext-pos in the 330th). The 327th hold asked for exactly this: the bound must come from the MIDDLEWARE VENDORS' OWN supported-POS rosters, not Petpooja's add-on registry. Three of the four rosters are now read and hold zero Petpooja, so at most ONE platform (Checkmate) could remain, and one is fewer than two - the claim fails however Checkmate resolves. (1) DELIVERECT: www.deliverect.com/sitemap.xml fetched 2026-09-18 (10,173 <loc>, 3,338 of them under /integrations/, 626 distinct integration slugs across all locales): petpooja 0. POSITIVE CONTROL that the roster reaches Petpooja's own Indian POS peers: 'posist-technologies' and 'restroworks' (Posist's rebrand) ARE present, and https://www.deliverect.com/en/integrations/posist-technologies returns 200 (29,664 B) while /en/integrations/petpooja returns the same 404 body (23,629 B) as the nonsense slug /en/integrations/zzznope77. (2) OTTER: www.tryotter.com/sitemap.xml is an index; its sitemap-integrations-en-us/en-gb/en-au children hold 166 integration <loc> (e.g. toast, square, lightspeed, epos-now, loyverse, rebel-foods): petpooja 0; /integrations/petpooja returns the same 404 (33,882 B) as /integrations/zzznope77 while /integrations/toast is 200. (3) CHOWLY: the 583-article chowly.help Salesforce Knowledge census on disk (.cache/q324/chowly/ch, 583/583 of list.tsv, positive control 'toast' in 100 articles): petpooja 0; the KB's own POS roster ENUMERATION 'SDK: Provider Support Contacts' (articleNumber 000001325: 'All of the POS companies listed in this article have used SDKs to build to our POS API') lists sixteen - Arrow POS, Brandibble, CBS Northstar, Dripos, GEMpos, Katalyst, Linga, Link, Milagro, Mr. Jims, Ordyx, PDQ, Redfin, Slice, Squirrel, Tabit - no Petpooja; chowly.com/sitemap.xml (167 <loc>, re-fetched today) has /pos/ pages for toast, square, spoton, clover, revel, lightspeed only, petpooja 0. (4) CHECKMATE left unbounded on purpose: www.itsacheckmate.com/sitemap.xml (350 <loc>, today) carries only /pos-integration/toast and /your-pos, petpooja 0 - not a census, and the verdict does not depend on it. CORROBORATION FROM PETPOOJA'S SIDE (327th corpora, re-run today): anchored Deliverect/Chowly/Otter/Checkmate = 0 in the 166-entry billing.petpooja.com active_function registry, the 66-page www corpus, the 1,159-document blog corpus and the three Apiary blueprints. Also grepped for 'petpooja' today: .cache/deliverect, .cache/q310-deliverect, .cache/otter, .cache/q321|q324|q330/otter, .cache/itsacheckmate, .cache/chowly, .cache/q325/chowly = 0 corpus files (the single hit is a code comment in .cache/q310-deliverect/merge.mjs, a copied merge script, not Deliverect content). POISON: un-anchored 'otter' matches inside longer words, 'olo' inside 'technology' - all controls anchored (?<![A-Za-z0-9])...(?![A-Za-z0-9]). Retrieved 2026-09-18. https://chowly.help/s/article/SDK-Provider-Support-Contacts · retrieved 2026-09-18 adversarially verified

B
Partial

Native, vendor-maintained connectors exist for QuickBooks Online and at least one other GL/accounting system, with mapped journal entries rather than CSV-only export.

extensibility-accounting-connectors

A native, vendor-maintained GL connector exists, but for Tally, not QuickBooks Online. Petpooja's own guide (modified 2026-07-17) describes it: 'Enable the Tally integration from the Petpooja marketplace, set against your existing Tally company.' It adds 'Point your POS sales categories, tax rates, and expense heads to the matching ledgers in Tally.' So entries are mapped to ledgers, not CSV-exported, and the guide says sales, GST and expenses 'reach Tally on their own, with no manual export'. SHORTFALLS: (1) the claim requires QuickBooks Online plus one other system, and no POS-side QuickBooks connector is documented. Over the 823-doc blog, ~120 www pages and the magazine, `QuickBooks` tokenises to 2 hits in 2 docs, both payroll (Attendo) articles (hour-based-payroll-software-employees; per-employee-pricing-is-a-scam...). The matcher was proven in the same run on `Tally` (274 hits in 60 docs). Absence of QBO is unknown, not an asserted no, so it bounds this cell at partial. (2) Tally sync is limited by POS type: the Key Takeaways list says it runs on the Android POS and Electron POS types, not on Lite or Local. That wording is paraphrased because the source bolds the type names mid-sentence. (3) The sync is one-way, POS to Tally. Grade C: vendor blog describing its own product. https://blog.petpooja.com/industry-business-guides/tally-integration-restaurants-pos-syncs-to-tally/ · retrieved 2026-09-12

C
No

Labor hours export natively to at least two named payroll providers (e.g. Gusto, ADP, Paychex, Paylocity) without manual re-keying.

extensibility-payroll-export

CLAIM: labor hours export natively to at least two named payroll providers. VERDICT: no. THIS RETIRES THE EXISTING NOTE'S BLOCKER — the note says www.petpooja.com/poss/restaurant-integrations "renders its partner list as an image with no readable names, so it cannot be enumerated for Gusto, ADP, Paychex or Paylocity". The list IS now enumerable. BOUND/CORPUS (327th): (a) THE STORE-LEVEL POS WEB APP ITSELF — https://billing.petpooja.com/ is Petpooja's production store-level POS/back-office web app (its own Terms of Service names "www.billing.petpooja.com" as the Site). Its PUBLIC login page (94,412 bytes, server-rendered CakePHP, no SPA bundle) ships an inline `var active_function = {...}` object: a 166-entry registry of every add-on/integration the app can activate, each with file_name, logo and an activate_* handler (e.g. "26":{"file_name":"kds_details","activate":"activate_kds"}). Nonsense control: https://zzznope9987qq.petpooja.com/ and https://billing.petpooja.com/zzznope9987 return the *.petpooja.com wildcard catch-all (404, 1,691 bytes / 404, 7,430 bytes) while the root returns 200/19,180, so this host is real and is NOT the wildcard. Grade B: the vendor's own shipped production code, not marketing. The registry matches the marketing claim of "150+ third-party integrators". (b) the 995-document publisher-manifest census built in the 325th (blog.petpooja.com WordPress REST: 817 posts + 330 glossary + 12 pages, X-WP-Total confirmed; plus all 66 www.petpooja.com sitemap URLs incl. every legal page), 9,579,728 chars, HTML comments PRESERVED. (c) the three anonymous Apiary API blueprints held in the 326th (367,492 bytes). (d) trust.petpooja.com's own Scrut trust-centre document registry fetched anonymously. The 166-entry registry is the app's complete integration/add-on activation table, and it is where every integration partner appears: aggregators (zomato, swiggy, ubereats, foodpanda, talabat, careem, grab_food, noonfoods, magicpin, dineout, dotpe, speedyy, yumzy, xirify, ondc, paytm_ondc, uengage_ondc), payments (paytm, hdfc_swipe, flashpe, qlub_pay, petpooja_pay_axis/bijlipay/razorpay), loyalty (bingage, reelo, ewards, one_loyalty, restaurant_loyalty), logistics (shadowfax, pidge, swishgo, serving_drives, foodride, delivery_tracking/activate_roadcast), hardware (posiflex, posbank, imin, essae, lenovo, bluetooth_printer, weighingscale), lending (16 entries) and ACCOUNTING (tally_details/activate_tally, busy_accounting_details, zoho_details, amazon_s3_integration_details). NO PAYROLL PROVIDER APPEARS. The only payroll entry is first-party — petpooja_payroll_details — which is Petpooja's own Attendo product, not an export target. CONTROLS (www/blog/api/registry): Gusto 0/1/0/0, ADP 0/30/0/0, Paychex 0/1/0/0, Paylocity 0/0/0/0, greytHR 0/112/0/0, Keka 0/92/0/0, "Zoho Payroll" 0/83/0/0, RazorpayX 0/12/0/0. Every non-zero is inside blog.petpooja.com listicles COMPARING Indian HR/payroll vendors (a blog census is grade C and these are editorial round-ups, not integration statements); none appears on a www product page, in the API blueprints, or in the app's own registry. POISON FOUND AND REMOVED: an un-anchored `accessib` control returned 0 and would have published a FALSE zero — it needs a prefix-only match (`accessibility` is 3+29 hits); `PCI` un-anchored returns 31 blog hits that are ALL inside `NPCI` (National Payments Corporation of India); `Otter` un-anchored returns 6 hits inside longer words; `Olo` returns 1,171 hits inside `technology`. All controls below are anchored with (?<![A-Za-z0-9])...(?![A-Za-z0-9]) and run case-insensitively over every corpus named above, each reported separately. CAVEAT: the registry bounds the store-level POS web app's add-ons; a customer could still move hours by manual spreadsheet export, which the claim ("export natively to at least two named payroll providers") excludes. Retrieved 2026-09-18. https://billing.petpooja.com/ · retrieved 2026-09-18 adversarially verified

B
Partial

Raw transaction-level data can be exported on a schedule to a customer-controlled destination (S3/SFTP/warehouse/Snowflake share), not only viewed in the vendor's reporting UI. differentiator

extensibility-bi-data-warehouse

The POS Local setup guide documents scheduled raw-data copies the operator controls: 'POS Local keeps your records safe with built-in backups. You can set them to run on a daily, weekly or monthly schedule, and the system keeps the copies for you', with the guidance to 'save the backups to a separate drive, such as a D: or E: drive', and 'Where is my data stored? On the computer running the Bridge Server at your own restaurant, not on an outside server.' Shortfall: the only mechanism is a scheduled local database backup file on the on-premise POS Local deployment - no S3, SFTP, warehouse or Snowflake destination is supported, no transaction-level export format is specified, and no equivalent is documented for the cloud plans. https://blog.petpooja.com/industry-business-guides/petpooja-pos-local-hardware-setup-guide/ · retrieved 2026-08-06

C
Partial

The vendor operates a public integrations marketplace listing named third-party apps that operators can browse and self-install.

extensibility-app-marketplace

A public marketplace lists apps across Customer Service, Operations, CRM and Analytics - but the catalogue is overwhelmingly Petpooja's own add-ons, not named third-party apps. https://petpooja.com/poss/restaurant-app-marketplace · retrieved 2026-08-01

D
Unknown

Operators can define custom fields or run vendor-hosted custom logic/scripts against POS objects without a vendor engineering engagement.

extensibility-custom-fields-scripting

Enumerated www.petpooja.com/sitemap.xml and read /poss/restaurant-app-marketplace (first-party add-ons only, none an automation or scripting tool), /poss/reports-and-analytics and /poss/restaurant-menu-management-software; none offers operator-defined custom fields or vendor-hosted scripts. The complete Online Ordering API blueprint uses fixed attribute tables per endpoint with no extensible metadata or custom-attribute object. A partner-facing API schema is not evidence about the admin back-office configuration surface, so absence here cannot support a no.

F
Partial

The vendor supports a headless/embedded mode where a third-party UI (kiosk, web ordering, drive-thru) drives the POS transaction engine via API.

extensibility-headless-embedded

Save Order is exactly this pattern for ordering surfaces: 'Once a new order is placed by the end user, you can push the order to the Petpooja PoS application by calling the below APIs. On arrival, the order will be in Pending State untill the restaurant partner respond (Accept/Reject) on the particular order.' The payload carries the customer, order items with variations and addons, item-level taxes, discounts, packing and delivery charges with dc_tax_percentage/pc_tax_percentage, payment type, min_prep_time and OTP, and Fetch Menu supplies the catalogue to the external UI. Shortfall: the caller computes and passes its own prices, taxes and totals, so the POS is an ingestion target rather than a transaction engine; there is no open-check, line-edit, tender or payment-authorisation API, and every order lands Pending awaiting a staff accept rather than being driven end to end by the third-party UI. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
Partial

The vendor publishes an API changelog and a stated deprecation/notice policy for breaking changes.

extensibility-api-versioning-deprecation

A changelog is published: the blueprint opens with a dated Changelog running from 28-06-2022 ('Added nutrition data to item object in the menu push/fetch API') to 15-10-2025 ('Introduced BOGO, BXGY and Freebie discounts to menu APIs'), and superseded fields are marked inline - the variations object is annotated 'Do not consume this object. This object has been deprecated', and orderID on Update Order Status reads 'Pass it blank, since the object will be deprecated soon.' Shortfall: no deprecation or breaking-change notice policy is stated - there is no notice period, no sunset date on any of the 'will be deprecated soon' fields, and no versioning scheme beyond the document title V2.1.0. https://onlineorderingapisv210.docs.apiary.io/api-description-document · retrieved 2026-08-06

A
Partial

A complete historical data export (orders, customers, menu, payments metadata) is available to the operator on demand, in a documented machine-readable format, at contract end. differentiator

extensibility-data-portability-exit

Export exists but is severely time-boxed: 'you shall download your data within 2 days of such expiry or termination.' Format is unspecified. https://petpooja.com/terms-and-conditions · retrieved 2026-08-01

B

Reliability, offline & operations

Partial

Order entry, ticket routing, and check printing continue on-terminal when the internet connection is lost.

reliability-offline-order-entry

The entire evidentiary basis is one unqualified marketing sentence: "Petpooja restaurant billing software works perfectly well, even in offline mode." I re-read the page — there is no scope statement, no duration limit, no sync/conflict description, and no statement of what fails. The dossier itself scores reliability-offline-feature-matrix "no". A single adjective-laden claim with zero documentation should not carry a yes on a decision-flipping cell. https://petpooja.com/poss/restaurant-billing-software · retrieved 2026-08-01 adversarially verified

B
No

Card payments can be accepted while offline via store-and-forward, not just cash-only fallback. differentiator

reliability-offline-card-auth

Petpooja's own guide to its POS types during an outage (post 46246, WordPress modified 2026-07-22) states that card acceptance stops and the fallback is cash. After a linked 'Petpooja POSS' (an <a> element, not quoted here), the paragraph continues: 'routes every Pay+ payment request through Finance Cloud. The EDC machine therefore needs a stable connection of its own, and a building-wide outage means taking cash.' Its Key Takeaways list repeats it: 'Billing and KOTs carry on; online orders and EDC payments do not'. Its what-keeps-working diagram puts 'Card and UPI on the EDC' under 'Waits for the line'. The outage runbook's second step is bolded 'Switch payments to cash or a direct UPI QR' and continues, through a link, to say this route does not depend on the EDC machine (paraphrased, because it crosses <strong> and <a> boundaries). That is an affirmative first-party statement that offline card payments fall back to cash rather than store-and-forward. Grade C: a vendor blog about its own product, not a help-centre article (Petpooja has none). Only the offline card path of Petpooja POSS / Pay+ is settled. The card terminal is an EDC, and the page does not address any acquirer-side offline mode outside Pay+. https://blog.petpooja.com/industry-business-guides/restaurant-pos-without-internet/ · retrieved 2026-09-12

C
No

The vendor publicly documents who bears the loss when a store-and-forward transaction declines after connectivity returns, and states any per-transaction or cumulative offline cap. differentiator

reliability-offline-decline-liability

CLAIM: the vendor publicly documents who bears the loss when a store-and-forward transaction declines after connectivity returns, and states any per-transaction or cumulative offline cap. VERDICT: no (moved from unknown). THE SCENARIO IS DOCUMENTED NOT TO OCCUR, SO NOTHING IS PUBLISHED ABOUT IT. This is the basis on which this record's own siblings already stand at no/C, all cited to this page (payments-offline-store-and-forward, payments-offline-decline-liability, reliability-offline-card-auth), and on which the atlas records with no offline card capture carry `no` on this cell (nory, odoo-pos, ury, flipdish, urbanpiper, restaurant365...). Petpooja was the only record with reliability-offline-card-auth = no still holding this cell unknown. EVIDENCE (re-fetched live 2026-09-18, WordPress dateModified 2026-07-22): Petpooja's own outage guide says "What stops is any task that travels over the internet, mainly Swiggy and Zomato orders plus card payments routed through an EDC". FAQ 2: "card or UPI on an EDC needs a connection of its own". Also: "Petpooja POSS routes every Pay+ payment request through Finance Cloud. The EDC machine therefore needs a stable connection of its own, and a building-wide outage means taking cash". The runbook says: "Switch payments to cash or a direct UPI QR that does not depend on the EDC machine". What IS stored offline is "bills, KOTs and settlements ... When the line returns, it all syncs on its own". No card authorisation is ever held for later submission, so there is no post-reconnect decline, no loss allocation and no offline cap to publish. None is published on this page, on www.petpooja.com/terms-and-conditions, on /cancellation-and-refund-policy or on any Finance page (existing note). SHORTFALL NAMED: the page covers Petpooja POSS / Pay+ only. An acquirer's own EDC offline mode outside Pay+ is the acquirer's product. Grade C: a vendor blog about its own product (Petpooja has no help centre). Retrieved 2026-09-18. https://blog.petpooja.com/industry-business-guides/restaurant-pos-without-internet/ · retrieved 2026-09-18 adversarially verified

C
Partial

Multiple terminals continue to share a single check/table state over the local network while the internet is down (LAN-only degraded operation, not per-terminal islands). differentiator

reliability-lan-degraded-multi-terminal

Multiple billing counters sync to one master station and KOTs route to station printers. Whether shared check state survives an internet outage across terminals is not documented. https://petpooja.com/poss/restaurant-billing-software · retrieved 2026-08-01

D
Partial

The vendor documents a local/on-premise transaction engine or edge server (not purely cloud-hosted request/response) for the ordering path. differentiator

reliability-local-transaction-engine

The only evidence that "Local POSS" stores data on the local device is a third-party software directory's SKU list. Petpooja's own pricing page publishes three tier names (Core/Growth/Scale) and no Local POSS product line at all. The architectural inference (local transaction engine) is the researcher's, not the vendor's. Third-party roundups are not evidence for a yes. https://petpooja.com/poss/pricing · retrieved 2026-08-01 adversarially verified

C
Partial

Kitchen display and/or kitchen printer routing continues to function while offline.

reliability-offline-kds-printing

Upheld, and if anything generous. There is no KDS-specific offline statement anywhere I could find; the score rests on extending a billing-page sentence to a separately-sold add-on module. Treat as the weakest kind of partial. https://petpooja.com/poss/kitchen-display-system · retrieved 2026-08-01 adversarially verified

B
Unknown

The system automatically fails over to a backup printer or KDS station when a configured kitchen printer is unreachable, and alerts staff.

reliability-printer-fallback

www.petpooja.com/poss/restaurant-billing-software documents per-station printer routing - 'Assign a unique printer to every station and send KOTs to the respective stations. Smoothly sync them all with the master POS to keep track of all your orders and their running status' - and blog.petpooja.com's POS Local hardware setup guide covers the whole device topology (Master Billing Station, secondary counters, KDS and captain devices on one local network over port 7000). Neither describes what happens when a configured kitchen printer is unreachable, and no reroute-to-backup-printer or staff-alert behaviour appears on www.petpooja.com/poss/kitchen-display-system either. Nothing states the behaviour does not exist, so this is undetermined. || 332nd: MERGE HOLD (proposed no/B, held unknown): A printer configuration walkthrough (listing/edit/assign screens) does not bound runtime behaviour when a printer is unreachable; no alert/redirect statement either way. PROPOSAL AS WRITTEN: CLAIM: the system automatically fails over to a backup printer or KDS when a configured kitchen printer is unreachable, and alerts staff. VERDICT: no (moved from unknown; weakest row in this batch, see SCOPE). EVIDENCE: the vendor's complete store-level walkthrough "Petpooja | Printer Management | English" (about 20 minutes, official tutorials channel), which closes "this was all about printer management installation customization configuration". It covers printer technologies and connectivity (Bluetooth/USB/LAN/Wi-Fi), about 20 outlet-level print settings read out one by one (KOT on bill print, modified/cancelled/deleted-item KOTs, duplicate marks, save invoice print history...), and per-printer settings. Frames at full 1080p resolution show the per-printer screens. "Printer Listing": columns Department wise Printer Name | Printer Type | Report Print | Action (Edit/Remove) | Printer Assign. "Edit Printer": Printer Name, Select Printer, Printer Type (General / Dot Matrix with Roll Paper), "Use only for captain bill print", "Use this printer for Report print", then Bill and KOT print-format sections. "Assign Printer": categories, items, order types, tables and POS/billing-station channels. None of these screens has a backup, secondary or fallback printer field, and there is no unreachable-printer alert. The only multi-printer mechanisms are "print clone" (extra copies) and assigning a category to more than one printer (duplicate printing), which is not failover. NEW SURFACE (332nd): the @PetpoojaTutorials YouTube channel (UCCAKlH4ogL0PvuUErRk5TWQ) taken to a census: 198/198 public videos listed with yt-dlp (/videos; channel has no shorts tab), all 198 transcripts fetched (95 English, 103 Hindi; 567,007 chars; .cache/q332/petpooja/b/tx/). The channel's 14 playlists hold 11 more ids, all private/unplayable. The tutorials' "resource base" (bit.ly/petpoojatutorials -> a Notion page) no longer serves its blocks anonymously, and bit.ly/petpoojatutorialshelp is a Google Sites feedback form. Controls tokenised, word-boundary, case-insensitive, run over this transcript corpus AND the on-disk blog WP-REST census (q325 corpus-blog.txt), www sitemap corpus (q325 corpus-www.txt), the 331st www re-fetch, blog delta and ar corpora. CONTROLS tutorials/blog/www/www-new/blog-delta: "backup printer(s)" 0 everywhere; "fall back|fallback" tutorials 0; "fail*" tutorials 0; "unreachable|disconnect*|not working" tutorials 0; "printer" 57 tutorial hits as a KNOWN-POSITIVE control. SCOPE: the sibling kitchen-printer-fallback is partial because a KDS guide says a kitchen "can fall back to paper if a screen goes down". That is a screen-to-printer MANUAL path, the reverse of this claim (printer down). If the merge treats a config walkthrough as not bounding runtime behaviour, hold it unknown with this note. Retrieved 2026-09-18. adversarially verified

F
No

The vendor documents its conflict-resolution behavior for edits made on two devices during a network partition (e.g. last-write-wins, merge, or operator prompt).

reliability-sync-conflict-handling

CLAIM: the vendor documents its conflict-resolution behaviour for edits made on two devices during a network partition. VERDICT: no — the vendor's dedicated offline document exists and is silent on conflicts. EVIDENCE: blog.petpooja.com/industry-business-guides/restaurant-pos-without-internet/ (modified 2026-07-22) is Petpooja's own offline behaviour guide. It enumerates both sides ("Keeps working: billing and printing bills, KOT printing, table and floor management, the menu already saved, cash settlement and day-end" / "Waits for the line: Swiggy and Zomato orders, card and UPI on the EDC, cloud reports and dashboard, menu edits pushed online") and describes reconnection only as "Everything punched offline syncs on its own once the line returns" and "You do not re-enter anything". No merge, last-write-wins or operator prompt is described anywhere. BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. POISON NAMED: "conflict*" is NOT zero — 60 hits, and every one is irrelevant: precedence clauses in four Terms documents ("If there is a conflict between these Terms..."), "conflict of interest" in the POSH-committee articles, "armed conflict" in a force-majeure clause, and marketing assertions that there are none ("No conflicting data between counters"). "last-write" 0, "merge conflict" 0, "network partition" 0. Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/restaurant-pos-without-internet/ · retrieved 2026-09-17 adversarially verified

C
Partial

The vendor publishes an explicit list of which features are unavailable offline (gift cards, loyalty lookup, refunds, manual card entry, text-to-pay).

reliability-offline-feature-matrix

OVERTURNED from `no`. The prior rationale -- "Petpooja markets offline capability broadly but nowhere enumerates which functions are unavailable offline" -- was false when written or has been overtaken: /offline-pos is a product page whose central widget is an internet on/off toggle, "Flip the internet switch to see what keeps working", with two explicitly labelled columns. What keeps running locally: "Every bill and KOT", "All dine-in and takeaway orders", "Sales records and day-end reports". What does not, under a card whose tag flips from "Live sync" to "Paused" when the switch is off: "Menu and price updates", "Online orders from Zomato and Swiggy", "Settings and app changes". The offline state also names a bound -- "You're offline — billing keeps running, sync resumes when you reconnect" and, in the FAQ, "Offline POS keeps billing for up to 5 days even if your internet goes down." That is a published, two-sided list, which is what the claim asks for. `partial` not `yes` on two shortfalls: it describes the separate on-premise "Offline POS" product rather than the cloud POS whose product pages say only "Works offline, cloud-based software"; and none of the functions the claim names -- gift cards, loyalty lookup, refunds, manual card entry, text-to-pay -- appears on either side of the split. Grade C: a marketing page. https://www.petpooja.com/offline-pos · retrieved 2026-09-09

C
No

A public, per-component status page exists showing current and historical incident state without a login.

reliability-public-status-page

I enumerated the vendor's own published URL index. www.petpooja.com/sitemap.xml lists 119 URLs (home, /poss and its feature and outlet-type pages, the /ae, /ae/ar, /us and /ca market pages, /offline-pos, /payroll, /invoice, /tasks, /about-us, /careers, /security, /escalation_matrix, and the policy and terms pages) and contains no status or uptime page. The Wayback CDX index for petpooja.com and nine subdomains (12,898 lines) holds 0 status-, docs-, developer- or api-shaped URLs (control: `poss` 210). Over 947 vendor documents, `status page` 0 and `system status` 0; the 7 `uptime` hits are generic prose or a terms clause about third-party features. Probes of 2026-08-06, not re-run: www.petpooja.com/status returned 404; status.petpooja.com returned HTTP 500 with no body; status.petpooja.in did not resolve; petpooja.statuspage.io redirected to atlassian.com/software/statuspage and petpooja.instatus.com to instatus.com. The site footer's link set (Privacy, Compliance, Terms, Cancellation & Refund, Corporate Information, Escalation Matrix, Security) had no status link, and 'Compliance' points to the trust.petpooja.com Trust Vault. https://www.petpooja.com/sitemap.xml · retrieved 2026-09-12

B
No

A contractual uptime SLA with a stated percentage AND a service credit remedy is published or available in the standard agreement. differentiator

reliability-contractual-uptime-sla

Verified: the published terms contain no uptime commitment and no service-credit remedy; service is provided "AS IS" with broad liability disclaimers. https://petpooja.com/terms-and-conditions · retrieved 2026-08-01 adversarially verified

B
No

The vendor publishes written post-incident reports or root-cause summaries for major outages.

reliability-incident-postmortems

NEW SURFACE (324th): PETPOOJA'S TRUST CENTRE IS NOW OPEN ANONYMOUSLY. The footer 'Compliance' link goes to trust.petpooja.com, a Scrut Automation Trust Vault. A prior pass recorded it as unreadable (root and guessed /sites/<slug> routes rendering the not-found page). That is no longer true and the gating was misread: POST https://app.scrut.io/api/v1/trustCenterService/trust-portal/domainConnector/get-domain with {"domain":"trust.petpooja.com"} returns 200 AND SETS A COOKIE - auth-id-token, a JWT whose decoded payload is {"aud":"trust-portal","tokenType":"portal-guest","tenantId":"cff3dc8db5-prod","domainN":"trust.petpooja.com"}, alongside isLoggedIn=false. It is a GUEST token issued to anyone; no login, no OTP, no NDA. Replaying that cookie against the portal's own endpoints returns the whole portal: /trust-portal/getframework and /getframeworkV1 (3 frameworks), /document-section-list and /item-list (3 compliance documents), /get-all/controller (159,689 bytes, 13 categories, 105 controls), /sub-processor/get-all (6), /faqs (2), /update-details (0). Raw JSON in .cache/q324/petpooja/scrut/. EVIDENCE OF ABSENCE ON THE ONE SURFACE BUILT FOR IT: the trust centre ships an Updates feed - the endpoint /trust-portal/update-details, which is where a Scrut Trust Vault publishes security notices and incident write-ups - and Petpooja's returns an EMPTY ARRAY ({"responseData":[],"success":true,"code":200}), i.e. zero entries over the portal's life (its earliest stored object is dated 2025-06). What Petpooja does publish about incidents is internal-process only, under Corporate Security / Incident Response: 'Petpooja has established comprehensive incident response policies and procedures to guide personnel in promptly reporting and effectively responding to IT incidents. These procedures outline clear steps for incident identification, classification, investigation, and resolution, ensuring a coordinated and efficient response to minimize impact and restore normal operations swiftly.' That is a policy statement with no commitment to publish anything. BOUND, three publication surfaces held whole: the trust portal (API census, 0 updates); www.petpooja.com/sitemap.xml re-derived 2026-09-17 at 131 URLs with no status, incident, uptime or postmortem page; and status.petpooja.com, which is only the *.petpooja.com wildcard catch-all - it returns the same 1,691-byte body as a nonsense host ('Oops! This obviously isn't a page you were looking for. It seems you have ended up at the wrong address of your outlet.'), so there is no status page to carry a postmortem. Retrieved 2026-09-17. https://trust.petpooja.com/ · retrieved 2026-09-17 adversarially verified

B
Partial

24/7/365 live human support by phone is included in the base subscription, not sold as a premium support tier.

reliability-247-live-support

Direct internal contradiction in the vendor's own material. The support page says "24-hour free support, even on holidays and weekends", but the pricing page's comparison matrix lists "On-call/On-chat support" as the baseline entitlement and "24/7 Support" plus "Dedicated POC" in the advanced/upper-tier block. The "included not upsold" conclusion is unsupported and probably wrong. https://petpooja.com/poss/pricing · retrieved 2026-08-01 adversarially verified

C
Partial

The vendor offers in-person on-site installation and go-live support (first-party or certified dealer network), not remote-only self-install. differentiator

reliability-onsite-install

The support page I re-fetched offers only "Get in-person assistance and personalised solution from our POS experts" plus "Staff training & retraining" - it never mentions installation. The setup guide is closer: "The team installs the Bridge Server and POS Local on your computer" and "Before the team arrives, it helps to have the computer and the UPS ready", which implies an engineer visit without ever stating it. Shortfall: on-site go-live is implied by a vendor blog, never documented; no certified dealer network, no coverage map, and no statement whether it is included or chargeable. https://blog.petpooja.com/industry-business-guides/petpooja-pos-local-hardware-setup-guide/ · retrieved 2026-08-02 adversarially verified

D
Partial

The vendor performs the initial menu build as part of onboarding rather than leaving it entirely to the operator. differentiator

reliability-menu-build-service

The POS Local setup guide describes a vendor-run guided install that explicitly includes menu transfer: 'The Petpooja team installs the software, sets up the database, and connects your outlet, so you are not left configuring anything technical', and 'POS Local is a fresh setup, not an upgrade from a cloud plan. If you are moving over, the team helps you get your menu and outlets across as part of the same process.' www.petpooja.com/poss/support adds free on-call and in-person training and retraining. Shortfall: the documented menu work is migration of an existing Petpooja menu, the operator is expected to have menu items and item-wise ingredients ready, and no first-party page states that Petpooja builds a net-new menu from a restaurant's printed menu as standard onboarding. The source is a vendor blog guide, not the admin manual. https://blog.petpooja.com/industry-business-guides/petpooja-pos-local-hardware-setup-guide/ · retrieved 2026-08-06

C
Partial

A hardware replacement/advance-exchange program with a stated turnaround time is included or purchasable.

reliability-hardware-replacement-sla

CLAIM: a hardware replacement/advance-exchange program with a stated turnaround time is included or purchasable. VERDICT: partial (moved from unknown). WHAT IS SATISFIED: the only hardware Petpooja itself sells under a published agreement carries an INCLUDED replacement warranty. (POS hardware is partner-sourced: "Hardware is sourced via our partners", www.petpooja.com/ae/poss; see hardware-pricing-transparency.) Clause 8 of the Attendo/Payroll agreement, re-fetched live 2026-09-18, says: "The Services provided by the Company shall be a combination of software and Hardware, the Hardware shall have a warranty period of 1 (one) year and the period of warranty shall commence from installation of the Hardware at the location of business ... In case of any technical issue with the Hardware, the same shall be qualified for a replacement, provided that technical issue shall not be caused by any physical damage to the Hardware for whatever reason." SHORTFALL (named): NO TURNAROUND is stated (no next-business-day, depot-swap or on-site window) and there is no advance exchange. It also covers only the Attendo attendance device, not billing hardware, which is merchant-owned commodity PCs and Android devices (the POS Local guide says "The computer is a one-time purchase that you own"). The support escalation matrix (www.petpooja.com/escalation_matrix) states response/resolve times (L1 1h/2h, L2 2h/4h, L3 4h/6h), but for support tickets, not hardware. CONSISTENCY: the near-identical sibling hardware-rma-sla ("publishes a hardware warranty term and a replacement/advance-exchange SLA with a stated turnaround") already stands at partial/C on this same Attendo device warranty (the blog's "face-scanner device with a lifetime warranty"). This row cites the vendor's legal agreement instead (grade B). The labour cells of this record already treat Attendo as Petpooja's own product (4 labour no/B in the 333rd). Retrieved 2026-09-18. https://www.petpooja.com/payroll/terms-and-conditions · retrieved 2026-09-18 adversarially verified

B
Partial

Operators can trigger and retrieve their own data backup/restore, or the vendor publishes RPO/RTO figures for data recovery.

reliability-backup-restore

Operator-controlled backups are documented for POS Local: 'Once you are running, POS Local keeps your records safe with built-in backups. You can set them to run on a daily, weekly or monthly schedule, and the system keeps the copies for you', with the instruction to 'save the backups to a separate drive, such as a D: or E: drive. Keep them off the C: drive the software runs on ... That keeps your records safe even if the main system is ever reinstalled', and 'Where is my data stored? On the computer running the Bridge Server at your own restaurant.' Shortfall: this covers only the on-premise POS Local deployment, no restore procedure is documented (only the implication that a reinstall can be recovered from), and no RPO or RTO figure is published for POS Local or for the cloud plans. https://blog.petpooja.com/industry-business-guides/petpooja-pos-local-hardware-setup-guide/ · retrieved 2026-08-06

C
No

The vendor publishes a current PCI DSS v4.0/4.0.1 Attestation of Compliance or equivalent (e.g. validated P2PE listing) covering the post-March-2025 future-dated requirements.

reliability-pci-dss-4-attestation

NEW SURFACE (324th): PETPOOJA'S TRUST CENTRE IS NOW OPEN ANONYMOUSLY. The footer 'Compliance' link goes to trust.petpooja.com, a Scrut Automation Trust Vault. A prior pass recorded it as unreadable (root and guessed /sites/<slug> routes rendering the not-found page). That is no longer true and the gating was misread: POST https://app.scrut.io/api/v1/trustCenterService/trust-portal/domainConnector/get-domain with {"domain":"trust.petpooja.com"} returns 200 AND SETS A COOKIE - auth-id-token, a JWT whose decoded payload is {"aud":"trust-portal","tokenType":"portal-guest","tenantId":"cff3dc8db5-prod","domainN":"trust.petpooja.com"}, alongside isLoggedIn=false. It is a GUEST token issued to anyone; no login, no OTP, no NDA. Replaying that cookie against the portal's own endpoints returns the whole portal: /trust-portal/getframework and /getframeworkV1 (3 frameworks), /document-section-list and /item-list (3 compliance documents), /get-all/controller (159,689 bytes, 13 categories, 105 controls), /sub-processor/get-all (6), /faqs (2), /update-details (0). Raw JSON in .cache/q324/petpooja/scrut/. EVIDENCE OF ABSENCE, WITH THE DENOMINATOR: the compliance-document section is a CLOSED, COMPLETE list served by the vendor's own portal - /document-section-list returns exactly three entries (SOC 2, ISO 27001:2022, SOC 1), all:3 / public:0 / private:3, and /item-list returns the same three PDFs. No PCI DSS AoC, no ROC, no validated P2PE listing. This is more than absence: Scrut's catalogue OFFERS Petpooja a 'PCI DSS' slot under the Reports category and Petpooja left it EMPTY while filling 31 other rows (Data Center='AWS', Encryption-in-transit, BC/DR, Web Application Firewall, VAPT, Credential Management and so on). All nine Reports slots - Vulnerability Assessment Report, Network Diagram, Security Whitepaper, Security Prospectus, Data Localization Report, Pentest Report, PCI DSS, Other Reports, HIPAA Report - are empty, so the vendor publishes no attestation beyond the three framework reports. BOUND: trust.petpooja.com held whole via its own API (above), plus www.petpooja.com/sitemap.xml RE-DERIVED 2026-09-17 at 131 URLs (the existing note's figure of 46 is stale) containing no PCI, AoC, P2PE or attestation page, plus www.petpooja.com/security, which is a vulnerability-disclosure policy. CONTROLS, tokenised, word-boundary, case-insensitive over the portal JSON and the 131-URL sitemap: 'PCI' 1 (the empty slot), 'AoC' 0, 'P2PE' 0, 'SAQ' 0, 'attestation' 0. POISON NAMED, AND IT IS SEVERE ON THIS SURFACE: /get-all/controller returns SCRUT'S ENTIRE CONTROL CATALOGUE, not Petpooja's answers. Every one of the 105 rows ships Scrut's own `example` and `bestPractices` boilerplate (the 'PCI DSS' row carries example='Our organization is compliant with PCI DSS 3.1.2'; the 'Multi-Factor Authentication' row carries example='Users can protect their accounts with SMS or OTP based MFA'). ONLY the `description` field is tenant-authored. 31 of the 105 rows have a non-empty description; 74 are empty template slots. Quoting an `example` as a Petpooja statement would fabricate a cell. Retrieved 2026-09-17. https://trust.petpooja.com/ · retrieved 2026-09-17 adversarially verified

B
Partial

Multi-factor authentication is enforceable on back-office and POS administrative logins, with role-based permissions.

reliability-mfa-role-based-access

Role-based user-rights management is documented and unlimited user rights ship on every tier. MFA enforcement on back-office or admin logins is not documented. https://petpooja.com/poss/reports-and-analytics · retrieved 2026-08-01

D
Partial

A public, free training library (video/LMS) and a practice/training mode on the terminal exist for staff onboarding.

reliability-self-serve-training

Free on-call and in-person training plus a public YouTube channel and blog templates/checklists. A structured LMS and an on-terminal training mode are not documented. https://petpooja.com/poss/support · retrieved 2026-08-01

D
No

Any terminal can assume the master/server role automatically if the designated primary terminal or local server fails. differentiator

reliability-failover-terminal-role

CLAIM: any terminal can assume the master/server role automatically if the designated primary fails. VERDICT: no (moved from unknown). EVIDENCE: the vendor's own POS tutorial "Petpooja | POS | English" (official Petpooja Tutorials channel), transcript: "there could be more than one billing stations ... inside your outlet but inside one Outlet only one master billing station can be there which would also be used as a local server by all the other softwares so while you begin installing the software make sure you know which kind of a server station do you want it to be". The POS Local guide on blog.petpooja.com says the same for the on-premise build: "A single device acts as the Master Billing Station and connects to the Bridge Server directly. Your secondary counters, kitchen display and captain devices then connect through that Master Station" and "The Petpooja team handles all of this during install ... You do not set up any of it by hand"; the www billing page: "sync them with one master station". So the master role is a single station fixed at install time. Every build has that one master (the owner ruling that a cloud POS with no in-store master = no also covers the cloud builds). NEW SURFACE (332nd): the @PetpoojaTutorials YouTube channel (UCCAKlH4ogL0PvuUErRk5TWQ) taken to a census: 198/198 public videos listed with yt-dlp (/videos; channel has no shorts tab), all 198 transcripts fetched (95 English, 103 Hindi; 567,007 chars; .cache/q332/petpooja/b/tx/). The channel's 14 playlists hold 11 more ids, all private/unplayable. The tutorials' "resource base" (bit.ly/petpoojatutorials -> a Notion page) no longer serves its blocks anonymously, and bit.ly/petpoojatutorialshelp is a Google Sites feedback form. Controls tokenised, word-boundary, case-insensitive, run over this transcript corpus AND the on-disk blog WP-REST census (q325 corpus-blog.txt), www sitemap corpus (q325 corpus-www.txt), the 331st www re-fetch, blog delta and ar corpora. CONTROLS tutorials/blog/www/www-new/blog-delta: "fail over|failover" 0/1/0/0/0 (the blog hit is a 4G dongle in the kiosk router, i.e. broadband, not a terminal); "backup server|spare server|secondary server" 0/0/0/0/0; "standby" 0/2/0/0/0 (POISON: old tills "kept on standby" during a UAE migration, and fire extinguishers); "promot* ... master/server" 0 everywhere; "take(s) over" 0/19/0/0/4 (POISON: all prose, e.g. "fermentation takes over", none about a server). The only resilience measure the vendor names is a UPS on the server machine. Retrieved 2026-09-18. https://www.youtube.com/watch?v=zPwJPJmhsek · retrieved 2026-09-18 adversarially verified

B
No

Terminals support an automatic cellular/LTE failover for connectivity, first-party or documented.

reliability-cellular-backup

CLAIM: terminals support an automatic cellular/LTE failover for connectivity, first-party or documented. VERDICT: no — the vendor's own remedy is a MANUAL workaround, which is positive evidence of absence. EVIDENCE: the offline guide's preparation list says "Keep a mobile hotspot at the till, since a phone line is often up when the fibre is not", and the body: "A phone tethered at the counter often restores card payments and aggregator orders within a minute, with the main line still down." Nothing switches over by itself. The only "failover" in the whole corpus is router-level and manual, in the kiosk setup guide: "If broadband in your area is unreliable, keep a 4G dongle plugged into the router as failover" (blog.petpooja.com/industry-business-guides/set-up-self-ordering-kiosk-restaurant/). BOUND: the publisher's own manifest, fetched to 100% — blog.petpooja.com WordPress REST (X-WP-Total: 817 posts, 330 glossary entries, 12 pages; all fetched 2026-09-17) plus all 66 India/global URLs of www.petpooja.com/sitemap.xml = 995 vendor documents, 9,579,728 chars, HTML comments PRESERVED (Petpooja hides plan prices inside <!-- -->). Controls are tokenised, word-boundary, case-insensitive. Controls: "LTE" 0, "failover" 1 (the 4G dongle above), "4G" 8 (all about budget Android phones' page-load speed or attendance devices), "SIM" 7 — and every SIM hit is the Wireless Calling Device boasting the OPPOSITE ("no separate receiver or display... no SIM", www.petpooja.com/poss/wireless-calling-device). Retrieved 2026-09-17. https://blog.petpooja.com/industry-business-guides/restaurant-pos-without-internet/ · retrieved 2026-09-17 adversarially verified

C

Commercial, compliance & data ownership

Partial

Vendor publicly offers a month-to-month subscription with no minimum multi-year term commitment for its core POS software tier. differentiator

commercial-month-to-month-contract

The only billing term Petpooja actually states in writing is annual: "We will bill your Payment Method for your yearly membership fee at the end of the free trial period unless you uninstall the App prior to the end of the free trial period." I could not confirm a monthly billing toggle on the pricing page — the fetched page shows tier names, a feature matrix and "Contact us for accurate, localized rates", with every tier routed to Book A Demo. Cancel-any-time from the refund policy supports partial, not yes. https://petpooja.com/terms-and-conditions · retrieved 2026-08-01 adversarially verified

B
Partial

Vendor's published terms of service or MSA state no early termination fee / no liquidated damages for cancelling the software subscription before term end. differentiator

commercial-no-early-termination-fee

No ETF or liquidated damages appear; annual cancellations are refunded 'to the extent of your usage'. The policy never states 'no early termination fee' explicitly. https://petpooja.com/cancellation-and-refund-policy · retrieved 2026-08-01

B
Partial

The auto-renewal term and the required cancellation notice window (e.g. 30/60/90 days) are stated in publicly accessible contract terms rather than only in a signed quote.

commercial-autorenew-terms-published

Terms disclose post-trial billing of the yearly fee unless the app is uninstalled first. No renewal term length or required cancellation notice window is stated. https://petpooja.com/terms-and-conditions · retrieved 2026-08-01

B
Partial

The POS software can be purchased and operated with a third-party payment processor of the operator's choice (no mandatory in-house processing lock). differentiator

commercial-processing-not-bundled

I fetched the cited page: its only payment sentence is "Integrate Payment gateways with the website" - it names no gateway and says nothing about processor choice, so the grade E on it was also wrong (it is a first-party marketing page). The terms of service likewise never mandate a Petpooja processor, but absence of a mandate is not positive evidence of choice. Shortfall: no first-party page enumerates supported acquirers or gateways, and Petpooja now markets its own bundled Petpooja PAY / Petpooja GO on a Paytm-supplied device. https://petpooja.com/poss/restaurant-website · retrieved 2026-08-02 adversarially verified

D
No

Vendor publishes an interchange-plus (cost-plus) processing rate option with the markup stated as a specific bps + per-transaction figure, rather than only blended/flat card-present rates. differentiator

commercial-interchange-plus-published

Petpooja markets card acceptance but publishes no processing rate of any structure, blended or cost-plus. The US/Canada POS page sells Integrated Payments with 'multiple processing options, a wide range of card processing terminals & integrated in-person & online payments' and renders no rate. Where Petpooja describes acceptance, the pricing belongs to third parties. Its Finance post says 'Petpooja Pay+ is an internet-first way to run EDC card machines, rolling out with partners including Paytm, Razorpay, Pine Labs, Mosambee, and BharatPe', with a payout view that 'Shows provider charges and the final amount credited, in one view'. For online orders, /poss/online-order-management-software answers 'Can I use my own payment gateway for online orders?' with 'You can use your Razorpay gateway at the website widget for online orders.' Over 947 vendor documents, tokenised: `interchange` 0. `MDR` 14 hits, all in one generic card-vs-UPI explainer (MDR is what 'the provider deducts before the money settles'). No bps-plus-per-transaction figure appears anywhere. Grade C: a marketing page. https://www.petpooja.com/us/poss · retrieved 2026-09-12

C
No

The processing agreement caps or prohibits unilateral vendor-initiated rate increases outside of pass-through interchange/network changes, or grants penalty-free exit on any increase. differentiator

commercial-rate-increase-clause

CLAIM: the agreement caps or prohibits unilateral vendor-initiated rate increases, or grants penalty-free exit on any increase. VERDICT: no. THE EXISTING NOTE IS FALSIFIED — it says "Neither contains a pricing, rate-revision or fee-increase clause"; both do. EVIDENCE (verbatim): www.petpooja.com/terms-and-conditions — "We may change our service plans and the price of our Services from time to time." and, immediately before it, "You may cancel your membership at any time. However, we do not provide refunds or credits for partial membership periods." www.petpooja.com/cancellation-and-refund-policy, section "Revisions" — "We may in our discretion change the Terms of Service as well as this Cancellation & Refund Policy, or any aspect of Petpooja Subscription, WITHOUT NOTICE TO YOU. ... YOUR CONTINUED SUBSCRIPTION AFTER WE CHANGE THESE TERMS CONSTITUTES YOUR ACCEPTANCE OF THE CHANGES. IF YOU DO NOT AGREE TO ANY CHANGES, YOU MUST CANCEL YOUR SUBSCRIPTION." The same policy makes that exit non-penalty-free: full refund only "within 15 business days of signing up"; after that, an annual subscription is refunded "only to the extent of your usage" and a monthly subscription "will be refunded only if you have not made any usage or taken advantage any of the Petpooja benefits since payment". Both disjuncts of the claim therefore fail: there is no cap, no notice period and no carve-out limiting changes to pass-through costs, and the only remedy — cancellation — forfeits the paid period once the service has been used. GRADE B: vendor legal pages, re-fetched in full 2026-09-18 (terms 26,147 bytes, refund policy 22,357 bytes, rendered with HTML comments preserved). SCOPE: Petpooja does resell payment acceptance (the store-level app's add-on registry carries petpooja_pay_axis_details, petpooja_pay_bijlipay_details, petpooja_pay_razorpay_details, hdfc_swipe_details, flashpe_details, qlub_pay_details), and no separate merchant processing agreement is published anywhere in the 66-URL sitemap, so this subscription agreement is the only published fee agreement that governs those rates. Retrieved 2026-09-18. https://www.petpooja.com/cancellation-and-refund-policy · retrieved 2026-09-18 adversarially verified

B
Partial

Per-location and per-additional-terminal software pricing is published as specific dollar figures on the vendor's public site (not 'contact sales' only).

commercial-pricing-published

Petpooja's UAE POS page publishes a starting subscription price. Its FAQ answers 'What does it cost?' with 'Starts at AED 1,500/year per outlet, billed annually.', and its pricing block shows the same AED 1,500 per-year figure with the line 'Per outlet, billed annually. You get an exact quote on the demo call, based on your outlet type and the features you need.' SHORTFALL: (1) it is a floor price for one market only, and the actual per-outlet price is quoted on a demo call. (2) No per-additional-terminal price is published anywhere. (3) India (/poss/pricing) and the UAE pricing page publish tier names and a feature matrix with no figures. (4) /us/poss and /ca/poss render no figures. Their Core/Growth/Scale prices ($50/$95/$135 per month billed annually; $65/$115/$150 billed monthly) sit inside HTML comments in the page source and are not displayed, under the rendered note 'The prices on the page might vary based on location. Please contact us for details!'. Grade C: a product page. https://www.petpooja.com/ae/poss · retrieved 2026-09-12

C
Partial

Individual modules (online ordering, KDS, loyalty, inventory, payroll, marketing) can be purchased à la carte and cancelled independently without repricing the base POS subscription. differentiator

commercial-module-unbundling

Add-ons (KDS, kiosk, loyalty, website, feedback, SMS) are marketplace items and Growth bundles 'any 5 marketplace services'. Independent cancellation without repricing the base plan is not documented. https://petpooja.com/poss/restaurant-app-marketplace · retrieved 2026-08-01

D
Partial

All required terminals, KDS screens, and printers can be purchased outright at a published price, with no mandatory multi-year hardware lease or rental.

commercial-hardware-purchase-outright

Software runs on commodity Windows/Android hardware an operator can buy anywhere, so no lease is imposed - but no vendor hardware prices are published. https://petpooja.com/poss/kitchen-display-system · retrieved 2026-08-01

E
Partial

Vendor documents support for at least one non-proprietary/third-party hardware option (e.g. standard iPad, Epson/Star ESC/POS printers, generic cash drawer) rather than requiring vendor-only devices. differentiator

commercial-hardware-not-locked

I re-fetched the cited page. It says "Petpooja's KDS works perfectly well with any Windows or Android-based device" and is "Configured to work on any android phone" - a marketing claim, not a compatibility document. Petpooja publishes no hardware compatibility matrix: no named printer (Epson/Star/TVS), cash drawer or scanner model appears on any first-party page, and the vendor's own hardware guide only advises "Ensure the hardware integrates smoothly with your POS system". Shortfall: no documented third-party peripheral support, and the "200+ hardware" figure is unenumerated. https://petpooja.com/poss/kitchen-display-system · retrieved 2026-08-02 adversarially verified

D
Partial

One-time implementation, menu-build, onboarding, and training fees are published as specific amounts or explicitly stated as $0.

commercial-implementation-fee-published

The UAE POS page lists 'Setup, VAT config & training included' as a bullet of its AED 1,500/year plan, which publishes setup and training as included, i.e. at zero. Its FAQ adds 'Our team handles your full setup - menu upload, tax configuration, and outlet settings - mostly remotely.' and, on migrating from an old POS, 'Our onboarding team handles this as part of setup'. A Petpooja blog on switching POS (blog.petpooja.com/industry-business-guides/switch-restaurant-pos-without-losing-data/) likewise says 'Training is included, on call and in person, with retraining available later if you hire new staff.' SHORTFALL: (1) the UAE Terms and Conditions reserve the opposite: 'Such training, support and installation may be provided on additional charges as notified by us from time to time.' (2) The India /poss/pricing page and the /us/poss and /ca/poss pages state no implementation, installation or training fee, either as an amount or as zero. Grade C: a product page (the contractual reservation is grade B and cuts against it). https://www.petpooja.com/ae/poss · retrieved 2026-09-12

C
Partial

Operators can self-serve export their full transactional history (orders, line items, payments, labor) to CSV or a documented API without contacting support or paying a fee.

commercial-data-export-self-serve

Customer data downloads free and unlimited, and reports export. Full transaction-line-item export via CSV or API is not documented, and post-termination access lasts 2 days. https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-01

B
Partial

Guest/customer records, loyalty balances or point ledgers, and gift-card liability balances are exportable in machine-readable form by the operator. differentiator

commercial-export-customer-and-loyalty

Customer records export freely. Machine-readable export of loyalty point ledgers and wallet/stored-value liability balances is not documented. https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-01

D
Yes

Contract or documentation specifies a post-termination data retrieval window (a defined number of days during which the operator can still export their data) rather than immediate cutoff. differentiator

commercial-post-termination-export-window

Verified verbatim: "Upon expiry or termination of this Service Agreement, you shall download your data within 2 days of such expiry or termination." Correctly quoted and correctly characterised as punitive. https://petpooja.com/terms-and-conditions · retrieved 2026-08-01 adversarially verified

B
No

Published terms explicitly state the merchant owns its transaction and customer data, and constrain the vendor's right to use or resell that data (beyond aggregated/de-identified use) for its own products or marketing. differentiator

commercial-data-ownership-clause

Verified verbatim in the terms: "By submitting Your Content you hereby irrevocably grant us a perpetual, irrevocable, nonexclusive, royalty-free, right to use Your Content" and "Petpooja may monetize some of this Content through the use of third party affiliate programs." Quoted accurately. https://petpooja.com/terms-and-conditions · retrieved 2026-08-01 adversarially verified

B
No

The POS is source-available or open source with a documented self-hosting option (source published under an OSI or source-available license, not merely an open API).

commercial-source-available-selfhost

Proprietary SaaS under a standard subscription licence; no source availability or self-hosting (the 'Local POSS' SKU is local data storage, not self-hosted source). https://petpooja.com/terms-and-conditions · retrieved 2026-08-01

B
No

Vendor documents validated P2PE or hardware-encrypted card entry plus tokenization such that the merchant's PCI scope is reduced to SAQ A / SAQ P2PE-HW, and names the applicable SAQ.

commercial-pci-p2pe-tokenization

CLAIM: vendor documents validated P2PE or hardware-encrypted card entry plus tokenization reducing the merchant to SAQ A / SAQ P2PE-HW, and names the SAQ. VERDICT: no. BOUND/CORPUS (327th): (a) THE STORE-LEVEL POS WEB APP ITSELF — https://billing.petpooja.com/ is Petpooja's production store-level POS/back-office web app (its own Terms of Service names "www.billing.petpooja.com" as the Site). Its PUBLIC login page (94,412 bytes, server-rendered CakePHP, no SPA bundle) ships an inline `var active_function = {...}` object: a 166-entry registry of every add-on/integration the app can activate, each with file_name, logo and an activate_* handler (e.g. "26":{"file_name":"kds_details","activate":"activate_kds"}). Nonsense control: https://zzznope9987qq.petpooja.com/ and https://billing.petpooja.com/zzznope9987 return the *.petpooja.com wildcard catch-all (404, 1,691 bytes / 404, 7,430 bytes) while the root returns 200/19,180, so this host is real and is NOT the wildcard. Grade B: the vendor's own shipped production code, not marketing. The registry matches the marketing claim of "150+ third-party integrators". (b) the 995-document publisher-manifest census built in the 325th (blog.petpooja.com WordPress REST: 817 posts + 330 glossary + 12 pages, X-WP-Total confirmed; plus all 66 www.petpooja.com sitemap URLs incl. every legal page), 9,579,728 chars, HTML comments PRESERVED. (c) the three anonymous Apiary API blueprints held in the 326th (367,492 bytes). (d) trust.petpooja.com's own Scrut trust-centre document registry fetched anonymously. EVIDENCE: the trust centre's own document registry (POST app.scrut.io/api/v1/trustCenterService/trust-portal/domainConnector/get-domain with {"domain":"trust.petpooja.com"} for the guest cookie, then the documents section) lists EXACTLY THREE tenant-uploaded compliance documents — frameworkName "SOC 2" (documentCount 1), "ISO 27001:2022" (1) and "SOC 1" (1), all isPrivate — and the frameworks endpoint names only SOC 2 and ISO 27001:2022. This is the tenant's own populated registry, not an empty Scrut template slot, so a framework missing from it is genuinely not published. CONTROLS over every corpus (www 66 docs / blog 1,159 docs / api 3 blueprints / the store-level app's 166-entry registry / the login page): PCI 0/0/0/0/0, "PCI DSS" 0/0/0/0/0, P2PE 0/0/0/0/0, SAQ 0/0/0/0/0, tokenisation|tokenization 0/1/0/0/0 (the single blog hit is generic payments prose, not a Petpooja design statement), "point-to-point encryption" 0/0/0/0/0. POISON FOUND AND REMOVED: an un-anchored `accessib` control returned 0 and would have published a FALSE zero — it needs a prefix-only match (`accessibility` is 3+29 hits); `PCI` un-anchored returns 31 blog hits that are ALL inside `NPCI` (National Payments Corporation of India); `Otter` un-anchored returns 6 hits inside longer words; `Olo` returns 1,171 hits inside `technology`. All controls below are anchored with (?<![A-Za-z0-9])...(?![A-Za-z0-9]) and run case-insensitively over every corpus named above, each reported separately. Since the claim is itself a DOCUMENTATION claim, an absence across the publisher's complete manifest plus its own trust centre settles it. Retrieved 2026-09-18. https://trust.petpooja.com/ · retrieved 2026-09-18 adversarially verified

B
No

Vendor documents PCI DSS v4.0.1 future-dated controls in effect since 31 Mar 2025 — notably MFA for all access to the cardholder data environment including POS and back-office logins, and (for hosted ordering pages) payment-page script integrity monitoring per Req 6.4.3/11.6.1.

commercial-pci-dss-4-controls

CLAIM: vendor documents PCI DSS v4.0.1 future-dated controls — MFA for all CDE access including POS and back-office logins, and payment-page script-integrity monitoring per Req 6.4.3/11.6.1. VERDICT: no. THIS IS A DIFFERENT BOUND FROM THE ONE REJECTED IN THE 324th: that proposal rested on empty slots in Scrut's OWN template control catalogue. This one rests on (a) the TENANT-authored document registry — exactly three uploaded compliance documents, SOC 2, ISO 27001:2022 and SOC 1, none PCI — and (b) tokenised controls over the 995-document publisher-manifest census plus the store-level POS app itself. BOUND/CORPUS (327th): (a) THE STORE-LEVEL POS WEB APP ITSELF — https://billing.petpooja.com/ is Petpooja's production store-level POS/back-office web app (its own Terms of Service names "www.billing.petpooja.com" as the Site). Its PUBLIC login page (94,412 bytes, server-rendered CakePHP, no SPA bundle) ships an inline `var active_function = {...}` object: a 166-entry registry of every add-on/integration the app can activate, each with file_name, logo and an activate_* handler (e.g. "26":{"file_name":"kds_details","activate":"activate_kds"}). Nonsense control: https://zzznope9987qq.petpooja.com/ and https://billing.petpooja.com/zzznope9987 return the *.petpooja.com wildcard catch-all (404, 1,691 bytes / 404, 7,430 bytes) while the root returns 200/19,180, so this host is real and is NOT the wildcard. Grade B: the vendor's own shipped production code, not marketing. The registry matches the marketing claim of "150+ third-party integrators". (b) the 995-document publisher-manifest census built in the 325th (blog.petpooja.com WordPress REST: 817 posts + 330 glossary + 12 pages, X-WP-Total confirmed; plus all 66 www.petpooja.com sitemap URLs incl. every legal page), 9,579,728 chars, HTML comments PRESERVED. (c) the three anonymous Apiary API blueprints held in the 326th (367,492 bytes). (d) trust.petpooja.com's own Scrut trust-centre document registry fetched anonymously. CONTROLS (www/blog/api/registry/login page, anchored, case-insensitive): "PCI DSS" 0/0/0/0/0, MFA 0/0/0/0/0, multi-factor 0/0/0/0/0, two-factor|2FA 0/0/0/0/0, "script integrity" 0/0/0/0/0. The store-level POS login page itself (billing.petpooja.com, the app named in Petpooja's own Terms of Service) offers e-mail + password only, with no second-factor step or enrolment copy in its 94,412 bytes. POISON FOUND AND REMOVED: an un-anchored `accessib` control returned 0 and would have published a FALSE zero — it needs a prefix-only match (`accessibility` is 3+29 hits); `PCI` un-anchored returns 31 blog hits that are ALL inside `NPCI` (National Payments Corporation of India); `Otter` un-anchored returns 6 hits inside longer words; `Olo` returns 1,171 hits inside `technology`. All controls below are anchored with (?<![A-Za-z0-9])...(?![A-Za-z0-9]) and run case-insensitively over every corpus named above, each reported separately. Retrieved 2026-09-18. https://trust.petpooja.com/ · retrieved 2026-09-18 adversarially verified

B
Yes

Vendor states it holds a current SOC 2 Type II (or ISO 27001) attestation and will provide the report under NDA via a trust center or on request.

commercial-soc2-attestation

NEW SURFACE (324th): PETPOOJA'S TRUST CENTRE IS NOW OPEN ANONYMOUSLY. The footer 'Compliance' link goes to trust.petpooja.com, a Scrut Automation Trust Vault. A prior pass recorded it as unreadable (root and guessed /sites/<slug> routes rendering the not-found page). That is no longer true and the gating was misread: POST https://app.scrut.io/api/v1/trustCenterService/trust-portal/domainConnector/get-domain with {"domain":"trust.petpooja.com"} returns 200 AND SETS A COOKIE - auth-id-token, a JWT whose decoded payload is {"aud":"trust-portal","tokenType":"portal-guest","tenantId":"cff3dc8db5-prod","domainN":"trust.petpooja.com"}, alongside isLoggedIn=false. It is a GUEST token issued to anyone; no login, no OTP, no NDA. Replaying that cookie against the portal's own endpoints returns the whole portal: /trust-portal/getframework and /getframeworkV1 (3 frameworks), /document-section-list and /item-list (3 compliance documents), /get-all/controller (159,689 bytes, 13 categories, 105 controls), /sub-processor/get-all (6), /faqs (2), /update-details (0). Raw JSON in .cache/q324/petpooja/scrut/. EVIDENCE: the portal publishes three frameworks, each with a named report held private and obtainable by request. /getframeworkV1: frameWorkName 'soc 2' with document 'Prayosha_Food_Services_Private_Limited__SOC_2_Type_II_Report.pdf'; 'iso 27001:2022' with 'E-COPY-PRAYOSHA FOOD SERVICES PRIVATE LIMITED-ISMS-CA.pdf'; 'SOC 1' with 'Petpooja_-_SOC_1_Type_2_Report_2026.pdf' (SOC 1 description: 'SOC 1 Type 2 report is to provide assurance that the Petpooja's internal controls relevant to a client's financial reporting are both appropriately designed and operating effectively over a specific period.'). /document-section-list returns all:3, public:0, private:3 - every report is request-gated, which is exactly the claim's 'under NDA via a trust center'. The NDA route is real, not inferred: the portal's own client calls /trust-portal/fetch-nda-agreement, /updateNda and /req-access-rights. The vendor states the standard itself in its published FAQ: 'A SOC 2 Type I report covers the design of the service organization's controls at a specific point in time... Petpooja only issues SOC 2 Type II reports.' The legal entity is Prayosha Food Services Private Limited, which is Petpooja's registered name on www.petpooja.com/corporate_information. Both conjuncts (a current SOC 2 Type II or ISO 27001 attestation is held; the report is provided on request via a trust centre) are satisfied. Retrieved 2026-09-17. https://trust.petpooja.com/ · retrieved 2026-09-17 adversarially verified

B
Partial

Product provides in-app tooling for CCPA/CPRA and GDPR data-subject requests — locating, exporting, and deleting an individual guest's records — plus a published DPA the operator can execute.

commercial-privacy-dsar-tooling

Free customer-data download and the ability to block a customer from promotional messaging. Locate/export/delete DSAR tooling and an executable DPA are not documented. https://petpooja.com/poss/restaurant-customer-management-software · retrieved 2026-08-01

D
No

Vendor publishes an accessibility conformance report (VPAT/ACR) claiming WCAG 2.1 AA (or later) for its self-order kiosk and consumer web-ordering surfaces, including a documented tactile/audio non-visual access mode on kiosks. differentiator

commercial-wcag-kiosk-accessibility

CLAIM: vendor publishes a VPAT/ACR claiming WCAG 2.1 AA for its self-order kiosk and consumer web-ordering surfaces, including a documented tactile/audio non-visual access mode. VERDICT: no. THE CLAIM APPLIES: Petpooja ships a kiosk (kiosk_details / activate_kiosk appears twice in the store-level app's 166-entry add-on registry) and consumer ordering surfaces (own_website_details, white_label_details, menu_qr_details). BOUND/CORPUS (327th): (a) THE STORE-LEVEL POS WEB APP ITSELF — https://billing.petpooja.com/ is Petpooja's production store-level POS/back-office web app (its own Terms of Service names "www.billing.petpooja.com" as the Site). Its PUBLIC login page (94,412 bytes, server-rendered CakePHP, no SPA bundle) ships an inline `var active_function = {...}` object: a 166-entry registry of every add-on/integration the app can activate, each with file_name, logo and an activate_* handler (e.g. "26":{"file_name":"kds_details","activate":"activate_kds"}). Nonsense control: https://zzznope9987qq.petpooja.com/ and https://billing.petpooja.com/zzznope9987 return the *.petpooja.com wildcard catch-all (404, 1,691 bytes / 404, 7,430 bytes) while the root returns 200/19,180, so this host is real and is NOT the wildcard. Grade B: the vendor's own shipped production code, not marketing. The registry matches the marketing claim of "150+ third-party integrators". (b) the 995-document publisher-manifest census built in the 325th (blog.petpooja.com WordPress REST: 817 posts + 330 glossary + 12 pages, X-WP-Total confirmed; plus all 66 www.petpooja.com sitemap URLs incl. every legal page), 9,579,728 chars, HTML comments PRESERVED. (c) the three anonymous Apiary API blueprints held in the 326th (367,492 bytes). (d) trust.petpooja.com's own Scrut trust-centre document registry fetched anonymously. CONTROLS (www/blog/api/registry): WCAG 0/0/0/0, VPAT 0/0/0/0, ACR 0/0/0/0, "Section 508" 0/0/0/0, "screen reader" 0/0/0/0, tactile 0/1/0/0 (the one blog hit is about tactile paving in a general design post). The word "accessibility" DOES occur (3 www, 29 blog) — every occurrence is generic ("data accessibility", "accessibility of the location"), never a conformance statement. The trust centre's document registry (three documents: SOC 2, ISO 27001:2022, SOC 1) contains no ACR. POISON FOUND AND REMOVED: an un-anchored `accessib` control returned 0 and would have published a FALSE zero — it needs a prefix-only match (`accessibility` is 3+29 hits); `PCI` un-anchored returns 31 blog hits that are ALL inside `NPCI` (National Payments Corporation of India); `Otter` un-anchored returns 6 hits inside longer words; `Olo` returns 1,171 hits inside `technology`. All controls below are anchored with (?<![A-Za-z0-9])...(?![A-Za-z0-9]) and run case-insensitively over every corpus named above, each reported separately. Retrieved 2026-09-18. https://www.petpooja.com/poss/self-service-kiosk · retrieved 2026-09-18 adversarially verified

B
Unknown

POS supports card-network-compliant dual pricing / cash discount or surcharging with automatic exclusion of debit and prepaid cards from any surcharge, and required receipt and menu-board disclosure of the fee. differentiator

commercial-dual-pricing-compliant

The Online Ordering API blueprint enumerates the charge model Petpooja carries on an order - service charge (sc_applicable_on, sc_type, sc_calculate_on, sc_value, tax_on_sc), packaging charge (packaging_applicable_on, packaging_charge, packaging_charge_type, pc_taxes_id, pc_tax_percentage), delivery charge with dc_taxes_id and dc_tax_percentage, item-level taxes with gst_type and tax_inclusive, and discounts including BOGO, BXGY and freebie - with no card-type, surcharge, cash-discount or debit-exclusion field anywhere, and payment_type carried only as a label. www.petpooja.com/poss/restaurant-billing-software and /poss/pricing describe GST-structured billing with no surcharge feature, and no receipt or menu-board fee-disclosure requirement is mentioned. This is an aggregator-facing order schema rather than the POS tender configuration, so it cannot by itself establish that the POS lacks a compliant dual-pricing mode. || 332nd: 332nd NEW SURFACE: the billing tutorials "Types Of Payment" (lTWIwcqRGyM) and "Settlement Types" (Z_HS4eu4ibw) enumerate the tender and settlement flow: split bill, BOGO, loyalty, complimentary, sales return, cash, card, due, other, part. The settlement screen shows mode, amount, change, tips and final amount. No card surcharge, cash price or dual price appears. Over the 198 transcripts, "surcharge*" 0, "cash discount" 0, "dual pric*" 0, "service charge" 0; "convenience" 4, all POISON (prose, e.g. "as per your convenience"). Retrieved 2026-09-18. adversarially verified

F

Adversarial verification

An independent pass was instructed to refute this record, defaulting to downgrade when uncertain. It challenged 77 values — 32 upheld, 39 downgraded, 6 upgraded. It separately resolved 88 previously unknown values. This is published in full because a reader who can see which values were contested, on what evidence, and which way they moved has something no affiliate-funded comparison offers.

Pricing and identity

FieldVerdictWhat the verifier found
pricing.softwaredowngrade-to-partialTwo errors. (1) The vendor matrix I fetched shows included: Cloud Billing, 80+ Reports, In-built CRM, Unlimited terminals & user rights, Central kitchen module, Multi-terminal billing, On-call/On-chat support; ADD-ONS: KDS, Captain ordering app, Restaurant website, Petpooja loyalty, Token Management System, Feedback App/QR, QR Ordering/Digital menu; ADVANCED: Dynamic reports, 24/7 Support, Dedicated POC. There is no Inventory Module or Menu Management row, so the "steps up at Growth" claim is invented. (2) "API Integration sits only in the Scale tier" is contradicted by the cited listing itself, which also shows it on Android POSS (~$100/yr). The eight USD SKU figures themselves I did verify verbatim on SoftwareSuggest — but they remain a third-party directory display of an INR list price, never confirmed by the vendor, whose own page publishes no currency figures at all. source
pricing.contract_lengthdowngrade-to-unknownI could not find a monthly/annual billing toggle on https://petpooja.com/poss/pricing — the page carries tier names, a feature matrix, "Note: Local pricing may vary based on your region & currency. Contact us for accurate, localized rates", and Book A Demo buttons. The only billing cadence the vendor states anywhere is the ToS "yearly membership fee". Billing cadence should be unknown, with annual as the only documented term. source
pricing.hardwareupheldUnknown upheld — no SKU prices anywhere, kiosk page routes to demo. But the framing elsewhere in the dossier ("first-party kiosk") is wrong: the page's own "Trusted Hardware Partners" block credits Addsoft Technologies and Posbank for the hardware, with Petpooja supplying only "pre-installed Petpooja kiosk software". Petpooja is a software vendor on partner metal, not a kiosk OEM. source

Capability claims

ClaimAs first scoredVerdictWhat the verifier found
delivery-3p-reconciliationyes / documenteddowngrade-to-partialI fetched the cited page myself. It is marketing copy (testimonials, problem/solution framing, CTAs), not product documentation — so "documented" confidence is unearned. More materially, its own FAQ says "Reach out to your Petpooja account manager for availability and pricing details for your plan", i.e. reconciliation is a paid add-on of unpublished price and unstated tier availability, not a bundled capability. The named behaviours (matched orders, status mismatches, amount variances, missing orders in both directions, per-order commission) are all present as claims, so the capability is real at claim level — but this is the dossier's single strongest differentiator and it is add-on-gated marketing. source
reporting-channel-profitabilityyes / documenteddowngrade-to-partialSame source, same problem: marketing page, not documentation, and the module behind it is a priced add-on. Commission/margin-per-aggregator breakout is a claim, not a documented report spec. source
extensibility-api-access-costno / claimed (API Integration is Scale-tier only)downgrade-to-unknownREFUTED on the researcher's own source. SoftwareSuggest's Petpooja plan matrix shows API Integration in Electron POSS Scale AND Local POSS Scale AND Android POSS (~$100/yr, not a top tier). So "gated behind the top plan" is factually wrong as stated. Petpooja publishes no API pricing anywhere itself; a third-party listing is not evidence for a scored "no" either way. Correct answer is unknown. source
reporting-api-not-upchargedno / claimeddowngrade-to-unknownDuplicate of the same refuted premise — API Integration is not Scale-only on the cited listing, and the vendor publishes nothing on API packaging or cost. No vendor source, no score. source
hardware-kdsyesdowngrade-to-partialPetpooja's own pricing page lists "Kitchen display system" in the Add-ons block, not the included-features block (Cloud Billing, 80+ Reports, in-built CRM, unlimited terminals/user rights, central kitchen module, multi-terminal billing, on-call/on-chat support). It is a first-party but separately-purchased module at unpublished price. A flat "yes" reads as bundled KDS. source
order-capture-native-handheldyesdowngrade-to-partial"Captain ordering app" appears in the Add-ons list on the vendor pricing page, not in any tier's included set. Native and first-party, yes; included, no. Price undisclosed. source
payments-pay-at-tableyesdowngrade-to-partialDepends entirely on the add-on Captain app. Also, the vendor's own summary of settlement on that page is narrower than the dossier's note: "Your captain can take multiple orders and settle bill using cash and a QR code"; the card element is the separate line "Single tap contactless card payments under INR 5000", i.e. capped low-value contactless only. Not a general pay-at-table card flow. source
order-capture-qr-same-checkyesdowngrade-to-partialThe same-check behaviour is claimed verbatim ("every new order from the same QR links back to the same table bill"), but the page itself categorises Scan & Order as an add-on under "Customer service", and the pricing page lists "QR Ordering/Digital menu" as an add-on. Marketing claim + paid module = partial, not yes. source
digital-qr-tableyesdowngrade-to-partialSame add-on gating as above; capability claimed on a marketing page with no documentation of check-attachment semantics or conflict handling when the counter edits the same bill. source
digital-first-party-webyesdowngrade-to-partial"Restaurant website" is listed among Add-ons on the vendor pricing page, not included in any tier. The "without paying a single penny to third-party applications" line is comparative marketing about aggregator commissions, not a statement that the module is free. source
reliability-247-live-supportyes ("included not upsold")downgrade-to-partialDirect internal contradiction in the vendor's own material. The support page says "24-hour free support, even on holidays and weekends", but the pricing page's comparison matrix lists "On-call/On-chat support" as the baseline entitlement and "24/7 Support" plus "Dedicated POC" in the advanced/upper-tier block. The "included not upsold" conclusion is unsupported and probably wrong. source
reliability-offline-order-entryyesdowngrade-to-partialThe entire evidentiary basis is one unqualified marketing sentence: "Petpooja restaurant billing software works perfectly well, even in offline mode." I re-read the page — there is no scope statement, no duration limit, no sync/conflict description, and no statement of what fails. The dossier itself scores reliability-offline-feature-matrix "no". A single adjective-laden claim with zero documentation should not carry a yes on a decision-flipping cell. source
reliability-local-transaction-engineyes / claimed, sourced to SoftwareSuggestdowngrade-to-partialThe only evidence that "Local POSS" stores data on the local device is a third-party software directory's SKU list. Petpooja's own pricing page publishes three tier names (Core/Growth/Scale) and no Local POSS product line at all. The architectural inference (local transaction engine) is the researcher's, not the vendor's. Third-party roundups are not evidence for a yes. source
inventory-native-not-partneryes, sourced to https://petpooja.com/poss/pricingupheldScore survives but the citation is wrong and the tier claim is fabricated-by-inference. The pricing page's visible matrix contains no "Inventory Module" or "Menu Management" row at all, so "ships in the Growth and Scale tiers" is unsupported. The correct support is the inventory page itself, which sits under the POSS product nav alongside Billing/Online ordering/Reporting and claims item-wise recipes, automatic deduction, central kitchen, inter-outlet transfers with delivery routes, supplier POs and GST e-way-bill upload. Native: yes. Tier placement: unknown. source
delivery-3p-direct-integrationpartial (Swiggy, Zomato, Dineout, District, EazyDiner)upheldPartial stands, but the named set is over-stated. On the cited page I could only confirm "Swiggy, Zomato, Dineout" plus rider apps "Duzno, Shadowfax, and Pidge". District and EazyDiner are not evidenced on that URL — treat those two names as unverified. source
extensibility-doordash-preferredno / documented (no URL)upheldIndependently verified. The 2026 DPIP cohort is Checkmate, Chowly, Deliverect, Otter, PAR, Qu, Square, Stream, Toast and UrbanPiper (roster as of 2026-05-08). Petpooja is absent. The dossier gave no URL for a scored cell; supplying one. source
extensibility-public-api-docsno / inferredupheldVerified myself. https://petpooja.com/poss/restaurant-integrations contains no endpoints, no auth model, no schemas and no developer-portal link — only "Connect with us to integrate your service with Petpooja POS" and repeated "Take a free demo" CTAs. It does not even name specific integration partners on-page. This is the strongest-supported negative in the dossier. source
commercial-data-ownership-clauseno / documentedupheldVerified verbatim in the terms: "By submitting Your Content you hereby irrevocably grant us a perpetual, irrevocable, nonexclusive, royalty-free, right to use Your Content" and "Petpooja may monetize some of this Content through the use of third party affiliate programs." Quoted accurately. source
commercial-post-termination-export-windowyes / documentedupheldVerified verbatim: "Upon expiry or termination of this Service Agreement, you shall download your data within 2 days of such expiry or termination." Correctly quoted and correctly characterised as punitive. source
reliability-contractual-uptime-slano / documentedupheldVerified: the published terms contain no uptime commitment and no service-credit remedy; service is provided "AS IS" with broad liability disclaimers. source
commercial-month-to-month-contractyesdowngrade-to-partialThe only billing term Petpooja actually states in writing is annual: "We will bill your Payment Method for your yearly membership fee at the end of the free trial period unless you uninstall the App prior to the end of the free trial period." I could not confirm a monthly billing toggle on the pricing page — the fetched page shows tier names, a feature matrix and "Contact us for accurate, localized rates", with every tier routed to Book A Demo. Cancel-any-time from the refund policy supports partial, not yes. source
order-capture-kiosk-first-partypartial ("First-party kiosk")upheldPartial score stands, but the note misstates the ownership model: the kiosk hardware is Addsoft/Posbank; only the software is Petpooja's. Sizes 22"/27"/32", wall and floor mount, built-in thermal printer, WiFi+Bluetooth, UPI QR/cards. No ADA or accessibility language anywhere on the page — that part of the note is correct. source
reliability-offline-kds-printingpartialupheldUpheld, and if anything generous. There is no KDS-specific offline statement anywhere I could find; the score rests on extending a billing-page sentence to a separately-sold add-on module. Treat as the weakest kind of partial. source
payments-emv-nfcpartialupheldVerified verbatim: "Single tap contactless card payments under INR 5000". Note this is India's PIN-free contactless ceiling, so it is not general EMV acceptance — above that limit the flow is undocumented. No first-party terminal line, Apple Pay/Google Pay unnamed. Partial is correct. source
commercial-hardware-not-lockedyes / grade D, cites the KDS marketing pagedowngrade-to-partialI re-fetched the cited KDS page. It does say "Petpooja's KDS works perfectly well with any Windows or Android-based device" and "Configured to work on any android phone", so the researcher read it correctly - but that is a marketing sentence, not a compatibility document, and a differentiator yes needs grade A or B. I then went looking for the documentation that would carry it: help.petpooja.com 404s, support.petpooja.com 500s, developer.petpooja.com 404s. Petpooja operates no public help centre, admin guide or API reference at all. Its own hardware guide gets no further than "Ensure the hardware integrates smoothly with your POS system" and names no printer, cash drawer or scanner. Non-proprietary compute is credible; documented third-party peripheral support is not, so partial. source
commercial-processing-not-bundledyes / grade E, cites the restaurant-website marketing pagedowngrade-to-partialTwo separate faults. First the grade: the cited page is petpooja.com, a first-party marketing page, so grade E (independent third-party reporting) was simply the wrong bucket. Second the substance: I fetched that page and its entire payment content is "Integrate Payment gateways with the website" - it names no gateway, and says nothing about the operator choosing an acquirer. I then read the terms of service in full; it never mandates a Petpooja processor, but it never grants processor choice either, and absence of a mandate is not positive evidence. Against that, Petpooja now markets Petpooja PAY and Petpooja GO, the latter being Petpooja POS running on a Paytm-supplied device with payment integrated. There is no hard acquiring lock - Petpooja is not an underwriter and publishes no rate card - but the freedom is inferred, not documented. Partial. source
guest-loyalty-data-export-portabilityyes / grade D, cites the CRM marketing pagedowngrade-to-partialThe quoted sentence is real - I found it verbatim in the page's FAQ: "You can download the customer data as often as you want for free!" That establishes self-serve and no fee. It does not establish what the claim actually asks for. The page specifies no file format, no field list, and never mentions order or transaction history, which is half the claim. Meanwhile the terms impose "Upon expiry or termination of this Service Agreement, you shall download your data within 2 days of such expiry or termination" - a two-day window that materially limits portability at the only moment portability matters. Partial, shortfall named: contact data only, format and transaction history undocumented, 2-day exit window. source
hardware-commodity-devicesyes / grade D, cites the KDS marketing pagedowngrade-to-partialI looked for something better than the marketing page and found Petpooja's own POS Local setup guide, which is the most concrete first-party statement of hardware requirements in existence for this product: "You need 1 dedicated computer with an Intel i5 or i7 processor, an SSD, and a UPS", "1 TB SSD (an SSD is required; a regular hard disk is not supported for production use)", "A desktop CPU is preferred over a laptop". That cuts both ways. It confirms Petpooja sells no proprietary terminal and the operator supplies the machine, which is the spirit of the claim - but it is a dedicated, specified desktop, not any tablet the operator already owns, and Petpooja GO is delivered on a vendor-supplied Paytm device. The source is a vendor blog post, not product documentation, so the grade floor is not met either way. Partial. source
inventory-86-auto-syncyes / grade D, cites the inventory marketing pagedowngrade-to-partialThis is the cell where the researcher's paraphrase outran the source. The page says "Toggle your online menu ON/OFF basis of stock availability" and "manage the availability of menu items both for dine-in & online menu"; the online-order page says "toggle any online menu item On or Off as per your inventory". Every one of those is an operator toggle informed by stock, which is not the claim. The claim is automatic 86ing when a component ingredient hits zero or a configured threshold, propagated to third-party delivery menus. Neither the automatic trigger nor the aggregator propagation appears on any first-party Petpooja page I could retrieve, and there is no help centre to check. The pricing matrix also puts the Inventory Module outside the Core tier entirely. Partial. source
inventory-realtime-depletionyes / grade D, cites the inventory marketing pagedowngrade-to-partialI fetched the page. Recipe-driven deduction is claimed - "Upload your item-wise recipe in the software & let the smart POS look after your consumption rate", "automatically deduct your stock when used", with "low stock" alerts - so the capability exists at claim level. But the claim turns on timing and on modifiers, and the page addresses neither: nothing says depletion happens as orders are fired rather than in an end-of-day run, and modifier-driven depletion is not mentioned anywhere on the site. Since Petpooja publishes no admin guide, there is no document that could resolve it. Partial, with the Inventory Module additionally gated at Growth tier and above. source
kitchen-channel-pause-propagationyes / grade D, cites the online-order marketing pagedowngrade-to-partialI fetched the cited page specifically looking for store-pause language and it is not there. What is there is item-level and schedule-level: "toggle any online menu item On or Off as per your inventory" and "Add store timing, packaging charges, and discounts. Easily manage the online menu for your single or chain outlets from one single screen". Managing an aggregator menu from the POS dashboard is real and is half the claim. Pausing the store, and the change propagating automatically rather than being pushed by hand, is the other half and I could find no first-party statement of it. The KDS page adds that kitchen staff can "mark any inventory out of stock" so that captains and billers know availability - in-house only, no channel mentioned. Partial. source
payments-qr-guest-payyes / grade D, cites the billing marketing pagedowngrade-to-partialThe billing page's only QR sentence is "add a dynamic QR code for payments right at the billing counter". A collection QR presented at the counter is a different capability from a QR on the check or table tent that the guest scans to view and settle their own bill. I then checked the Scan & Order page, which is the researcher's implied second leg: orders do accumulate on one bill - "Each new order joins the same table bill" - and payment is offered as "Pay at counter or pay online", but the page never says the guest sees the check, never names a payment method, and never says an online payment settles into the POS and closes the bill. That auto-close is the load-bearing part of the claim. Scan & pay is also carried as a paid add-on, not an included feature. Partial. source
reliability-onsite-installyes / grade D, cites the support marketing pagedowngrade-to-partialI re-fetched the cited support page and it does not mention installation at all - the strongest line is "Get in-person assistance and personalised solution from our POS experts", alongside "Staff training & retraining", with no statement of whether either happens on site. The better evidence I found is the vendor's POS Local setup guide: "The team installs the Bridge Server and POS Local on your computer" and "Before the team arrives, it helps to have the computer and the UPS ready". An arriving team is a strong implication of an engineer visit, but it is an implication on a blog post, not a documented service. No certified dealer network, no coverage statement for the UAE/South Africa markets, and no indication whether the visit is included or billed. Partial. source
reporting-tier-paywallyes / grade D, cites the vendor pricing pagedowngrade-to-partialThe researcher's own cited page refutes the yes once the whole matrix is read rather than the top rows. Core does carry "Cloud Billing", "80+ Reports", in-built CRM, unlimited terminals, central kitchen and multi-terminal billing. But "Dynamic reports" is a Scale-only row, and "Inventory Module" and "Menu management" begin at Growth - so stock, COGS and menu-driven reporting are not available on the entry plan at all. Petpooja publishes no report catalogue anywhere, so whether the Core "80+" set contains the four things this claim actually names - labour vs sales, PMIX, comps/voids audit, multi-location comparison - is undetermined, while the analytical top of the range is explicitly tier-gated. Partial. source
order-capture-coursing-hold-fireunknown / F - No coursing, hold, or fire-next-course capability documented.resolve-to-partialThe prior rationale was a bare assertion. Petpooja's fine-dine POS guide (July 2026) describes course-wise firing from the Captain App in step-by-step form: full order held in a wishlist, starters fired, mains held, mains fired after starters clear. Held to partial because the course grouping is a selection made at fire time rather than a documented course attribute on the item. source
order-capture-transfer-auditunknown / F - Check transfer between servers/tables/devices with named audit entries not documented.resolve-to-partialThe prior rationale was a bare assertion and was wrong on the table axis: Petpooja's bill-splitting guide documents on-the-fly table merge/move carrying the running order, and an audit record of every table move feeding a leakage panel with table and time. Partial rather than yes because the server and device axes of the claim, and the two-employee naming in the audit entry, remain undocumented. source
order-capture-voice-aiunknown / F - Captain app advertises 'AI voice recognition' for staff item entry - a staff input aid, not a guest-facing voice ordering agent. No voice-AI partner programme documented.resolve-to-partialThe prior reading of the Captain app is correct and I uphold it, but the second limb of the claim - a documented API partner program a third-party voice AI could use to inject orders as POS orders - was never checked. Petpooja publishes exactly such a spec (Online Ordering APIs v2.1.0, /saveorder with partner credentials). Partial because the program is channel-generic rather than a voice-AI program and there is no first-party guest-facing agent. source
order-capture-scheduled-ordersunknown / F - Future-dated order acceptance and computed fire time not documented.resolve-to-partialThe prior rationale was a bare assertion; Petpooja's published Online Ordering API v2.1.0 makes preorder_date/preorder_time required fields with explicit advance-order semantics and an advanced_order Y/N flag, so future-dated acceptance is documented at grade A. Partial because per-channel lead-time configuration and deferred injection into the make queue at a computed fire time are not documented anywhere. source
order-capture-order-ready-signalunknown / F - KDS lets staff mark food ready, but no documented order-ready push back to marketplaces.resolve-to-yesThe prior rationale asserted the push was undocumented; it is documented, in Petpooja's own Online Ordering API v2.1.0. The callback contract that every integrator must implement carries status 5 = Food Ready back to the partner platform for each relayed order, and the KDS page supplies the matching operator action. Grade A primary spec satisfies the differentiator bar. source
menu-pricing-nested-modifiersunknown / F - Variations and add-ons exist; nesting depth and per-level min/max/forced flags are not documented.resolve-to-noThe depth is documented, in Petpooja's own Online Ordering API v2.1.0 menu master. The schema enumerates every field of addongroups and addongroupitems and contains no nested addon array under an addon item, so a third level has no representation; min/max appear once, on the item-to-group link. Enumeration is an API schema with no such field, which is the qualifying form. source
menu-pricing-fractional-placementunknown / F - No half/quarter topping placement documented, including on the dedicated pizzeria page.resolve-to-noMoved from 'not documented' to evidenced absence: the published menu and order schemas enumerate every addon field and none expresses placement or a per-section price, and Petpooja's July 2026 pizzeria guide describes the full topping model (variations for size/crust, priced add-ons, sell-by-the-slice) with no half-and-half anywhere in it. source
menu-pricing-half-and-half-ruleunknown / F - No configurable half-and-half pricing rule documented; the pizzeria page mentions only generic 'variations and add-ons'.resolve-to-noFollows from the placement finding on the same primary schema: the item/variation/addon masters carry exactly one price each and the order line's total is defined as base plus variation plus addon prices, with no section to price differently. The July 2026 pizzeria guide states the complete pricing model and contains no half-and-half rule. source
menu-pricing-topping-quantity-tiersunknown / F - Light/regular/extra price multipliers not documented.resolve-to-noThe addon master's field list is published in full and contains no tier or multiplier; the spec states explicitly that the selection min/max do not express quantity, and the only quantity field is on the order line, which is the duplicate-addon route the claim excludes. Absence is evidenced by a complete schema rather than by a failed search. source
menu-pricing-size-style-matrixunknown / F - Variations exist but a two-axis price grid with per-cell override is not documented.resolve-to-noThe variation object's fields are published in full: one groupname, one price, one rank per variation, and the order line references a single variation_id. Nothing in the master can hold a price at the intersection of two axes, so a grid with per-cell override has no representation. Enumeration is the API schema itself, not a features page. source
menu-pricing-included-allowanceunknown / F - Included-topping allowance with overage charging not documented.resolve-to-noThe addon link and addon option field lists are published complete and contain only selection counts and a flat unit price - no included allowance, no overage rate, no substitution handling. The order-line pricing rule (item price includes every chosen addon's price) leaves no room for a first-N-free behaviour. source
menu-pricing-daypartingunknown / F - Aggregator store open/close timings are configurable; item- and price-level day/time scheduling in the location timezone is not documented.resolve-to-partialThe prior rationale under-read the menu master: categorytimings is a documented per-category 'Active Schedule days and time slot', and group_categories are the configured menus, so menu- and category-level dayparting is documented at grade A and propagates to the delivery apps. Held to partial because items carry no schedule field of their own, base prices cannot be scheduled (only discounts have day/time windows), and no timezone basis is stated. source
menu-pricing-franchise-hierarchyunknown / F - A head-office module exists, but field-level governance over which attributes an outlet may override is not documented.resolve-to-partialThe prior rationale correctly identified the missing half but left the established half unrecorded. Petpooja's menu-management and centralised-menu guides both document a head-office master menu inherited by every outlet with local override, which is the template-push limb of the claim; the governance limb remains undocumented, so partial with that shortfall named rather than unknown. source
menu-pricing-allergen-nutritionunknown / F - Allergen flags and nutrition values are not mentioned anywhere in Petpooja's menu documentation.resolve-to-partialThe prior rationale was wrong on fact: Petpooja's Online Ordering API v2.1.0 documents a complete per-item nutrition object with a named allergens array, carried on both menu push and fetch, i.e. stored per item and published to third-party menus. Partial because the spec makes the merchant supply the values and no derivation from linked recipe components is documented. source
payments-tip-adjustunknown / F - Pre-auth tip-adjust flows, batch windows and unadjusted-tip screens not documented.resolve-to-partialA tip flow does exist and was never checked: POSS carries a suggested-tip setting with a configurable basis (core amount or total bill value). The claim's pre-auth-then-adjust limb, the batch/adjust window and the unadjusted-tip manager screen are all absent, and Petpooja's own day-end guide describes an EDC-entered tip as a reconciliation gap to be tolerated rather than adjusted onto the check - which is the named shortfall. source
payments-offline-store-and-forwardunknown / F - Offline billing is documented, but offline card capture with store-and-forward limits is not.resolve-to-noPetpooja publishes a dedicated article on offline behaviour that states affirmatively that card payments through an EDC stop during an outage and directs staff to cash or a direct UPI QR, with a per-POS-type table of what runs offline. That is the vendor asserting the absence, not merely failing to mention the feature. source
payments-offline-decline-liabilityunknown / F - No published statement of who bears loss on a declined stored offline transaction.resolve-to-noFollows from the store-and-forward finding on the same vendor page: Petpooja states card payments cannot be taken while offline and that reconnect syncs bills, KOTs and settlements only. With no stored card authorisation there is no decline to allocate and no failed-offline-payment report to surface, and none is published. source
payments-house-accountsunknown / F - Credit-limited house accounts with statements not documented.resolve-to-partialThe prior rationale named the two missing attributes but missed that the underlying capability is documented: Petpooja's food-court/canteen guide describes a Virtual Wallet credit flow where a diner orders against an account and settles the balance at the end of a cycle, with the balance shown at billing and a wallet/credit report available. Partial with the credit limit and the periodic statement named as the shortfalls. source
kitchen-order-ready-callbackunknown / grade F, bare assertionresolve-to-yesThe Apiary blueprint is Petpooja's own partner-integration spec (it references Petpooja restID, Petpooja AWS endpoints and developerapi.petpooja.com credentials), so grade A. It documents a discrete Food Ready status relayed to the marketplace, distinct from Accepted and Dispatch, which is exactly the order-ready event the claim asks about; the KDS and Token pages establish that food-ready is marked at the kitchen screen. source
delivery-driver-trackingunknown / grade F, bare assertionresolve-to-partialThe grade-A blueprint shows Petpooja does ingest and hold rider identity and delivery-stage status against an order, so driver visibility partly exists; but the claim asks for live GPS position captured from a driver-facing app and surfaced to a dispatch screen, and every documented mechanism is milestone-only and supplied by an external logistics partner. source
delivery-daas-fallbackunknown / grade F, bare assertionresolve-to-partialNamed DaaS partners plus a first-party webhook for their rider status establish that courier handoff is a supported path rather than absent, which rules out unknown; but the claim's substance is automatic rule-driven overflow, and no threshold, availability or zone condition is configurable in anything Petpooja publishes. source
delivery-promise-timeunknown / grade F, bare assertionresolve-to-partialThe API shows a per-order prep-time channel back to the marketplace, so the promise is not locked to a per-store constant, which is more than unknown; but the claim requires the adjustment to be computed from load, driver availability and drive time, and the documented mechanism is a value the restaurant conveys. source
delivery-offline-behaviorunknown / grade F, bare assertionresolve-to-noThis claim is about whether the vendor documents the behaviour, so the test is whether the published corpus contains it. I enumerated that corpus from the vendor's own sitemap.xml (46 URLs) and read every /poss page plus /payroll, and separately the Online Ordering API v2.1.0 blueprint. Petpooja demonstrably does publish per-module offline statements - four of them, including one explicit 'No' for Scan & Order - so silence on delivery is a gap in a set the vendor otherwise fills, not merely a corpus I failed to search. source
digital-native-appunknownresolve-to-noResolved off two first-party enumerations of what is actually sold - the per-plan feature matrix on https://www.petpooja.com/poss/pricing and the 11-service marketplace catalogue on /poss/restaurant-app-marketplace - neither of which contains a consumer mobile ordering app, plus the Business Website page whose own FAQ answers "Can I take online orders from my website?" with the ordering widget. Captain is explicitly a staff app. source
digital-scheduled-pacingunknownresolve-to-partialGrade-A primary API documentation establishes the scheduled-order half of the claim explicitly. The throttling half is absent from the same document's complete endpoint list, where the only availability controls are store on/off (with turn_on_time) and item in-stock/out-of-stock toggles. source
digital-surcharge-transparencyunknownresolve-to-partialGrade-A API documentation establishes channel-consistent fee configuration and per-charge tax disclosure. The card-surcharge half of the claim is unaddressed in the same document's complete field enumeration and on every first-party page checked. source
guest-loyalty-thirdparty-identity-attachunknownresolve-to-partialGrade-A evidence establishes that guest identity is transported with marketplace orders, which disposes of the "anonymous tickets" alternative. It does not establish native-profile attachment, which is asserted only on a grade-C feature page, so the differentiator-weight yes bar (A or B) is not met and this resolves to partial. source
guest-loyalty-offer-stacking-rulesunknownresolve-to-partialThis rests on an API schema field enumeration, which is the one form of absence evidence the evidence rules accept: rank supplies precedence (so the claim is half met) while the absence of any exclusivity/combinability field in the complete discounts attribute list establishes the shortfall. source
guest-loyalty-10dlc-registrationunknownresolve-to-partialThe claim asks whether the vendor handles or explicitly documents the A2P registration required to send through the platform. Petpooja does document it, in the form its market requires, and assigns it to the operator; it does not cover 10DLC. Partial with that named shortfall is the accurate reading, since a no would require an exhaustive enumeration this FAQ does not provide. source
guest-loyalty-cdp-event-apiunknownresolve-to-partialGrade-A API documentation establishes that an outbound webhook contract exists and defines exactly what it carries; the guest half of the claim fails on the callback's own complete attribute list, which has no customer fields. source
labor-photo-punch-verificationunknown / F (bare assertion: 'Photo or facial verification at punch not documented.')resolve-to-partialThe bare assertion was wrong: facial verification at punch is documented, on the vendor's own people-payroll blog, with the device's feature list, an IR liveness check and a fingerprint/card comparison table. What is missing is the second half of the claim - a photo-only, no-template mode - and the whole thing sits in the separate Petpooja Payroll SKU rather than the POS, so partial rather than yes. Also checked petpooja.com/payroll and blog.petpooja.com/people-payroll/petpooja-payroll-features/ (which enumerates the supported devices as 'biometric fingerprint scanner, biometric plus machine, and face scanner'). source
labor-geofenced-mobile-punchunknown / F (bare assertion: 'Geofenced mobile clock-in not documented.')resolve-to-partialLocation-validated mobile punch is documented in two first-party places - the Geo Tracking setup guide (Attendance Permission screen, GPS at punch-in/out, employee-controlled tracking toggle, 3-hour processing window for route data) and the petpooja.com/payroll feature list. It is not a POS capability and the geofence enforcement parameters are not published, so partial. source
labor-overtime-preventionunknown / F (bare assertion: 'Overtime warning or block at clock-in not documented.')resolve-to-partialHalf the claim is documented - configurable overtime rules enforced with a penalty, with overtime derived automatically from attendance against assigned shift timings. The preventive half is not: no first-party page describes any check, warning or block occurring at the punch itself. Named shortfall, so partial. source
labor-payroll-export-formatsunknown / F (bare assertion: 'No named payroll-provider export formats or integrations documented.')resolve-to-partialThe bare assertion was half right and half unexamined: exports of timecards, wages and payslips are documented and first-party, but only in generic Excel/Google Sheets/bookkeeping form, with no named payroll provider and no tip data in the model. Two named shortfalls, so partial rather than unknown. source
inventory-theoretical-vs-actualunknown / F ('Day-end inventory and item-wise consumption reports exist, but an explicit theoretical-vs-actual variance report in units and currency is not documented.')resolve-to-partialA named Variance Report doing exactly the theoretical-vs-actual comparison is documented first-party, which the prior rationale had missed; combined with recipe-based automatic deduction, the theoretical usage half is established. The currency dimension and a definable count period are still undocumented, which is the named shortfall. source
inventory-invoice-ocrunknown / F (bare assertion: 'Photo/PDF invoice line-item extraction not documented.')resolve-to-partialIt is documented - the vendor's own AI overview names AI invoice scanning as one of four AI features and describes photo-to-purchase-entry ingestion feeding the inventory and cost ledger. What is not documented is PDF or email ingestion, the extracted field set, or which product tier carries it, so partial rather than yes; the source is a vendor article, not an admin guide, so grade C and it cannot carry a yes on a differentiator anyway. source
inventory-price-change-alertsunknown / F (bare assertion: 'Purchase price history alerting on threshold breaches not documented.')resolve-to-partialPer-item purchase price history is documented first-party ('raw material price trends'), and live cross-vendor rate comparison goes further than the claim in one direction, but the specific mechanism asked about - a threshold-triggered alert on a received price - is documented nowhere, and Petpooja's documented alert types are low-stock and expiry only. Half present with a named shortfall. source
inventory-shelf-life-expiryunknown / F (bare assertion: 'Expiry/use-by tracking and expiring-soon alerts not documented.')resolve-to-partialThe bare assertion was wrong on the alert: Petpooja states expiry stock alerts can be set on every ingredient with advance notification. It was right on the tracking: no expiry or use-by date capture at receiving or on prepped items is documented, and there is no expiring-soon report in the published report set. Named shortfall, so partial. source
reporting-server-scorecardsunknown / F (bare assertion: 'Per-server average check, items per check and tip percentage not documented.')resolve-to-partialA named, numbered per-server report exists and its columns are documented, which the bare assertion had missed; but the specific metrics the claim names beyond sales - items per check, attachment rate, tips as a percentage of sales - are absent, and the report only covers captain-app orders on two of the four POS builds. Named shortfalls on both content and scope, so partial. source
reporting-webhooksunknown / F (bare assertion: 'No webhook documentation, payload signing or retry policy located.')resolve-to-partialWebhook documentation does exist and is primary: the Apiary blueprint for Petpooja Online Ordering APIs v2.1.0, reachable as an api-description-document even though the docs page is a client-side shell. It documents an order-status callback to a partner-supplied URL plus menu-push and stock-toggle calls out to integrator endpoints. The prior rationale was right about signing and retries - the schema has neither - and the events cover no payment lifecycle, so the claim as worded is met in part only. source
reporting-history-retentionunknown / F (bare assertion: 'No documented transaction-detail retention window.')resolve-to-partialThere is a first-party statement on retention after all, in the Dynamic Reports FAQ, and it claims unlimited history. It is scoped to the paid analytics add-on and is a marketing FAQ rather than a policy, and it does not address transaction-level granularity or the base reporting UI, which is the named shortfall. source
multi-location-local-override-policyunknown / F (bare assertion, never examined)resolve-to-partialEnumerated www.petpooja.com/sitemap.xml and blog.petpooja.com/post-sitemap.xml (800 posts). Two first-party menu guides describe per-outlet price and availability override beneath a head-office master menu, which is the first half of the claim; neither they nor the menu-management product page describe a field-level lock, so the corporate-lock half is unevidenced rather than contradicted. source
multi-location-corp-vs-franchisee-rolesunknown / F (bare assertion, never examined)resolve-to-partialPetpooja makes a direct first-party statement that its Payroll product implements head-office-sees-all / franchisee-sees-own role separation, and the POS large-chain page claims outlet-wise staff rights over a central dashboard. That is materially short of a franchisor-vs-franchisee tenancy in the POS, so partial with the shortfall named rather than unknown. source
multi-location-cross-location-giftcardunknown / F (bare assertion, never examined)resolve-to-partialThe vendor's own gift-card guide answers both halves of the claim: the outstanding-liability report exists and is named, while brand-wide redeemability is deferred to the account manager and re-routed to the Virtual Wallet, which is a named shortfall rather than an absence of evidence. source
multi-location-cross-location-loyaltyunknown / F (bare assertion, never examined)resolve-to-partialTwo first-party pages establish a single stored-value/loyalty balance usable across multiple billing counters under one account and centrally monitored, which is more than nothing; the brand-wide, cross-outlet case is explicitly setup-dependent per the vendor's own FAQ, so the shortfall is named rather than assumed. source
multi-location-multi-brandunknown / F (bare assertion, never examined)resolve-to-partialThe cloud-kitchen vertical page makes an explicit multi-brand-on-one-POS claim and the kiosk page documents per-brand KOT routing, so the capability exists at claim level; the receipt-branding and separately-reportable-revenue elements of the claim are unevidenced and the sourcing is marketing, which caps this at partial. source
multi-location-config-audit-logunknown / F (bare assertion, never examined)resolve-to-partialTwo first-party guides document real logging surfaces - a per-push menu-change log readable by head office and an order-modification audit log tied to named logins across outlets - which is materially short of the claimed immutable who-changed-which-config-object log but well beyond nothing. source
multi-location-enterprise-apiunknown / F ("No public multi-location API documentation exists to evaluate")resolve-to-partialThe prior rationale was wrong on its face: Petpooja does publish an API, the Online Ordering v2.1.0 Apiary blueprint, which I retrieved in full (116 KB). Reading it settles the shape of the published surface - per-restID credentials, menu/order integration, no transaction export - while the ERP data-lake export on the large-chain page supplies a cross-outlet claim with no spec behind it. Partial with both facts stated is more accurate than unknown. source
multi-location-central-labor-policyunknown / F (bare assertion, never examined)resolve-to-partialPer-location/per-state configurability of overtime, wage and shift rules is stated first-party for Petpooja Payroll across two articles and the /payroll product page; terminal-level enforcement is nowhere described, which is the named shortfall. source
hardware-handheld-battery-swapunknown / F ("No vendor handheld, therefore no published battery life or swap capability")resolve-to-noThe prior line asserted the conclusion without checking. I confirmed it on first-party pages: the captain handheld is explicitly BYOD Android (product page plus FAQ, echoed on the wireless-calling-device page and the POS-types comparison), and Petpooja's own device catalogue contains no handheld POS. The vendor publishes a battery rating for the one device it does manufacture, so silence on handheld battery life reflects there being no vendor handheld rather than an undisclosed spec. source
hardware-ownership-vs-leaseunknown / F (bare assertion, never examined)resolve-to-partialPetpooja does state which model applies, for the POS Local server: outright purchase, owned by the merchant, versus a recurring software fee - and the pricing page confirms no hardware lease is bundled into the POS plans. It makes no equivalent statement for its own kiosk/calling-device/face-scanner hardware, and the payroll bundle explicitly includes hardware in the subscription, so partial rather than yes. source
hardware-rma-slaunknown / F ("No published hardware warranty term or advance-exchange turnaround")resolve-to-partialThe prior line was half wrong: Petpooja does publish a warranty term - lifetime, on the Payroll face-scanner device. It publishes none for its POS-side hardware and no exchange turnaround anywhere, so the claim is met in part with the gap named. source
hardware-callerid-integrationunknown / F (bare assertion, never examined)resolve-to-partialPetpooja documents the customer-record-and-history lookup half of this claim in its Call Centre module, and in the same guide rules out the telephony half in its own words - the phone system is separate from the ordering screen and no call data reaches it. That is a named shortfall, not an absence of evidence. source
extensibility-partner-revshareunknownresolve-to-yesThe reseller programme page states a numeric revenue share ('earn 15% of assured revenue', 'straight commission with every conversion'), which is a published partner commercial term. source
extensibility-free-sandboxunknownresolve-to-partialA staging environment and developer portal are documented in the primary API reference, but credentials come only from the Petpooja team and no seeded dataset is described, so a free sandbox is not available to developers on their own. source
extensibility-oauth-partner-appsunknownresolve-to-noThe complete published third-party integration API authenticates on static app_key/app_secret/access_token credentials carried in the request body; no OAuth 2.0, scopes, operator-granted permissions or individual revocation appears anywhere in the specification. source
extensibility-webhooks-pushunknownresolve-to-partialPetpooja pushes order-status callbacks and menu changes rather than requiring polling, but the documented event set covers accepted/cancelled/dispatch/food-ready/delivered for partner-relayed orders only, with no paid, voided or refunded events and no POS-originated order feed. source
extensibility-webhook-reliabilityunknownresolve-to-noPetpooja's complete Online Ordering API blueprint specifies unsigned callback payloads with no signature field and documents no retry, backoff or replayable event log, so all three of the claim's conjuncts fail on the vendor's own specification. source
extensibility-menu-write-apiunknownresolve-to-noThe complete published API specification exposes the menu only as an outbound push/fetch, with item-stock toggles also outbound; no endpoint writes items, modifiers or prices into Petpooja. source
extensibility-data-symmetryunknownresolve-to-noPetpooja's complete Online Ordering API can read the menu but not write it, can write orders but not read them, and exposes no employee or inventory objects, so read/write symmetry across core objects does not hold. source
extensibility-published-rate-limitsunknownresolve-to-noPetpooja's full Online Ordering API reference documents error codes and response shapes for every endpoint but publishes no numeric rate limits, no throttling behaviour and no rate-limit headers. source
extensibility-bi-data-warehouseunknownresolve-to-partialScheduled daily/weekly/monthly data copies to an operator-controlled local drive are documented for POS Local, but there is no S3/SFTP/warehouse destination, no defined transaction-level export format, and no cloud-plan equivalent. source
extensibility-headless-embeddedunknownresolve-to-partialPetpooja documents a third-party ordering surface fetching the menu and pushing complete orders into the POS, but the caller supplies its own pricing and tax totals and no tender or payment-authorisation API exists, so the POS is not driven as a headless transaction engine. source
extensibility-api-versioning-deprecationunknownresolve-to-partialThe primary API reference carries a dated changelog and inline deprecation markers, but publishes no deprecation policy, notice period or sunset date, so only one of the claim's two conjuncts holds. source
reliability-public-status-pageunknownresolve-to-noPetpooja's published sitemap (46 URLs) and full site footer enumerate its public surface with no status page; /status 404s, status.petpooja.com returns HTTP 500, and petpooja.statuspage.io and petpooja.instatus.com are unclaimed redirects to the hosting vendors' own marketing sites. source
reliability-menu-build-serviceunknownresolve-to-partialPetpooja documents a guided, team-performed install in which 'the team helps you get your menu and outlets across', but the documented menu work is migration of an existing menu with the operator supplying items and ingredients, so a vendor-performed initial menu build is only partly established. source
reliability-backup-restoreunknownresolve-to-partialOperator-schedulable daily/weekly/monthly backups written to a drive the operator controls are documented for the on-premise POS Local product, but no restore procedure and no RPO/RTO figures are published, and no equivalent is documented for cloud deployments. source
menu-pricing-nested-modifiersno / A - The Fetch/Push Menu response documents the complete addon master. An item carriedowngrade-to-unknownThe enumeration is an aggregator-facing menu export, not Petpooja's menu master, so it cannot establish the POS's modifier depth. The cited blueprint is not Petpooja's menu master. It opens by describing itself as the API that "enables restaurant partner to manage store, menus and orders received/placed from online order aggregator", it nowhere asserts completeness, and it provably drops per-item POS menu attributes: Petpooja sells multi-stage recipe management ("Upload your item-wise recipe in the software", /poss/restaurant-inventory-management-software) and the blueprint contains no recipe or raw-material field at all. The "...master" phrases the predecessor leaned on appear only in the Save Order attribute table as foreign-key instructions to the integrator, not as a claim that the export enumerates every field of those masters. This record already applies exactly that reading elsewhere - order-capture-seat-level and order-capture-drive-thru both call it an aggregator-facing projection rather than a configuration surface and stay unknown. source
menu-pricing-fractional-placementno / A - The Online Ordering API v2.1.0 menu master enumerates every field of addongroupidowngrade-to-unknownRests on the same aggregator export plus a blog post that claims no completeness; neither is an exhaustive enumeration of Petpooja's pizza configuration. The cited blueprint is not Petpooja's menu master. It opens by describing itself as the API that "enables restaurant partner to manage store, menus and orders received/placed from online order aggregator", it nowhere asserts completeness, and it provably drops per-item POS menu attributes: Petpooja sells multi-stage recipe management ("Upload your item-wise recipe in the software", /poss/restaurant-inventory-management-software) and the blueprint contains no recipe or raw-material field at all. The "...master" phrases the predecessor leaned on appear only in the Save Order attribute table as foreign-key instructions to the integrator, not as a claim that the export enumerates every field of those masters. This record already applies exactly that reading elsewhere - order-capture-seat-level and order-capture-drive-thru both call it an aggregator-facing projection rather than a configuration surface and stay unknown. source
menu-pricing-half-and-half-ruleno / A - There is no half to price. The Online Ordering API v2.1.0 menu master gives an idowngrade-to-unknownDerived entirely from the fractional-placement finding, which I downgraded; the underlying enumeration is an aggregator export, not the POS pricing surface. The cited blueprint is not Petpooja's menu master. It opens by describing itself as the API that "enables restaurant partner to manage store, menus and orders received/placed from online order aggregator", it nowhere asserts completeness, and it provably drops per-item POS menu attributes: Petpooja sells multi-stage recipe management ("Upload your item-wise recipe in the software", /poss/restaurant-inventory-management-software) and the blueprint contains no recipe or raw-material field at all. The "...master" phrases the predecessor leaned on appear only in the Save Order attribute table as foreign-key instructions to the integrator, not as a claim that the export enumerates every field of those masters. This record already applies exactly that reading elsewhere - order-capture-seat-level and order-capture-drive-thru both call it an aggregator-facing projection rather than a configuration surface and stay unknown. source
menu-pricing-topping-quantity-tiersno / A - The Online Ordering API v2.1.0 enumerates addongroupitems as addonitemid, addonidowngrade-to-unknownSame refuted premise: the addon field list is from an aggregator export that claims no completeness and provably omits POS-side per-item attributes. The cited blueprint is not Petpooja's menu master. It opens by describing itself as the API that "enables restaurant partner to manage store, menus and orders received/placed from online order aggregator", it nowhere asserts completeness, and it provably drops per-item POS menu attributes: Petpooja sells multi-stage recipe management ("Upload your item-wise recipe in the software", /poss/restaurant-inventory-management-software) and the blueprint contains no recipe or raw-material field at all. The "...master" phrases the predecessor leaned on appear only in the Save Order attribute table as foreign-key instructions to the integrator, not as a claim that the export enumerates every field of those masters. This record already applies exactly that reading elsewhere - order-capture-seat-level and order-capture-drive-thru both call it an aggregator-facing projection rather than a configuration surface and stay unknown. source
menu-pricing-size-style-matrixno / A - In the Online Ordering API v2.1.0 menu master an item carries itemallowvariationdowngrade-to-unknownThe variation object enumerated is the export's, not the POS's; the blueprint claims no completeness and is demonstrably lossy. The cited blueprint is not Petpooja's menu master. It opens by describing itself as the API that "enables restaurant partner to manage store, menus and orders received/placed from online order aggregator", it nowhere asserts completeness, and it provably drops per-item POS menu attributes: Petpooja sells multi-stage recipe management ("Upload your item-wise recipe in the software", /poss/restaurant-inventory-management-software) and the blueprint contains no recipe or raw-material field at all. The "...master" phrases the predecessor leaned on appear only in the Save Order attribute table as foreign-key instructions to the integrator, not as a claim that the export enumerates every field of those masters. This record already applies exactly that reading elsewhere - order-capture-seat-level and order-capture-drive-thru both call it an aggregator-facing projection rather than a configuration surface and stay unknown. source
menu-pricing-included-allowanceno / A - The Online Ordering API v2.1.0 item-to-addon link is documented as carrying exacdowngrade-to-unknownSame aggregator-export premise; the item-to-addon link enumerated is an export projection, not the POS's modifier pricing configuration. The cited blueprint is not Petpooja's menu master. It opens by describing itself as the API that "enables restaurant partner to manage store, menus and orders received/placed from online order aggregator", it nowhere asserts completeness, and it provably drops per-item POS menu attributes: Petpooja sells multi-stage recipe management ("Upload your item-wise recipe in the software", /poss/restaurant-inventory-management-software) and the blueprint contains no recipe or raw-material field at all. The "...master" phrases the predecessor leaned on appear only in the Save Order attribute table as foreign-key instructions to the integrator, not as a claim that the export enumerates every field of those masters. This record already applies exactly that reading elsewhere - order-capture-seat-level and order-capture-drive-thru both call it an aggregator-facing projection rather than a configuration surface and stay unknown. source
delivery-offline-behaviorno / C - Petpooja answers the offline question module by module in its FAQs and delivery downgrade-to-unknownThe enumeration was www.petpooja.com/sitemap.xml as the complete corpus, and I refuted that directly: Petpooja's dedicated offline documentation lives at blog.petpooja.com/industry-business-guides/restaurant-pos-without-internet/, which is outside that 46-URL sitemap. source
digital-native-appno / C - The plan comparison matrix on the pricing page ("Key Features - a clear breakdowdowngrade-to-unknownBoth legs are excluded source types: the cited enumeration is a pricing page (grade C, written to sell, with its Key Features matrix behind "Show More" controls) and the second leg is an app-marketplace catalogue, which the bar treats as a directory. source
menu-pricing-daypartingpartial / A - The Online Ordering API v2.1.0 menu master documents categorytimings as 'Active SchedupheldRe-checked after the aggregator-export premise was refuted. The positive evidence is affirmative spec text and stands unchanged: categorytimings is a documented per-category 'Active Schedule days and time slot' and group_categories are the configured menus. Of the three named shortfalls, two were absence-in-the-export and are withdrawn; the item-level one is affirmatively contradicted by Petpooja's menu-management guide, which describes per-item time windows appearing and disappearing on schedule on counter and apps. Partial still holds because scheduled base prices are documented nowhere (day/time windows exist only on discounts) and no source states a timezone basis. Value unchanged, reasoning replaced. source
guest-loyalty-offer-stacking-rulespartial / A - The menu API's discounts object is fully field-enumerated in the blueprint's Attributedowngrade-to-unknownRe-read the blueprint attribute tables myself. The shortfall that made this partial was absence in an aggregator export, which the audit refuted as a completeness premise. The remaining precedence leg does not survive scrutiny either: the discounts table says only 'rank (string) - Discount rank', and the same document's other rank fields are explicitly display ordering ('Category rank for ordering/stacking', 'Addon item rank/order'), so precedence-of-application is an inference on a differentiator cell. I then hunted for a first-party stacking rule and found only a generic category glossary listing stackability among things a good coupon system covers, not a POSS capability statement. What is actually documented is discount scoping (discountapplicableon, discountcategoryitemids, per-item ignore_discounts), not combinability. Nothing supports either limb, so unknown at F with no url. source
order-capture-native-handheldpartial, grade B - "Captain ordering app" appears in the Add-ons list on the veupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
digital-first-party-webpartial, grade B - "Restaurant website" is listed among Add-ons on the vendor pupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
hardware-kdspartial, grade B - Petpooja's own pricing page lists "Kitchen display system" iupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
reliability-local-transaction-enginepartial, grade B - The only evidence that "Local POSS" stores data on the localupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
reliability-247-live-supportpartial, grade B - Direct internal contradiction in the vendor's own material. upheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
commercial-pricing-publishedno, grade B - Tier names and a feature matrix are published but no currencupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
commercial-implementation-fee-publishedno, grade B - No implementation, onboarding, menu-build or training fee isupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
payments-published-ratesno (grade F), uncited: No card-processing rate card is published because Petpooja does not underwrite processing; merchants price with their own gateway/acquirer.upheldVerdict upheld, premise corrected. The US/Canada POS page markets integrated card acceptance outright -- "a wide range of card processing terminals & integrated in-person & online payments" -- so the prior reason ("Petpooja does not underwrite processing") is not established and has been withdrawn. What is established is quote-only pricing: three tier names, a feature matrix, no figures, a Book A Demo button under every tier, and "The prices on the page might vary based on location. Please contact us for details!". Card-rate vocabulary is zero across the 117-document public corpus, tokenised. source
commercial-interchange-plus-publishedno (grade F), uncited: No processing rates of any structure are published, because Petpooja does not sell merchant acquiring.upheldUpheld on the measurement, not on the stated cause. `interchange` and `MDR` occur zero times in 926,369 characters of public corpus and no bps-plus-per-transaction figure exists; but "because Petpooja does not sell merchant acquiring" is contradicted by the vendor's own US page and is withdrawn. Where Petpooja does say who prices the rails, it hands the merchant their own: "You can use your Razorpay gateway at the website widget for online orders." source
reliability-offline-feature-matrixno (grade F), uncited: Not published. Petpooja markets offline capability broadly but nowhere enumerates which functions are unavailable offline.upgrade-to-partialOverturned to `partial`. /offline-pos publishes exactly the enumeration the prior note said did not exist: an on/off toggle -- "Flip the internet switch to see what keeps working" -- with "Every bill and KOT", "All dine-in and takeaway orders", "Sales records and day-end reports" on the local side and "Menu and price updates", "Online orders from Zomato and Swiggy", "Settings and app changes" on a card that flips from "Live sync" to "Paused" when the switch is off, plus a stated bound of five days of offline billing. Held at `partial` because it covers the separate on-premise product and names none of the functions the claim enumerates. source
labor-qualified-tips-w2-reportingno (grade F), uncited: US W-2 Box 12 code TP / Box 14b and Treasury tipped-occupation codes are outside Petpooja's operating geography (India, UAE, South Africa); nothing of the kind is documented.upheldUpheld and re-homed. The geography premise is weak -- Petpooja publishes /us/poss and /ca/poss -- so the citation now rests on the payroll product's own statutory enumeration, "Easy breakdown of PF, ESIC and PT in employee salary", echoed by the vendor's llms.txt as "Automated payroll calculations with statutory compliance (PF, ESIC, PT)". `W-2`, `IRS`, `tip` and `gratuity` are each zero across 117 documents, tokenised, and the two `tips` hits are a blog headline about website design: tipped pay is not modelled at all. source
labor-digital-onboarding-i9no (grade F), uncited: W-4/I-9/E-Verify are US-specific and irrelevant to Petpooja's markets; no equivalent onboarding documentation exists.upheldUpheld and re-homed off the geography premise for the same reason as the tips cell. The payroll product's published scope is attendance, shifts, leave, loans/advances, reports and salary under Indian statutory deductions, with no new-hire document collection; `W-4`, `I-9`, `E-Verify` and `new hire` are each zero across 117 documents, tokenised, and every `onboarding` hit is customer or outlet onboarding. source
guest-loyalty-referral-programunknown (grade F)resolve-to-noBoth quotations are exact raw substrings, each inside one <p>. The first stops before the <a> link, and the second needs only &#8217;-free decoding. Both are Petpooja-specific: post 26900 (mod 2026-06-16) and post 45527 (mod 2026-06-18). Polarity is correct: the claim asks for a native referral mechanic, so `no` means absent. An exclusive per-product enumeration corroborates it: the same post 45527 has a comparison table whose 'Referral engine' row reads 'No' for Petpooja Loyalty (Type 'POS-native add-on') and 'Yes' for Reelo, Bingage and Froogal. One residual ambiguity, not fatal: 'those need the WhatsApp CRM or SMS Service add-ons from the marketplace' could be read as naming a first-party paid add-on route. Post 26900's sentence covers POSS as a whole and names only third parties (Reelo/Bingage) for referral flows. Tokenised sentences with referral+Petpooja across the blog and www: only these two posts carry product statements. The peer distribution (27 no / 5 partial / 2 yes) shows the cell is scored this way elsewhere. source
guest-loyalty-campaign-attributionunknown (grade F)resolve-to-partialThe FAQ quote and its question label were verified in raw HTML: the answer is in one <p class=schema-faq-answer>, and the question is a <strong> label, quoted separately. The FAQ answer explicitly names Petpooja POSS. The redemption-limit string is present in the Wayback tenant capture's message JSON. The win-customer-loyalty paraphrase is fair: 'With Petpooja POS, you can create &amp; track your' SMS / service Feedback campaigns, split by two <a> links, so the note is right not to quote it. Partial is correct: redemption counting is established, and check-total/incremental-sales attribution is not. That is a named shortfall on a differentiator at grade C. source
digital-subscriptionsunknown (grade F)resolve-to-partialThe heading, example and both sentences are exact raw substrings in post 45225 (mod 2026-06-09), under the h2 'What About Cafes That Also Do Takeaway Subscriptions?'. The support sentence names Petpooja POSS. The per-period item entitlement plus scheduled billing meets one listed form of the claim's disjunction; the lack of guest-facing enrolment, payment collection or config reference is fairly named as the shortfall, so partial stands. The note's count claim was re-measured: tokenised `membership` (33 hits / 18 docs) co-occurs with Petpooja/POSS in 0 sentences. source
digital-sms-orderingunknown (grade F)resolve-to-partialAll three quotations are exact raw substrings inside single elements of post 19231 (mod 2026-09-07). 'WhatsApp menu link for repeat customers. The POS merges all of these into one KOT and billing flow.' is in FAQ answer 2, whose framing ('A typical setup') is category-level, and the note already concedes the Petpooja-specific support rests on 'Petpooja POSS supports all five channels'. The digital-menu section says the shared menu link 'becomes a zero-commission ordering pipeline', so text-a-link landing in the POS is fair at partial. The count claim was re-measured: tokenised `WhatsApp ordering` = 1 hit in 1 doc (why-every-restaurant-needs-own-website-india). source
digital-upsell-engineunknown (grade F)resolve-to-partialThe kiosk quote is an exact raw substring inside one <p data-i18n=ssk_136> under an <h3>'Higher average order value', and it survives HTML-comment stripping (VISIBLE on /poss/self-service-kiosk and /ae/; the page carries 6,760 comment chars, none holding this text). The canonical tag is https://www.petpooja.com/poss/self-service-kiosk. The blog corroboration is an exact substring inside one <li>. The Captain App line is a single <td> cell of the Ask Me Anything post's table; its source is unnamed in the note but the quote is exact. Partial correctly names the missing attach-rate reporting on a differentiator at grade C. source
kitchen-course-firingunknown (grade F)resolve-to-partialExact raw substring in one <p> of post 45980 (mod 2026-07-08); the preceding sentence's <a>captain ordering</a> is outside the span. It is Petpooja-specific: the same post's conclusion says 'Petpooja POSS is built for the floor, with ... the Captain App with course-wise firing', and a numbered list shows holding mains and firing them. Partial at grade C is the ceiling for a differentiator; the course-assignment and non-handheld shortfalls are fairly named. source
kitchen-item-build-screensunknown (grade F)resolve-to-partialBoth quotations are exact raw substrings of post 46052 (mod 2026-07-13). The first follows an </a> outside the span. The second follows the <strong> label 'The KDS add-on is active.' inside the <li>, also outside the span. Value and grade stand. Defect: the note calls it 'a paid KDS add-on'; the source says only 'an add-on', and payment is not stated. Removed 'paid'. source
kitchen-order-modification-alertsunknown (grade F)resolve-to-partialQuotes are exact raw substrings, but the primary source is category-level. 'The KDS updates the card and flags exactly what changed...' sits under the generic h2 'How Does a KDS Work in a Restaurant Kitchen?'. That is BEFORE the post's Petpooja section ('What Can You Do on a Petpooja KDS?') and describes KDS screens generically. The Petpooja-specific evidence is the Captain App post (45724, mod 2026-07-01): 'In Petpooja's Captain App, the captain modifies the KOT from the device. The change fires to the kitchen immediately with a modification tag showing what was added, removed, or changed.' That covers added/removed/changed, but for Captain App edits only, and it does not say the tag renders on a KDS card rather than a KOT. Re-homed url and rewrote note; partial/C stands. source
kitchen-speed-of-service-reportingunknown (grade F)resolve-to-partialBoth quotations are exact raw substrings in separate <p>s of post 45724 (mod 2026-07-01), under the h2 'Can You Track How Long Each KOT Takes to Process?'. It is Petpooja-specific: the Key Takeaways list 'KOT process-time tracking' among six Captain App/POSS features, and the following paragraph concerns outlets on Petpooja POS comparing stations and shifts. The percentile, daypart/channel and export shortfalls are real, so partial stands. source
delivery-address-validationunknown (grade F)resolve-to-partialDowngraded yes -> partial; the grade stays A for the build. I re-read the whole inline script of the capture (the CDX row 20260112185411 200 text/html confirms it). Established: every tenant path runs google.maps.places.AutocompleteService. The DomainId==812 branch only changes componentRestrictions to IN/AE; this tenant is DomainId 58683 and takes the else branch. The selection is then geocoded by placeId. fillbranches -> get_matrix_data compares a haversine distance (getDistanceFromLatLonInKm) against each branch's radius. When none qualifies, only the 'Sorry, no outlets servicing the selected location.' message renders, with no <select>. Defects in the proposal's caveat: getdatamatrix (the Distance Matrix handler with 'REQUEST_DENIED' -> fillalldeliverybranch) is DEFINED but NEVER CALLED in this capture, so there is no Distance Matrix fail-open on this build. The live REQUEST_DENIED test is in displaySuggestions, which compares against an unquoted identifier REQUEST_DENIED that is not defined in the page or the captured JS; it would throw rather than fail open. Why partial rather than yes: this is one tenant's client-side store-picker gate on the storefront home page, dated January 2026; a straight-line radius stands in for a delivery zone; the chosen coordinates and a data-rads value are passed on to checkout via hidden fields (c_lat/c_long/c_radius), but server-side rejection at order acceptance is not observed; and live tenant roots now 500. The claim's 'before the order is accepted' is the unobserved half. source
reporting-nl-queryunknown (grade F)resolve-to-partialAll five quotations are exact raw substrings of post 46438 (mod 2026-07-29), each within one <p> or <li>. Two need entity decoding: the example question is wrapped in literal double quotes, and 'Petpooja&#8217;s' is decoded. The biller example exists as a table cell ('Staff performance' / 'How did each biller perform last week?'), and the FAQ lists 'staff performance'. Neither reads labour/attendance data, so shortfall (1) is fair. 'chart', 'labor' and 'attendance' are absent from the post. Scope 'available on Petpooja's Electron POS' is verified. Partial stands. source
inventory-menu-margin-linkageunknown (grade F)resolve-to-partialBoth quotations are exact raw substrings of post 46438. 'Ask Me Anything returns the breakdown.' and the following sentence are in one <p>. The menu-engineering quote in post 46297 (mod 2026-07-25) follows <a>Petpooja POSS</a>., outside the span, exactly as the note says. The note correctly declines 'AI flags the shift the week it happens...' as category-level: its paragraph talks about 'the tool' and 'AI' generically. First conjunct partly established; threshold flag not established; partial/C stands. source
reliability-offline-card-authunknown (grade F)resolve-to-noValue `no` and polarity are correct: the claim is store-and-forward card acceptance, and the source affirmatively says an outage means cash. Two quotations are SLIPS that cross markup, contradicting the note's own 'no markup inside the span' assertion. (a) 'Petpooja POSS routes every Pay+ ...': in raw HTML 'Petpooja POSS' is the text of an <a href="https://www.petpooja.com/poss"> link, so the span crosses </a>. (b) 'Switch payments to cash or a direct UPI QR that does not depend on the EDC machine': in raw HTML 'Switch payments to cash or a direct UPI QR' is inside <strong>, and 'EDC machine' is <a> link text, so the span crosses </strong> and <a>. Repaired both to spans inside single text nodes. The Key Takeaways <li> and the two SVG <text> quotes are exact. Post 46246, mod 2026-07-22. source
extensibility-accounting-connectorsunknown (grade F)resolve-to-partialAll three quotations are exact raw substrings inside single <li> text nodes of post 46169 (mod 2026-07-17). Each follows a <strong> step label that is outside the span. 'One-way' is supported by the Key Takeaways line 'The sync runs <strong>one way, from the POS to Tally</strong>', and the note does not quote it. POS-type scope is confirmed, and the note rightly paraphrases because of the bolding. Counts were re-measured with a tokenised matcher allowing plural/possessive: `QuickBooks` 2 hits / 2 docs (the two payroll posts named), `Tally` 271 hits / 60 docs; the note's 274 is a reader artefact and the invariance holds. The QBO conjunct is unestablished, so partial stands. source
payments-published-ratesno (grade C)upheldRecount accepted in substance, one figure wrong. Re-ran a tokenised, word-boundary, optional-plural matcher (script file vfy-count.mjs) over 947 documents: 823 blog posts, 120 www HTML files, the magazine text and 3 widget files, with comments, scripts and tags stripped. The matcher was proven in the same run: `restaurant` 10,625 hits in 795 docs, a nonsense token 0. These counts reproduce: `interchange` 0, `merchant account` 0, `processing rate` 0, `card rate` 0, `convenience fee` 0, `MDR` 14 (1 doc), `processing fee` 3 (2), `transaction fee` 3 (3), `gateway charge` 12 (9). `per transaction` is 7 hits in 3 docs, not 3; the audit's count evidently missed the hyphenated per-transaction. I read every non-zero hit. All are generic explainers, aggregator/ONDC deduction stacks, a loyalty-software comparison, or the Purchase Manager's 'no transaction fees', and none prices Petpooja's own acceptance. The /us/poss and /ca/poss figures ($50/$95/$135 and $65/$115/$150) occur only inside HTML comments: 0 live occurrences on either page. The rendered page carries 'The prices on the page might vary based on location. Please contact us for details!' and the full Integrated Payments sentence, both contiguous in comment-stripped raw bytes. Both Pay+ quotations were verified raw, inside a single list item and a single table cell respectively. source
payments-offline-store-and-forwardno (grade C)upheldConfirmed in raw blog HTML. 'restore card payments' is ABSENT. 'A phone tethered at the counter often restores card payments and aggregator orders within a minute, with the main line still down.' is present and contiguous, as are 'The part you need during service keeps working: ...', 'card or UPI on an EDC needs a connection of its own', 'Switch payments to cash or a direct UPI QR', and the up-to-5-days / POS Lite sentence. The verdict rests on an affirmative statement of what stops during an outage. The claim is a card store-and-forward capability, and the vendor says card payments routed through an EDC stop. The corrected note is below. source
delivery-driver-rosterno (grade E)downgrade-to-unknownConfirmed that the no rests on silence. The only enumeration, on /poss/online-order-management-software ('supports more than 150+ different third-party integrators, including ride management apps like Duzno, Shadowfax, and Pidge'), is live, contiguous and introduced by 'including', so it is a floor. It answers an FAQ about using rider apps and does not say a native module is absent. Tokenised over 947 docs: `rider app` 0, `in-house delivery` 0, `rider` 107 (35 docs), `driver` 37 (27), `delivery boy` 12 (9), `delivery executive` 29 (16). I read every one of these hits that falls within 160 characters of 'Petpooja' (15). They are the token display for aggregator riders with Swiggy/Zomato or Talabat/Deliveroo OTP check-in, one payroll bracket example and one Attendo client anecdote. None is a native driver roster, and none says there is not one. The original grade E on a vendor page was also invalid.
labor-qualified-tips-w2-reportingno (grade C)downgrade-to-unknownConfirmed. The existing note's `tip` 0 and `gratuity` 0 are false. Tokenised with optional plural, I get `tip` 323 hits in 182 docs and `gratuity` 190 in 22 (the audit's 365/193 and 191 come from a different reader; the invariance is that both are far from zero). The split-bill post quotation is live and contiguous in raw bytes, so the POS does model tips. `W-2`, `W2`, `I-9` and `IRS` are 0 in every text document. The only raw matches for W-2/W2/I-9 are bytes inside the binary PDF saved as www/_download_magazine.html, which is noise. 'Attendo (formerly Petpooja Payroll)' and 'Easy breakdown of PF, ESIC and PT in employee salary' are live. That is Indian positioning plus silence about US reporting; nothing says a W-2 tip export is unsupported.
labor-digital-onboarding-i9no (grade C)downgrade-to-unknownConfirmed. `W-4`, `Form I-9` and `E-Verify` are 0 over 947 docs, and `I-9` is 0 in every text document (1 binary-PDF byte match). `new hire` is 39 hits in 27 docs (the audit said 36; different tokeniser, same invariance: not zero). 'Easy employee onboarding and management' is live as a single list item under Unlimited Employee Access in an Attendo pricing post. That contradicts the note's 'no new-hire document collection of any kind' at the level of feature marketing, though not specifically about forms. What remains is an Indian statutory list plus silence about US forms.
reporting-public-apino (grade E)downgrade-to-unknownDowngrade accepted; the rationale needs two facts the audit left out. Re-fetched the blueprint today with scripts/lib/probe.mjs (jsapi.apiary.io/robots.txt answers 404, so no bar can be read): HTTP 200, 115,978 bytes / 115,970 chars, MD5 identical to the 2026-08-06 cache. The audit's figures reproduce: 10 [POST] resources, `report` 0, `sales` 0, `invoice` 0, `order history` 0, `employee` 0, `inventory` 0, proven by `menu` 36 and `app_key` 6. Wayback CDX, recounted: 12,898 lines across 10 files, `apiary` 0, 0 status/docs/developer/api-shaped URLs, control `poss` 210. The missing facts: the blueprint names a developer-account host, 'Access to developer account of staging/production : https://developerapi.petpooja.com/', and says 'Credentials for both staging and production environment will be provided by petpooja team.' So credentials for the only documented API are Petpooja-issued, but developerapi.petpooja.com was not probed and may carry other documentation. /security's 'Production APIs' scope line is live. It is still a floor, not a census, so unknown is right.
hardware-handheld-purpose-builtno (grade E)upheldGrade fix confirmed: E is invalid for a vendor product page, so C. The value survives, with two corrections to the audit's support. (1) Its `PAX` 0 is reader-dependent: one of my runs returns a single match, and it is not a Petpooja device either way, so I dropped it rather than publish a figure. (2) One adjacent fact the audit did not weigh: Petpooja's EDC/Pay+ post says 'Captains taking orders tableside can settle bills on the spot'. That is tableside card settlement, but on partner EDC card machines. No page presents a Petpooja purpose-built ordering handheld with an integrated reader, and no drop or IP rating is published for any ordering device. Verified live and contiguous: 'Configured to work on any android phone' (/poss/captain-ordering-app), and in the /ae/poss FAQ 'Petpooja runs on Android POS terminals, tablets, receipt printers, and kitchen display screens.' followed by 'Hardware is sourced via our partners'. Counts: `handheld` 11 (5 docs, generic hardware-guide prose), `rugged` 2 and `IP65` 1 (third-party biometric attendance devices), `Sunmi` 0. source
hardware-pricing-transparencyno (grade B)upheldGrade fix confirmed: B is wrong for a kiosk marketing page, so C. The value survives, but the audit's 'no Petpooja SKU price' sweep missed the nearest candidate, and the note should name it. My sweep, with comments stripped: 279 currency figures within 80 characters of a hardware noun across 947 docs, 23 of them within 200 characters of 'Petpooja'. I read all 23, plus every live currency figure on the kiosk and captain pages. The live figures are not prices: the kiosk page's ₹25k+ (India) and AED 1,000+ (UAE) sit above 'saved/mo on cashier', and INR 5000 on the captain page is a contactless-payment ceiling. The nearest thing to a vendor hardware price is the fingerprint-attendance post's 'Biometric Device & Software Solution (First Year)' at ₹9,000 one-time, in a table headed 'Typical range*'. Its footnote calls these July 2025 street prices and sends readers to petpooja.com for the latest offer. The footnote spans markup, so I did not quote it. That is an attendance/payroll bundle self-described as a street price, not a per-SKU POS hardware price. 'Trusted Hardware Partners' and 'Book A Demo' are live on the kiosk page, and 'Hardware is sourced via our partners' is live on /ae/poss. source
extensibility-public-api-docsno (grade B)upgrade-to-partialOverturn to partial/A accepted. Re-fetched today via probe.mjs: HTTP 200 anonymously, 115,978 bytes (the audit's 115,970 is the character count), MD5 identical to the August cache. 10 [POST] resources, Response 200 and 400 only, a '# Changelog' section, attribute tables, and the scope and app_key quotations are all verified raw. Grade A is correct: this is an API reference authored by Petpooja (titled 'PetpoojaOnlineOrdering APIs - V2.1.0' and naming developerapi.petpooja.com), and the evidence rules put an API reference at A regardless of the third-party apiary host. The record's sibling cells already cite the same document at A. Partial rather than yes is the conservative call, because the only public reference covers a single integrator surface and is linked from nowhere. The note's shortfall (3), 'the HOST line is a placeholder', is literally true (HOST: https://internal_or_external_URL_Address.com) but misleading: the blueprint separately names 'Access to developer account of staging/production : https://developerapi.petpooja.com/'. Shortfall (2) should quote the blueprint itself ('Credentials for both staging and production environment will be provided by petpooja team.'), not only the integrations page. Note amended. source
extensibility-menu-write-apino (grade A)upheldConfirmed against the blueprint re-fetched today. The resource headers are exactly /pushmenu_endpoint, /fetchmenu, /saveorder, /callback, /orderstatus, /rider_info_webhook, /item_stock, /item_stock_off, /get_store_status, /update_store_status. /orderstatus's request attribute reads 'status (required, string) - [-1=Cancelled]'. 'This is the webhook to update the rider information for Petpooja POS' is verified raw, so the omission of /rider_info_webhook from the inbound-write list is real. Both quotations in the note are verified raw. The corrected sentence is applied below. source
extensibility-data-symmetryno (grade A)upheldConfirmed. /get_store_status 'has to provided by Integration partner' and /update_store_status 'has to provided by Integration Partner' / 'is used by merchant to tell integration partner to on/off the store' are all verified raw, so store status lives on endpoints the integrator hosts. The Fetch Menu example carries restaurants, categories, items, variations, addongroups, taxes and discounts. The only customer object is 'OrderInfo / Customer (object)' inside Save Order. `employee` 0 and `inventory` 0. The corrected wording is applied below. source
extensibility-first-party-delivery-integrationsno (grade E)upheldThe audit is right that the existing no rests on silence (the India FAQ list is a floor) and that grade E was invalid. It is wrong that nothing affirmative exists. The claim requires first-party CERTIFIED integrations with DoorDash AND Uber Eats AND Grubhub, and DoorDash publishes its own roster of integration providers. I re-fetched it today after reading robots.txt whole (133 bytes: 'User-agent: *', 'Allow: /', Disallow only /cdn-cgi/ and /monitoring): HTTP 200, 158,067 bytes, 64 providers. `Petpooja`, and even the substring `pooja`, occur zero times in the whole body, while the control `toast` is present. That is positive evidence on DoorDash's own record that Petpooja holds no DoorDash integration at any tier. The DoorDash conjunct fails, so no survives, re-based and graded B to harmonise with this record's extensibility-doordash-preferred cell on the same URL. The audit's corpus facts are verified: 'Delivery apps: Talabat, Deliveroo, Careem, Noon' is live on /ae/poss; `DoorDash` 1 and `Grubhub` 4 are statistics; `UberEats` 1 is UrbanPiper Prime's channel list in a competitor round-up; `Uber Eats` 0. source
reliability-public-status-pageno (grade B)upheldConfirmed. The sitemap (fetched 2026-09-12) lists 119 URLs, and 0 contain `status` or `uptime`. The Wayback CDX recount is 12,898 lines across 10 files, with 0 status/docs/developer/api-shaped URLs and control `poss` 210 in cdx-domain.txt. Over 947 docs, `status page` 0 and `system status` 0. `uptime` is 7 hits: six generic blog uses plus the UAE terms disclaiming 'maintaining any uptime for such third-party features', none a status page. The August host probes were not re-run, so the note dates them. source
commercial-interchange-plus-publishedno (grade C)upheldConfirmed. `interchange` is 0 over 947 docs. `MDR` is 14 hits in 1 doc, the card-vs-UPI explainer, whose 'Card payments carry a Merchant Discount Rate (MDR) that the provider deducts before the money settles' is verified raw. The Razorpay question and answer are ABSENT from /us/poss and live on /poss/online-order-management-software. The Pay+ partner quotation is verified raw in a single list item. The Integrated Payments sentence is live and contiguous on /us/poss. The corrected note is below. source
commercial-pricing-publishedno (grade C)upgrade-to-partialOverturn to partial/C accepted. The peer bar supports it: 13 records sit at partial/C, including one on a single 'starting at $99.99/month' figure. Verified raw: the /ae/poss FAQ answer 'Starts at AED 1,500/year per outlet, billed annually.' is live twice (JSON-LD and the rendered accordion). The pricing block's 'Per outlet, billed annually. You get an exact quote on the demo call, based on your outlet type and the features you need.' is live and contiguous. The hero figure is split across elements (Starting from / AED / 1,500 / /year), so it is correctly left unquoted. /poss/pricing and /ae/poss/pricing carry zero live currency figures. On /us/poss and /ca/poss every $50/$95/$135/$65/$115/$150 occurrence is inside a comment (US and CA both 0 live), and 'per month/per outlet' exists only in comments. The note needed two fixes. (1) It implied the quoted FAQ sentence appears 'in its pricing block and its FAQ'; the sentence is the FAQ's, and the block shows the figure unquoted. (2) It omitted the per-additional-terminal conjunct of the claim, which nothing publishes. source
commercial-implementation-fee-publishedno (grade C)upgrade-to-partialOverturn to partial/C accepted. 'Setup, VAT config & training included' is live (an &amp; entity in raw) as a bullet under the AED 1,500 plan. The UAE terms sentence 'Such training, support and installation may be provided on additional charges as notified by us from time to time.' is live, preceded by 'We or our associated designates shall provide you with installation services and initial training ...'. The blog sentence 'Training is included, on call and in person, with retraining available later if you hire new staff.' is live. Partial is the right value: an explicit 'included' (i.e. $0) for setup and training in one market, with a contractual reservation cutting against it. Two defects in the note. (1) It conflates two FAQ answers: 'as part of setup' belongs to the data-migration answer ('Our onboarding team handles this as part of setup'), while menu upload, tax configuration and outlet settings come from a different answer ('Our team handles your full setup - menu upload, tax configuration, and outlet settings - mostly remotely.'). (2) 'For India' is not in the blog source; the post speaks of Petpooja POSS generally. source
delivery-zones-polygonunknown, grade Fresolve-to-noChecked the raw bytes. Every radius build carries only lat/long/radius per branch. The eligibility check is a client-side haversine; the one road-distance handler is never called. The only server call near it (`orders/updateraw`) just posts the address back. The single common.js 'area' hit is "restricted area" and the 'radius' hits are CSS border-radius, so neither is zone vocabulary. The no stands because the served data lists every delivery-area setting there is, but grade drops from B to C: 14 archived guest sites plus an API export do not cover the back office. source
delivery-zone-pricingunknown, grade Fresolve-to-partialParsed the raw restmainArr JSON myself. The 150-vs-200 split is real, not duplicate rows: 40 distinct area keys all point at the same branch (id 9662) and the minimums differ. So the minimum really is set per area. That meets one of the claim's three per-zone settings (the order minimum), which is enough for partial; per-area fee, promise time and address-derived zoning are all absent. A typo'd copy of the display line in the inline page (`minimum_order_amoun`) is not quoted; the quote comes from custom.js line 177, which is spelled correctly. source
delivery-tracking-pageunknown, grade Fresolve-to-partialEvery quote was checked against the raw capture bytes after stripping HTML comments. They are verbatim, except that the confirmed note continues with "It will be served you shortly.", which is now restored. The state is real, not a template: each of the five order ids shows its own items, totals, discount and delivery charge, and the pages show three different states (Placed, Cancelled, Confirmed), including a cancellation reason typed by the outlet. Partial is right. The claim needs the page on the restaurant's own domain and driven by driver state, and both fail: the page is a Petpooja subdomain with no driver, rider, ETA or tracking tokens and no polling. Yes would ignore those conjuncts. No would ignore a real guest-facing status page for delivery orders. Grade B stands: a vendor-hosted page of the product itself, captured by Wayback, is at least as strong as documentation and matches the B the previous session gave tenant pages. Amendments: (1) "on Home Delivery orders" was widened from the two thefoodbarn pages, the only ones with that label, and is now bounded to them; (2) "no driver/rider/map/ETA tokens" was false for map, which appears twice per page, both fa-map-marker icons, and the note now names that trap; (3) the no-polling claim now names the scripts it was checked against, where the 2025-26 custom.js and common.js captures were never cited before; (4) the note now separates current status vocabulary (the 2026 dictionary) from the vieworder page itself, which was only captured in 2019. My own first token counter returned zero for every token, including ones visibly present, and was discarded; all counts above come from a literal-regex rerun. source
inventory-cogs-gl-exportunknown, grade Fresolve-to-partialAll cited chunks were fetched again live with a Chrome UA. Each returned 200 as real JS (content-type application/x-javascript, no HTML shell), while a made-up .js path returned the 200 text/html catch-all. Every quote is verbatim; three offsets drifted by up to about 180 bytes and are corrected in the note. Challenge on the substance: the push is AP/purchase accounting, not COGS. But the claim is a conjunction of COGS AND AP invoice detail, and the AP half is fully met: a named system, voucher push and ledger mapping per sub-category. So this is a partial with a real met conjunct, not a partial that fails every conjunct. It matches peers: gotab partial/B has a QBO sync without COGS or mapping; clover partial/B has a sales-only QBO sync; revel partial/B has POs and COGS to QBO. Petpooja's version is stronger on mapping and weaker on COGS. No double count: extensibility-accounting-connectors (partial/C, blog) scores whether a sales/GST/expense Tally connector exists, a separate taxonomy claim; this cell scores inventory/AP cost export, whose unknown rationale ('no GL account mapping per item category... no AP export') the chunks now falsify. Grade A holds: this is vendor-served client source. Value stays partial; the note is amended with corrected offsets, the zero-COGS control over all four files and the requiresPaid gate. source
inventory-unit-conversion-yieldsunknown, grade Fresolve-to-partialRe-fetched live on 2026-09-15 with a Chrome UA. The host is a soft-200 catch-all: a nonsense .js path returned text/html at 48,448 bytes. The cited chunk 1343.a1da196e0972fe78.js returned application/x-javascript at 256,264 bytes. Its sibling 5951.8085133bb9f7051f.js returned 220,253 bytes and the byte-identical template 2089.0503688660125db3.js returned 272,299 bytes. None of these is the index shell. Both 1343 and 5951 are named in the live runtime.f89db47a4ea1080f.js that the index references. Every quote matched verbatim at the stated offsets: 'Purchase Unit' @3118, 'Petpooja Unit' @3170, 'Conversion Qty' @3222, the no-pending string @2554, 'Petpooja Conversion unit is required' @9263, 'Auto Conversion' @143884, 'Conversion Activity Logs' @234289, and in 5951 'Seamlessly push...' @1689 with the sync-code sentence starting @168836. The three yield hits are generator code, as the proposal said, and waste, recipe, Yield and Wastage are absent. Scope challenge: this is a first-party Petpooja app tied to the POS by a sync code, and the vendor page calls it included with a POSS account. It is not a partner product. The existing petpooja cells inventory-price-change-alerts and inventory-invoice-ocr already treat Purchase Manager as in scope, so counting it here is consistent. It is not double counting, because those cells score price history and OCR, not unit conversion. The conjunct challenge: one purchase-to-stock conversion factor per item, with no recipe/count split and no yield %, meets the claim only partly. Peers are graded the same way, e.g. chromis (Purchasing UOM to selling UOM) and digital-dining (pack sizes), both partial. So partial, not yes. Grade A stands, since this is vendor-served executable code, the same grade given to floreantpos source. The note gains the verbatim tooltip, which shows the conversion is stored per raw material and not per invoice line. source
guest-loyalty-privacy-rights-toolingunknown, grade Fresolve-to-partialRe-fetched the bundle live on 2026-09-15 with a Chrome UA. The index names /assets/index-B4eal04F.js, which returns 200 text/javascript at 3.57 MB, while index-ZZZfake99.js returns the 1,284-byte text/html shell, so the asset is real. Every quoted string is present. Three offsets were off by one (357345->357346, 3142390->3142389, 3527542->3527541) and are corrected. I checked the extra deletion-shaped hits myself: 'customers removed' is a waitlist queue reset, and unsubscribe (35) and opt_out (14) are library code, so the no-deletion finding stands. The claim is conjunctive (access AND deletion AND propagation), so a bulk permission-gated CRM export plus an opt-out flag meets at most a weak form of one conjunct. Partial is the ceiling, in line with peers qu (partial/A, guest self-delete only) and opensourcepos (partial, DB-level export/delete). It is not double counting: commercial-privacy-dsar-tooling is a distinct taxonomy id and cites a different page at D. Scope: the Reservation Manager is a Petpooja-branded add-on on a petpooja.com host whose bookings carry a 'Petpooja POS' source, so it is attributable to the vendor. The record does not mention it anywhere, though, so the note must name it as an add-on and not credit the core POS. Amended rather than upheld to fix the offsets and state the add-on and bulk-export shortfalls explicitly. source
labor-offline-time-punchunknown, grade Fresolve-to-partialI re-extracted the strings myself: the base APK and XAPK hashes match, and classes5.dex re-hashes to 129a19b9..., the value the proposal cited. Every quoted string sits at its cited offset with the cited boundaries, and only classes5.dex carries them. The punch and sync classes are all under Lcom/petpooja/facerecognition/, so this is first-party code. Scope challenge: the claim says 'while the POS is offline', and Attendo is a separate product. But this record already scores Petpooja Payroll/Attendo for labour cells as partial, naming the not-the-POS shortfall (photo-punch partial/C, geofenced partial/B, overtime partial/C). Excluding it here would be inconsistent, and partial already carries that limit. A store-and-forward queue in code meets the 'records punches while offline' conjunct at grade A (source code). It does not meet 'documented' or 'without duplicates', so the cell cannot be yes, and it stays partial. The note is amended because the proposal said the only dedup-related string was getRecognitionCooldownMs, and that is incomplete: PunchRepository$hasRecentPunch exists. That check is still capture-side and not reconciliation, so shortfall (2) stands, restated accurately. The note also drops the unnecessary employeepayroll aside. source
labor-geofenced-mobile-punchpartial, grade Bupgrade-to-partialRe-extracted independently. The XAPK sha256 matches; the libapp.so extracted fresh from config.armeabi_v7a.apk hashes identically to the one used; all 7 quoted strings sit at exactly the stated offsets, one hit each, each preceded by its Dart length header (0x82 = 65 chars, 0x86 = 67 chars) and followed by NUL padding. First-party attribution holds: the only geo package path is petpooja_payroll_employee/features/geo_fence (plus geo_tracking), and the SDK strings are dex-only. Grade A is consistent with the other decompiled-binary cells in this record (Attendo Face, Purchase), and the hash binds the mirror; partial stays because the add-on-pricing shortfall is real. AMENDED, not upheld, for two defects. (a) The proposal's control is FALSE: it says 'radius' appears only in SDK strings in classes.dex and that no fence radius is evidenced, but libapp.so carries 'geo_fence_radius' @3454532, 'allowed_radius' @3079492, ') radius=' @3902412 and ', radius: ' @4213596, so the radius is a configured app field; only its value is unpublished. The control ran over dex and not over the Dart corpus the verdict leans on. (b) The proposal drops the published note's content: the Employees > Attendance Permission setup path, the product-page authorisation quote and the INR 8,000 base price. The replacement URL is the APK, so the amended note carries those forward, attributed to the blog URL and its retrieval date. The phrase 'blocks the punch' is also narrowed to what the UI copy states. source
labor-photo-punch-verificationpartial, grade Cupgrade-to-partialRe-extracted it myself. Both XAPK sha256 values match the notes. classes5.dex (sha256 129a19b9...) and the emp armeabi-v7a libapp.so, both extracted by me, return the exact quoted strings at the cited offsets. The four dex offsets are string_id starts, and the three libapp offsets are NUL-bounded. The punch photo is real on the punch row (punchPhotoPath NOT NULL, added by a migration). The first-party PunchPhotoFileStore and S3UploadUtil.uploadPunchPhoto classes tie it to the vendor. That meets the photo-or-face-attached conjunct from source code, so grade A holds, consistent with labor-offline-time-punch A on the same binary. Not a double count: that cell uses the sync queue, this one uses the photo column and face embeddings. The photo-only conjunct is unmet, so the value stays partial. AMENDED for three reasons. (a) The proposal's evidence did not disclose that the local punches row is a transient sync queue deleted after API success, so server-side attachment is inferred. (b) The emp.txt tokens are context-free Dart pool strings and are downgraded to corroboration. (c) The note adds the classes5.dex and libapp.so hashes and the ownership classes. source

Sources

Every URL this record cites. 108 in total.