0% found this document useful (0 votes)
304 views

iOS Unified Payments Interface (UPI) Device Validation

This document outlines Apple's new iOS UPI Device Validation API which allows applications to validate if an SMS was sent from the same device it was initiated on. It provides the prerequisites, setup process, and usage of the API. Developers can add the entitlement to be notified via a callback with a boolean value indicating if the SMS was sent from the device. The scenarios and expected outcomes are also described.

Uploaded by

ananya26196
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
304 views

iOS Unified Payments Interface (UPI) Device Validation

This document outlines Apple's new iOS UPI Device Validation API which allows applications to validate if an SMS was sent from the same device it was initiated on. It provides the prerequisites, setup process, and usage of the API. Developers can add the entitlement to be notified via a callback with a boolean value indicating if the SMS was sent from the device. The scenarios and expected outcomes are also described.

Uploaded by

ananya26196
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

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.

Prerequisite for Development:

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

Actionable for Application:


Please find below actions for application:

 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.

Setup Process and API Usage:

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:

Scenarios Expected Outcome

When user clicks on “Send Button”, application should get


Inactive SIM on Device
callback from newly introduced methods with didSent = false

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

When a user clicks on the “Send Button”, Application should get


Valid SIM with SMS Pack
callback from newly introduced methods with didSent = true.

When user clicks on “RETRY SMS SEND” on old failed


Valid SIM with SMS Pack -
messages the user application will not get any callback.
RETRY OLD FAILED
Application should get a callback only if a user clicks on send
MESSAGE
and that message is Sent successfully from the device.

Application should get the call back on the device immediately


when the user clicks on the Send Button on the device. The
action taken on iMessage Mac app will not have any impact on
the original device as we already got a callback for the action
the user has taken. (Using iMessage with newly introduced
API).
SIM Without SMS Pack And
iMessage on Mac
Also, if app gets a callback when the user retries sending some
other messages. As expected, the application will not be getting
any callback for the action taken on any other messages,
Callback received only for that message which initiated the
compose screen.

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.

Sr App Name iOS app ID App Apple ID


1 Bhim in.org.npci.ios.upiapp 1200315258

You might also like