Buy Now, Pay Later (BNPL) apps sit at the intersection of fintech and e-commerce. Deep links need to handle both sides: linking to payment plans and installment management (fintech) and linking to merchant offers and shopping experiences (e-commerce). The key challenge is connecting the BNPL app to merchant apps and websites seamlessly.
This guide covers deep linking patterns for BNPL apps. For broader fintech deep linking, see deep linking for fintech and banking apps. For e-commerce deep linking, see deep linking for e-commerce apps.
Route Patterns
Payment Plans
/plans → Active payment plans
/plans/{plan-id} → Specific plan detail
/plans/{plan-id}/payment → Make a payment on a plan
/plans/{plan-id}/schedule → Payment schedule
/plans/{plan-id}/payoff → Early payoff option
Shopping
/shop → Browse merchants
/shop/{merchant-slug} → Merchant page
/shop/{merchant-slug}/offers → Merchant-specific offers
/offers → All current offers
/offers/{offer-id} → Specific offer detail
Virtual Card
/card → Virtual card overview
/card/details → Card number, CVV, expiration
/card/merchants → Where to use the card
Account
/spending-limit → Current spending limit
/spending-limit/increase → Request limit increase
/payments → Payment history
/payments/upcoming → Upcoming payments
/payments/overdue → Overdue payments
Checkout
/checkout/{merchant}/{amount} → BNPL checkout for a specific purchase
/prequalify → Check spending power
Key Deep Link Flows
Payment Reminder
The most critical deep link for BNPL apps. When a payment is due:
func handlePaymentReminder(_ planId: String) {
guard authManager.isAuthenticated else {
pendingDeepLink = "/plans/\(planId)/payment"
showLogin()
return
}
guard let plan = planManager.getPlan(planId) else {
showError("Payment plan not found.")
return
}
// Show the payment screen with the amount pre-filled
showPaymentScreen(
plan: plan,
amount: plan.nextPaymentAmount,
dueDate: plan.nextPaymentDate
)
}
Merchant Offer
When a merchant partner has a promotion:
https://links.bnplapp.com/shop/nike/offers
This deep link should:
- Open the BNPL app to Nike's offer page.
- Show available promotions (0% interest, special terms).
- Include a "Shop Now" button that opens Nike's website or app with BNPL as a payment option.
In-Store Checkout
BNPL at physical stores uses a virtual card or QR code:
https://links.bnplapp.com/card/details
This deep link from an in-store QR code should:
- Open the app directly to the virtual card screen.
- Display the card number, CVV, and expiration.
- Allow adding to Apple Pay or Google Pay.
Email Deep Links
Payment Due
<p>Your payment of $62.50 for your Amazon purchase is due on July 15.</p>
<a href="https://links.bnplapp.com/plans/PLAN-123/payment">
Make Payment
</a>
Overdue Payment
<p>Your payment of $62.50 is overdue. A late fee may apply.</p>
<a href="https://links.bnplapp.com/payments/overdue">
Pay Now
</a>
Spending Limit Increase
<p>Great news! Your spending limit has been increased to $2,000.</p>
<a href="https://links.bnplapp.com/spending-limit">
View Your Limit
</a>
New Merchant Partner
<p>You can now use BNPLApp at Sephora! Get 4 interest-free payments on beauty products.</p>
<a href="https://links.bnplapp.com/shop/sephora">
Shop at Sephora
</a>
Push Notification Deep Links
| Notification | Deep Link | Priority |
|---|---|---|
| Payment due tomorrow | /plans/{plan-id}/payment |
High |
| Payment overdue | /payments/overdue |
Critical |
| Payment confirmed | /plans/{plan-id} |
Normal |
| Spending limit increase | /spending-limit |
Normal |
| New merchant offer | /shop/{merchant} |
Normal |
| Plan paid off | /plans/{plan-id} |
Normal |
| Referral bonus | /rewards |
Normal |
Cross-App Deep Linking
BNPL apps interact with merchant apps. Deep links bridge the two:
From BNPL App to Merchant
When a user taps "Shop at Nike" in the BNPL app:
func openMerchant(_ merchantSlug: String) {
let merchantUrl = merchantURLs[merchantSlug]
// Try to open the merchant's app via Universal Link
if let url = URL(string: merchantUrl) {
UIApplication.shared.open(url) { success in
if !success {
// Merchant app not installed, open web
let webUrl = URL(string: "https://\(merchantSlug).com")!
UIApplication.shared.open(webUrl)
}
}
}
}
From Merchant to BNPL App
When a user selects BNPL at checkout on a merchant's website:
https://links.bnplapp.com/checkout/nike/149.99
This opens the BNPL app with the purchase amount pre-filled, allowing the user to split the payment.
Deferred Deep Links for BNPL
Deferred deep linking is critical for BNPL growth:
- User sees an ad: "Split your purchases into 4 payments. Get $10 off your first order."
- User taps the ad: Redirected to the app store (user does not have the app).
- User installs the app: After opening, the app retrieves the deferred deep link data.
- User lands on the offer: The $10 off offer is applied to their account.
Without deferred deep linking, the user installs the app but lands on the home screen. They may never find the offer that motivated them to install.
Regulatory Considerations
BNPL is increasingly regulated:
- CFPB oversight. The Consumer Financial Protection Bureau treats BNPL products as credit. Marketing deep links must comply with credit advertising rules.
- Disclosure requirements. Deep links to checkout or pre-qualification flows should include or link to required disclosures (APR, late fees, terms).
- Affordability checks. Deep links should not bypass affordability assessments. Pre-qualification must happen before offering credit.
Tolinku for BNPL Apps
Tolinku supports the route patterns BNPL apps need. Define routes for payment plans, merchant offers, and checkout flows in the Tolinku dashboard. Deferred deep linking ensures promotional offers are preserved through app install.
For payment deep links, see payment deep links. For fintech deep linking, see deep linking for fintech and banking apps.
Get deep linking tips in your inbox
One email per week. No spam.