If you’ve split a trip’s expenses with friends in India any time in the last few years, you’ve settled it over UPI. Someone opens their bank app, taps pay, types in a phone number or an ID, punches in an amount, and it’s done in under a minute. It’s the one piece of a trip’s planning that happens after everyone’s home, and it’s become so ordinary that it’s easy to miss the small ways it can still go wrong.
Why UPI won for this specific job
Splitting a trip’s costs used to mean cash changing hands at odd moments, or a bank transfer that needed an account number, an IFSC code, and a day to clear. UPI collapsed that into a single ID and a few seconds. No processor sits in the middle holding the money; it moves bank to bank, instantly, for free. That matches the actual shape of a trip’s expenses: lots of small, person-to-person amounts, settled the moment someone remembers rather than batched into an end-of-month reckoning.
It also matches the shape a trip’s costs already have once the bills have been split: several small debts owed between individuals, not one big invoice. UPI is built for exactly that shape of payment, not for the once-a-year transfer a bank wire is designed around.
VPA versus phone number
Every UPI payment needs a destination, and there are two common ways to give one. A VPA, a virtual payment address, looks like a username at a bank handle, something like priya@okhdfc. A phone number works too, if it’s linked to a UPI account, which most people’s are. Either gets you to the same place.
The practical difference shows up when someone’s phone number has changed, or when their UPI handle isn’t obviously tied to their name, one of the generic ones a bank hands out by default. A VPA saved once stays correct even if the number behind it changes; a phone number becomes a guess the day someone switches SIMs. For a group that settles with the same five or six people trip after trip, the VPA is the more durable thing to have on file.
The deep link is doing more work than it looks like
A UPI deep link, the kind that opens as upi://pay?... with the payee and amount already filled in, removes the single most common way a rupee transfer goes wrong, which is typing it in by hand. Manually entering a long VPA and then a rupee amount on a phone keyboard is exactly the kind of task where a stray digit slips through, a nine becomes a four, a hundred becomes a thousand, and nobody catches it until the receipt shows up wrong.
A pre-filled link removes the two fields most likely to get fat-fingered. The person paying still opens their own UPI app, still sees the exact amount and payee before confirming, and still has to approve it with their UPI PIN. The link only removes the retyping, not the confirmation, and that confirmation step is also the safety check: a payer who actually reads the payee name before tapping confirm catches the rare case where an old, wrong VPA got saved.
Limits, failures, and the pending state
UPI has transaction limits that vary by bank and by app, but a common ceiling sits around one lakh rupees per transaction. This almost never matters for splitting a dinner or a cab, but it can matter for a large shared cost, a whole trip’s accommodation booked by one person and reimbursed by the rest. When a single owed amount would bump into that ceiling, split it into two payments rather than fighting the limit.
Failures happen for ordinary reasons: a bank server hiccup, a mismatched PIN attempt, a payee ID that’s since been deactivated. Most fail instantly and cleanly, with the money never leaving the payer’s account. The more confusing state is pending, where a payment sits as processing for a few minutes while the two banks reconcile. It almost always resolves on its own within the hour; if it doesn’t, both apps show a reference number, and that’s what a support query starts with, not a screenshot of the group chat.
Marking it settled is a courtesy, not a formality
Once a UPI payment clears, say so. Not because anyone’s tracking it forensically, but because the debtor knows it went through and the creditor doesn’t have to wonder if it’s still coming. A one-line “paid” closes the loop for everyone else too, since the next person checking who still owes what, especially once you tally what the trip actually cost against what was collected, shouldn’t have to ask around.
Where UPI stops working
UPI runs entirely on India’s domestic payment rails: the banks, the phone numbers, and the regulatory plumbing behind it are all India-specific. A friend group on a trip in Southeast Asia, Europe, or anywhere outside India can’t tap a UPI deep link to settle up, because there’s no rail on the other end for it to land on. That’s a limit of the rail itself, not something an app can route around.
What doesn’t stop working outside India is everything upstream of the payment itself. Splitting an expense, tracking who paid what, computing each person’s net balance, working out the minimum number of transfers to clear them, exactly the arithmetic covered in settling up with the fewest transfers, is just numbers. None of it depends on a payment rail. A group in Bali or Bangkok gets the same settle-up plan a group in Goa does; they just settle it however they already move money between each other and mark it paid the same way.
This is roughly where manzil sits: it builds the UPI pay link for India-based settling, and computes the same settle-up plan regardless of where the trip happens, since the arithmetic doesn’t care about geography even when the payment rail does. It’s invite-only right now, but free to download on iOS and Android in any country either store serves, while you wait on a code. Either way, understand what UPI is actually doing, the pre-filled amount, the confirmation step, the instant settlement, and you’ll spot the rare failure before it becomes a group-chat argument.