RevKeenDocs

Refunds & Voids

Reverse terminal transactions with refunds and voids

Terminal refunds and voids work the same way as online payment reversals, but the reversal is processed through the physical terminal. RevKeen also supports issuing credit notes against terminal payments, which automatically routes to the correct reversal operation (terminal reversal, terminal refund, or gateway-direct fallback).

What you'll learn
  • The difference between a void and a refund
  • How to process each from the dashboard
  • Partial refunds
  • When the customer needs to present their card again
  • How credit notes work with terminal payments

Void vs Refund

VoidRefund
WhenBefore settlement (typically same business day)After settlement
EffectOriginal charge is cancelled -- never appears on customer's statementSeparate credit transaction appears on customer's statement
AmountAlways full amountFull or partial
Card neededNo -- processed without the cardMay be required depending on terminal configuration
SpeedInstant -- charge disappears3-10 business days for the credit to appear

RevKeen automatically determines whether a void or refund is appropriate based on the transaction's settlement status. The dashboard will show only the available options.

Processing a Void

If the original transaction has not yet settled (typically before the end of the business day):

  1. Open the transaction in the dashboard
  2. Click Void
  3. The void command is sent to the terminal -- no card is needed
  4. The original charge is cancelled and never appears on the customer's statement

The progress overlay will show the void status in real time, similar to a payment.

Processing a Refund

For transactions that have already settled:

  1. Open the transaction in the dashboard
  2. Click Refund (full or partial amount)
  3. The refund command is sent to the terminal
  4. The customer may need to present their card again (depending on terminal configuration)
  5. The refund appears as a separate transaction linked to the original sale

Partial Refunds

To refund only part of the original amount:

  1. Open the transaction and click Refund
  2. Enter the amount to refund (must be less than or equal to the original amount)
  3. Optionally enter a reason for the refund
  4. Confirm the refund

You can issue multiple partial refunds against the same transaction, as long as the total refunded does not exceed the original amount.

Card-Present Refunds

Some payment processors require the customer's card to be present for a refund. If prompted:

  • Ask the customer to present the same card used for the original transaction
  • The terminal will process the refund and display the result
  • The refund amount is credited back to the same card

If the customer no longer has the original card, contact your payment processor about alternative refund methods.

Credit Notes for Terminal Payments

You can also reverse terminal payments by issuing a credit note against the invoice. RevKeen automatically routes to the best reversal path:

ScenarioReversal PathCard Needed?
Same-day, customer presentTerminal reversal (instant void on device)No
After settlement, customer presentTerminal refund (card re-present)Yes
Customer not present or terminal offlineGateway-direct refund (no terminal)No

When issuing a credit note from the dashboard, RevKeen checks whether the terminal is reachable and selects the optimal path. If the terminal is offline, the refund is processed through the payment processor automatically -- no manual intervention needed.

See Payments and Refunds for the full credit note guide.

Via the API

Developers can process refunds and voids programmatically:

// Full refund
await revkeen.terminalPayments.refund('tpa_xxxxxxxx');

// Partial refund
await revkeen.terminalPayments.refund('tpa_xxxxxxxx', {
  amount_minor: 2500,  // Refund £25.00
  reason: 'Customer return',
});

// Void
await revkeen.terminalPayments.void('tpa_xxxxxxxx', {
  reason: 'Duplicate charge',
});

See the Terminal Payments API for full documentation.