How to run every part of Otodesq — from your first sale to daily bookkeeping and store management. 68 guides across 14 sections.
The complete manual
68 articles
Getting started
From download to your first sale.
Installing the desktop app
Otodesq is a native application for Windows, macOS and Linux. It is the POS terminal itself, so it is installed on each machine that will take money.
Where: otodesq.com/download
1Download the installer for your operating system from the Download page.
2On Windows, run the .exe and follow the installer. On macOS, open the .dmg and drag Otodesq into Applications. On Linux, run the .AppImage (make executable) or install the .deb package.
3Launch the app. The first screen is the setup wizard.
4Install the app on every terminal you intend to sell from — each one registers itself separately.
Good to know
The app needs an internet connection for the initial setup only. After that it runs offline and syncs when a connection is available.
Creating your account
The first terminal you set up creates the business account. Every other terminal signs in to it.
Where: Setup wizard, first launch
1Choose Sign up and enter your company name, admin email and a password of at least 8 characters.
2Check your email for a 6-digit verification code and enter it.
3Pick the plan you want to run during your trial. The tier decides which modules are unlocked while the trial is on.
4Choose a branch — create your first one by name, or select an existing branch if the account already has some.
5Set a 4-digit admin PIN. This is what you will use to sign in at the terminal from now on.
Good to know
The trial runs for 14 days with no card required. You can pay at any point from inside the app.
The admin PIN is a terminal credential, not the account password. Keep the password for signing in on new machines.
Setting up a second or third terminal
Additional terminals sign in to the same account and are bound to a branch. From then on they share sales, customers and stock with the others.
Where: Setup wizard, first launch on the new machine
1Install the app on the new machine and launch it.
2Choose Sign in and enter the same admin email and password you used to create the account.
3Select the branch this machine stands in.
4Set the admin PIN when prompted; staff accounts sync down automatically afterwards.
5Open Teams → Terminals on any terminal to confirm the new machine has registered.
Good to know
Each terminal mints a permanent ID on first launch. Renaming it later does not change that ID, so its sales history stays attached to it.
If a machine was set up against the wrong branch, use Teams → Terminals → Terminal Branch Binding to rebind it.
Loading your first products
Nothing can be sold until the catalogue has something in it. There are two ways in.
Where: Inventory Audit → Product Catalog
1For a handful of products, click New Product and fill in the name, category and base price.
2For an existing catalogue, use Import CSV and follow the sample file — download it first if you are unsure of the columns.
3Add variants to anything sold in more than one size, colour or pack. Each variant carries its own SKU, price and stock count.
4Set the opening stock quantity for each variant.
Good to know
Products sync to the cloud and down to your other terminals automatically, so you only enter them once.
A product with no variants is sold at its base price; a product with variants is always sold as a specific variant.
Your first sale
The shortest possible path from a fresh install to money in the drawer.
Where: POS Dashboard
1Sign in with your PIN and open a shift, declaring the cash float you are starting with.
2Add items by clicking them in the grid or scanning a barcode.
3Click Pay, choose cash, card or transfer, and confirm.
4Print the receipt, or save it as an image if you have no printer connected yet.
Good to know
If you have not opened a shift, the app asks you to before taking money — that is what makes end-of-day cash reconciliation possible.
Selling
The POS terminal: scanning, payments, discounts, receipts.
Ringing up a sale
The main register screen, built to be driven quickly with a scanner or by touch.
Where: POS Dashboard
1Find items by clicking a category, typing in the search box, or scanning a barcode.
2Adjust a line's quantity with the plus and minus controls, or remove it entirely.
3Attach a customer to the sale if you want it on their purchase history.
4Click Pay to move to payment.
Good to know
Barcode scanners are read directly — you do not need to click into a field first. Any scanner that behaves like a keyboard works.
No scanner to hand? Use the camera scanner button to scan with the machine's webcam.
Items running low are flagged on the grid as you sell.
Taking payment, including split payments
Cash, card and bank transfer, individually or in combination on one sale.
Where: POS Dashboard → Pay
1Choose the payment method: cash, card or transfer.
2For cash, enter the amount tendered and the change due is calculated for you.
3To split a payment, switch to split mode and enter the amount taken by each method until the sale is covered.
4Confirm to complete the sale. The receipt shows the breakdown.
Good to know
Split payments are stored on the sale, so the day's takings separate correctly into cash, card and transfer.
With accounting enabled, cash sales debit the cash account and card or transfer sales debit the bank account automatically.
Applying a discount
Discounts are applied to the sale before VAT, and larger ones need a manager to authorise them at the terminal.
Where: POS Dashboard → Discount
1Open the discount control on the cart.
2Enter the discount as an amount or a percentage.
3If the discount is beyond a cashier's authority, a manager enters their PIN to authorise it.
4Complete the sale as usual — the discount appears on the receipt and in reporting.
Good to know
Discount authorisations are recorded, so you can see later who approved what in Reports → System Logs.
Holding and recalling a cart
Park a cart to serve someone else, then bring it back exactly as it was — useful when a customer goes back for another item.
Where: POS Dashboard → Hold / Recall
1With items in the cart, click Hold and give it a label you will recognise.
2Serve the next customer as normal.
3Click Recall, find the labelled cart and restore it.
4Complete the sale, or delete the held cart if it is no longer wanted.
Good to know
Held carts live on the terminal that took them, so they do not appear on other terminals.
Self-checkout orders arrive as held carts on the terminal whose QR code the customer scanned.
Held carts are held in memory: closing the app clears them.
Printing and reprinting receipts
Receipts are laid out for 80mm thermal paper and printed through the printer your computer already has.
Where: POS Dashboard, and Sales History for past sales
1After completing a sale, choose Print. Your system print dialog opens with the receipt already formatted.
2Select your thermal printer and print. Set the paper size to 80mm in your printer settings for the tidiest result.
3To reprint an older receipt, open Sales History, find the sale and use the print action on it.
Good to know
If printing fails or no printer is connected, the receipt is saved as an image so you can send or print it later.
Every receipt carries a barcode of its order number. Scanning it on the Sales History screen jumps straight to that sale.
Cash drawers that open from a printer's kick port are not triggered by the app.
Sales history & returns
Finding a sale, refunding it, exchanging items, reprinting.
Finding a past sale
Sales history is shared. Any signed-in user can find any sale, whichever colleague or terminal rang it up.
Where: Sales History
1Open Sales History.
2Search by order ID, or scan the barcode on the customer's receipt to jump straight to it.
3Narrow the list by customer, sales rep or date range.
4Admins and managers can also filter by branch and by terminal.
5Click a sale to expand its lines, returns and payment breakdown.
Good to know
Deleting a sale, or clearing history, remains restricted to admins and managers.
Sales made on other terminals appear here once they have synced, usually within seconds of being rung up.
Refunding a whole sale
Reverses the sale, returns the stock to the shelf and posts the accounting entry.
Where: Sales History → sale → Refund
1Find the sale and open it.
2Choose Refund and enter the reason for the return.
3Confirm. The sale is marked Refunded and the items go back into stock.
Good to know
With accounting enabled, a reversing journal entry is posted automatically against revenue and the cash or bank account.
The refund reaches your other terminals on the next sync, so the sale shows as refunded everywhere.
Returning some of the items
When a customer keeps part of the order, return only the lines coming back.
Where: Sales History → sale → Partial refund
1Open the sale and choose the partial refund action.
2Set the quantity being returned for each line.
3Enter a reason and confirm.
4The sale becomes Partially Refunded and shows both kept and returned quantities.
Good to know
Only the returned quantity is restocked and only that value is reversed in the ledger.
A reprint of the receipt afterwards shows the revised totals.
Exchanging an item for another variant
Swap a size or colour and settle the difference in either direction, in one operation.
Where: Sales History → sale → Exchange
1Open the sale and choose the exchange action.
2Select the item being returned and the replacement variant being issued.
3If the replacement costs more, take the balance as a payment. If it costs less, refund the difference.
4Confirm. Stock moves both ways and the sale is marked Exchanged.
Good to know
When the customer pays a balance, a separate exchange sale is recorded for that amount so the day's takings stay correct.
Deleting a sale, or clearing history
For correcting records rather than reversing trade. Both are restricted and both propagate to your other terminals.
Where: Sales History (admin or manager only)
1To remove one sale, open it and choose Delete.
2To clear the branch's history, use Clear All History in the header and confirm the warning.
Good to know
Clearing history removes every sale for this branch — on this terminal, in the cloud, and on the branch's other terminals as they sync. Other branches are untouched.
Deleting is a records correction and does not restock the items. Use a refund if goods are physically coming back.
Inventory & Service Catalog
Products, services, duration options, categories, audits and write-offs.
Adding products and variants
Products carry the name, category and base price; variants carry SKU, price and stock.
Where: Inventory Audit → Product Catalog
1Click New Product and enter the name, category and base price.
2Add an image if you plan to sell the item on your storefront.
3Add a variant for each version you sell — for example Small, Medium, Large.
4Give each variant its own SKU, selling price and opening quantity.
5Save. The product syncs to the cloud and to your other terminals.
Good to know
SKUs must be unique across the catalogue; they are what a scanner matches on.
Products stay in-store only until you publish them to your storefront.
Categories and default variations
Categories group the product grid and can carry a default set of variations, so similar products are quicker to add.
Where: Inventory Audit → Categories
1Open the Categories tab and create a category.
2Optionally list default variations for it, such as sizes for clothing.
3New products in that category start with those variations ready to fill in.
Importing a catalogue from CSV
Bring an existing product list in from a spreadsheet instead of typing it again.
1Download the sample CSV so you can copy the exact column names.
2Fill it in with your products, one row per variant.
3Choose Import CSV and select your file.
4Review the import summary, then check a few products in the catalogue.
Good to know
Rows that fail validation are reported rather than silently skipped.
Running a stock audit
Count the shelf and record what is actually there, leaving an auditable record of the correction.
Where: Inventory Audit → Stock Audit
1Open the Stock Audit tab and start a count.
2Enter the counted quantity for each variant you are checking.
3Review the differences the app shows between counted and expected.
4Commit the audit to apply the corrections.
Good to know
Committed audits are logged against the user who made them and appear in Reports → Inventory & Audit.
Use an audit rather than editing stock quantities directly when you want the reason recorded.
Adding services, treatments & duration tiers
Create untracked catalog items for salons, spas, car washes and consultancies, without physical stock limits.
Where: Service Catalog / Inventory → New Service
1Click + Add Service (or New Product) and enter the service name, category and fee.
2Disable 'Track Inventory Quantity' to mark the item as an untracked service or hospitality dish.
3Add service duration options or tiers if applicable (e.g. 30 Mins, 60 Mins, Deluxe Package).
4Save. The service is immediately available for checkout on your POS registers.
Good to know
Services never run 'Out of Stock'. You can temporarily mark any service as unavailable (86'd / sold out today) with a single click if staff are fully booked.
Service refunds and tier swaps adjust financials cleanly without creating phantom inventory counts.
Recording damaged or written-off stock
Breakages recorded separately from sales, so shrinkage is visible instead of vanishing from the count.
Where: Inventory Audit
1Open the damaged stock record.
2Select the variant, the quantity and the reason.
3Save. The stock leaves the count and the write-off is recorded.
Customers
Building a customer list and using its history.
Adding a customer & recording client notes
A shared list across your terminals with contact details and multiline client preferences.
Where: Customers → Add Customer
1Open Customers and click Add Customer.
2Enter the customer's name, phone number, and optional email.
4Save. The customer and their notes sync across all terminals.
Good to know
Phone number is the matching key. A customer added on two terminals with the same number is merged rather than duplicated.
Customer notes appear automatically as an alert chip on the checkout screen when selected by a cashier.
Looking up a customer's purchases
Everything they have bought, including anything returned.
Where: Customers → customer
1Open Customers and select the person.
2Review their purchase history, with totals and dates.
3Use the link into Sales History to open any specific sale for a refund or a reprint.
Customer analytics
Who your best customers are, and who has stopped coming in.
Where: Reports → Customer Reports
1Open Reports and switch to Customer Reports.
2Choose a date range, and a branch if you run more than one.
3Review top customers by spend, order counts and days since last purchase.
4Export the list if you want to contact lapsed customers.
Staff, roles & shifts
Accounts, permissions, cash reconciliation and attendance.
Adding a member of staff
Each person gets their own account and PIN, so sales and actions are attributable.
Where: Teams → Team Members
1Open Teams → Team Members and click to add a user.
2Enter their username, assign a role, and set the branch they work at.
3Give them a 4-digit PIN, which is what they will use to sign in at the terminal.
4Save. The account syncs to your other terminals so they can sign in anywhere.
Building roles and permissions
Roles are yours to define. Each is a named set of permissions you assign to staff.
Where: Teams → Roles
1Open Teams → Roles and create a role — for example Cashier, Supervisor or Stock Controller.
2Tick the permissions it should carry: POS read and write, inventory, transfers, reports, customers, teams, accounting, web portal, and attendance across branches.
3Save, then assign the role to staff in Team Members.
Good to know
Sales history is readable by everyone signed in regardless of role, because returns are handled by whoever is on the counter. Deleting sales stays with admins and managers.
Admin and Super Admin roles carry every permission by design.
Opening and closing a shift
A shift is one cashier's session at one terminal. Closing it is where cash is counted and differences surface.
Where: POS Dashboard
1At the start of a session, open a shift and declare the cash float in the drawer.
2Sell as normal — the shift accumulates cash, card and transfer totals.
3At the end, choose to close the shift and physically count the drawer.
4Enter the counted cash. The app compares it to what it expected and records any shortage or overage.
5Add a note explaining a difference if there is one, and confirm.
Good to know
Expected cash is the float plus cash sales minus cash refunds. Card and transfer takings are reported separately and are not part of the drawer count.
Closed shifts sync to the cloud, tagged with the terminal that ran them.
Shifts left open overnight
A terminal shift abandoned at closing time is closed automatically and flagged, rather than left open until morning.
Where: Teams → Branch Binding & Setup for the hours; POS Dashboard to reconcile
1Set the branch's opening and closing times, and the grace period after closing.
2A shift still open past closing plus the grace period is closed automatically and marked as auto-closed.
3The next morning a manager opens the flagged shift and reconciles it by entering the cash that was actually counted.
Good to know
Auto-closed shifts are marked as needing reconciliation so they cannot be quietly ignored.
Clocking in and attendance
Timecards separate from shifts, for hours worked rather than cash held.
Where: Teams → Staff Attendance & Timecards
1Staff clock in by PIN at the start of the day and clock out at the end.
2Managers review timecards and hours in the Attendance tab.
3Filter by date range, and by branch where the role allows it.
Good to know
Seeing attendance for branches other than your own requires the attendance across branches permission.
Terminals & sync
Running several terminals, keeping them in step, suspending one.
What a terminal is
One installation of the app on one machine. Terminals are how the system tells multiple checkout points in the same branch apart.
Where: Teams → Terminals
1Open Teams → Terminals to see every terminal registered to your business.
2Each row shows the terminal's name, branch, device, app version, last-seen time and IP address.
3The terminal you are currently using is marked This terminal.
Good to know
A terminal keeps its identity across restarts and reinstalls of the same database, so its sales stay attributable to it.
How terminals stay in step
Sales, customers and accounting entries sync through the cloud, so every terminal sees the whole branch.
1A completed sale is pushed to the cloud immediately and the other terminals are notified to pull it.
2Terminals also run a full sync cycle on a short timer, which catches anything missed while offline.
3Stock is adjusted on the other terminals in the same branch when they pull a sale, so shelf counts agree.
4To force a cycle, click the connectivity badge in the sidebar.
Good to know
Sales rung up in another branch appear in history and reporting but do not change this branch's stock.
Sync needs a connection. Offline, each terminal keeps trading on its own data and catches up afterwards.
Naming your terminals
Give terminals names your staff use, so filters and reports read like the shop floor.
Where: Teams → Terminals
1Open Teams → Terminals and use the rename action on a terminal.
2Enter a name such as Front Counter or Terminal 2 and save.
Good to know
The name is set centrally and appears on every terminal, including the one being renamed.
Suspending a stolen or compromised terminal
Cuts a machine off from your business at the server. Do this the moment a terminal goes missing.
Where: Teams → Terminals (admin or manager only)
1Open Teams → Terminals and find the machine.
2Click Suspend and enter a reason, such as where and when it went missing.
3Confirm. The terminal is refused by the server immediately and locks itself the moment it next reaches the network.
4When the machine is recovered, use Reactivate to bring it back into service.
Good to know
A suspended terminal cannot sync, sell or read your data, and cannot unlock itself by being taken offline.
Its recorded sales are kept — suspension protects the business without destroying the record.
Suspension is enforced by the cloud, so it needs a connection to apply. It cannot be done from an offline terminal.
Working offline
What changes when the connection drops, and what does not.
1Keep selling. Sales, refunds, receipts, stock changes and shifts all complete locally.
2Watch the badge in the sidebar: it reads Offline while the cloud is unreachable.
3When the connection returns, the queue uploads automatically and the badge returns to Online.
Good to know
What you cannot do offline: see other terminals' new sales, change a terminal's suspension, or run anything that reads live cloud data such as the terminal list.
Connection failures are not shown as errors on every screen — the badge is the single indicator.
Self-checkout
Letting customers order from their own phones.
QR self-checkout over the internet
Pro
Show a QR code at the counter. Customers browse on their phones and send an order to that terminal.
Where: Self-Checkout
1Open the Self-Checkout screen on the terminal that will serve the orders.
2Display or print the cloud QR code shown there.
3A customer scans it, browses your catalogue and submits an order with their name and phone.
4The order arrives on this terminal as a held cart with a pickup code.
5Recall the held cart, take payment and complete the sale as normal.
Good to know
The order goes only to the terminal whose code was scanned, so different terminals never end up holding the same order.
The QR code expires after 30 minutes and refreshes itself while the screen is open. Print a fresh one if you display it on paper.
If the scanned terminal is offline when the order is submitted, it is delivered to the branch so a colleague can still serve the customer.
Kiosk mode on your own Wi-Fi
Pro
The terminal serves a self-checkout page directly on the shop network, so it works with no internet at all.
Where: Self-Checkout
1Open the Self-Checkout screen and use the local kiosk QR code and address.
2Customers or staff on the same Wi-Fi open that address on a phone or tablet.
3Orders come straight to this terminal's held carts.
Good to know
This path never leaves your premises, so it keeps working during an internet outage.
Both devices must be on the same network for it to resolve.
Accounting
Ledger, AR, AP, bank reconciliation, assets and statements.
The chart of accounts
Pro
A standard chart is seeded on first launch, so postings work before you configure anything.
Where: Accounting → Chart of Accounts
1Open Accounting → Chart of Accounts to see the seeded accounts and their balances.
2Add your own accounts where you need them.
3If you are migrating from another system, post your opening balances so the ledger starts from the right place.
Good to know
Structural account types cannot be posted to directly — postings go to the accounts beneath them.
How sales reach the ledger
Pro
You do not post day-to-day trade by hand; the POS terminal does it as it goes.
1Each completed sale posts a balanced entry: cash or bank debited for the total, revenue credited net, VAT credited separately where a VAT rate is set.
2Card and transfer sales debit the bank account; cash sales debit the cash account.
3Refunds and exchanges post their own reversing entries automatically.
4Review anything posted in Accounting → General Ledger.
Good to know
Set your VAT rate once in the tenant settings and it applies to sales from then on.
Entries carry the terminal that posted them, and sync to your other terminals so the ledger is complete everywhere.
Posting, reversing and voiding journal entries
Pro
For everything the POS terminal does not generate: rent, wages, corrections.
Where: Accounting → General Ledger
1Choose to post a new journal entry and give it a reference and description.
2Add lines until debits equal credits — the entry will not post otherwise.
3Post it. To correct a mistake, reverse the entry rather than editing it, which leaves both sides of the trail.
4Void is available for entries that should never have existed at all.
Good to know
Entries cannot be posted into a locked fiscal period. Reopen the period first if the correction genuinely belongs there.
Accounts receivable
Pro
For customers who buy now and pay later.
Where: Accounting → Accounts Receivable
1Create an invoice against a customer with its lines and due date.
2Post it. The amount now sits in receivables.
3When the customer pays, receive a payment against the invoice.
4Track what is outstanding, and for how long, in the AR ageing report.
Good to know
Void an invoice that was raised in error rather than deleting the record.
Accounts payable
Pro
What you owe suppliers, and paying it down.
Where: Accounting → Accounts Payable
1Create a vendor if the supplier is new.
2Enter a bill with its lines and due date, or import the lines from a CSV the supplier sent.
3Post the bill so it registers as a liability.
4Record payments against it as you pay, in full or in part.
5Watch the AP ageing report for what is falling due.
Reconciling the bank
Pro
Match the ledger against what the bank actually shows.
Where: Accounting → Bank Reconciliation
1Create the bank account if you have not already.
2Import a statement as CSV, or enter transactions by hand.
3Match each statement line to its ledger entry; unmatch anything you matched wrongly.
4Review the summary of matched and unmatched items, then save the reconciliation.
Good to know
Unmatched items stay visible rather than being written off, which is the point of the exercise.
Budgets
Pro
Set a target per account and watch actuals against it.
Where: Accounting → Budget vs Actual
1Choose the account and period, and set the budgeted figure.
2Review the budget against actual report as the period progresses.
3Remove a budget line if it no longer applies.
Fixed assets and depreciation
Pro
Register the equipment you own and let it depreciate on schedule.
Where: Accounting → Fixed Assets
1Create the asset with its cost, purchase date, useful life and salvage value.
2Run monthly depreciation to post the period's charge.
3Review the depreciation schedule for the asset's remaining value.
4Dispose of the asset when it is sold or scrapped, and the disposal is posted.
Fiscal years, periods and locking
Pro
Close the door on a month you have already reported, so nobody can post into it by accident.
Where: Accounting
1Create a fiscal year; monthly periods are generated with it.
2Close a period once its month is finished.
3Lock the period to prevent any further posting into it.
4If a genuine correction belongs in a locked period, reopen it deliberately, post, then lock it again.
Financial statements and VAT
Pro
The reports your accountant will ask for, generated from the same ledger.
Where: Accounting → Financial Statements
1Trial balance for a working view of every account.
2Profit and loss for a period's trading result.
3Balance sheet as at a date.
4Cash flow for movement over a period.
5VAT report for the tax you have collected.
6Export any of them to PDF or CSV.
Posting the daily sales summary
Pro
A consolidated Z-report entry for the day's takings on this terminal.
Where: Accounting
1Choose the date, or leave it as today.
2Post the daily sales summary. A single balanced entry is created splitting cash, card and transfer against revenue.
Good to know
The summary covers the sales rung up on this terminal. Each terminal posts its own, so a branch total is the sum of them and nothing is counted twice.
Multi-branch
More than one shop, and moving stock between them.
Creating a branch
Enterprise
Each shop is a branch, with its own stock, staff, terminals and reporting.
Where: Teams → Branch Binding & Setup
1Open Teams → Branch Binding & Setup.
2Create the branch by name.
3Set its opening and closing times, and the grace period for automatic shift closing.
4Install the app on that shop's machines and bind them to the new branch during setup.
Transferring stock between branches
Enterprise
Stock is not simply moved: it leaves as a transfer, and only lands when someone at the other end receives it.
Where: Inventory Audit → Stock Transfers
1At the sending branch, open Stock Transfers and start a transfer.
2Choose the destination branch and add the variants and quantities.
3Send it. The stock is now in transit and no longer counted at the origin.
4At the destination, open Stock Transfers, find the pending transfer and receive it.
5Enter what actually arrived. Differences between sent and received are recorded.
Good to know
The full transfer history for the business is available from any terminal, so discrepancies can be traced later.
Comparing branches
Enterprise
The same reports, narrowed to one location or across all of them.
Where: Reports
1Open Reports and choose a branch in the branch filter, or leave it on All Branches.
2Combine with the terminal filter to isolate a single terminal within a branch.
3Export the result for a side-by-side comparison.
Online storefront
Selling online under your own domain.
Turning on your storefront
Enterprise
Your catalogue as a public shop, with you deciding exactly what appears.
Where: Web Portal → Storefront & Domain Settings
1Open Web Portal → Storefront & Domain Settings.
2Set your store name, logo and theme.
3Save. The storefront is live on your Otodesq address straight away.
4Publish the products you want to sell online — nothing appears until you do.
Using your own domain
Enterprise
Run the shop on your own web address rather than an Otodesq subdomain.
Where: Web Portal → Storefront & Domain Settings
1Enter the domain you want to use, for example shop.yourbrand.com.
2Add the DNS record shown to you at your domain registrar.
3Come back and run Verify DNS. Propagation can take a little while.
4Once verified, the storefront answers on your domain.
Taking online payments
Enterprise
Connect your own payment account. The money settles to your bank, not through us.
Where: Web Portal → Storefront & Domain Settings
1Choose your provider: Paystack, Flutterwave or OPay.
2Paste your own public and secret keys from that provider's dashboard.
3Enable the provider and save.
4Place a small test order to confirm the flow end to end before you advertise the shop.
Good to know
Otodesq takes no percentage of your sales. Your provider's own fees apply as normal.
Secret keys are stored encrypted and are never returned to the browser once saved.
Delivery zones and pickup
Enterprise
Where you deliver, what it costs, and whether customers may collect instead.
Where: Web Portal → Storefront & Domain Settings
1Add a delivery zone with its name and fee.
2Repeat for each area you serve.
3Customers choose their zone at checkout and the fee is added to the order.
4Remove a zone when you stop serving it.
Fulfilling online orders
Enterprise
Orders land in the POS and move through states the customer can follow.
Where: Web Portal → Online Orders
1Open Web Portal → Online Orders to see what has come in.
2Open an order to see the items, the customer, the delivery address and the payment status.
3Move it through Packing, then Out for Delivery, then Delivered as you work.
4Cancel an order that cannot be fulfilled.
Good to know
Each order has a tracking code the customer can use to follow progress without an account.
Paid orders are verified with your payment provider server-side before they show as paid.
Answering storefront customers
Enterprise
Questions from online shoppers, answered from inside the POS.
Where: Web Portal → Customer Support
1Open Web Portal → Customer Support to see incoming conversations.
2Open a ticket, read the history and reply.
3Take over a ticket a colleague started so two people are not answering at once.
4Close the ticket when it is resolved.
Reports
What sold, who sold it, and what changed.
Sales reports
Revenue, trends, payment mix, peak hours and what is selling.
Where: Reports → Reports & Analytics
1Choose a date range.
2Narrow by branch, terminal or category as needed.
3Review revenue and transaction trends, the split by payment method and the busiest hours.
4Check the best sellers, and the products with no sales at all.
5Export to PDF or CSV.
Inventory and audit reports
Stock movement and the record of who changed what.
Where: Reports → Inventory & Audit
1Open Reports → Inventory & Audit.
2Review stock adjustments, audits and write-offs over a date range.
3Use it alongside System Logs when a count does not look right.
System logs
The application's own record of what happened, useful when reporting a problem.
Where: Reports → System Logs
1Open Reports → System Logs.
2Read recent activity and errors from this terminal.
3Attach the log file to a support ticket if we ask for it.
Billing & account
Plans, upgrades, storage and archiving.
Plans and what they unlock
Basic runs the shop floor; Pro adds the back office and self-checkout; Enterprise adds branches and the storefront.
1See your current tier and renewal date in the app's profile screen.
2A locked module explains which tier it needs rather than simply refusing.
3Compare tiers on the pricing page before upgrading.
Good to know
Tier restrictions are enforced by the server, not just hidden in the app, so the plan you are on is the plan you get.
Upgrading or renewing
Pay from inside the app; the new tier applies as soon as payment is verified.
Where: Profile → Subscription
1Open your profile and choose the tier and billing cycle you want.
2Authorise the change with an admin PIN.
3Complete payment with the provider shown.
4The app checks the payment and unlocks the new tier without a restart.
Good to know
Quarterly and annual billing are cheaper per month than monthly. The current discounts are shown on the pricing page.
Cloud storage and archiving old years
Each plan has a storage ceiling. Archiving frees space without upgrading and without losing your records.
Where: Web dashboard → Archive
1Sign in to the web dashboard with your account email and password.
2Open Archive and choose the year to archive.
3Confirm. The year downloads to your computer as a CSV and is removed from the cloud.
4Keep the CSV somewhere safe — it is your copy of those records.
Good to know
Reaching the ceiling pauses cloud sync; the terminal keeps selling offline in the meantime.
Archiving is irreversible in the cloud, which is exactly why it hands you the file first.
Troubleshooting
When something looks wrong, start here.
The badge says Offline
Usually nothing to fix — but here is how to confirm.
1Keep selling. Nothing at the terminal depends on the connection.
2Check the machine's own internet connection in the usual way.
3Click the badge to force a sync attempt once you believe the connection is back.
4If the machine is online but the badge is not, check that the cloud server address is reachable from this network.
A sale from another terminal has not appeared
Nearly always one of three things.
1Check both terminals show Online. A sale cannot travel while either end is offline.
2Click the connectivity badge on the receiving terminal to force a sync cycle.
3Check in Teams → Terminals that the other machine is not suspended — a suspended terminal cannot upload.
4Confirm both terminals are bound to the same branch if you expected stock to move as well.
A terminal says it has been suspended
That is deliberate: an administrator has cut this machine off.
1Read the reason shown on the lock screen.
2From another terminal, open Teams → Terminals and confirm the status.
3If it was suspended in error, choose Reactivate. The machine unlocks the next time it reaches the network.
Good to know
Suspension cannot be lifted from the suspended machine, and taking it offline does not clear the lock.
Receipts are not printing correctly
Almost always a printer setting rather than the app.
1Check the printer is installed and works from another application.
2In the print dialog, set the paper size to 80mm and margins to none.
3Print a test receipt from a completed sale.
4If printing still fails, use the saved receipt image as a fallback and send it to the customer.
A customer says the QR code has expired
Self-checkout links are deliberately short-lived.
1Open the Self-Checkout screen so a fresh code is generated.
2Ask the customer to scan the new code.
3If you print the code, reprint it regularly rather than leaving an old one on the table.
Good to know
Codes expire after 30 minutes so an old photograph of one cannot be used later.
Getting help from us
Raise a ticket from inside the app so we get the context with it.
Where: Support
1Open Support and create a ticket describing what happened and what you expected.
2Attach a screenshot, and the log file from Reports → System Logs if the problem is technical.
3Replies arrive in the same screen; you will see an unread marker when we respond.
Still stuck?
Raise a ticket from the Support screen inside the app and the logs come with it, so we can diagnose from evidence rather than description.