Next case study
foodpandaExploration 02Self-initiated, 2026

I wanted to save a new card. foodpanda wanted me to buy dinner first.

My debit card expired. I opened foodpanda to add the new one and there was nowhere to do it. The only way in is to spend: top up the wallet or place an order, and the card is kept only if that payment goes through. I didn't want dinner. I wanted the card ready for whenever I order next. So I mapped every route in, tested where people look for it, and designed card setup that lives in the account instead.

Role Research + design, soloApp foodpanda Pakistan 26.40.2Evidence 2 accounts, iOS + Android

Not affiliated with or commissioned by foodpanda or Delivery Hero.

Try it

Your card expired, or you have a new one. Where would you add it?

This is the real pandapay wallet. Tap where you'd go. Every answer tells you what that tap actually does.

pandapay wallet today

Pick one.

Each answer opens the real screen.

0 of 4tried
0save a card without paying
The screen you land on shows here.

How it works today

foodpanda takes a new card in two places. Both cost money.

Top upRs. 250 or more
or
Place an orderfood in the cart
→
Card savedonly if the payment goes through

No payment, no card. There is no screen for "I just want to add it."

Why this matters

Most people who need to save a card aren't ordering right now.

Adding a card is a setup task, done on your own time. foodpanda has bolted it onto a purchase, so anyone who isn't buying food this minute has no way in.

The card expiredThe bank sent a new one. You want it ready before Friday, not during Friday.
Setting up for a parentYou're adding your card to their account so they can order. You're not hungry.
The bank blocked a cardA replacement arrived. Nothing to buy today, just a card to swap.
Moving off cashfoodpanda is pushing cash users to cards. Their first attempt happens with a hungry cart.
No time right nowAdd it on the train, use it at the weekend. Today, that's impossible.

Checkout is a transaction. A card needs a home.Letting people add a card at checkout isn't wrong. Making it the only way is. Setup and spending are different jobs, and they want different moments.

The account: where a card should live

Add, verify, replace, choose a primary

  • Add a card any time, with time for the OTP
  • Replace the expired one without losing the rest
  • See what's saved, what's verified, what's failing
→
Checkout: where a card is used

Pick, pay, done

  • Choose from what's already saved
  • Pay, with the bank check already behind you
  • Add a new one if you must, and it lands in the account too
What I found

Five findings from the real app

Tested on my own account, repeated on a second account, and before touching anything I asked three friends where they would go first.

  1. 1People look in Payment methods. One card is there. Nothing adds another.
  2. 2Delete it, and only then does the app say where adding lives.
  3. 3Checkout trusts a method the account doesn't know about.
  4. 4Adding a card always costs money: a top up or an order.
  5. 5A card at checkout lives in memory, not in the account.
ObservedI saw it happen on my own account.
Confirmed on a second accountA friend repeated it on theirs.
Assumption, to confirmMy best reading. foodpanda would know.
ProposedDesigned, not shipped.
Finding 01

People look in Payment methods. One card is there. Nothing adds another.

0Add buttons where all three looked

Before touching the app I asked three friends one question: "Your card expired, or you have a new one. Where would you add it?" All three said Account, then Payment methods. With a card saved, that screen shows the card, a Primary badge and one link: Change. Change opens the same list. You can pick a card or delete one. There is no Add.

Asked three friendsConfirmed on a second account
pandapay wallet today with one saved card and a Change linkSwap, never add
Finding 02

Delete the card, and only then does the app say where adding lives.

Delete to addand lose the card you had

With no Add in sight, the next guess is "maybe it appears once the list is empty". So people delete the card they have. What appears is not a button but a message: save a payment method at checkout. It's the first time the app says where adding happens, and the price of finding out was the old card.

Save a payment method at checkout to view it here.Payment methods, once the list is empty. The only link goes Home.
Observed on my accountConfirmed on a second account
Payment methods today, empty: Goes to Home
Finding 03

Checkout trusts a method the account doesn't know about.

1ghost method, ticked, nothing to inspect

Payment methods said nothing was saved. Checkout still had easypaisa ticked. Which easypaisa? No number, no name, and tapping the row shows nothing. You're about to pay with an account you can't see.

easypaisaPre-selected. Not in Payment methods.
ObservedFallback, probably: to confirm
Checkout payment picker today, with easypaisa already tickedTicked. Whose?
Finding 04

Adding a card always costs money: a top up or an order.

Rs. 250top up, or a full order. Money moves either way.

Both routes that accept a new card charge you: a wallet top up of Rs. 250 or more, or placing an order. There is no way to give foodpanda a card without giving it money in the same breath.

ObservedConfirmed on a second account
Top up today: a Rs. 250 minimum before the card formOnly after Rs. 250
Finding 05

