Transfer App-Switch cover
MediumProductRoleFounding Engineer & Tech Lead

Transfer App-Switch

2025 · Live

Founding engineer on the Thailand build in late 2024 as the sole engineer on the original release, then tech lead on the multi-market scale-out to Vietnam and the Philippines. The feature detects bank or wallet account info shared in a Messenger chat, routes through a country-aware resolver, and deep-links into the user's chosen local payments app with the recipient details prefilled. Messenger is the bridge; the bank app does the transfer. Now serving millions of monthly transactions across three markets.

Internal app-coverage dashboard with three columns labeled Thailand, Vietnam, Philippines. Thailand shows K PLUS, KTB NEXT, SCB EASY, TrueMoney. Vietnam shows MoMo, Techcombank, MB Bank, ACB One, VPBank Neo, Vietcombank and a footer line 'and 5 more'. Philippines shows GCash and Maya. Each tile has a 99.9% uptime indicator and a LIVE status pill. Footer reads 'Routing latency p95 142ms · Payload prefill 99.6%'.
Country to app coverage. A new market is a config bundle, not a release.
System diagram: a shared recipient info bubble in a Messenger chat flows into an App-Switch router, which resolves the country and the right local app, builds a prefill payload, opens the bank or wallet app, and routes the bank's confirmation back as a status callback to Messenger.
The bridge pattern. Meta carries no money. The bank or wallet app processes the transfer.

Overview

Messaging-driven commerce dominates Southeast Asia and almost all of it ends the same way: the seller shares an account number in a chat, the buyer screenshots it, leaves to open their bank app, types the digits, sends a slip back, waits for confirmation. Every step is a place to lose the sale. The product question: can the seller share their info once and the buyer be one tap from a prefilled transfer inside their own bank app? Saying yes to that is Meta also saying no to becoming a payments processor. The architecture had to make the bank app the next tap, not replace it.

Approach

The system is a bridge, not a processor. Messenger recognizes a shared recipient (account number, wallet handle, QR), surfaces a Transfer button, and routes through an App-Switch resolver that resolves the country, the active local apps there, and the prefill payload each partner expects. The user picks an app; the deep link opens it with details already typed; the bank or wallet runs the transaction; status flows back as a receipt event. No licensing surface, no settlement engine, banks stay the source of truth. Per-country apps are configuration, not code paths, so a new market is a config bundle and a partner kickoff. Deep-link schemes are versioned per partner, so a single update covers every market on that app.

Outcome

Launched in Thailand in 2025 with K PLUS, Krungthai NEXT, SCB Easy, and TrueMoney. Scaled to Vietnam in August 2025 at Meta's Business Messaging Summit in Ho Chi Minh City, across eleven banks and wallets including MoMo, Vietcombank, Techcombank, MB Bank, VPBank Neo, and six more. Live in the Philippines through GCash and Maya. Partner press from Kasikorn, SCB, Vietcombank, and Meta Vietnam has named the service publicly. Volume runs in the millions of monthly transactions across the three markets.

Reflections

In payments you don't beat the bank, you make the bank the next tap. The user's trust in their banking app is the load-bearing layer; anything trying to disintermediate it fights regulators, habits, and SLA economics at once. GTM is a product feature. Thailand came with a real cashback co-campaign budget, Vietnam launched on a stage at Business Messaging Summit, the Philippines leaned on Xendit's merchant footprint. Engineering that didn't accommodate the partners would have shipped on time and to nobody. The abstractions you build for the second market are how you survive the third: Thailand to Vietnam was the hard scale-out; the Philippines was a config bundle.