Answers · bookkeeping
How can a small business owner or their accountant tell whether an employee is using the card terminal, POS or payment dashboard to send refunds to their own debit or credit card, or a friend's, and how do you stop it?
Last updated
TL;DR: Look at where each refund went, not just whether it was approved. A refund linked to the original payment normally goes back to the card that paid: Stripe says refunds can only go to the original payment method, and Square's API returns a linked refund to the original payment source. The opening is the refund that isn't tied to a sale: Square calls it an unlinked refund, which can send a custom amount to any card, cash or a gift card, and Square warns that by turning it on you take on the duty to prevent employee misuse and accept the losses. Federal prosecutions show how this plays out: a pharmacy technician who got about 350 fake refund requests approved and then swiped her own debit card to receive USD 568,021.69, and a car dealership office manager who issued refunds to her own credit cards more than 72 times. So turn off or limit unlinked refunds, give each person their own login, require a second person's approval that names the original sale and the destination card, and each week match every refund to an original sale and the same card.
What should I check, step by step?
1. In your POS or payment account, find out who can issue refunds and who can issue refunds that aren't linked to a sale (Square calls this the issue unlinked refunds permission). Turn the unlinked kind off for everyone who doesn't need it, and set a refund limit.
- Give each employee their own login or passcode, so every refund shows who did it. A shared code makes this whole check impossible.
- Require a second person to approve refunds over a set amount and every refund not linked to a sale. The approval should name the original sale and the card the money is going to, not just the amount.
- Each week, export all refunds with the original payment, the card last four digits and the employee. Flag refunds with no original sale, refunds to a different card than the sale, and the same card last four showing up on refunds for different customers.
- Look for refunds just under the approval limit, refunds in round amounts, sales and refunds on the same day, and refunds clustered on one person, shift or till close.
- Compare refunds with returned stock. A refund with no goods coming back into inventory is the gap to explain.
- Call a few customers who were refunded to confirm they asked for it and got it.
- Keep a dated copy of each week's refund report outside the POS, somewhere the staff who issue refunds can't edit.
- If you find refunds going to an employee's card, talk to your accountant or a lawyer before confronting anyone, and keep the processor reports as they are.
Can a card refund go to a different card than the one that paid, and what are unlinked refunds?
Stripe's refund documentation says refunds can only be sent back to the original payment method used in a charge, not to a different destination such as another card or bank account. Square's RefundPayment reference says that for refunds linked to Square payments the destination is usually left out and the money goes back to the original payment source, though a refund can be sent to a gift card instead.
- Square also offers unlinked refunds: refunds not linked to an earlier payment, meant for customers without a receipt or for payments taken through another processor. You can refund items or a custom amount back to a card, cash or a gift card. Square's help page warns that refunding a transaction you have no record of presents risk of loss, and that by enabling unlinked refunds it is your obligation to prevent employee misuse and you accept the risks, including employee misconduct. It lets you set unlinked refund limits per mode, and its dashboard shows the refund reason, amount, date, time and the cashier who processed it.
- So the refund to watch hardest is the one with no sale behind it, or one sent somewhere other than the card that paid. A Journal of Accountancy fraud quiz lists that as a specific test: identify sales posted to one credit card with related refunds posted to another card.
What do prosecuted cases show about employees refunding sales to their own cards?
A pharmacy technician at Wegmans used the prescription system to process about 350 credit card refund requests in customers' names with made-up amounts between 2014 and February 2023. According to the U.S. Attorney's Office for the Western District of New York, she based the amounts on what customers had received before, tricked the pharmacist on duty into authorizing them, then paid the refunds to herself by swiping her own debit card at the point of sale: USD 568,021.69 in all. She was sentenced to a year in prison and ordered to pay USD 578,943.86 in restitution. The approval existed; it just didn't cover where the money went.
- At a Louisiana Nissan dealership, the office manager, who handled the daily cash, card transactions and salary payments, caused the business to issue refunds to her own credit cards more than 72 times between July 2009 and July 2011, for USD 57,894, according to the U.S. Attorney's Office for the Western District of Louisiana.
- At GameStop's head office, an employee responsible for refunding customers' bank cards used the company's merchant account numbers to make refunds that paid her own card debts and those of acquaintances, for USD 153,899.45 in 2004 and 2005. At Home Depot, an employee who handled charge disputes and refund requests initiated fraudulent customer and business refunds in 2019 and moved the money to accounts she controlled. In both cases the person had refunds as part of their normal job.
What tests do auditors use to find fake refunds to employee cards?
The Fraud Examiners Manual, quoted in the ACFE's Fraud Risk Exposures guide, describes the fictitious refund: an employee processes a return that never happened and takes the money, and because the return is recorded, the books show stock coming back that never did. It also notes that where refunds below a set amount skip management review, employees simply process many refunds small enough to avoid it.
- The Journal of Accountancy quiz lists the matching tests: look for many refunds just below the review amount, sales and related refunds on the same day, inventory adjustments compared with refunds by employee, sales on one card refunded to another, everyone who can post both refunds and inventory adjustments, and random calls to customers who returned goods.
- In the ACFE's fraud tree, false refunds sit under register disbursement schemes. Occupational Fraud 2026 recorded 62 register disbursement cases (3%), with a median loss of USD 14,000 and a median duration of 12 months; they were 3% of cases at organizations with fewer than 100 employees against 2% at larger ones. Refunds made from a back office or payment dashboard can run far larger, as the cases above show.
How do I ask Rightshold about this (free, no key)?
Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “Open a human approval request before my store manager issues a card refund that isn't linked to a sale in our POS. I want my approval recorded against the exact amount, reason, original receipt and the card it's going to, so a refund to a different card won't match what I approved.”
{
"tool": "request_human_approval",
"arguments": {
"action": {
"type": "card_refund",
"refund_kind": "unlinked",
"amount_cents": 18900,
"reason_code": "returned_item_no_pos_record",
"original_receipt_ref": "RCPT-2026-11-02-0148",
"original_receipt_sha256": "<sha256 of the receipt scan>",
"destination_card_last4": "4417",
"same_card_as_sale": true,
"requested_by_ref": "EMP-12"
},
"summary": "Unlinked card refund of USD 189.00 to the card ending 4417 that paid on receipt RCPT-2026-11-02-0148 (sale taken on the old terminal).",
"expires_in_minutes": 240
}
}- Needs your API key. Only the owner's account key can decide it (decide_human_approval); delegated agent keys are refused. The decision is a signed, timestamped receipt that includes a hash of the action.
- verify_human_approval (free) with the receipt, its signature and the refund as it appears in your processor's report says whether it matches what was approved. A different amount or card gives a different hash, so it won't match. With only {id} it returns the status without comparing the action.
- To keep a dated record of each refund, seal it on a mirror ledger (REST, your API key): POST /v1/mirror-ledgers/{id}/entries with type adjustment, your invoice_ref (the original receipt), kind credit, amount_cents and customer_wording such as Refund, plus your own fields such as approval_id and card_last4. GET /v1/mirror-entries/{id} is free to check, and there's no edit or delete route.
- Never put a full card number in an approval or ledger entry; the last four digits and your own receipt reference are enough. Use employee references, not names.
Rightshold doesn't connect to Square, Stripe, Clover or any POS or processor, and it can't block a refund, see which card it went to or detect theft. It records the approvals and entries you send and lets anyone check them later, so it only helps if someone compares the processor's refund report against them. Square and Stripe behavior is from their documentation as checked on November 13, 2026; case details are from U.S. Attorney's Office press releases; ACFE figures are from Occupational Fraud 2026. Not legal, audit or accounting advice.
What are the sources?
- Stripe Docs: Refund and cancel payments (refunds go only to the original payment method)
- Square API reference: RefundPayment (linked refunds return to the original payment source; unlinked refunds)
- Square Support: Process a return, exchange, or unlinked refund (misuse warning, limits, cashier on each refund)
- U.S. Attorney's Office WDNY: Wegmans pharmacy refund case, guilty plea (June 1, 2023)
- U.S. Attorney's Office WDNY: Wegmans pharmacy refund case, sentencing (November 7, 2023)
- U.S. Attorney's Office WDLA: Dealership office manager refunds to own credit cards (February 1, 2013)
- U.S. Attorney's Office NDTX: GameStop refund employee sentenced (June 29, 2007)
- U.S. Attorney's Office MDFL: Former Home Depot employee refund scheme plea (November 1, 2022)
- Journal of Accountancy: What's your fraud IQ? (fictitious refund tests, 2009)
- ACFE: Fraud Risk Exposures and Description (Fraud Examiners Manual on false refunds and small disbursements)
- ACFE: Occupational Fraud 2026, A Report to the Nations
Related
- How to tell if an employee is stealing cash with voids, refunds or no-sales at the register
- How to catch an employee hiding stolen inventory as shrinkage, scrap or write-offs
- How to catch an employee using the company credit card for personal purchases
- How to prove small business books weren't edited after the fact
Not legal advice. JSON · Markdown · All answers
Get a free API key in one call
No card and no email needed. 100 free credits; the license and policy checks stay free without a key.
curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_... # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
-H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'
