Book and serve a table

Follow one guest from the phone call that books a table to the moment the bill is settled and the table is free again.

By Mai Hoàng 17 min read Updated 2026-08-11
On this page

Cà Phê Sài Gòn sells across a counter, so to show table service we’re stepping next door to Quán Nướng Sài Gòn, a grill house where Tuấn Đỗ works his own floor. This is one guest’s whole visit: the phone call that books a table, the meal, the bill, and the table going free again.

Two apps share the job. The dashboard builds the room; BANA Sale — the POS your staff stand at — runs the evening.

Before you start

  • Tuấn is signed in to the dashboard at client.bana.com.vn and to BANA Sale at sale.bana.com.vn.
  • The menu is already in the catalog — see Add your first product.
  • The money has somewhere to land. Tuấn keeps a cash drawer, two bank accounts and a VNPAY QR account under Finance → Accounts, which is what gives the till the three ways to be paid you’ll see at checkout — see Create a finance account.
  • A floor plan exists. Bookings and orders both hang off a real table, so if you’re starting from nothing the next two sections build one; if your room is already in BANA, skip to Take the booking.

Before the guest arrives

Build the floor plan

In the dashboard, open Sale → Space & Tables. The wizard asks three things in turn: how many floors, how many rooms each floor is divided into, and then the tables.

Quán Nướng Sài Gòn has one floor and two rooms — Khu trong nhà and Khu sân vườn. In Create Tables, pick a room and select Add Table. You don’t name tables one at a time: Table Name is a prefix and BANA numbers up from it, so a prefix of B0 and a Number of Tables of 6 gives you B01B06.

For the indoor room Tuấn enters prefix B0, Number of Tables 6, Number of Seats 4, square — B01 to B06. For the garden he does it again with V0, 4 tables of 6 seats, round. Then Finish Setup.

One open room, no separate areas? Every floor carries at least one room — the room count can’t go below 1 — so leave it at 1 and give that room the name you’d use for the whole floor. It costs you nothing: the POS shows one room picker with one entry in it. Quán Nướng Sài Gòn goes to two only because the garden really is a separate area.

The prefix is a starting point, not a life sentence. Create Tables lists every table it made on one row each, and each row’s name, seat count and shape stay editable — so rename B04 to Cửa sổ, drop a two-seater to 2 seats, or press Add Table again in the same room for a batch with different seating. You can come back to Space & Tables later and do the same.

Name tables and rooms the way your staff already call them out loud: these names show on the POS map, on the booking, and on the order. Name both language tabs. Each name field has a VI and an EN tab, and they are stored separately: fill in only one and a till running in the other language falls back to the name BANA generated for you, so your “Khu sân vườn” shows up on the floor as “Default”.

Seat counts are not decoration. A booking takes its party size from the table’s seats, so a table set to 4 is always booked as four — and a party of six seated at an 8-top goes into the book as eight. Set seat counts to match the real furniture now and the reservation screen does the arithmetic for you later.

Arrange the room

Bulk-adding drops your tables in a plain row, which is fine for the wizard’s List but nothing like your actual room. Switch that panel to Canvas and you get the floor drawn to scale: drag a table and it snaps into line with its neighbours, and the handles on a selected table rotate and resize it. Zoom with the + and underneath.

It’s worth ten minutes. This layout is the one your staff read all evening on the POS, so the closer it sits to the real room, the less time anyone spends hunting for B03.

Take the booking

Hoa Nguyễn phones for a table for four at 7:00 PM tomorrow. Bookings are taken in BANA Sale, not the dashboard, and they have their own screen: Reservation in the top bar, then New Reservation. Each table card carries its own New Reservation button too, which is the quicker route when the guest has already asked for a particular table.

Start with Select Table — Tuấn picks B03. The table comes first because the party size follows from it: BANA takes the number of seats you gave that table in the floor plan, which is why B03 books as four. Then fill in Guest Name and Phone, and set the Date & Time. Occasion and Note are optional, but they’re what makes a guest feel expected, so he sets Birthday and types Xin bàn gần cửa sổ — “a table near the window”. Select Save.

A booking is always against one real table at a real time, so the POS greys out any time earlier than right now, and disables Save outright if the booking would overlap one already on that table — it won’t let you double-book. Saved, the booking lands as Confirmed and B03 turns Reserved on the Reservation map.

