Paid twice, shipped once
A retry after a timeout creates a second payment. The customer sees two debits and the counter sees one order.
Services
A customer pays, the money leaves, and the order still shows as unpaid — or it is marked paid twice and the second refund costs a phone call to explain. The gateway is rarely where that breaks. It breaks at the seam between the provider's confirmation and your ledger: a notification that arrived before the order existed, a confirmation that never arrived at all, a rounding difference in the currency nobody wrote down. That seam is the work.
A retry after a timeout creates a second payment. The customer sees two debits and the counter sees one order.
Confirmation depends on one call reaching one endpoint. If it fails at 2am, the order waits as pending until the customer calls.
A refused parcel returns as stock and as a courier invoice. The delivery cost lands in a monthly total, never on the order that caused it.
A hosted payment page, so card data never touches your server, and an order state that moves only on the provider's confirmation.
A bank transfer or a local wallet, a reference field your accountant matches by hand, and a queue for the ones nobody matched.
A refund writes a credit note and a stock decision. It is not a delete, and it should not require a developer.
Each delivered parcel marks the order paid; each refusal restores the stock and books the return cost against the order, by wilaya.
Fixed scope. Fixed price.
Agreed in writing before anything is built. You approve before we start.
We sit with whoever reconciles yesterday's takings and trace a single order from the customer's screen to the bank line.
The provider holds the money; your system holds the debt. Write down which one is allowed to be wrong, and how you find out.
A timeout, a duplicate callback, a wrong amount, a refund after settlement. The happy path is the easy part.
A report that lists what did not match while someone still remembers the order.
FAQ
What owners usually ask before requesting a quote for it.
Whichever ones your business or your bank can actually open an account with; the shape of the work is the same. We do not resell any provider's service and we take no commission from one.
No. Hosted pages and tokens keep card data out of your systems. If a provider requires you to hold it, the answer is to change provider, not to build a vault.
A replay queue keeps the notifications that did arrive, and a daily sweep compares the provider's settlement with your records and names every order still pending.
No. A refused parcel is a pricing and delivery problem; a dispute is a problem of trust between you and the customer. We can make both visible in the numbers, and make the refund fast enough to avoid some of them. We cannot make them disappear.
Start a project
Send the brief. It comes back as a written scope and a fixed quote before anything is built.