A card at checkout lives in memory, not in the account.

16 digitstyped again, every time you don't pay

Say you have the card in hand, add it now, and plan to order tomorrow. Close the app: gone. Step out to Account and back: gone. Back out of Top up with "Save this card" ticked: gone. The card only exists once money has moved, and then it appears minutes later with no message.

Save this card for a faster checkout next timeThe checkbox at checkout. It doesn't, unless you pay.
Observed three times, then one live order
Checkout picker with a card listed like a saved one before any paymentLooks saved. Isn't.
Finding 01 · Payment methods

The pattern

Five findings. One pattern.
A card only exists if money moves.

FindingWhat the person can't doWhat it costs
01 · A card, and no AddAdd a card where they look for itA guess
02 · Delete to find outKeep the card they haveThe old card, to learn adding lives at checkout
03 · A ghost in the pickerSee which account is about to payTrust in the screen that handles money
04 · Every add is a paymentAdd a card without spendingRs. 250, or a full order
05 · Memory, not the accountAdd now, use later16 digits, typed again
Card setup has been bolted onto a purchase. Everything else follows from that.
Every route

Let's walk every way in.

The task is the same each time: add a card and have it verified, without paying for anything. Three routes exist today. Pick one to see what happens and why it fails. None of them lets you do it.

What's at stake

Every card expires. So every customer hits this.

Not an edge case. A certainty, on a schedule the bank sets. Here's what it costs when it goes wrong, and what has to change.

For the person
Setup at the worst moment.

You find out whether your card works only when you're trying to buy dinner. If it fails: pay cash if you have it, or abandon the order. And the only way to check again is the next checkout.

For the order
A failed card is a lost basket.

Restaurant, dishes and slot already chosen. Payment is the most expensive place to lose someone.

For the business
Cards on file are the engine.

Repeat orders, one-tap checkout and top ups all need a working card already there. foodpanda is actively moving cash users to cards.

What has to change

Add a card anywhere, any time

Without a top up, without an order, without deleting the one you have.

What has to change

Verify without taking money

The bank check the card already goes through, moved to a calm moment.

What has to change

One list checkout can trust

What the account shows is what checkout offers. No ghosts, no surprises.

Before designing

What a payments team would say, and how I'd answer

I don't think this is an accident. A free add-card form creates real problems. The proposal has to solve them too.

A payments team would say
Free card forms are how fraudsters test stolen numbers.
A saved card that doesn't work becomes a failed order later.
Tying cards to top ups is how pandapay grows.
Our provider only stores a card after a charge.
The proposal
Every new card goes through the bank's own check, OTP included, and adds are capped per account per day.
New cards stay Unverified until the bank or a first payment confirms them. Checkout can tell the difference.
Top up stays one tap away. A card that already works makes topping up easier, not harder.
Visa and Mastercard mandate a zero-amount account verification in place of small charges. It's a network feature, not a wish.
The copy fix

The message is wrong. Fix that first.

It sends people to checkout to save a card, and checkout doesn't save it unless they pay.

Today
Payment methods
Save a payment method at checkout to view it here.
Back To Home

Points to a step that only saves the card if you pay. Links somewhere else.

Honest
Payment methods
Pay for an order with a card and it's saved here once the payment goes through.
Start an order

Says when the card is kept. The link goes where the message points.

The decision

Nobody should have to buy dinner to tell foodpanda their card number. So card setup moves into the account.

The findings changed the design: not a better checkout form, a home for cards.

The solutionProposed

Add it.
Verify it.
Forget it.

One Add button in the wallet, one bank check that takes no money, and a status that tells checkout what it can trust. Everything else on the screen stays where it was.

pandapay › Payment methods, the only change
Payment methods+ AddThe only new button
Your saved methods 3
Mastercard•••• 3133
ⓘ Primary›
Visa•••• 5000
ⓘ Unverified›
+ Add

Opens the same type list checkout uses. The card is saved the moment you tap Add card.

Unverified

Saved, not yet checked. A Rs. 0 check with the bank, or the next order, clears it.

Why this one

Three reasons it beats the alternatives

1

The bank check already exists.

Every first payment on a card already triggers the bank's OTP. The proposal moves that check to a calm moment. It adds nothing new for the bank.

A small charge, then a refund
2

People already look there.

All three friends I asked went to Payment methods first. Putting Add there means nothing to learn and nothing to announce.

A clearer route through checkout
3

Nothing new to build.

foodpanda's own card form, its own type rows, its own list. One button, one status, one sheet.

A new "Add card" screen in Account
Rematch

Same wallet, now with Add. Tap the same four places.

pandapay wallet, proposed

Pick one.

