Learning objectives
- Understand the key UX states every card interface must support
- Learn what information should be shown at each point in the card lifecycle
- Prevent user confusion during declined transactions, freezes, or delays
- Design top-up, spend, and error states that build confidence
- Create a card experience that reduces support volume and improves retention
Why UX clarity matters in card products
Cards are deeply personal. When someone uses a virtual card:- They expect it to work instantly
- They associate it with real money and trust
- They panic when it fails, even if for legitimate reasons
- Their funds are missing
- The product is broken
- You’re unreliable or worse, unsafe
Core UX responsibilities of a card product
Your card interface must allow users to:- Know when the card is ready to use
- See how much is available to spend
- Understand fees, limits, and top-up behavior
- Review past transactions with context
- Take safe action when something goes wrong (freeze, retry, contact support)
- Know if/why the card is not usable (frozen, terminated, declined)
State-driven card UI
1. Card issued (active)
What to show:- Card label
- Masked PAN (e.g.,
5078 **** **** 1234) - Expiry date
- CVV (if shown once)
- Status: “Active”
- Available balance
- Top-up button
- Recent transactions (last 5)
2. Card frozen
What to show:- Status: “Frozen”
- Explanation: “This card is temporarily disabled and cannot be used for payments.”
- CTA: “Unfreeze Card” (if allowed)
- Contact support option (if required by policy)
3. Card terminated
What to show:- Status: “Terminated” or “Closed”
- Final balance (if relevant)
- Refund policy and what will happen next
- Option: “Create new card”
- Clear explanation: “This card was closed after repeated failed payments.”
Top-up UX
Good top-up flow:- Enter Amount
- Show real-time fee breakdown (e.g., “$1 top-up fee”)
- Confirmation screen: “You’re adding $50 to this card. You’ll pay $51.”
- Loading state with webhook listener or polling
- Success screen showing new balance
Spend UX
After a successful transaction:- Show transaction immediately in recent activity
- Display merchant name and amount
- Confirm deduction from balance
- Optionally allow a tap-through for detail view
Decline UX
This is the most sensitive and critical UI state. Decline messaging:
Avoid vague errors like “Something went wrong” or generic failure messages.
Transaction history
Each card should have a transaction feed showing:
Make transaction feeds interactive, not static. Let users tap into them to learn more.
Additional UX enhancements
What to avoid
- Showing a blank card with no feedback after decline
- Disappearing the card after termination without context
- Requiring users to contact support to understand status
- Masking all transaction details in the name of simplicity
- Not showing updated balance after top-up or refund
Recap
- Card products are trust-driven; every pixel matters
- Show clear, contextual information at every lifecycle state
- Handle failures gracefully and with guidance
- Treat declines, refunds, and freezes as UX events, not just technical ones
- Build your interface to teach, reassure, and empower users