Booking for six? There is no party-size field to type into — the number comes from the table, so book a table with six seats. At Quán Nướng Sài Gòn that means one of the garden tables, V01–V04, which is exactly why Tuấn built them at 6. The picker shows each table’s seat count next to its name, so you can see the six-seaters as you choose. If none of yours has six, that’s a floor-plan job rather than a booking one: change a table’s seat count in Space & Tables first. Two 4-tops pushed together won’t do it, because Merge Table isn’t available yet and the two would bill separately.

See the booking on the plan

The Reservation screen has the same Canvas view, paired here with Card rather than the wizard’s List. Card is the faster list to scan; Canvas shows you the room itself, with the held table outlined and its chairs shaded, so you can see at a glance whether tonight’s bookings are spread across the floor or stacked in one corner.

When the guest arrives

Check the guest in

The next evening Hoa arrives. In BANA Sale, open Reservation — the list beside the map filters to All, Upcoming, Arrived, Late and Cancelled, each with its count. Find her booking under Upcoming and select Check In. A dialog shows the party and table back to you to confirm; it’s a read-back, not a form, so nothing there can be changed. Select Confirm.

She’s twenty minutes late? Then she’s dropped off Upcoming and is sitting under Late. The table is still held and the booking still checks in the same way — look there before you conclude it vanished. The exception is if someone has turned on Auto-cancel expired reservations in the dashboard, which releases late bookings on a timer you set; see the FAQ below.

Checking in seats the party: the booking moves to Arrived, its row swaps Check In for Go to Order, and Cancel greys out — a party in the room can’t be un-booked. Go to Order and the Table Service route below both end on the same screen, so use whichever you’re already looking at.

Note that check-in alone doesn’t change the Table Service map: B03 still reads Available there until you open its order. The booking is what’s been checked in; the table starts working when the first item goes on.

No booking? Nothing extra to do — walk-ins don’t need one. Go to Table Service, pick the free table and select Go to Order, and the meal runs exactly as it does below.

Take the order

Open Table Service in the top bar, select B03, then select Go to Order on its card. That opens an order for this table and puts the menu on screen — the whole catalogue, narrowed with the category filter or the Search box. Every item you add goes onto the table’s bill.

Hoa’s table orders the way a table of four does: 1× Gỏi cuốn tôm thịt at 69,000 ₫ and 1× Chả giò at 79,000 ₫ to share, 1× Ba chỉ nướng at 129,000 ₫ and 1× Sườn nướng at 159,000 ₫ off the grill, 1× Rau nướng thập cẩm at 79,000 ₫ and 1× Cơm chiên trứng at 59,000 ₫ for the middle of the table, and 4× Bia Sài Gòn at 25,000 ₫ each — ten items, 674,000 ₫ for the first round. Tap a dish once per portion, or use the and + on its line in the order panel; the on the line drops it again.

Then press Send to Kitchen. That is the step that actually tells the grill — items sitting in the panel unsent have been priced but nobody is cooking them. Once it’s sent, the round’s header swaps Send to Kitchen for Serve All Ready and each line grows a row of counters tracking it through the kitchen. Serve All Ready is on screen but isn’t wired up yet, so treat the header swap as your receipt that the ticket went, not as a button to press.

Every round needs sending. BANA treats each round as its own cart, so a later round of drinks is a new round and needs its own Send to Kitchen. You don’t have to start that round yourself — there’s no “new round” button to hunt for. Once a round is sent, the next item you add opens a fresh one automatically.

Sending is final for that round. Get the lines right before you send: afterwards the , + and stop responding, the quantities freeze into plain x1 chips, and Reset Cart greys out with them. There is no way to pull a dish off a sent round from this screen, so a guest who changes their mind after the ticket has gone to the grill is a conversation, not a button.

Sent isn’t the same as Cooking. The table stays Occupied after you send. It only turns Cooking once the kitchen starts the items on its own screen, so the map is telling you what the grill is doing, not what you pressed.

Close the menu with the to go back to the map. The table reads Occupied, and its button reads More Order for the next round. Later rounds land on the same order, so add everything the table wants before you press Checkout.