Same question, new wallet.

Today0 of 4save a card without paying
Proposed0 of 4save a card without paying
The screen you land on shows here.

Proposed

Card setup moves into the account. This is the system behind it.

An Add path, a verification step the bank already performs, and a set of states checkout can trust. Designed in Figma from foodpanda's own components. For each decision, what I chose and what I dropped.

Decision 1

Put Add where people already look.

Both Payment methods screens get Add. The Account screen itself doesn't change.

✓
ChosenAdd on both Payment methods screensOne shared list.
✕
DroppedA new "Add card" entry in AccountA third place for the same job.
✕
DroppedMake the checkout route clearerStill the wrong moment.

The wallet shows the primary method plus anything needing attention. The full list is one tap away.

Proposed empty wallet with one Add button where the dead end was
Empty. One button where the dead end was.
Proposed pandapay wallet with an Add button next to Payment methods
With cards. Primary, plus what needs attention.
Decision 2

Save first. Verify after.

Tap Add card and it's saved, marked Unverified. Nothing typed is ever lost again. Skip the check with Not now, and the card is still saved and ready at checkout.

✓
ChosenSave straight away, as UnverifiedThe status says what's left to do.
✕
DroppedVerify before savingLate OTP or a bank "no", and the card is gone again.
foodpanda card form
The form. foodpanda's own.
Card saved as Unverified, with the next step
Saved. Unverified, with the next step.
Decision 3

Check with the bank. Take no money.

A zero-amount authorisation asks the bank if the card works online. Nothing shows on the statement.

✓
ChosenVerify now, Rs. 0 checkAbout 30 seconds, sometimes an OTP.
✓
Also chosenOr verify with the next orderThe first successful payment verifies it.
✕
DroppedSmall charge, then refundDays to show, two statement lines, support tickets.

Checked on a live order: the bank asked for an OTP on the first payment, not the next. That one-time check is all the proposal moves.

Verify your card sheet: a Rs. 0 check now, or verify with the next order
Verify your card. Two choices, both free.
Checking your card with the bank, three steps
Checking. Three steps, OTP expected.
Decision 4

Keep the rows people know.

The "Add new" rows from checkout take you straight to the right form. One tap, nothing to learn.

✓
ChosenThe same rows as checkoutCard, JazzCash, easypaisa.
✕
DroppedOne "Add a payment method" buttonTidier, one step more.

At checkout, radios appear only next to methods that exist in Payment methods. Nothing unlinked is ever pre-selected.

Proposed Payment methods: saved methods, then Add new rows
Payment methods. Saved, then Add new.
Add a new payment method: card, JazzCash, easypaisa
From the wallet. The type list, one tap.
Decision 5

When the bank says no, keep the card.

Most failures are fixed in the bank app in a minute. The card stays, with the usual fixes and a Try again.

✓
ChosenKeep it Unverified, show common fixesTry again, or use another method.
✕
DroppedRemove the card, start over16 digits again for a bank setting.
Card not verified: the reason and common fixes, with Try again
Not verified. The reason, and what to try.
And at checkout

Checkout, today and proposed

Three of the five findings happen on this one screen. With the account fixed, checkout only has to read from it.

Checkout picker today123
Today

1A method I never saved, already ticked.

2Saved cards and "add new" look identical. The chevron is the only way to add.

3Whatever you type on this screen lives here. Leave, and it's gone.

Checkout picker proposed123
Proposed

1Radios only next to methods that exist in Payment methods. Nothing unlinked is ever pre-selected.

2"Add new" is its own group. Adding here saves to the account, Unverified; the order verifies it.

3One list, read from the account. The primary card is already chosen, so most orders never open this screen.

The point of all of it

A declined card is fine. Finding out at checkout isn't.

The proposal doesn't stop banks declining cards. It changes when you find out, and what you can do about it.

Today
At checkout

Food chosen. You assumed the card would work.

  • The app just failsNo reason, no fix, no card
  • Pay cash, if you have it, or abandon the order
  • The only way to check the card again is another checkout
  • Type the 16 digits again next time
Proposed
In the wallet

A quiet evening. Nothing in the cart.

  • The reason, on screenOnline payments off, wrong expiry, bank block
  • Open the bank app, flip the switch
  • Tap Try again
  • The card stays saved the whole time

Don't make people fix their card at the exact moment they need it most.

The system

One list, four states

Checkout reads the same list as Payment methods. Nothing more.

! Unverified
Payment methods with a card marked Unverified

Saved, not checked

Tap to verify now, or it verifies on the next order.

Primary
Payment methods with one verified primary card

Verified, default

The first verified card becomes primary. No extra badge.

Couldn't verify
Card not verified: the reason and common fixes, with Try again

