Customer account management

Hi everybody,

I am looking for a proper way to manage my customers accounts.

The idea behind this is to give a better service to customers, exemple:

Let’s imagine a regular customer pays at the end of the month, instead of giving him 40 small bills, I’d rather give him 1 global bill which is easier for his accountant.

I am ok with the way SambaPOS manage the customers and I am ok with the theme “No opened tickets to close the work period”.

Basically we will send these tickets to customer accounts before ending the work period WITHOUT issuying/printing the bill.

When the time comes for the customer to pay his debt, I would like:

  1. to reopen all his “not so closed” tickets (NotSoClosed : Ticket TAG ?) for THAT customer.
  2. to merge them into 1 ticket (can be done manually if easier)
  3. to Settle (and Print bill) this new ticket (Customer account TO Cash/CC account transaction), Print bill
  4. And update ticket tag TO YesNowItIsReallyClosed.

I have Customer as entity.

Is there a correct way to achieve that?


Your issue for that is reporting. you will screw up your reporting as if it even were posible it would move sales between work periods.

I recently tried to do a ‘itemised statement’ but its a minefield of complexity…
See thread here;

Have your checked with your customer’s accountant if a bill from your company with one item called something like:
1 Food and beverage purchases: $87

If the accountant would be happy with that, then maybe don’t worry about the fully itemised single bill, just have a single bill which has a single item to clear the value of the customer account at the end of the month.

This is how I run my customer accounts for my customers. They might have many days of tickets with different products, each time running up and bigger and bigger debt on their Custom Account. At the end of their time with me they buy one final ‘product’ called Customer Account Credit which clears away their debt.

Or you could do a cumulative daily ticket to account and give them statement showing daily transaction and ticket per day…

Although just had a thought of a crude solution…
If you changed printer to cut only on command you could string together a buntch of tickets onto a single print.
Ie your statement/month invoice would be;
Print Header
Loop Ticket IDs for account transactions
-> Print ticket using looked value ID into template with only orders part (no header/total etc)
Print account sumary/total balance
Print Cut command.

Very crude but might work…
With right templates could almost look nice with tickets groupped in to sections (seperate prints) on single long print out.

You actually understood quite well my issue, which is basically a printing problem.

The rest can be managed by Samba POS as it is.
Settle Tkt payment -> on account and NO print tkt bill
Customer paying debt : account transaction and print global bill (Although I will try to know which tickets have been really paid.)

However we are in the real live, customers like (so they come in your place):

  • a monthly bill
  • detailed bill - (jmb200) : I like your keep-it-simple solution but customers want to see the detailed bill - they want “to be sure” that they actually had everything that is written on the bill. Keeping daily bills per customer implies human management and so errors.
  • And of course some want 2 bills (items like alcool on separate bill), that I know how I’ll manage.

So I could use your printing solution, but I see 2 issues I will face:
(Until now I try to avoid putting my fingers in SQL, I’d rather use the standard tools from Samba)

  1. Loop Ticket IDs for account transactions - easy to say but even though I see a button “Find Ticket” in account management, I don’t see the related automation command from which I could inspire my code.

  2. Once a ticket has been really paid it has to “disappear” from the next month loop. Some way I have to update with some tag “Don’t count me again” the closed ticket (easier) or the related transaction (i don’t like).

Note : a month is not really a month, customer can pay when ever, so that I cannot use date to loop.

Thank you very much for your quick answers!


The loop values will need to come from a report expression or SQL.
As for marking tickets paid you should be able to do, not sure if tags can be altered after close but states can I think.
The way I would approach if needing a loop and your need I would do from account screen make new automation command for account screen which passes account detail to automation like account number/name.
The automation would take the account name and feed a list of tickets via a report expression into the loop value rule.
This rule would need to evaluate that ticket state and skip if paid.
Your main issue is ‘rendering’ a multiple ticket print which is what I was looking to do in the post I liked however it quickly became to complex.
That was where my crude multi print ticket idea came in - printing multiple ticket templates on a single length of paper which could achieve what your after but isn’t perticularly clean.