Zipcar

Keep payments moving with a flexible wallet

I led the design of Zipcar’s multi-card wallet across the app and Member Web. A single failed card could interrupt service. We introduced payment choice and backup payments, with clear rules for which card gets charged and what happens when it fails.

A failed card no longer had to end the payment

failed revenue recovered by Backup Payments
$167K/month
growth in Apple Pay and Google Pay usage in five months
13×
processed through digital wallets
$3.5M+

Reported product outcomes. Apple Pay and Google Pay usage grew 13× in five months. The source does not specify the period covered by the $3.5M+ transaction total.

100%

A wallet needs rules, not just more cards

I defined how default, alternative, expired, and removable cards behaved across app and web. When Edit was removed from scope, a default card had no remaining actions. I removed the empty menu instead of leaving an affordance that went nowhere, and worked through the matching app behavior with engineering.

Give payment management a home in the app

Wallet brought payment management into the app. You could see your cards, identify the default, and find only the actions available for each card’s state.

100%

Settings

100%

Wallet

100%

Card controls

Use the same payment model across app and web

We considered keeping payment tools on the web Overview page. A dedicated Wallet gave the growing set of cards and backup controls a clearer home, with the same rules as the app.

100%

Where payment used to live

100%

Where it lives now

Explain backup payments when a second card makes them useful

After you add a card, I placed an explicit choice to turn on backup payments. The promise is plain: if a payment fails, Zipcar can retry another payment method on your account. You can choose Not Now instead. This connects recovery to consent, rather than making fallback charging a surprise.

100%

Wallet

100%

Add new card

100%

Prompt backup enablement

Change payment without abandoning checkout

I reviewed familiar payment selectors in other apps and proposed a vertically stacked list of saved cards and digital wallets. It made the default visible and left room to add a card during checkout. This was pattern research, not a moderated usability study.

100%

Tap to change card

100%

Choose

100%

New card in checkout

One default rule is clearer than two competing promises

We dropped “Save for future bookings” because it competed with choosing a default card. Fewer controls made it easier to understand which payment method would be used next.

100%

Account owner

100%

Driver only account

100%

Driver only account

Warn about expiration before it blocks a trip

App, web, and email warnings told account owners when a card was expiring and how to replace it. Recovery needed to work before a failed booking as well as afterward.

100%

Warning

100%

Expiration notice

Tell drivers what is blocked, even when they cannot fix it

Only account owners manage the wallet, but an expired card can block every driver’s bookings and extensions. I separated the owner’s payment action from the driver’s explanation and next step.

100%

Account owner

100%

Driver only account

Extend the same rules to other transactions

The next design work extended payment selection to trip changes and extensions. Formal moderated research was not a priority in the original delivery plan. I would build it in earlier to test whether the payment hierarchy matched members’ expectations.

100%

Change card while extending

100%

While modifying upcoming trip

Give support agents the same payment clarity

When agents book on a member’s behalf, they also need to identify the default and select an eligible card. The support-tool designs carried the same payment rules into that workflow.

100%

Booking a trip on behalf of a member

100%

Selecting another card on file

What I learned

More flexibility needs clearer rules

More payment methods require explicit rules for default, expired, removable, and backup states.

Failure paths can be revenue paths

What happens after a failed charge can matter as much as successful checkout.

Start with familiar mental models

Familiar payment selectors let us focus attention on the rules unique to Zipcar.


More projects

1 to 4 of 6

Zipcar

Keep payments moving with a flexible wallet

I led the design of Zipcar’s multi-card wallet across the app and Member Web. A single failed card could interrupt service. We introduced payment choice and backup payments, with clear rules for which card gets charged and what happens when it fails.

A failed card no longer had to end the payment

failed revenue recovered by Backup Payments
$167K/month
growth in Apple Pay and Google Pay usage in five months
13×
processed through digital wallets
$3.5M+

Reported product outcomes. Apple Pay and Google Pay usage grew 13× in five months. The source does not specify the period covered by the $3.5M+ transaction total.

100%

A wallet needs rules, not just more cards

I defined how default, alternative, expired, and removable cards behaved across app and web. When Edit was removed from scope, a default card had no remaining actions. I removed the empty menu instead of leaving an affordance that went nowhere, and worked through the matching app behavior with engineering.

Give payment management a home in the app

Wallet brought payment management into the app. You could see your cards, identify the default, and find only the actions available for each card’s state.

100%

Settings

100%

Wallet

100%

Card controls

Use the same payment model across app and web

We considered keeping payment tools on the web Overview page. A dedicated Wallet gave the growing set of cards and backup controls a clearer home, with the same rules as the app.

100%

Where payment used to live

100%

Where it lives now

Explain backup payments when a second card makes them useful

After you add a card, I placed an explicit choice to turn on backup payments. The promise is plain: if a payment fails, Zipcar can retry another payment method on your account. You can choose Not Now instead. This connects recovery to consent, rather than making fallback charging a surprise.

100%

Wallet

100%

Add new card

100%

Prompt backup enablement

Change payment without abandoning checkout

