L
LoyaltyDocs

Caps & Idempotency

The three guards on every reversal: the amount cap, reversal_code, and the no-reversal-of-reversals rule — and the codes that guard bonuses and penalties

Reversals move real value, so three guards stand in front of every one. All are automatic — nothing your staff or systems must remember.

1. Never More Than the Original

A transaction can only ever be reversed up to its own size. Partial refunds add up: refund 100 twice against a 200-point redemption, and a third attempt is refused. A fully reversed transaction refuses everything.

2. Accidental Repeats Are Ignored

Every reversal carries your refund reference. Submitting the same one again — a double-clicked button, a replayed message — is recognized and ignored. A refund can never happen twice.

The same guard protects manual operations: every bonus, penalty and adjustment carries an operation code of yours, and a repeated code is answered “already done” instead of applied again.

3. Reversals Cannot Be Reversed

A reversal is a correction, not a transaction of its own — so it can never be targeted by another reversal. Made a wrong correction? Reverse the original again in the other direction; the never-more-than-the-original guard keeps everything bounded.

What Reversals Do to the Lifetime Story

What happened

How the totals read afterwards

Clean undo of an earning

Lifetime earned goes down — as if it never happened

Clean undo of a redemption

Lifetime spent goes down — as if it never happened

Points taken back

Lifetime reversed goes up

Points refunded

Lifetime reversed goes down — refunds offset take-backs

The books survive everything

Earned minus spent minus expired minus reversed equals the balance — through clean undos, partial refunds, take-backs, negative balances, and even the expiry of refunded points.

Was this page helpful?

Last updated on

On this page