Neobanks are mobile-first, which means deep linking is central to how users interact with the product. Every notification, email, and marketing campaign should link directly into the app. A push notification about a suspicious transaction should open the transaction detail. A referral link from a friend should launch the signup flow with the referral bonus applied. A marketing email about a new savings feature should open that feature directly.
This guide covers deep linking patterns for neobanks and digital banks. For broader fintech deep linking, see deep linking for fintech and banking apps. For onboarding flows, see banking app onboarding deep links.
Route Patterns
Accounts
/accounts → Account overview
/accounts/{account-id} → Specific account
/accounts/{account-id}/transactions → Transaction history
/accounts/{account-id}/statements → Statements
/accounts/{account-id}/details → Account details (routing number, etc.)
Transactions
/transactions/{tx-id} → Transaction detail
/transactions/search → Transaction search
/transactions/categories → Spending categories
Cards
/cards → All cards
/cards/{card-id} → Card detail
/cards/{card-id}/activate → Card activation flow
/cards/{card-id}/freeze → Freeze/unfreeze card
/cards/{card-id}/pin → Set/change PIN
/cards/{card-id}/limits → Spending limits
Features
/savings → Savings overview
/savings/{goal-id} → Specific savings goal
/invest → Investment section
/rewards → Rewards and cashback
/budgets → Budget overview
/direct-deposit → Direct deposit setup
Transfers
/transfer → New transfer
/transfer/internal → Between own accounts
/transfer/external → To external account
/transfer/p2p/{username} → Send to a specific user
/transfer/international → International transfer
Onboarding
/signup → Start signup
/signup/{referral-code} → Signup with referral
/verify → KYC verification step
/fund → Initial funding
Key Deep Link Flows
Card Activation
New customers receive a physical or virtual card and need to activate it:
func handleCardActivation(_ cardId: String) {
guard authManager.isAuthenticated else {
pendingDeepLink = "/cards/\(cardId)/activate"
showLogin()
return
}
guard let card = cardManager.getCard(cardId) else {
showError("Card not found. Please contact support.")
return
}
switch card.status {
case .inactive:
showActivationFlow(card)
case .active:
showCardDetail(card, message: "This card is already active.")
case .frozen:
showCardDetail(card, message: "This card is frozen. Unfreeze before using.")
case .expired, .cancelled:
showError("This card is no longer available.")
}
}
Direct Deposit Setup
Many neobanks promote direct deposit. The deep link should guide users through setup:
https://links.neobank.com/direct-deposit
This link from an email or in-app message should open the direct deposit setup screen showing the routing number, account number, and instructions for setting up with the employer.
Referral Program
Neobank referrals are a primary growth channel:
func handleReferralDeepLink(_ url: URL) {
guard let code = url.pathComponents.last else { return }
if authManager.isAuthenticated {
// Existing user tapped a referral link
showMessage("You already have an account. Share your own referral link to earn rewards.")
} else {
// New user
showSignupFlow(referralCode: code)
}
}
The referral deep link should:
- Show the referral bonus ("You and your friend each get $25").
- Start the signup flow with the referral code pre-applied.
- Work as a deferred deep link (referral code preserved through app install).
Email Campaign Deep Links
Statement Ready
<p>Your July 2026 statement is ready.</p>
<a href="https://links.neobank.com/accounts/ACC-123/statements">
View Statement
</a>
Spending Insights
<p>You spent $450 on dining this month, 15% more than last month.</p>
<a href="https://links.neobank.com/transactions/categories">
View Spending Breakdown
</a>
New Feature Launch
<p>Introducing Round-Up Savings. Every purchase rounds up to the nearest dollar, and the extra goes to your savings.</p>
<a href="https://links.neobank.com/savings">
Enable Round-Up Savings
</a>
Frozen Card Alert
<p>Your card ending in 4589 has been frozen due to suspicious activity.</p>
<a href="https://links.neobank.com/cards/CARD-456">
Review Card Activity
</a>
Push Notification Deep Links
| Notification | Deep Link | Priority |
|---|---|---|
| Transaction alert | /transactions/{tx-id} |
High |
| Low balance warning | /accounts/{account-id} |
High |
| Card frozen (fraud) | /cards/{card-id} |
Critical |
| Direct deposit received | /accounts/{account-id}/transactions |
Normal |
| Savings goal reached | /savings/{goal-id} |
Normal |
| Referral bonus earned | /rewards |
Normal |
| Card shipped | /cards/{card-id} |
Normal |
| Bill due reminder | /transfer |
High |
Security
Sensitive Data in Deep Links
Never include sensitive data in the URL itself:
BAD: /accounts/ACC-123?balance=5430.50
GOOD: /accounts/ACC-123
The app fetches account details after authenticating the user. The URL only specifies where to navigate, not what data to display.
Authentication Requirements
Every deep link to account, card, or transaction data must require authentication:
fun handleDeepLink(uri: Uri) {
val path = uri.path ?: return
// Public routes (no auth needed)
val publicRoutes = listOf("/signup", "/help", "/about")
if (publicRoutes.any { path.startsWith(it) }) {
navigateTo(path)
return
}
// All other routes require auth
if (!authManager.isAuthenticated) {
pendingDeepLink = path
showLogin()
return
}
// High-security routes need step-up auth
val sensitiveRoutes = listOf("/cards/", "/transfer", "/settings/security")
if (sensitiveRoutes.any { path.startsWith(it) }) {
requestBiometric {
navigateTo(path)
}
return
}
navigateTo(path)
}
Fraud Prevention
Monitor deep link patterns for abuse:
- Rapid attempts to access different account IDs (account enumeration).
- Deep links to transfer pages with pre-filled amounts (social engineering).
- Unusual patterns of card freeze/unfreeze via deep links.
Tolinku for Neobanks
Tolinku supports the route patterns neobanks need. Define routes for accounts, cards, transfers, and features in the Tolinku dashboard. The privacy-first approach (no fingerprinting) aligns with financial regulation requirements.
For payment deep links, see payment deep links. For banking onboarding, see banking app onboarding deep links.
Get deep linking tips in your inbox
One email per week. No spam.