Weird Behaviour for Credit Card Surcharge

Hi all,

i’m trying to implement a surcharge for credit transactions. I’m using a surcharge transaction with a 1% fee.

The surcharge get applied correctly when i press the button and toggles off when i dont.

However i get weird behaviour when processing a payment with the surcharge on. The ticket itself doesn’t seem to close and it gets stuck in a loop where i can’t get back to the entity screen. My only way out is to kill samba and login again.

Any help would be appreciated. I’ve copied below the rules i think are relevant, but please let me know if you want to see more.

I think it might have to do with the remaining amount, but can’t work it out.

Thanks again for your help.


Payment Processed Rule:
(The Test message fires correctly both times and shows a remaining amount as 0.00)

On Ticket Closing:
(The Test message fires correctly when the surchage is not on, but doesn’t fire when it is)

I get stuck in this endless loop
(note the payment on this screen so ticket should be closed).

(again note the payment)

That screenshot shows ticket status still shows as new orders?
Does that message show? Checking ticket is 0?

Your state flow is messed up. Your orders are not submitted and ticket state is new orders. You messed up your state flow. What are you trying to do with states?


Hi @JTRTech
Yes the message shows, but only when the CC surcharge hasn’t been applied. When it has been, it doesn’t trigger, which almost implies that the actual value on the ticket is not 0.

Hi @Jesse, to be honest, i think that’s because i was messing around with it.

When i close the ticket and then open it, the order does show submitted, but if i then go to settle with the CC surcharge, it does the same behaviour. I don’t think (i could be wrong) that this has something to do with the state as i haven’t had any issue with my state behaviour previously.

issue only occurs when the CC surcharge is added, otherwise everything works fine.

Below is another example where the issues manifests… note this time the orders are submitted and ticket state is unpaid. What is definitely not triggering is the rule noted above where it’s relaying on remaining amount to be 0 before closing the ticket.

Ill upload a working calculation for credit card payment tomorrow so you can import it. I just done it today and you can edit is as you see fit

If that doesnt work then you have more than one issue.

@Posflow, thanks heaps!

CC 3% Surcharge on (904 Bytes)

Thanks @Posflow. I imported and tried this. I think there might have been a calculation type missing because i wasn’t able to save the.

Having said that, it wasn’t what i was after as it seems to add the surcharge on settlement which isn’t ideal as the person needs to know what price to charge.

I did however add a calculation type to this code and the same behaviour started again. I.e the ticket would not close when the surcharge was in place.

Any other ideas would be greatly appreciated.

Why not just add a calculation selector to what I already made so you can do your manual calculation before payment?

Yep that’s what i did mate, and error persists…

See the screen shot below. After i process the payment, you can see that the balance is still showing as not being 0. I think this is where the issue lies. For some reason, having the credit card surcharge on there is stopping it processing the payment properly and so the rest of the ticket closure doesn’t fire.

Can you use a software like ScreenToGif to record everything from selecting a table, adding the orders,closing ticket, open the table with the ticket and trying to settle it?

here you go mate, hope that helps.

One other thing, if you add the surcharge but remove it before settling, the same behaviour happens. Adding the surcharge in any way seems to trigger this issue.

There is something wrong with your states or there is automation in place that doesnt work as expected. Please send me your database privately Ill try to find your issue

So to follow up on this after checking your database…

You have a lot of custom automation in Ticket Closing rules, this is your constraint which is actually true most of the time and is a reason why your tickets never close properly.

I unmapped all of your ticket closing rules because I have no understanding on why you play with so many states in the same time. I am sure you tried to create something nice but from all the rules that play with statuses I would say you over thought it.

I am not sure what this is supposed to check as its not checking any payment processing, its just checking remaining amount = 0.

After unmapping most of your status changing automation it started to work fine - both statuses and payments.

  1. You have constraints and rules in place that stop you from closing the ticket before it was paid
  2. Your automation with statuses is not working properly as they are not being changed in right events, making it impossible to get out of the order/ticket screen.
  3. There are many overlapping rules that are simultaneously breaking your own workflow - these were just the basic default ones and there are about dozen more you created.

Its really difficult to understand what you tried to do but I would suggest you to try again from the start and think your workflow through.


Thanks @Posflow

I’ve definitely created this over time as I’ve become more familiar with the product.

The ORDERFLOW status changes are designed to determine what state the order is in and give a view to staff. It does this as a best guess when a ticket is closed.

I’ll take a look at the overlapping items and pull them out.

Really appreciate your help.


1 Like

You can let staff see states by just checking the show on ticket option for the state.

i’ve been colour coding for easy access.

Seems like i celebrated too soon. I’ve ummapped all of my rules for order flow, ticket closing and payment processing and i still can’t get this to work… I’m getting the same behaviour.

Funnily enough, we have two ticket types (one for eat-in and one for take away) and the takeaway one works fine.

What do you mean? Where is it showing this?

so, i’ve managed to solve it… turns out this was previously reported and after banging my head up against the screen for a few hours, i stumbled across this …

As soon as i added the default source account, it started working.

Really appreciate your help with this guys, apologies i missed a very small issue.