Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Tuesday, 23 February 2021

South African digital bank TymeBank lands $109M from UK and Philippines investors

The onset of the pandemic has led to increased demand across customer income groups around the world for digital banking options. We’ve seen how digital banks like Zolve and Nubank have raised money in recent months to fill this need. This time, a startup from Africa has joined the party.

TymeBank, a South African digital bank, announced today that it has secured an R1.6 billion (~$109 million) investment from new investors in the UK and Philippines. The company made this known via a statement. This investment will be used to bolster TymeBank’s growth and drive its commercial expansion across the country.

However, this investment will come in two tranches. According to the company, R500 million ($34 million) has already been invested in the business, while the rest — R1.1 billion ($75 million) — will be invested over the next 12 to 15 months.

TymeBank offers a transactional bank account with zero or low monthly fees and a savings product. Most of its customers are onboarded via physical kiosks, usually in Pick n Pay and Boxer stores around the country. Since launching in February 2019, TymeBank has grown rapidly and now has about 2.8 million customers. The company says that it’s on track to reach 3 million by the end of next month.

The investors for this unnamed round include Apis Growth Fund II, a private equity fund managed by Apis Partners, and Gokongwei-owned JG Summit Holdings, one of the largest conglomerates in the Philippines. Both these investors are experienced in financial services in emerging markets; Apis, for instance, is a private equity asset manager that supports growth-stage financial services and financial infrastructure businesses.

It is noteworthy that this is one of the largest raises, if not the largest, for a digital bank on the continent. Tauriq Keraan, the CEO of TymeBank, considers this to be largely due to more investors buying into the importance of digital banking and also the company’s value propositions — the first which is improving access to underbanked and underserviced customers in South Africa, and the other, satisfying customer demand for low and transparent bank fees which is generally viewed as both costly and difficult to understand across the country.

“The establishments of digital banks in South Africa is in its infancy. Growth in this particular segment of financial services is only possible with investments from partners who understand and support the growth trajectory of digital banks,” he said.

With already existing shareholders like African Rainbow Capital (founded by South African billionaire Patrice Motsepe), TymeBank says these new investors will grow the company into a top tier retail bank in South Africa. The investment will also help the company expand its range of banking products and grow its lending portfolio. Diversification of offerings is key as well as TymeBank seeks to enhance its propositions in insurance and credit cards to its customers.

“As the controlling shareholder in TymeBank, African Rainbow Capital is delighted to have our new co-investors onboard. Equally important, Apis and the Gokongwei family invest in TymeBank at a time when significant uncertainty reigns globally and in South Africa as a result of the COVID-19 pandemic,” said Dr Patrice Motsepe, the majority owner of TymeBank and chairman of African Rainbow Capital. “The invested amount of R1.6 billion is no small feat both in terms of drawing investment into South Africa’s financial services sector as well as investing into a fledgling part of the sector in our country.”

TymeBank claims to onboard an average of 110,000 new customers per month. This makes it globally recognized for digital banking in emerging markets, and the plan is to reach 4 million customers next year. In terms of growth, TymeBank currently outpaces its competitors in Africa and can be argued to be one of the fastest-growing digital banks in the world at the moment. The company is the first bank in South Africa to be fully operated off a cloud-based infrastructure network and the first to be granted a commercial banking license in the country since 1999.

TymeBank isn’t indigenously South African though. It is a member of the Tyme group of companies headquartered in Singapore. The holding company, Tyme, focuses on designing, building, and operating digital banks for emerging markets. With its success in South Africa, Tyme is planning to launch operations in Asia and has entered into an agreement to launch a digital bank in the Philippines in the coming months.



from TechCrunch https://ift.tt/3qPJJPi
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support