A customer returns an item and the shop has to return the money. Where the order was paid by card, «returning» does not mean a transfer from your own account — it means a reverse operation inside the same payment gateway that took the money. Below: how that works technically, and where shops lose money along the way, mostly not to fraud but to two settings that quietly disagree with each other. It is one part of taking payments properly.
Two different things both called «a refund»
| What | How it happens | Who starts it |
|---|---|---|
| Refund | a reverse operation in the gateway; money returns to the same card | the shop |
| Chargeback | the buyer disputes the payment with their own bank | the buyer, through their bank |
This article is about the first. The second happens when the first was not done in time, and it costs more: on top of losing the money there is a dispute fee and a dented record with your acquirer.
What it looks like in the shop
In CommerCentr a refund is issued from the order card — where the manager already is when the customer asks for their money back. The button appears only when there is something to refund: a successful transaction for that gateway exists and has not already been reversed.
The order of checks in the code is deliberate and must not be shortened: is there permission, has it already been refunded, does the payment exist, is the amount within that payment — and only then a call to the bank. The reason is simple: a refund cannot be undone. Reversing one is possible only inside the payment provider's own dashboard, by hand.
Partial refunds are supported: if the customer returns one item out of three, enter an amount smaller than the payment.
Where shops lose money
Three places where the loss is silent — nothing breaks, the money simply goes somewhere else.
1. Cash on delivery on an already-paid order
If cash on delivery is a plain «enabled» switch with no regard for order state, it lands on the waybill of every shipment — including those already paid by card. The customer pays a second time at the counter.
The correct model: the switch only permits cash on delivery; what turns it on is the order's state. There is exactly one permitted state — «unpaid». Not «anything except paid»: otherwise an order marked «refunded» collects the full amount on delivery, and the shop takes money for what it has just given back.
2. Delivery paid twice
The carrier's waybill has a «who pays for delivery» field. If it says «recipient» while the shipping method on the site carries a non-zero price, the buyer pays twice: you online, the carrier at the counter. This is not a system error, it is two settings contradicting one another, and it can only be caught deliberately.
3. Declared value instead of the value of the goods
Declared value on a waybill is the basis for insurance. Put the full order total there and the shop pays the carrier to insure its own delivery fee. Insure the goods: the total minus shipping.
The reverse is worth attention too: understating declared value makes shipping cheaper, but if the parcel is lost the carrier reimburses exactly what was declared.
What must happen in the shop after a refund
The money has gone back, and the work is not finished. The order has to stop looking paid, or stock and reporting start drifting away from reality.
In CommerCentr the transaction and the order are updated in one database transaction: the payment becomes refunded and the order moves to «refunded». If the status stayed «paid» with the money returned, the shop would ship goods against money it no longer has — and would find out only at the end-of-month reconciliation.
One case worth designing for: the money went out but the record did not save — a dropped connection, a database failure. The system then says plainly that the refund was executed but not recorded, rather than reporting success. The difference matters: a silent «success» would leave the button active, and a second click would refund the same money twice.
After a refund there are two more places to visit by hand, because the system does not decide them for you:
- stock — if the item physically came back, the quantity has to be restored;
- the fiscal document — a refund needs its own receipt, and that is issued in the fiscalisation module, not the payment one.
Partial refunds: when and how
Partial refunds come up more often than expected: the customer keeps two items out of three, or the shop returns the price of the goods but withholds the shipping it has already paid the carrier.
Technically it is the same operation with a smaller amount. Two limits worth knowing in advance:
- the amount cannot exceed the payment — the system checks this before calling the bank, so you see a comprehensible refusal rather than a gateway error;
- a sequence of partial refunds cannot exceed the payment either, and each one is a separate irreversible operation.
A practical rule: work out the final figure on paper first, shipping and withholdings included, and only then open the order card. A refund is not the place to do arithmetic as you go.
Who pays the fee
Gateways usually charge nothing for the refund operation itself, but the fee on the original payment is not returned — the acquirer's percentage for accepting the money stays a cost to the shop. That is built into the economics: a high refund rate eats margin not through the refunded sums but through the fees.
Cash on delivery has its own field for who pays the transfer fee. Set it to «sender» and you absorb it, and the customer pays exactly the price of the goods. On more expensive orders, where the fee is noticeable, that affects conversion.
How to avoid a chargeback
A chargeback always costs more than a refund: the amount plus a dispute fee, and a rising dispute rate worsens your acquiring terms. Avoiding it comes down to three habits, none of them technical.
Answer faster than the bank. A buyer goes to their bank when the shop has not answered. A request handled within a day almost never becomes a dispute.
Refund immediately after the decision. The pause between «fine, we will refund you» and the actual refund is the window in which the buyer decides they are being cheated. Issued from the order card, a refund takes a minute — there is no reason to hold that pause.
Tell the buyer the money has gone. Funds do not land back on the card instantly: from several hours to several working days, depending on the issuing bank. A buyer who does not know that has time to file a dispute in exactly that gap.
On cash on delivery specifically: if the parcel was never collected, the money never reached you — there is nothing to refund, but the order still has to be closed and the item returned to stock, or the quantity drifts from reality.
The legal part: an orientation, not advice
Consumer protection law generally gives a buyer the right to return goods of satisfactory quality within a stated period, with separate rules and time limits for distance selling and for faulty goods; most jurisdictions also publish a list of categories that cannot be returned at all. In Ukraine that period is 14 days under the Consumer Protection Act, and the exclusions sit in a separate regulation.
This article is not legal advice. Check your own case against the current text of the law that applies to you, and with a lawyer. The technical part is a tool; the grounds and the deadline for a refund are a question of law, not of settings.
What it takes to make this work
Accepting payment through LiqPay and monobank in CommerCentr is free — taking money is the thing a shop cannot exist without. Refunding from the order card sits in the paid extension of each plugin.
The line is drawn there because refunding is not something everyone needs on day one: a shop with a few sales a week will do it in the LiqPay or monobank dashboard in the same few minutes. The extension pays for itself where refunds are frequent enough that visiting someone else's dashboard becomes a manager's daily work.
Summary
Technically a refund is a reverse operation in the same gateway, and the main demand it makes is that its irreversibility be handled deliberately: check the state, the amount and any prior refund before calling the bank. The most expensive losses do not happen in the operation itself but beside it — cash on delivery on a paid order, delivery charged twice, and an inflated declared value.
If it reduces to one rule: a refund should be the fastest operation in the shop, not the most complicated. Every hour of delay raises the chance of a dispute, and a dispute costs more than the sum itself. So it is worth reconciling the shipping settings with the payment ones once, testing them on a throwaway order, and after that simply pressing the button without recalculating each time.
See also fiscalisation — a refund needs a fiscal document too — and Nova Poshta shipping, where two of the three settings above live.