Card Test Refund Transaction Guide
Learn about card test refund transactions and how they work in the US.
Redeem your gift cards at any of our Merchants
Onyx Gift Cards is a Grenadian company designed to introduce, market and manage gift cards systems in Grenada for retailers and corporations. We are enthusiastic about the effect and influence we will have on the local market. We intend to expand our systems regionally with a range of product offerings and services.
Gift cards are the preferred way of giving and receiving gifts. They carry a monetary value that can be redeemed for gifts at your favorite store.
Onyx GiftCards are “Open Gift Cards” which means that they can be redeemed at multiple merchant locations. They are standard credit card size, can fit into the average wallet and made of PVC plastic. Onyx GiftCards are Barcoded for security and safety for the consumer and bear a disclaimer at the back.
Onyx Giftcards can be bought with a branded Card backer which is black in colour and is designed to fit the card. There is an area to write a brief message to the recipient as well.
A refund test card is a card number that a payment processor publishes for sandbox use. You charge it in test mode, send a refund request, and the processor returns a simulated result. It lets you check refund code, webhooks, and ledger entries before real money moves.
Most processors publish one set of test card numbers rather than a separate refund card. Each number maps to a behavior such as success, decline, or a specific error code. A refund test is a sequence: create a charge with a test number, then refund that charge in the same test environment.
A real card refund moves real money. It can create fees, statement entries, and support tickets if your code sends a duplicate request. A test card keeps the same API shape with no money at risk.
Test mode also gives you repeatable results. You can refund the same test charge across builds, compare webhook payloads, and check that your database stays in sync. Real refunds settle once, so you cannot replay them.
Test a full refund and at least two partial refunds on one charge. The sum of partial refunds must not exceed the captured amount. Your code should block or flag any request above the remaining balance before it reaches the processor.
Send the same refund request twice with the same idempotency key. The processor should return the first result, not create a second refund. Then send the same request with a new key and confirm that your code handles the duplicate or rejects it.
An uncaptured authorization can be voided, and a captured payment can be refunded. These are different operations with different webhook events. Test both paths if your checkout authorizes and captures at separate steps.
Some test cards trigger a decline on the charge, not on the refund. To test a refund failure, use the error simulation tools in your processor test environment or point your client at a mock server. Check that your code shows a clear message and leaves the charge state unchanged.
Refund webhooks can arrive out of order or more than once. Store each event ID and ignore repeats. Confirm that your ledger records the refund once, with the correct fee treatment and currency.
No. A sandbox refund often resolves in seconds because no bank is involved. A live card refund often takes 5 to 10 business days to appear on a statement, and the issuer sets the exact timing. Test the customer message for that wait, not only the API response.
No. Test cards run in a sandbox, and sandbox transactions do not move funds. Your processor may charge for account features, but the test refund itself has no cost.
No. A test charge has no real funding source and no real settlement. The refund exists only inside the test environment.
Use the processor test error codes or a mock server. Many processors let you force a specific decline reason in test mode. If yours does not, stub the refund response in your test suite and keep one integration test for the success path.
Yes, if they are public sandbox numbers and your test config is separate from production. Keep them in a test fixture or environment file. Never place live card data in source control.