I reviewed familiar payment selectors in other apps and proposed a vertically stacked list of saved cards and digital wallets. It made the default visible and left room to add a card during checkout. This was pattern research, not a moderated usability study.

100%

Tap to change card

100%

Choose

100%

New card in checkout

One default rule is clearer than two competing promises

We dropped “Save for future bookings” because it competed with choosing a default card. Fewer controls made it easier to understand which payment method would be used next.

100%

Account owner

100%

Driver only account

100%

Driver only account

Warn about expiration before it blocks a trip

App, web, and email warnings told account owners when a card was expiring and how to replace it. Recovery needed to work before a failed booking as well as afterward.

100%

Warning

100%

Expiration notice

Tell drivers what is blocked, even when they cannot fix it

Only account owners manage the wallet, but an expired card can block every driver’s bookings and extensions. I separated the owner’s payment action from the driver’s explanation and next step.

100%

Account owner

100%

Driver only account

Extend the same rules to other transactions

The next design work extended payment selection to trip changes and extensions. Formal moderated research was not a priority in the original delivery plan. I would build it in earlier to test whether the payment hierarchy matched members’ expectations.

100%

Change card while extending

100%

While modifying upcoming trip

Give support agents the same payment clarity

When agents book on a member’s behalf, they also need to identify the default and select an eligible card. The support-tool designs carried the same payment rules into that workflow.

100%

Booking a trip on behalf of a member

100%

Selecting another card on file

What I learned

More flexibility needs clearer rules

More payment methods require explicit rules for default, expired, removable, and backup states.

Failure paths can be revenue paths

What happens after a failed charge can matter as much as successful checkout.

Start with familiar mental models

Familiar payment selectors let us focus attention on the rules unique to Zipcar.


More projects

1 to 4 of 6

Zipcar

Keep payments moving with a flexible wallet

I led the design of Zipcar’s multi-card wallet across the app and Member Web. A single failed card could interrupt service. We introduced payment choice and backup payments, with clear rules for which card gets charged and what happens when it fails.

A failed card no longer had to end the payment

failed revenue recovered by Backup Payments
$167K/month
growth in Apple Pay and Google Pay usage in five months
13×
processed through digital wallets
$3.5M+

Reported product outcomes. Apple Pay and Google Pay usage grew 13× in five months. The source does not specify the period covered by the $3.5M+ transaction total.

100%

A wallet needs rules, not just more cards

I defined how default, alternative, expired, and removable cards behaved across app and web. When Edit was removed from scope, a default card had no remaining actions. I removed the empty menu instead of leaving an affordance that went nowhere, and worked through the matching app behavior with engineering.

Give payment management a home in the app

Wallet brought payment management into the app. You could see your cards, identify the default, and find only the actions available for each card’s state.

100%

Settings

100%

Wallet

100%

Card controls

Use the same payment model across app and web

We considered keeping payment tools on the web Overview page. A dedicated Wallet gave the growing set of cards and backup controls a clearer home, with the same rules as the app.

100%

Where payment used to live

100%

Where it lives now

Explain backup payments when a second card makes them useful

After you add a card, I placed an explicit choice to turn on backup payments. The promise is plain: if a payment fails, Zipcar can retry another payment method on your account. You can choose Not Now instead. This connects recovery to consent, rather than making fallback charging a surprise.

100%

Wallet

100%

Add new card

100%

Prompt backup enablement

Change payment without abandoning checkout

I reviewed familiar payment selectors in other apps and proposed a vertically stacked list of saved cards and digital wallets. It made the default visible and left room to add a card during checkout. This was pattern research, not a moderated usability study.

100%

Tap to change card

100%

Choose

100%

New card in checkout

One default rule is clearer than two competing promises

We dropped “Save for future bookings” because it competed with choosing a default card. Fewer controls made it easier to understand which payment method would be used next.

100%

Account owner

100%

Driver only account

100%

Driver only account

Warn about expiration before it blocks a trip

App, web, and email warnings told account owners when a card was expiring and how to replace it. Recovery needed to work before a failed booking as well as afterward.

100%

Warning

100%

Expiration notice

Tell drivers what is blocked, even when they cannot fix it

Only account owners manage the wallet, but an expired card can block every driver’s bookings and extensions. I separated the owner’s payment action from the driver’s explanation and next step.

100%

Account owner

100%

Driver only account

Extend the same rules to other transactions

The next design work extended payment selection to trip changes and extensions. Formal moderated research was not a priority in the original delivery plan. I would build it in earlier to test whether the payment hierarchy matched members’ expectations.

100%

Change card while extending

100%

While modifying upcoming trip

Give support agents the same payment clarity

When agents book on a member’s behalf, they also need to identify the default and select an eligible card. The support-tool designs carried the same payment rules into that workflow.

100%

Booking a trip on behalf of a member

100%

Selecting another card on file

What I learned

More flexibility needs clearer rules

How to collaborate and problem solve with Product teams

Failure paths can be revenue paths

Proper Engineering handoff and if-then thinking for happy and unhappy paths

Start with familiar mental models

The importance of proper documentation in Figma


More projects

1 to 4 of 6