Bank said no

The card stays. Try again when the bank app is sorted.

✓ Verified
Card verified

Just passed

Done, or set it as primary. The list behind has already updated.

The flow

Add on Tuesday. Pay on Friday.

Three chapters, each in its own colour. No top up, nothing typed twice, and the card is already there when the food is.

Tap a chapter, scroll sideways, or use the arrows
Before and after

Drag it.

One handle moves both screens. Today the wallet offers Change, which only swaps cards. Proposed adds Add; swapping happens on the row itself.

Today: pandapay with one card, Change only
Proposed: pandapay
TodayProposed

The wallet

Today: checkout picker
Proposed: checkout picker
TodayProposed

The checkout picker

Elsewhere

Other apps let you add a card without paying

Most take a small hold and release it. A Rs. 0 check is the cleaner version of the same idea, and it's what the card networks now ask for.

Hold, released
Careem
Profile › Cards and accounts
a small temporary authorization hold of amount (not a charge)
Hold, voided
Uber
Wallet › Add payment method
usually $1, $2, $5
Add before remove
DoorDash
Account › Payment
required to first add a new card before removing the existing card
Pay first
foodpanda today
Checkout, or inside Top up
Saved only after a successful payment
Rs. 0 check
foodpanda proposed
Wallet › Add
Saved at once as Unverified. A Rs. 0 account verification with the bank, or the next order, verifies it
Proposed

How it could backfire, and how I'd know

Risk

Fraudsters use the free form to test stolen card numbers.

How I'd know

Adds per account spike; verification failures cluster on new accounts.

What I'd do

Cap adds per day, OTP on every add, lock adding after three failed checks.

Risk

Unverified cards pile up and still fail at the first order.

How I'd know

Share of first orders placed on an Unverified card, and their decline rate.

What I'd do

Nudge to verify before checkout; run the Rs. 0 check in the background after adding.

Risk

A card can't be checked with the bank.

How I'd know

Verification failure rate by bank.

What I'd do

The card stays saved as Unverified, and the next order verifies it. Never a charge and refund.

Kill criteria

If first-order declines go up after launch instead of down, Add stays but saving waits for verification. The account keeps the card either way.

What success would look like

Signals to watch. Nothing has shipped.

If card setup moves into the account, these are the numbers that should move, for the person and for foodpanda.

SignalWhat I'd watch
Cards saved outside checkoutPeople set up on their own time, not mid order.Adds from Payment methods vs adds from checkout
Fewer first-order declinesThe bank check happened before the food.Decline rate on a card's first payment
Fewer cash fallbacksA working card is already there.Switches to cash after a card failure
Less card re-entryNo more typing 16 digits twice.Repeat card entries per account
More cash users become card usersfoodpanda's own goal, with a first attempt that can succeed.Share of cash-on-delivery users who save a card before their next order
Fewer "where did my card go" ticketsNothing disappears any more.Payment-method support contacts per 1,000 orders

Five-person task test

"Your card expired. Add the new one so it's ready next time." Half on today's app, half on the prototype. Time to find Add; who gives up or starts an order to do it.

To confirm with the payments team

  • Why did checkout only offer a new card once my list was empty? A friend's account with three methods still got the option, so it isn't a limit.
  • Which easypaisa was pre-selected? A fallback or my deleted link. Either way it should show whose it is, or not be selected.
  • Do banks support Rs. 0 checks? Yes. Rs. 0 account verification is a Visa and Mastercard requirement, so no money is ever taken to check a card.

Key takeaways.

Four things this study changed about how I work.

Fail early, not at the worst moment.

The proposal doesn't stop banks saying no. It moves the no to a moment with time to fix it, instead of a checkout with food in the cart.

Now I ask where a failure should land before I design the happy path.

Setup is not a transaction.

Adding, verifying and replacing a card are account jobs. Checkout should read from the account, not stand in for it.

Now I ask which screen owns the data before I draw the form.

Verify, don't charge.

The bank already checks every new card. The networks mandate a Rs. 0 check for exactly this. A Rs. 250 top up was never the only way to know a card works.

Now I look at what the rails already do before I add a step.

Design for where people look.

Three out of three went to Payment methods. The fix belongs where the mental model already points, not where the data happens to live.

Now I start from the first click, not the data model.

The point

A new card should be ready before the food is.

Card setup moves from the checkout into the account, with a verification step the bank already does and states checkout can trust. Seventeen screens, ending where the problem started: at checkout, with the card already there.

Next, from my case studies

Designing and shipping a luxury property website, end-to-end.

That was a self-initiated study. Here's one of my full case studies.

Case studyVerdance: the luxury property website on desktop, tablet and phone