public function addBalance($user_id, $value_to_add, $transaction_type = WalletTransactionTypes::TRANSACTIONAL, $expires_in_days = 0, $transaction_id = null, $meta_data = null, $tag = null, $frozen = false){
        $url = $this->authenticationService->getServerEndPoint() . Endpoints::VERSION . Endpoints::BASE_WALLET . Endpoints::WALLET_CREDITS;

        $params = array(
            'customer_id' => $user_id, 'value'=>$value_to_add, 'transaction_type' => $transaction_type,
            'transaction_id'=>$transaction_id, 'hold' => $frozen ? 1 : 0,
            'meta' => $meta_data, 'tag' => $tag, 'expiry' => $expires_in_days
        );

        $result = $this->authenticationService->getTransport()->fetch($url,$params,'PUT',array(),0);

        if($result["code"] == APIResponse::OVERFLOW){
            throw new QuotaExceededException("Wallet value quota exeeded");
        }

        return $result["code"] == APIResponse::RESPONSE_SUCCESS;
    }