The new WhatsApp Payments feature is reportedly rolling out for beta testers of the app with versions 2.18.21 on iOS and 2.18.44 on Android.

WhatsApp Payments India launch expected soon, UPI-based feature s...

WhatsApp Payments has reportedly started rolling out. The UPI-based feature was spotted by Beta testers of WhatsApp on Android and iOS. As per a tweet by WABetaInfo, the new payment option is showing up for beta testers on version 2.18.21 for iOS and 2.18.44 on Android. The feature is said to be rolling out only for Indian users and can be accessed via the app’s settings. 

Some users on Twitter also posted screenshots of the new WhatsApp payments feature. As per the images, the new ‘Payment’ option is listed in the app settings and tapping on it opens a new window where users needs to accept terms and conditions, before enabling the feature. Then, similar to the other UPI based payments apps like Tez and PhonePe, users need to verify their mobile number and add their bank account details to use the payments system. 

Image credits: WABetaInfo

WABetaInfo notes that the new feature is not available for all beta users immediately after downloading the beta update and some other users have also confirmed the same on Twitter. As per the report, the new feature rollout is “very slow” and it could be remotely enabled by WhatsApp for users in about 12 hours after updating to the aforementioned beta versions.

Reports of WhatsApp testing the new feature surfaced last year in October. The feature was reported to be “intuitive, simple and similar to sending an image, location or a video”. The new feature integrated within the online chat app will surely make payments easier for over 200 million monthly active users in India. It will allow users to transfer funds without exiting the app. 

WhatsApp payments for Android and iOS.

A previous report said that an icon with the Rupee symbol will be added to the attachments window, alongside the location and contact option using which one will be able to send or request money. However, it seems that this is not the case as the company has decided to place the new option in settings.

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