Skip to content
Loyalty Club PLC
Troubleshooting

Pending TEDS exchanges aren’t clearing

Triage path for pending TEDS exchange rows that won’t go through.

2 min readUpdated 1 May 2026

Pending TEDS exchange rows in your transaction history are the signal that your wallet was insufficient when a customer tried to exchange a stamp or reward.

⚠️ Earlier versions of this article conflated TEDS pending exchanges with the subscription payment_failed 5-day grace period — those are two different things. See the explanation article for the distinction.

Diagnosis

Open /teds/transactions. Look for rows of type:

  • stamp-exchange-pending — a customer tried to exchange a stamp for TEDS and your wallet was short.
  • reward-exchange-pending — a customer tried to exchange a completed reward for TEDS and your wallet was short.

Both rows surface a tooltip:

"Customer exchanged a stamp/reward, but the transaction is pending because your TEDS balance is insufficient. Please top up your TEDS to complete the exchange."

Fix

Top up via /teds/purchase. After payment, the wallet’s available TEDS goes up, and the queued pending exchanges process automatically.

If pending rows are still showing 10+ minutes after a successful top-up, open a ticket with the top-up transaction ID.

What we don’t document at v1

  • A specific deadline for pending exchanges — the audited UI doesn’t show a countdown, just the prompt to top up.
  • A "TEDS-related suspended state" — what gets suspended in the audited code is the subscription when the payment_failed 5-day grace ends, not the TEDS wallet specifically.

Preventing this

  • Watch your TEDS wallet — the displayed "Available Balance" includes both tedsBalance and madTedsBalance summed, so the visible number can look healthier than the settled balance actually is. Pending exchange rows in /teds/transactions are the reliable signal.
  • Top up proactively to cover expected outflows.

In one sentence

Pending exchange rows = wallet was short. Top up to clear them. No specific deadline visible in v1; the prompt is just "please top up".

Was this helpful?

Related articles