Skip to main content
This page explains how to build a reliable card activity experience: what users expect to see, what can change over time, and how to use webhooks to keep your UI accurate.
For request parameters and response shapes, use the Cards API reference.

What users expect

In a card activity feed, users typically expect:
  • Pending and completed purchases (when supported by your program)
  • Refunds
  • Reversals
  • Merchant and country information
  • Amounts in transaction currency and (optionally) a base currency like USD
1

Use webhooks for real-time updates

Webhooks are the most reliable way to keep your UI in sync.
  • Transaction events: see the Webhooks tab → transaction
2

Use the API for backfill and support screens

Use the API to:
  • load historical transactions on first open
  • backfill missing items if your webhook handler was down
  • power internal support tools
3

Handle changes over time

A single card payment can evolve:
  • authorization → cleared
  • declined (with a reason)
  • reversal (release of held funds)
  • refund (money returned)
Your UI should reflect that the “final” state may arrive asynchronously.
If you run partner-managed authorization, you’ll also receive authorization decision requests in real time. That can be useful for immediately showing “approved/declined” UX.

Troubleshooting

Most common causes:
  • webhook delivery failed or was not processed
  • your UI relies only on API polling without backfill
  • the transaction is still pending and hasn’t been emitted as a final event yet
Recover by backfilling from the API and reviewing your webhook processing logs.
Ensure you de-duplicate by a stable transaction identifier and treat follow-up events (refund/reversal) as updates to the transaction timeline.