Utter confusion with Customer Accounts (particularly refunds)

@Jesse - I am probably looking in your direction to explain a few things here…

1) Why does credit mean debit

When setting up the transaction type to account payments using customer credit, I believe it’s correct to set it up as shown below. I just can’t work out the logic behind listing something in the transaction type as “(Credit)” yet when this transaction appears in the customer account screen it has actually been processed as a “Debit”. Seems like the labels in the account transaction type are a little misleading???

2) Why can we only credit when issuing change

Below is my transaction type for assigning any change to the customer account. It works perfectly, the change amount it Credited to the customer account, reducing the size of the balance that the customer owes me.


BUT If I setup reverse accounting, as seen in Kandash’s DB example and I want to be able to refund to someone’s customer account I would need to create a similar Transaction Type to the one I use for Customer Account change (With “Customer Accounts” selected as the “Source” account type). This transaction type would then be used on a “Refund to Customer Account” button…

Unfortunately, when I hit the button to refund to the customer’s account, nothing happens. It seems like SambaPOS is not happy to fill in the blank account that is not specified in the Transaction Type. It’s strange because does dynamically assign the correct account when…

  • Target is left blank (on a payment transaction)
  • Source is left blank (on a change transaction)

Am I missing something silly here???

Also, Kendash, when looking at your sample DB I couldn’t get my head around refunds to Credit Cards. Looking at the accounts screen, it looked like money was removed from the Cash Payment Account even though I selected the refund method to be Credit Card.

Its because your looking at accounting which means moving money from one account to another. Emre simplified it. You are thinking in terms of a bank account but that is wrong. Debit and Credit are lines in the accounting and you have to record something there. You dont just make money disapear from one. Example if you want to move money from Account A to Account B Account A would record money in its Debit column and Account B would record something in its Credit column.

When a customer pays from a customer account he is not putting money in the account… It is being removed from that account making him owe a balance. You then put money back into that account when he comes to pay off the account meaning he credits his account making his balance back toward positive.

This is all basic accounting and most people are clueless to how accounting really works. I suggest studying some google articles on real accounting it might make more sense.

4 Likes

OK, so that does make sense. But what about why I can’t use reverse accounting to out money back on to a customer account in the case of a refund?

It seems really strange that it works when issuing change, but not when triggered from a payment button?

Not done on accounts but change is not registered in account transactions for tickets so that’s obviously custom setup.
Accounts confised me for a long time and still do LOL
You need to compaire to similar transaction types from default system and do a little trial and error to get straight in your head.
As kendash says you will always end up with two entries for a transaction a credit and a debit.
Best thing is to clearly get your head arround the basic flow with sales and payment accounts and how the values are moved between sales, receivables and payment accounts.
Paul and I had a good topic about cash back on card payment where I documented my testing in getting account transactions correct.
That might be a good one to look over to help follow the flow and cash back would be relatively similar to change.

Refunding and Paying the refund are two different things. For example when customers buys $10 stuff and will pay it later he owes $10 to you. If he returns it before making $10 payment refund will only credit the customer account. As you’ve received no cash, you won’t pay the refund.

However if he paid his purchase by cash before returning it you’ll still credit customer account by refund transaction however you may determine to pay the refund by cash or leave it unpaid and balance it on customer’s next purchase.

Thanks @JTRTech, the giving change to the customer account part seems to be working like I exepct, it’s refunding to the customer account I’m struggling with.

I have done as you said and followed the flow of money between different accounts for standard cash and card payments. I’m using pretty much the same transaction types for Customer Account refunds but it is just not working???

There is not an option to select refund method Credit Card… what do you mean?

PS: I am slightly confused by what your calling customer account refunds… do you really refund money or are you just balancing the account? IF customer paid using Customer account then they never should get an actual refund.

Hi @emre, yes, I understand what you mean and this is exactly what I am trying to achieve…

  1. Customer books for some diving, so we make a sale and charge $70 on his customer account
  2. Unfortunately the weather is too bad and the we can’t offer diving today and the customer can’t re-schedule for any other day.
  3. We refund the sale, the the $70 refund needs to be refuned back to his customer account so it is set back to $0

It is number 3 that I’m struggling with. As you see in the screen cast below, despite the transaction type being setup nothing actually happens when I choose to refund to the customer account, instead, I am forced to refund using cash. (Clearly in real life I am not refunding the customer cash, I am just showing this as an example of how the refund system is setup and working in principle, it’s just refunds to a customer account that are not working).

Sorry @Jesse , maybe I should have been clearer, I am just trying to balance the customer account.

There is a prompt asking how the customer paid “Cash” or “Credit/Debit”, then once the refund is processed there is a prompt saying if the customer paid by card then the money should be refunded by card, however in the accounts you see that a transaction has removed the money from the cash account.

