Who does what
Your role is shown under your name at the top right of the console. All examples use Mama's
Kitchen, a made-up restaurant with two branches (Osu and East Legon). Addresses use
https://resto.custocareai.com; if your partner gave you your own address, use that one.
| Area (left menu) | Who can open it | Modules |
|---|---|---|
| Payments | AdminSupervisorFinance | 1–3 |
| Accounting | AdminFinance keep the books · Accountant reads everything · Analyst Overview, Taxes, Reports · Supervisor Cash-up only | 4–6 |
| Analytics, ROI report | AdminSupervisorFinanceAnalyst | 7 |
| Forecast | AdminSupervisorKitchenFinanceAnalyst (settings: Admin, Supervisor) | 8 |
| Campaigns | AdminSupervisor | 9 |
| Billing | AdminFinance | 10 |
The Payments page
Summary cards, transactions, link expiry, resend, cash and CSV.
- What the five summary cards at the top mean.
- How to find a payment and see when its link expires.
- How to resend a link or mark a payment as paid in cash.
Payments
| Reference | Customer | Amount | Method | Status | |
|---|---|---|---|---|---|
| PAY-0042 Order MK-1042 | Ama (example) | GHS 120.00 | Mobile money | Pending Expires in 24 min 3 | ⋯ 4 |
| PAY-0041 | Kofi (example) | GHS 310.00 | Card | Paid | ⋯ |
- 1 The payment summary: Collected today, Pending links (and the amount outstanding), Failed, Refunds today and Deposits held for bookings.
- 2 Status tabs with counts, then search ("Search reference, order, customer or phone") and the filters All kinds (Full payment, Deposit), All methods (Mobile money, Mobile money prompt, Card, Cash) and All providers (Paystack, Hubtel).
- 3 Link expiry: a pending link counts down ("Expires in 24 min"); it turns amber in the last 10 minutes and reads "Link expired" after.
- 4 The row's actions menu (⋯): Resend payment link, Mark as paid (cash), Refund… and Open order / Open booking.
- 5 Reconciliation for one day, with Download CSV (module 3).
- Open Payments: left menu Payments (
https://resto.custocareai.com/payments). The page follows the branch picker at the top. AdminSupervisorFinance - Find the payment: click a status tab, or type an order reference, guest name or phone in the search box.
- Resend a link the guest lost or let expire: ⋯Resend payment link. The message "Payment link resent — it now expires in 30 minutes" confirms. The same button is in the order drawer's Payment section.
- The guest paid cash instead: ⋯Mark as paid (cash) → check the amount in "Mark as paid in cash?" → Mark as paid. The link is cancelled and the order or booking is marked paid.
- See the order behind a payment: click the blue Order or Booking link under the reference.
How guests pay
Accepted methods, gateways, the mobile money prompt, the code or voucher step, and currency.
- Where to choose which payment methods each branch accepts.
- How Ruby takes mobile money during a call, including the extra code or voucher step.
- Why some currencies cannot be used with some gateways.
Pay by voice: the mobile money prompt
During a call or chat Ruby can send a mobile money prompt straight to the guest's phone instead of a link. The guest approves it on their phone with their own PIN. On the Payments page it shows as Mobile money prompt.
*110#. Ruby asks the guest to read the code or voucher out. Ruby never
takes a wallet PIN: the guest always types the PIN on their own phone. Hubtel prompts never need a code.Payments setup
| Method | Osu | East Legon |
|---|---|---|
| Cash | ||
| Mobile Money | ||
| Pay at table |
Primary gateway Switch to test 2
Backup gateway
- 1 Accepted payment methods: "What Ruby offers customers at each branch". Methods: Cash, Mobile Money, Card, Bank transfer, Pay at table.
- 2 Payment gateways: the primary and backup gateway, each in Live mode or Test mode, with Switch to live / Switch to test. If the primary is down, Ruby sends links through the backup.
- 3 Booking deposits: Require deposits, Party size threshold, Amount per person, Link expiry (minutes) ("Unpaid bookings are released after this").
- Choose methods per branch: SettingsPayments setupAccepted payment methods → switch each method on or off per branch → Save changes. The bar says "Saved as draft — publish from the top bar": publish to make Ruby use it. Admin
- Set deposits for large parties in the same page under Booking deposits; the example line shows what a party will pay and how long the link lasts.
- Write the Refund policy (up to 600 characters). Ruby reads it to guests who ask.
- Check the currency: SettingsBusiness & branchesProfileCurrency. "Every price, bill and report. It can change until the first payment or posting." Admin
Refunds and reconciliation
For Finance: money back to the guest, and each day's takings matched against the gateways.
- How to make a full or partial refund with a reason.
- How to reconcile a day by provider and method, and download it.
Refund a payment
- Find it: PaymentsTransactionsPaid, then the row's ⋯Refund…. (From an order: order drawer → Payment → Request refund.) FinanceAdminSupervisor
- Amount to refund: the full amount is filled in ("Up to … Partial refunds are allowed."). Type a smaller amount for a partial refund, or click Full.
- Reason: type it or click a common reason (Order cancelled, Item unavailable, Late delivery, Duplicate payment, Booking cancelled). It is "Recorded in the audit log and shared with finance."
- Click Refund GHS …. The money goes back through the same gateway to the original account; mobile money refunds usually land within 24 hours.
Reconcile a day
- Scroll to Reconciliation on the Payments page. Pick the day with the date box (today by default, restaurant time).
- Read the two tables: Provider and Method, each with Txns, Gross, Refunds and Net, plus a Total row.
- Match the provider totals against your Paystack and Hubtel settlements for that day.
- Download CSV to keep the day's figures with your records.
Accounting: set-up, taxes and automatic postings
Double-entry books per restaurant, with the branch on every line.
- How to set up accounting and why the country matters.
- Where to check tax rates and whether prices include tax.
- What posts to the books automatically, and how to post history.
Accounting
| Code | Name | Rate % | Sales | Bills | Recoverable |
|---|---|---|---|---|---|
| VAT | VAT | 15 | ✓ | ✓ | ✓ |
| NHIL | NHIL | 2.5 | ✓ | ✓ | ✓ |
Post history 2026-09-01 Post history 4
- 1 The Accounting tabs. Admin, Finance and Accountant see all eight; Analyst sees Overview, Taxes and Reports; Supervisor sees Cash-up.
- 2 Taxes: Menu prices include tax (keep it on), then each tax with Code, Name, Rate %, Sales, Bills, Recoverable and On top of others.
- 3 Automatic postings: which menu categories count as Drink categories, and the delivery platform commission %.
- 4 Post history: posts completed orders, payments and refunds from a date. "Safe to repeat: nothing is posted twice."
- Set up accounting (first time): left menu Accounting → Set up accounting → choose the Country (the suggestion comes from your contact country). The panel shows how many accounts and which taxes you start with. FinanceAdmin
- Post past orders (optional): tick "Also post past orders and payments from" and pick a date → Set up accounting. "Orders and payments now post to the books automatically."
- Check the taxes: AccountingSettingsTaxes → edit rates, Add tax if needed → Save taxes.
- Set drink categories and commissions: AccountingSettingsAutomatic postings → click the categories that are drinks, enter Bolt Food commission % and Glovo commission % → Save.
- Post history again later if needed: same card → pick the From date → Post history.
| When this happens | The books get (automatically) |
|---|---|
| A payment is collected (mobile money, card, cash) | Money into the clearing or cash account of that branch; held as a customer deposit until the order is completed |
| An order is completed | Food sales, drink sales, delivery fee income and discounts, all net of tax, plus each sales tax. Revenue counts when the order is completed, not when it is placed or paid |
| A refund | The refund, and the tax on it reduced; on a cancelled order it comes out of customer deposits |
| A booking marked no-show with a paid deposit | The deposit kept as other income |
| A Bolt Food or Glovo order completed (with a commission % set) | The platform commission |
Accounting: journal, ledgers, bills and cash-up
Manual entries, the general ledger, suppliers and the end-of-day count.
- How to post a manual journal entry, and how to reverse one.
- How to open an account's ledger.
- How to record a supplier bill and its payment.
- How to do the daily cash-up.
- 1 Pick the Branch and Day. One cash-up per branch per day.
- 2 Cash counted: the label shows what the books expect (cash collected, minus cash refunds and bills paid from the till).
- 3 Mobile money settled and Card settled: "Leave empty if the provider hasn't paid out yet."
- 4 Post cash-up: any difference goes to cash over / short and flags the cash-up on the Overview.
Cash-up
- Open AccountingCash-up → choose Branch and Day. FinanceSupervisor (own branches)
- Count the till and type Cash counted. Add the settled mobile money and card amounts once the provider has paid out. Add a Notes line for anything unusual.
- Post cash-up. "Cash-up posted with differences" means it is flagged (Over or Short). To count again, reverse its entry in the Journal.
Journal and manual entries
- Open AccountingJournal. Search "Entry, reference, memo". Click an entry to see its lines and source. FinanceAdmin
- Manual entry → "Manual journal entry": Date, Memo ("What this entry is for"), then two or more lines (Account, Branch or Whole restaurant, Debit or Credit). Add line as needed; Attach a file if you have one. Debits must equal credits → Post entry.
- Fix a mistake: posted entries are never edited. Open the entry → Reverse this entry (give a reason) → then post the correct one.
Accounts and ledgers
- Open AccountingAccounts: the chart with balances. Add account for a new one (Code, Type, Name, Description). FinanceAdmin
- Click an account for its general ledger: opening balance, every line with its source (order, payment, bill, cash-up) and a running balance. Use CSV to export it.
Bills and suppliers
- Add the supplier: AccountingBills & suppliersSuppliersAdd supplier → Name, Phone, Email, Tax number (TIN / VAT), Usual expense account → Save.
- Record a bill: Supplier, Bill date, Due date (optional), Supplier's invoice number, Branch, the lines (expense account, description, amount, taxed or not) and Amounts include tax. Add a Receipt photo or PDF (optional).
- Paid already? Choose how it was paid, or "No, it's payable" → Save bill.
- Pay it later: open the bill → Record payment → Method (Bank transfer, Cash (till), Mobile money wallet), Amount (part payments allowed), Paid on. A wrong unpaid bill: Void bill (reverses its entry).
Accounting: closing a month, reports and exports
Profit and loss, balance sheet, cash flow, trial balance, daily flash and the tax summary.
- Which financial reports there are and where.
- How to get the tax summary for the return.
- How to close a month, and who can reopen it.
- Overview first: AccountingOverview shows Net sales this month, Net profit this month, Tax due this month, Cash and bank, Owed to suppliers, Owed to us, Customer deposits held and Flagged cash-ups (7 days). Failed postings show here with Retry now. FinanceAccountantAnalyst
- Financial reports: AccountingReports → choose Profit & loss, Balance sheet, Cash flow (direct and indirect method), Trial balance or Daily flash → set the date range and the branch (or the whole restaurant). Each report shows its own check (for example "Debits = credits").
- Tax summary: AccountingTaxes → Tax summary per tax: Taxable sales, Output tax, Taxable purchases, Input tax, Net payable.
- Exports: every report, the tax summary, the Journal (Journal CSV) and each ledger has a CSV button. Exports are recorded in the audit log.
- Close a month: AccountingSettingsClose a month → Close next to a past month. It then shows "Closed by …". FinanceAdmin
- Reopen (rare): the same card → Reopen. Admin only.
Analytics
The period picker, handle time, insights, branches, upsell, reputation, review rescue and ROI.
- How to change the period and export the figures.
- What each card on the Analytics page tells you.
- How to set up the reputation booster and review rescue.
Analytics
7 days14 days30 days Export CSV 1- 1 The period picker: 7 days, 14 days or 30 days, compared with the period before. Export CSV downloads the daily figures. The page follows the branch picker.
- 2 The ROI cards: what Ruby did for you in the last 30 days. It links to the full ROI report.
- 3 Upsell (Ruby's one add-on per order: suggested, acceptance, revenue added, top items) and Carts recovered (abandoned, links sent, recovered, revenue).
- 4 Handle time & abandoned ("Lower is better for both"), Conversations (top intents and sentiment), plus Guest ratings.
- 5 Reputation booster (rating requests, response rate, average rating, Google review invites) and Review rescue (guests reached, rescued, won back).
- 6 Menu insights (best sellers, sold out) and Branch comparison (orders, revenue, average order, rating, kitchen load, paused).
Set up the reputation booster and review rescue
- Open the settings: AnalyticsReputation boosterSettings. AdminSupervisor
- Asking for ratings: Ask guests for a rating after completed orders, Send after (minutes), Also ask after completed table bookings, Ask the same guest at most every (days).
- Happy guests: Google review invite from (stars) and your Google review link (from Google Business Profile → Ask for reviews) or …or Google Place ID.
- Unhappy guests: Urgent ticket up to (stars), and Send a recovery voucher with low ratings (Percent off or …or amount off, Minimum spend, Valid for (days), Code prefix).
- Review rescue: switch on Review rescue: Ruby contacts very unhappy guests within minutes → Rescue ratings up to (stars), After (minutes), How (Ruby calls them, or Apology message), Offer (Recovery voucher, Free delivery next time, Manager calls back, Apology only), Quiet hours, Send the apology message if the call is not answered → Save.
- Mark outcomes: in the Review rescue card, use the thumbs up (Rescued) or thumbs down (Not rescued) on each guest. Won back counts rescued guests who ordered again.
Forecast and kitchen prep
Expected orders and covers for 7 days, with prep and staffing plans.
- What moves the forecast: holidays, paydays, events and weather.
- How to read the prep list, kitchen prep plan and staffing plan.
- How to check the forecast against what really happened, and change the settings.
Demand forecast
Forecast settings 1Jollof rice 64 · Waakye 38
Front of house · Kitchen per hour
Demand events Date · What's on · Orders × · Add 4
- 1 Forecast settings (admins and supervisors).
- 2 Next 7 days: click a day for its hourly plan; badges show holidays and weather.
- 3 Prep list ("Expected portions") and Staffing plan (front of house and kitchen per hour).
- 4 Kitchen prep: every dish expected today or tomorrow, the share expected tonight, what is on hand and what to prep. Demand events are the days you flag.
- 5 Forecast vs actual (accuracy once days have passed), Upcoming public holidays and By branch.
Prepare for tomorrow
- Open left menu Forecast and pick the branch at the top. AdminSupervisorKitchenFinanceAnalyst
- Flag a special day: Kitchen prepDemand events → Date, What's on (for example "Ghana v Nigeria"), Orders × (1.3 = 30% busier) → Add. Paydays and public holidays are included automatically.
- Kitchen prep plan: in Kitchen prep click Tomorrow; prep the To prep column, dish by dish.
- Staffing plan: click tomorrow in Next 7 days, then read the Staffing plan: front of house and kitchen people per hour.
- Check accuracy weekly in Forecast vs actual: the forecast stored before each day against the real orders.
Forecast settings
- Forecast settings → Covers per server hour, Orders per cook hour, Minimum staff while open, Covers per dine-in order. AdminSupervisor
- Public holiday multiplier ("1.2 = 20% busier on Ghana public holidays"), Recency half-life (days), History to use (days).
- Weather: Off, Sandbox (simulated) or Open-Meteo (live forecast), with the branch's Latitude and Longitude → Save.
Campaigns and loyalty
Win-back offers, results, slow-day ideas, birthdays, referrals and points.
- How to build an audience and send a win-back campaign.
- How to read the results, and use a slow-day suggestion.
- How loyalty points, birthday bonuses and referral codes work, and how to adjust points.
Campaigns
| Campaign | Offer | Status | Sent | Redeemed | Revenue |
|---|---|---|---|---|---|
| We miss you | 10% off | Sent | 240 6 skipped | 31 12.9% | GHS 3,720 |
- 1 The slow-day suggestion: when orders this week or bookings for the next two days are well below normal, the page suggests a 10%-off win-back to guests who have not ordered for 30 days or more.
- 2 New campaign: audience, offer, message, then send now or schedule.
- 3 Results: sent (and skipped), redeemed with the conversion rate, and the revenue from orders that used the code.
Send a win-back campaign
- Open CampaignsWin-backNew campaign. AdminSupervisor
- Audience (the live count updates as you go): Last order (for example 60 days ago or more), Visited branch, VIP guests only, Opted in to offers only.
- Offer: Discount (Percent or GHS off), Minimum spend, Valid for (days), Promo code ("Leave blank to generate one (single use per guest)").
- Message: Campaign name, Channel (SMS, WhatsApp if opted in, else SMS, or WhatsApp only), and the text using {name}, {offer}, {code}, {expiry} and {business}. "Reply STOP to opt out" is added.
- When: Send now, or Schedule with Send at.
Loyalty
- Switch it on: SettingsFeaturesLoyalty. Admin
- Programme rules: CampaignsLoyalty → Points per GHS 1 (earned on completed orders), GHS per point (value when redeemed), Minimum to redeem, Birthday bonus ("Points and a message on their birthday") and Referral bonus → Save rules. The card also shows Members, Points outstanding and Points redeemed.
- Birthday bonus: open the guest in Customers → Rewards → set the Birthday. They get the bonus and a message once a year, if they agreed to offers.
- Referral codes: every member has one, shown as "Referral code …" in Rewards. A new guest who gives it on their first order earns both guests the referral bonus when that order completes.
- Adjust points: Rewards → Points to add or remove (for example +50 or -20) → Reason (for example "Goodwill after a late delivery") → Adjust. It appears in the points history.
Billing in the console
What pauses when an invoice is late or the account is locked, and marketplace packs.
- What staff see at each billing status.
- What still works when Ruby and calls are paused, and when the account is locked.
- What "Taken back" and "Kept" mean on a cancelled pack.
| Status | What staff see | What stops | What keeps working |
|---|---|---|---|
| Active | Nothing (admin and finance may see low-credit or allowance banners) | Nothing | Everything |
| Past due | Admin and finance: "An invoice is overdue…" with Pay now | Nothing yet | Everything |
| Suspended (AI and calls paused) | Everyone: a red banner "Ruby and calls are paused because…"; admin and finance get Pay now or Top up | Ruby answering, Connect me and Ruby calls, call automations (booking reminders go by SMS instead), live call controls, the console softphone | Signing in, orders, bookings, payments, human chat replies |
| Locked / Closed | A full screen: "This account is suspended" with Pay now, I have paid, try again and Sign out | The whole console for every user, Ruby's tools, guest pages (they show "Temporarily unavailable"), campaigns and other marketing | The pay link (needs no sign-in) and the rider delivery link |
Billing
Refresh Open billing portal 1Taken back: 2 promo codes switched off · Kept: menu item Jollof (you switched it on) 3
- 1 Refresh fetches the latest from billing; Open billing portal signs you in to the portal automatically.
- 2 Account: whether Ruby (AI), Calls and Staff sign-in are on, your plan and billing type. Prepaid accounts also see Prepaid credit and Credit packages (Buy).
- 3 Marketplace packs: each pack shows Set up for you and Not used. When a pack is cancelled, Taken back lists what was undone and Kept lists what stayed because your team had changed it.
- Open left menu Billing (
https://resto.custocareai.com/billing). AdminFinance - Pay an invoice: Invoices → Pay opens its payment page in a new tab; View opens it in the billing portal.
- Prepaid: Top up, or Buy a credit package (opens the portal's top-up page, signed in).
- After a pack is cancelled: read Taken back and Kept. New menu items a pack added stay off until you switch them on in Menu.
Full detail of invoices, payments and the portal is in the CustoCare Billing course.