Watch the room fill up

While the grill works, the map is the thing to watch. Table Service carries the same Card / Canvas switch, and mid-service is where the plan earns its keep. Each table shows how many of its seats are taken — 4/4 for Hoa’s — and a timer counting how long the party has been sitting, next to the colour for its status. One glance tells you which tables have just sat down and which have been lingering over the last of the beer.

Take the next round

Half an hour later the table wants more beer, and dessert all round because it’s a birthday. Open B03 again — its card now reads More Order — and add 2× Bia Sài Gòn and 4× Chè khúc bạch at 39,000 ₫ each.

The panel now shows both rounds, newest first. Cart #2 sits on top, still open and still editable, with its own Send to Kitchen waiting. Cart #1 has dropped below it and greyed out — its quantities are plain x1 and x2 chips you can’t nudge, and its header offers Serve All Ready instead. Rounds stack up like this all evening, so the order panel is where you read back what a table has had and when.

Now press Send to Kitchen on Cart #2. That round is 206,000 ₫ — two beers at 50,000 ₫ and four desserts at 156,000 ₫ — and it lands on the same order, taking the running total to 880,000 ₫ across sixteen items.

When the guest leaves

Settle the bill

When Hoa asks for the bill, open her order — More Order on B03’s card gets you there — and press Checkout at the bottom of the order panel, under the total. It closes the order — no more rounds after this — and moves to the payment screen with all 880,000 ₫ of both rounds on it. The bill adds identical items up across rounds rather than repeating them, so the four beers from the first round and the two from the second appear once as x6 Bia Sài Gòn at 150,000 ₫ — sixteen items on eight lines.

The tender list is built from your own accounts. It isn’t a fixed menu of payment types: BANA groups your finance accounts by what kind they are, and shows each group with your accounts inside it. Quán Nướng Sài Gòn takes money three ways, so Tuấn’s till offers three groups, always in this order:

GroupVietnameseWhat the guest is doingWho confirms it
CashTiền mặtPaying in notesYou do
BankNgân hàngTransferring into one of your bank accountsYou do
QR CodeMã QRScanning a VNPAY QR with their banking appVNPAY does

Inside a group your accounts are listed with the default one first, so the account you use most is the one already selected. On Tuấn’s screen that’s his cash drawer under Cash, Techcombank ahead of VietcomBank under Bank, and his VNPAY account under QR Code. A bank row carries that bank’s own logo, so Techcombank is recognisable without reading it.

Cash and Bank are settled by you; QR Code is settled by the provider. That difference is the one worth understanding:

  • Cash gives you the keypad and quick-amount buttons. Type what the guest handed over and BANA works the change out — Tendered against Remaining.
  • Bank is for a transfer the guest has already made. Check the money is actually in first — your banking app or the bank’s SMS, because BANA has no sight of your bank account and nothing on this screen can confirm it for you — then pick the account it landed in and press Pay Now. Alone among the three it has no countdown: a transfer that takes a few minutes to show up won’t time out on you.
  • QR Code puts a VNPAY QR on screen for the guest to scan. BANA waits for VNPAY to confirm rather than asking you to. The code is good for five minutes and can be refreshed if the guest is slow finding their app.

There is a fourth group you won’t see here. Mobile POS / POS di động turns the phone itself into the card reader — tap-to-pay, no separate terminal. It runs on VNPAY’s SDK, which ships only inside the phone app, so it never appears on a till running in a browser and isn’t in the screenshot above.

The tender you wanted isn’t on the screen. A group with no account in it is hidden completely, so this is nearly always an account problem rather than a POS one, and there are exactly three causes:

  • No account of that type. Add one under Finance → Accounts and the group appears.
  • QR Code has one extra condition: the account must be wired to the sale channel you’re serving on. An account set up against Take away simply won’t offer QR while the till is on Dine-in, even though the account exists.
  • Mobile POS needs the VNPAY SDK, which lives on the phone app. It never appears in a desktop browser, as above.

Switching tender restarts the payment. Changing the group or the account throws away the attempt in progress and starts a fresh one. That’s harmless before the guest has done anything. After a QR has been scanned it isn’t: BANA is waiting on that attempt, and switching abandons it, so a guest who pays a moment later pays against an attempt nothing is listening to. Let the scanned one finish, or ask the guest to hold, before you touch the tender.

