Commit first, verify second

Locked

Foreign Account dummy Home preview, locked: to transact, let's activate your number first

Unlocked

  • Balance
  • Send and request
  • QRIS pay
  • Deals
  • Feed
Left, the dummy Home’s locked state. Right, what the flow’s last step unlocks.

Pay like a local, without a local SIM.

Foreign Account App Experience 2025 to 2026 iOS & Android Principal designer Visa announcement

Read the story

OTP's biggest leak

OTP is DANA onboarding’s biggest cost, and one leak stood out above the rest: a user mistypes their number on the registration screen, we fire a code to a stranger’s phone, and nobody ever sees it. Money spent, user never arrives.

The team asked a blunt question: what if a new number skips OTP entirely, lands on a locked Home, and only verifies when they top up by card? The card OTP becomes the verification. No code sent until the user has already shown intent.

It was an unpopular idea. Risk and product pushed back, which is fair: letting people in before verifying them cuts against every fintech instinct. The mandate came from our COO, and it survived on one argument, the potential saving. Foreigners became the stage: a low-risk segment to prove the model on, and an expansion bet at the same time.

No foreign numbers allowed

Before: picture the arrival

  1. A tourist lands in Bali, hunts for an ATM

  2. Carries a pocket of cash

  3. Queues at a SIM counter just to get a local number

  4. Only then can they even open a DANA account

With Foreign Account: pay in Bali with your home number

  1. Land

  2. Bind a card

  3. Use QRIS like a local

Every step is friction before the first payment.

Before this project, DANA had no foreign capability at all. No QRIS for food and shops, no send and request money, no rides, no lifestyle buys, unless you owned an Indonesian number. With Bali alone drawing 1.4 million foreign visits in the first quarter of 2026, that gap kept the exact people who most needed digital payments locked out of them.

Goals

Cut wasted OTP sends

Move verification to redeem time.

Solved at step 3

The card’s own OTP verifies the number when a card is bound.

Register with an origin prefix

No local SIM. A new prefix selector is the first new control a foreign user meets.

Solved at step 1

The origin number goes in through the new prefix selector.

Make the locked state explain itself

One screen has to teach an uncommon model: you are in, but top-up unlocks the rest.

Solved at step 2

The Add Bank Card paywall states the deal and the fee before anything else.

Scope access honestly

Send, request, QRIS and lifestyle work. Indonesian-only services such as PBB and Samsat stay out.

Solved at step 5

The last step names exactly what unlocks; Indonesian-only services are not on it.

I owned design end to end as principal designer, working with a product manager, front-end and back-end engineers, QA, research, and copy.

Teaching an uncommon model

The hard part was mental model. Nobody expects an app to let you in before it verifies you, and the booth confirmed it: some screens needed explaining twice. So the dummy Home and the paywall had to do all the teaching on their own. Most iterations were wording, tested until a tourist landing at midnight could understand that topping up unlocks the rest.

Two framing decisions held: the phone input keeps its new prefix step up front, and the welcome screen stays in Indonesian as a deliberate immersion instead of a generic hello.

Selamat Datang

Onboarding sells the card, four ways

Onboarding stays in English across four screens. Every screen ends in the same action: add a card.

Onboarding screen: pay for food, shop, and more with QRIS on DANA
QRIS at merchants
Onboarding screen: safe rides with swift payments
Swift ride payments
Onboarding screen: send money to friends on DANA
Send to friends
Onboarding screen: link an international card, Visa, JCB, Mastercard, Amex, UnionPay supported
Link an international card

The flow that shipped

  1. Enter an origin number with the new prefix selector.

  2. New numbers meet the Add Bank Card paywall at once, fee disclosed; X escapes to the dummy Home.

    Bind a card to use DANA, no top-up needed, pay directly, with a Rp15.000 (±US$1) registration fee stated up front. Tapping X slips through to the dummy Home instead, where almost everything still asks for top-up first.

    Add Bank Card paywall: bind a card to use DANA with a Rp15.000 registration fee
    Add Bank Card, fee up front
  3. Bind a debit or credit card, verified by the card’s own OTP.

  4. Pay directly with QRIS, no top-up step. Or top up first via the dummy Home path.

  5. The real Home unlocks: balance, send and request, QRIS pay, deals and feed.

Card linking, cashier confirmation, fee information, SMS OTP, and PIN creation sit inside that chain. Unsupported destinations route back with a clear not-supported state instead of failing silently.

What the booth taught us

  1. The partnership groundwork came first

    Visa and DANA announced the first setup of its kind in Indonesia: pay QRIS and top up DANA directly with a Visa card, built on three pillars of QR cross-border, Foreign Account, and card binding.

  2. An activation booth inside the airport

    The first contact was physical: staff helped tourists download DANA and register on the spot with their origin number. The design team wasn’t on the floor; the front-liners were our eyes. They relayed back what stumbled people, and that loop fed directly into the wording iterations.

    The airport exposed what Figma could not. Word came back from the front-liners that correct foreign numbers were failing validation, with real tourists standing at the booth. Foreign SMS delivery was failing with them. The fix lived at provider and back-end level, not in copy, and it only surfaced because someone was watching strangers use the thing.

  3. The public launch

    At the Padel DANA Open Bali Series in Canggu, going live nationwide on : origin number plus a bound card plus QRIS, pitched as paying like a local.

DANA x VISA From Local to Global stage slide in Singapore
DANA x VISA, From Local to Global, Singapore
Stage demo: bind a VISA card with an origin-country number and pay with QRIS
Live demo: origin number, bound VISA, QRIS payment

Early adoption beat expectations

After handoff the flow went through several more iterations and kept growing, onto a regional stage.

25,000+ 150,000+

Foreign users

Registered within months of the Nov 2025 announcement, heading into the early-2026 airport activation and the August Bali rollout; then by August 2026

40M+
QRIS merchants nationwide, the surface it landed on
93%
of them small and micro businesses

Competitors pay foreign verification cost upfront. We asked the user to commit first.

The commit-first logic even got a price tag: a Rp15.000 (±US$1) registration fee on card binding, which prices out OTP-spam accounts before a single code is wasted.

Where they came from. The top ten origins stretch from Australia and Malaysia to South Korea, Japan, the US, and the UK.

The lesson held: unverified-first only works when the next value is immediate and the locked screen says what unlocks it in plain words. And an unpopular idea survives when the cost argument is real enough to carry it through risk, product, and every team that has to ship it.