iOS Unified Payments Interface (UPI) Device Validation
iOS Unified Payments Interface (UPI) Device Validation
Objective:
Apple Inc. has introduced a new instance method for validation of SMS sent at application
itself. This validation method identifies if the SMS is sent from the same device from which it
was originally initiated.
1. Xcode 15
2. Entitlement Certificate from the Apple Team, it can be either manual or by providing the
certification from the NPCI UPI Team on the following link.
https://developer.apple.com/contact/request/upi-device-validation
Application should check whether the iOS version is above 17.0, if yes then it should by
default initiate the SMS with the UPI Device Validation Completion Handler.
If the iOS version is above 13.4 and below 17.0 then it should use the ongoing flow with
all the checks defined. (Keeping RMD 004 and RMD 005 in check).
Process:
Post app initiates the device binding SMS to the long code, there should be an additional
Callback made to the application with a Boolean Value (True/False), whether the SMS has
been sent or not. This will be initiated after the Send SMS is manually done by the user from
their device. Due to this, the callback confirmation will be able to inform Application that the
SMS is sent from the same device for which the SMS was initiated for device binding process.
1. Get whitelisted from Apple via NPCI to use this API with details like App Id and App
name. More details on the entitlements can be found here
(https://developer.apple.com/documentation/bundleresources/entitlements/com_appl
e_developer_upi-device-validation)
2. Install Xcode 15 and have iOS 17 Device Ready.
3. If the application is whitelisted to this new entitlement, the Xcode will be able to see
the UPI Device Validation in the additional capabilities section on production identifiers
on Developer account.
4. Add the iOS17 installed device to the provisional profile and refresh the provisional
profile and download again and install locally (If Automatic Signing is enabled on Xcode
for the project, then no need to download and install provisional profile manually on
Xcode).
5. Add Entitlements to entitlements list by selecting type as Boolean and value as Yes.
Documentation of above API can be found here:
https://developer.apple.com/documentation/messageui/mfmessagecomposeviewcontroller/4
240039-setupiverificationcodesendcomple
Please refer following table to understand the test cases and expected outcomes:
With Valid SIM but without SMS pack also Application Should
Valid SIM Without SMS Pack
see the same result as scenario #1 - Inactive SIM on Device
For app whitelisting you can reach out to your relationship manager or write to
[email protected], app ID detail needs to be provided in below format.