Once the money is accounted for, select Pay Now.

Paying separately? Use Split Order before you check out, and settle each resulting order on its own. It’s under the at the top of the order panel, alongside Move Table.

Clear the table

Pay Now leaves you on a payment-succeeded screen, and everything left to do is on it — printing included.

Print Bill and Kitchen Bill sit side by side at the top. Print Bill is the guest’s copy: it prints the bill and pops the cash drawer in the same action, and the tender you just took is printed on it, so the slip says how it was paid. Kitchen Bill reprints the kitchen ticket, which is the one to reach for when the grill has lost its copy.

Nothing prints and no error appears? The button checks for a configured printer first, and opens a printer picker instead of printing when it doesn’t find one. Choose the printer there and press it again. Printer Setting, lower down the same screen, is where you change that choice later — see Connect printers and devices.

That screen also carries a checkbox: Auto clean table B03, ticked by default. Leave it ticked and Back to Sale frees the table on the way out — it’s Available by the time you land on the map, and the evening’s next booking can have it.

Untick it when the table needs wiping first. B03 then waits at Clean so nobody seats a party at a dirty table — and it waits indefinitely. Nothing releases it on a timer; it goes back to Available only when someone presses Done on the table’s card. A table that has sat on Clean all evening is not stuck, it is simply still dirty as far as BANA knows — which is the state pictured below. Press Done once the table is wiped and B03 goes back to Available, ready for the evening’s next booking.

What the table statuses mean

BANA Sale has two table maps and they don’t use the same vocabulary, which is worth knowing before you go looking for a status that isn’t there. Each map colour-codes its own set, and the legend across the top of the map is the key — it names every status and counts the tables sitting in it.

Reservation — the booking map, which only cares whether a table is spoken for:

StatusVietnameseWhat it means
AvailableBàn trốngFree to book
ReservedBàn đã đặtHeld for a booking that hasn’t been checked in — including one running late

Table Service — the service map, which follows the meal:

StatusVietnameseWhat it means
AvailableCòn trốngFree to seat
OccupiedĐang ănGuests seated, with an open bill
CookingĐang nấuSeated, and the kitchen has started cooking their food
CleanDọn dẹpPaid and empty, and still needs wiping

Careful with Clean. It marks a table that needs cleaning, not one that has been cleaned. Done is the button you press once you’ve wiped it.

Bookings carry their own set. All, Upcoming, Arrived, Late and Cancelled are the filters down the side of the Reservation list; Confirmed is not a filter but a badge on the booking itself:

Booking stateWhat it means
ConfirmedSaved and holding the table — where a new booking lands
UpcomingConfirmed, and its time hasn’t come round yet
ArrivedChecked in — the party is in the room
LateIts time has passed and nobody checked in. Still live, still checkable-in
CancelledCalled off. Stays on the list under its own filter rather than vanishing

What’s next

Build the floor plan
Arrange the room
Take the booking
See the booking on the plan
Check the guest in
Take the order
Watch the room fill up
Take the next round
Settle the bill
Clear the table

Frequently asked questions

Can I take a booking from the dashboard?

No. Bookings live in BANA Sale, on its own Reservation screen — that's where the floor staff work. The dashboard builds the floor plan and reports on the orders that come out of it.

What happens if the guest never turns up?

The booking moves to Late on the Reservation list and the table stays held. In the dashboard, under Settings → POS settings → Reservations, you can set a Reservation hold duration in minutes and turn on Auto-cancel expired reservations, so late bookings release themselves instead of blocking a table all evening.

How do I change or cancel a booking?

Both are on the booking itself in the Reservation list: edit it to change the time or the table, or cancel it. Cancelled bookings stay on the list under the Cancelled filter rather than disappearing, and a checked-in booking can no longer be cancelled.

The guest wants a different table once they're sitting down.

Open the table's order and choose Move Table from the more menu — the order moves across with them, and the list only offers tables that are currently free. Merge Table sits in the same menu but isn't available yet, so two tables pushed together still bill separately for now; Split Order, also in that menu, is the one to reach for when a table wants separate bills — but use it before you check out, because checkout closes the order.