Line Items (amber rows need your attention — set pack & base qty once, the app remembers per vendor)
Item (as printed)
Stock Item
Category
Qty
UOM
Pack ×
Base Qty
Base UOM
Rate
Value
VAT
Total
GRAND TOTAL:
0.00
0.00
0.00
When
Who
Action
Field
From
To
Note
Finalized Documents
ID
Type
Vendor
Inv No
Date
Total
Uploaded
Approved by
Tally
Tally Voucher
No finalized documents found.
Other Documents (challans, payment slips, quotations — auto-filed, no VAT audit)
ID
Type
Vendor
Reference
Date
File
No other documents filed yet.
Import Sales Data
Petpooja (Dine-in + Keeta + Noon Food), Talabat, and Deliveroo have working importers. GroupOn and the Hotel tie-ins have no sample exports (manual entry channels) and aren't wired up.
One file per month — select every month the Master Report spans (e.g. April–August together)
Some months are split into two half-month files — select all of them together
Import Batches
ID
Channel
Report
File
Imported
By
Rows
Issues
Pending
Flagged
Approved
No imports yet.
Sales Orders
ID
Channel
Invoice No
Brand
Date
Gross
VAT
Muni
Svc Chg
Status
Payment
No orders match this filter.
Import Settlements (Keeta / Noon Food's own payout reports)
Confirms what the platform actually paid out after its own commission/fees, matched against the Sale orders (Sales Orders tab) via Petpooja's Client Order No. Upload the platform's own export, not a Petpooja report.
ID
Platform
Order Ref
Date
Gross
Net Payout
Matched Invoice
Status
No settlements imported yet.
Sales Orders Missing a Settlement (reverse check)
The table above only flags a settlement row naming an order Petpooja never recorded. This is the OTHER direction: a Petpooja order on Keeta or Noon Food that no settlement import has ever matched — worth a look once it's old enough that a settlement should have arrived by now.
Invoice
Platform
Client Order No.
Order Date
Gross
Status
No gaps found — every order on these platforms (within the selected age window) has a matching settlement.
Real Payout Batches (Keeta & Noon — real bank payouts, matched against the bank statement)
Keeta and Noon both pay out per restaurant per billing cycle
(usually a week), NOT per order — one row here is one real bank transfer. Keeta's come from its own
"Invoice Details" sheet (imported automatically alongside its settlements above); Noon's come from its
"wallet" export (imported automatically alongside its statement above). "Suggest Matches" proposes a
bank transaction by amount and date proximity to each unmatched batch, across both platforms at once
(so the same bank credit is never suggested to two batches) — it never links anything on its own; every
match needs your confirmation, and can be undone any time before it's confirmed to Tally.
Platform
Restaurant
Billing Cycle
Settlement Date
Invoice Total
Payable Total
Bank Match
Actions
No payout batches yet — they land here once a Keeta billing workbook or Noon wallet export covering a closed cycle is imported.
Import Talabat Statement of Account (PDF)
Talabat's real settlement mechanism is a running ledger balance per restaurant (commission, advertising, listing fees, sponsored deals, service fees...), not per-order payouts — Payout.csv's figures don't reconcile against individual orders. This is a standalone reconciliation ledger, not matched to Sales Orders.
Filename must be Talabat's own SOA_<doc id>_<restaurant id>.pdf — that's how the restaurant is identified
Statements
ID
Brand
Restaurant Id
Period
Opening
Closing
Net Change
No statements imported yet.
Portal fetch failed
Portal Automation (Petpooja)
A scheduled job logs into Petpooja and fetches the Orders: Master
Report, Sales Report: Online Platforms, and Order Report: Payment Wise nightly. Every run lands here for
review with a manual Import/Reject available any time — once a run's consecutive clean streak reaches the
configured threshold (10 by default), it's imported automatically in the same run.
Fetch now (live — actually logs into Petpooja)
Runs the real automation immediately instead of waiting for the
nightly schedule — for testing or backfilling a specific period. This is NOT a simulation: it launches a
real browser session against your live Petpooja account.
Login step screenshots
Talabat Additional Statements (live — actually logs into Talabat Partner)
Downloads the full "Download all" zip from Payments >
Additional statements — Statement of Account ledgers, the Detailed Report (per-order Sale + fee/VAT
breakdown), and Talabat's own advertising/compensation expense invoices, filed straight into the normal
invoice review queue like any other vendor bill. Everything here is already idempotent (a re-fetched
document just re-upserts or is skipped, never duplicated), and the fetch itself has no Import/Reject step
— a clean run lands straight on "imported" — but expense invoices still wait for the usual human approval
before anything reaches Tally. Leave the date range blank to use whatever the page shows by default, or
set both to backfill a specific period (drives the page's own Custom date filter). This portal's login
also has real bot-detection (PerimeterX) — an unattended run failing here is a real, expected
possibility, not necessarily a bug. Unattended (browser hidden) runs no longer need someone at
the server — if this browser profile isn't already trusted, the run pauses and waits (up to
~15 minutes) for the 6-digit code Talabat emails to the account; it'll show up as "awaiting_otp" in the
run history below with a spot to type the code in. Only the first-ever run against a genuinely fresh
profile, or a repeat if trust ever expires, needs this — later runs should reuse that same trusted
session automatically.
Gets the settlement/commission side of Keeta orders — the
Sale side is already covered automatically via Petpooja (Keeta orders route through Petpooja's own POS).
This selects "All stores" + a date range on Financials > Billing report, submits it, waits for the
portal's own async report to finish generating, downloads it, and hands it straight to the same parser
that already reads a manually-downloaded Keeta workbook — no accounting impact of its own (it only
records/matches settlement rows against Sale orders already in the app), so a clean run has no
Import/Reject step. Leave the date range blank to default to yesterday (the portal's own date picker
won't let you pick today — settlement data lags about a day). Login has never been verified
end-to-end — the first run should use Show browser window so a human can complete it (and
clear any 2FA/OTP challenge) by hand; later runs should reuse that same trusted browser profile. This
portal also has bot-detection fingerprinting in the background, same risk category as Talabat's — an
unattended run failing here is a real, expected possibility while this is still new.
Login step screenshots
Noon Statement (live — actually logs into Noon Partners)
Gets the settlement/commission side of Noon Food orders — the
Sale side is already covered automatically via Petpooja (Noon orders route through Petpooja's own POS).
There's no "select all" on this portal, so one run fetches both real AJT brands (Parilyahan sa Kalye,
Sushi Akai Bara) separately and imports each file — no accounting impact of its own (it only
records/matches settlement rows against Sale orders already in the app), so a clean run has no
Import/Reject step. Leave the date range blank to default to 7 days back. Login is only
verified up to the username/Continue step — the first run should use Show browser window so a
human can complete the password (and any OTP) by hand; later runs should reuse that same trusted
browser profile. Everything past login (navigation, brand switching, date range, download) is
confirmed working.
Login step screenshots
Run history (all portals)
Portal
Run started
Status
Rows fetched
Streak
Reference reports
Actions
No runs yet — the first scheduled fetch hasn't run yet.
Invoice Audit Trail (Petpooja)
Every invoice printed more than once (Order Print Count Report),
with any logged item edit found for it (Order Audit: Item Wise) — who changed it, when, and the reason if
one was given. Filled in automatically by the same Portal Automation fetch as the Sales data; an invoice
with no edit listed was still reprinted, just with nothing logged against it.
Reprinted invoices
Invoice No.
Order Date
Times Printed
Print Timings
Edits
No reprinted invoices found for this filter.
Data Coverage (which portal's data we actually have, and for which period)
Computed from the data itself (Sale orders / settlements / payout
batches / Talabat statements already imported) — not from the Portal Automation run history, since a fetch
can succeed with zero new rows (already on file, or a genuinely empty period) or fail outright, neither of
which says anything about what's actually on file. "Gap months" are calendar months strictly inside a
stream's own earliest–latest span with zero rows — a period never fetched at all, before the earliest date,
isn't a "gap" here (nothing to compare it against yet).
Data Stream
Total Rows
Earliest
Latest
Coverage
Gap Months
No coverage data yet.
Alerts
Hotel settlement snapshot
Top suppliers this month
Record a day
Daily register
Post a hotel sale
Hotel postings this month
Reconciliation by category
Close the day
Cash register this month
Municipality tax working (dine-in only)
VAT summary (every stream)
Spend by category
Purchases vs sales (last 6 months)
Supplier ledger this month
Stock Count Sessions
ID
Date
Status
Items
Created By
Finalised By
No count sessions yet. Create one to start tracking stock consumption.
No bank accounts configured. Add one to start reconciliation.
Add Bank Account
Filename
Period
Transactions
Confirmed
Pending
Unmatched
Uploaded
No statements uploaded yet. Upload an Excel or PDF bank statement to begin reconciliation.
Date
Description
Reference
Debit
Credit
Status
Party / Ledger
Tally Match
Actions
No transactions found for the selected filter.
System Status
Loading…
Tally Bridge
Checking…
Extraction Engine
Loading…
Team Members
Username
Full name
Role
Status
Add team member
Process a Folder on the Server
For bulk historical imports directly on the server PC. To upload from your own computer, use Upload in the Purchases group instead.
Maintenance
"Re-extract Audit Failed documents" re-reads each failed file from scratch with the current engine — use this after an extraction fix, so past failures get another chance without re-uploading anything.
Checks every finalized invoice's supplier reference against Tally's live vouchers and fixes the app's "exported to Tally" flag where it's out of sync — e.g. after a batch push where some vouchers succeeded but the app never found out. Never posts anything to Tally.
Automation Portal Credentials
Login credentials the app uses for unattended portal automation (Petpooja, and others as they're added). Stored encrypted in this app's own database — works regardless of which machine or Windows account sets them, unlike the earlier Windows Credential Manager approach.
Portal
Username
Status
Last updated
Set credentials
Alert Configuration
Who gets emailed, and how the email is sent, when a scheduled Petpooja portal fetch fails or gets stuck — backs up the failure banner in Sales > Portal Automation with a notification that reaches someone without needing to open the app.
Alert Recipients
Loading…
SMTP Settings
Loading…
Bank Statement Passwords
Password-protected bank statement PDFs are opened with the password stored here, so uploading a monthly statement in Bank Recon doesn't ask for it every time. Stored encrypted, same as Automation Portal Credentials.
Bank Account
Status
Set statement password
Categories
Inventory categories and expense heads used across Stock Items, line-item review, and Tally postings
Inventory Categories
Name
Keywords
Tally Ledger
Add Inventory Category
Expense Heads
Name
Keywords
Tally Ledger
Add Expense Head
Stock Item Master
Code
Name
Category
Base UOM
Min Stock
Status
No stock items yet. Add your first item above.
Add Stock Item
Vendor Master
Auto-created on invoice approval — edit here to correct Tally ledger names
TRN
Canonical Name
Tally Ledger
Default Class
Default Category
No vendors yet — they are created automatically when invoices are approved.
Edit Vendor
Tax rates
Hotel partner details
Sales channels
Each active channel is its own column on the Daily Sales register.
Name
Group
Status
Add channel
Hotel sale categories
Commission rules and POS check requirement for hotel-partner settlement.
Name
Priced by
Rates
Commission
POS check
Hotel collects gross
Status
Add category
Change password
Flag for re-process
This sends the approved record back to the review queue. The original approver and your reason are recorded permanently.
Date
Invoice
Description
Category
Debit
Credit
Balance
Rows with an issue
Reject order(s)
Amend Line Categories
Change the category for any line below. If this invoice is already posted in Tally, the Purchase voucher will be altered automatically to use the corrected ledgers.
Post to Tally
Statement Password Needed
The saved password for this account didn't open this file. Enter the correct one to continue this import.
Set Ledger for Filtered Transactions
This only tags the transactions locally — nothing is posted to Tally yet. Use "Push Tagged to Tally" afterward.