Key takeaways
- Google Play limits SMS reading to default messaging apps, so store-listed wallets cannot scan your inbox.
- Paste and share-sheet import work everywhere; only a direct install can scan the messages you already forgot.
- An importer with that power should filter to voucher cues, exclude passcodes, and send one message at a time, only when opened.
If you have ever wondered why your gift-card app makes you copy and paste every voucher by hand, the answer is a policy, not a technical limit.
Where vouchers actually arrive
Employer benefits, restaurant coupons, gift cards from friends, refunds as store credit: in most markets, and in Israel almost universally, these land as an SMS with the amount, a code and a date, written in whatever format the sender's system produces. Reading them is a parsing problem. Getting at them is the harder part.
The Play policy
Since 2019 Google Play has restricted the READ_SMS permission to apps whose core purpose is messaging: the SMS and Call Log permissions policy allows it only for the default SMS handler and a short list of exceptions, none of which is a voucher wallet. An app listed on Play therefore cannot read your inbox, however clearly it asks. The policy exists for good reason; the same permission reads one-time passcodes.
What a store app can do instead
Three things, and they are all fine as far as they go. It can accept a paste: you copy the message, open the app, paste, and the parser does the rest. It can register as a share target so the messaging app's share button sends the text across. Or it can rely on you typing. None of them scans the last six months of the inbox for the vouchers you already forgot.
What a direct install can do
An app installed directly, outside the store, can request READ_SMS and Android will still ask you before granting it. That reopens the inbox, and it also raises the bar for how the app should behave, because now it can see everything.
The rules a careful importer follows: read nothing until permission is granted and the importer is opened; list only messages that match voucher cues, gift card, voucher, coupon, benefit, redeem code, barcode, in both languages; exclude anything matching a one-time-passcode pattern outright; send a message off the phone only when you open that specific one, and say so on the screen; remember which messages were imported so the same one is never offered twice.
How PeakVoucher does it
PeakVoucher ships the SMS importer in a direct install, exactly because it cannot carry the permission on Play. Open the importer, grant the permission, and it lists voucher-looking messages from the last year ranked by how voucher-like they are, with passcodes filtered out before the list exists. Open one and the assistant reads the amount, the expiry and the codes into a preview you can correct; import saves it and remembers the message. The same parser sits behind paste and behind the share sheet, so a phone without the permission still gets everything except the scan.
PeakVoucher is built for this
A wallet for the vouchers buried in your messages. Coming soon, in private beta.
Questions
Is a direct install safe?
Will PeakVoucher be on Google Play?
Does the importer read my bank codes?
Sources
- Google Play. Use of SMS or Call Log permission groups (developer policy). https://support.google.com/googleplay/android-developer/answer/10208820
- Android Developers. Manifest.permission: READ_SMS. https://developer.android.com/reference/android/Manifest.permission#READ_SMS