I have included the steps I took in the screencast below (I forgot to include the accounts screen grab, so that is a separate image below…

So show your account transactions setup for refunding credit. If it was my old database… I have not used that in a long time so I am not familiar with what I had setup nor if it will even work in v5. My old refund method back then was very complex and I used some forced tricks that were really not meant to work the way they did. Its likely some of that was fixed with v5… but I do not know for sure.

Thanks @Jesse. Below are my payment methods and transaction types for refunding via Cash and Customer Credit (cash works, customer credit doesn’t)

Which DB example should I be using?

Could it be that in your refund payment customer account transaction type you havent specified the default source account

Your rule is probably working but as you havent specified where to take the money from to move it back into the customers account the customer account doesnt get credited back

This is how the transaction type is set-up for both Customer Account payments and Change credited to Customer Account. You need to leave that account blank because you don’t want it assigned to one particular customer account (the individual customer’s account needs to be assigned dynamically when the payment button is pressed).

The one slight difference is that in the Customer Account payment transaction, the fields are reveresed, so it is the “Default Target Account” whcih is left blank.

1 Like

If your refunding a transaction on an account just refund the item on the ticket giving a negative total and charge that to account…
You can’t make a positive ticket in regards sales/receivables become a ‘credit’ on the account…
There might be an option you need to change in the account/transaction to allow negative charge but its exact same prickle as refunding cash.
Account is a payment type so the sale needs to match the payment, you can’t pay a normal ticket with a refund.

2 Likes

@JTRTech is correct.

Unfortunately, the Payment Screen is not made to do this type of operation. It really wants to see Balance > 0. And that behavior is hard-coded.

It is somewhat the same as trying to Credit a Customer Account using the Payment Screen. It “sort of” works if you put the screen into BALANCE mode, but at the same time, it will not allow you to ADD Credit if the Account Balance is less than 0… This is the reason I abandoned using the Payment Screen when Adding Credit to Accounts, because it does not work unless the Account has a POSITIVE Balance (owes money).

You are better off using the Account Statement tutorial, and add another button to the screen to “Refund Account” and fire an Account Doc that invokes the Tx Type. This is the way the “Add Credit” button works, but it uses Docs that put money into a Payment Account like Cash or Credit Card. In fact, one of the selections is “Contra”, which puts money into a “WriteOff” Account.

But this goes against everything @Jesse says about doing proper accounting…

Plus the issue I ran in to with Negative ticket values is image the customer paid a $30 cash deposit and $40 on the customer account. If I need to refund the item then it’s not possible to type “-30” on the settle screen, therefore it’s not possible to split the refund between cash and the customer account.

Also, [quote=“JTRTech, post:14, topic:14681”]
You can’t make a positive ticket in regards sales/receivables become a ‘credit’ on the account…
[/quote]
This is why I am trying to put the positive value as a credit on the customer account (to cancel out the debit which would have been applied when the customer paid on account).

If you take a look at Kendash’s Reverse Accounting examples it does make a lot of sense. In particular, it is possible to use postivie values and still process a refund with money coming out of the “Cash” account… It’s just a quirk of SambaPOS that it’s not working for Customer Accounts.

I am not “paying the ticket” - no such functionality exists as far as I am aware. The Customer Account trancends all ticket types, so it a debit is applied the the CA using a Sales Ticket it should be possible to apply a Debit to the CA when using a different type of ticket, for example a Refund Ticket

But this is exactly the problem. Using negative values as JTRTech suggests is simple, it’s what I had set-up for some time. But since -70 is not >0 we have issues when refunding anything other than All

Using a standard sales ticket which has a negative settle value you can’t split where you are assigning this negative number since you can’t type a minus (-) in to the numberpad. This issue is discussed further here…

There is so much I like in your AS tutorial, but I really need to ease of the settle screen when it comes to payments in multiple currencies, credit card surcharges and rounding.

I am using a “Customer Account Credit” product which does do a very good job of allowing a customer to pay for some items on credit and then later pay it off, all through the POS screen.

This is not my experience… See the ScreenCast below.

  1. John has a 0 balance
  2. He tops up $10 on to his account using USD, MXN and Credit Card (with surcharge)
  3. When we load him as an entity we can see the we owe him $10 (He is in credit with us)
  4. He then buys $10 of wristbands and pays with his customer account
  5. He ends on a 0 balance

1 Like

Very true you would not be able to split a payment on a refund done this way.

1 Like

Yes, I found this out the hard way! It just seems strange why the specifc customer account can be blank as both the source and the target when the transaction is used for payments or change, but the source cannot be blank when used as a payment on a refund ticket.

@emre do you have any idea what could be happening here?

@mjb2000 SambaPOS thinks this is a configuration mistake and cancels payment. But it shouldn’t… While working on @QMcKay’s setup he helped me a lot to support more cases on that screen and I can remember he mentioned it but I probably didn’t understand :slight_smile: Your detailed explanation helped a lot. Well this is not a real issue as it is payment screen but it will be nice to support this case. So on next update we will also check if source account is a non default account.

3 Likes

Amazing. Thanks @emre :heart_eyes: