As per people with the knowledge of the issue, the RBI’s data localisation rule has become a roadblock for Apple as well as Mastercard, Visa, Amazon, WhatsApp and PayPal.

After Facebook, Apple’s plan to introduce ‘Apple Pay’ in India st...

Apple’s plans to introduce its UPI-based payments platform ‘Apple Pay’ seem to have hit a brick wall. According to a report in The Economic Times, the reason for this is that the Reserve Bank of India’s (RBI) recently laid out rules which make it mandatory for any company, who wishes to introduce payment service in India, to save all the related data on local servers in the country.

Citing people with the knowledge of the matter, the national daily reported that apart from Apple and Facebook, Amazon has also stalled the full rollout of its service, Amazon Pay. Google, which recently renamed its UPI-based service ‘Tez’ to ‘Google Pay’, is also reported to be “assessing the evolving situation around data localisation.” With the rules in place, other players like Facebook, Mastercard, Visa, and PayPal are also uncertain of going ahead with their plans.

“Apple put the brakes on introducing Apple Pay in the country despite holding discussions with a few leading banks and the National Payments Corporation of India, which manages the UPI platform,” ET said. “The main worry for Apple is the Reserve Bank of India’s recent data localisation rule and the company also ran into technical and design hurdles related to the flow of payments on UPI. Apple will not launch payments in India yet. They are waiting to see how the regulatory landscape shapes up,” one of their sources was quoted as saying.

Apple has been going through a rough patch in India lately. It saw a rejig in its top brass in the country which saw three of its top executives quit the company. Apple only has a 2 percent market share in India and sold just 3.2 million iPhones in 2017. In the first half of 2018, fewer than a million devices were moved. Flagship killer OnePlus 6 captured 40 percent of the Indian premium market share dethroning Samsung from the top spot and pushing the iPhone maker on the third spot in the last quarter.

Digit NewsDeskDigit NewsDesk

‘).insertAfter(‘.inside-container p:eq(1)’); */
// $( ” ).insertAfter(‘.inside-container p:eq(0)’);
//method to trunkate the text
function shorten(text, maxLength) {
var ret = text;
if (ret.length > maxLength) {
ret = ret.substr(0,maxLength-3) + “…”;
return ret;

//function to put utm on DontMiss links
$(‘div.dontMiss > a’).each(function(){
$(this).prop(‘href’, $(this).prop(‘href’)+’?utm_source=within_article&utm_medium=desktop&utm_campaign=related’);
//trunkate dont miss content
var sub = shorten($(this).html(),47);
$(‘div.dontMiss > a’).each(function(){
$(this).prop(‘href’, $(this).prop(‘href’)+’?utm_source=within_article&utm_medium=mobile&utm_campaign=related’);

//disabled method to append dontmiss links to page content by Mayank
/*$(‘div.dontMiss > a’).each(function(index){
//loop over each list item

// if(index%2 > 0){
// index = index – 1;
// }
if($(‘.inside-container > p:eq(‘+index+’)’).length){
$(‘.inside-container > p:eq(‘+((index * 2) + 1)+’)’).append(‘

Related: ‘ + $(this).html() + ‘‘ );
$(‘.inside-container > p:eq(‘+((index * 2) + 1)+’)’).append(‘

Related: ‘ + $(this).html() + ‘‘ );

/* if(isDesktop()) {
} */

* ga event tracking on page scroll start and end by Mayank

// Debug flag
var debugMode = false;

// Default time delay before checking location
var callBackTime = 100;

// # px before tracking a reader
var readerLocation = 150;

// Set some flags for tracking & execution
var timer = 0;
var scroller = false;
var endContent = false;
var didComplete = false;

// Set some time variables to calculate reading time
var startTime = new Date();
var beginning = startTime.getTime();
var totalTime = 0;

// Get some information about the current page
var pageTitle = document.title;

// Track the aticle load — disabled
if (!debugMode) {
// ga(‘send’, ‘event’, ‘Reading’, ‘ArticleLoaded’, pageTitle, {‘nonInteraction’: 1});
// console.log(“ga(‘send’, ‘event’, ‘Reading’, ‘ArticleLoaded’, pageTitle, {‘nonInteraction’: 1}”);
} else {
alert(‘The page has loaded. Woohoo.’);

// Check the location and track user
function trackLocation() {
bottom = $(window).height() + $(window).scrollTop();
height = $(document).height();

// If user starts to scroll send an event
if (bottom > readerLocation && !scroller) {
currentTime = new Date();
scrollStart = currentTime.getTime();
timeToScroll = Math.round((scrollStart – beginning) / 1000);
if (!debugMode) {
ga(‘send’, ‘event’, ‘Reading’, ‘StartReading’, pageTitle, timeToScroll, {‘metric1’ : timeToScroll});
} else {
alert(‘started reading ‘ + timeToScroll);
scroller = true;

// If user has hit the bottom of the content send an event
if (bottom >= $(‘.inside-container’).scrollTop() + $(‘.inside-container’).innerHeight() && !endContent) {
currentTime = new Date();
contentScrollEnd = currentTime.getTime();
timeToContentEnd = Math.round((contentScrollEnd – scrollStart) / 1000);
if (!debugMode) {
if (timeToContentEnd = height && !didComplete) {
currentTime = new Date();
end = currentTime.getTime();
totalTime = Math.round((end – scrollStart) / 1000);
if (!debugMode) {
ga(‘send’, ‘event’, ‘Reading’, ‘PageBottom’, pageTitle, totalTime, {‘metric3’ : totalTime});
} else {
alert(‘bottom of page ‘+totalTime);
didComplete = true;

// Track the scrolling and track location
$(window).scroll(function() {
if (timer) {

// Use a buffer so we don’t call trackLocation too often.
timer = setTimeout(trackLocation, callBackTime);

‘).insertAfter(“.inside-container p:eq(2)”);


Source link