Repository navigation
Add Scan to Pay app deeplinks and audience-gate the QR / bank transfer - #137
Merged
peter-paystack merged 2 commits intoOct 12, 2026
Merged
Conversation
…r UI
Scan to Pay customers on a phone can now hand off to their banking app
instead of scanning the QR code on their own screen. The QR number the
API already returns is used to build a Masterpass deeplink per app.
- Add ScanToPayApp + ScanToPayAppDirectory covering the 13 supported
apps, with three deeplink shapes (FNB/RMB's https handoff, Nedbank's
nedbank:// scheme, and the generic masterpass.app.scheme:// form) and
a URIComponentEncoder matching JS encodeURIComponent's allowed set
- Add ScanToPayAppPickerView, a grid of app icons pushed from the QR
screen behind a new "See Scan to Pay apps" button; failing to open an
app surfaces an inline message rather than failing silently
- Rename QRVariant.showsQRReferenceRow to supportsAppDeeplinks and turn
it on for Scan to Pay, so QRDetails keeps the qrCode the deeplinks
need; SnapScan is unchanged
- Gate the new elements by audience: customer-facing gets the QR number,
the apps button and "Open any Scan to Pay app…" copy, merchant-facing
keeps the QR code and scan instruction
- Gate the bank transfer copy buttons the same way — they're useless on
a merchant-facing display where the customer can't tap them
- Add ScanToPayAppDirectoryTests (deeplink shapes, encoding, initials)
and UIElementVisibilityTests, plus previews for both audiences
peter-paystack
marked this pull request as ready for review
October 9, 2026 11:27
peter-paystack
requested review from
a team,
michael-paystack,
vusi-paystack and
zaheer-paystack
as code owners
October 9, 2026 11:27
zaheer-paystack
previously approved these changes
Oct 9, 2026
The ScanToPayApps imagesets were committed with empty 1x slots, so
every app row in the Scan to Pay list rendered a blank icon.
- Add the 13 missing PNGs (Absa, Avo, Capitec, FNB, Instapay, Nedbank
Money, Nedbank Scan to Pay, RMB, Scan to Pay, Spot, Standard Bank,
Telkom Pay, Vodapay)
- Point each imageset's 1x entry at its filename
- Add ScanToPayAppDirectoryTests.testEveryAppIconLoadsFromTheBundle so
a missing or misnamed asset fails CI instead of shipping blank
|
zaheer-paystack
approved these changes
Oct 12, 2026
peter-paystack
deleted the
feature/audience-gate-the-QR-bank-transfer-UI
branch
October 12, 2026 07:37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Scan to Pay customers on a phone can now hand off to their banking app
instead of scanning the QR code on their own screen. The QR number the
API already returns is used to build a Masterpass deeplink per app.