private function initiateTransaction()
    {
        $params = [
            "live" => $this->isLive,
            "oid" => $this->transaction['orderId'],
            "inv" => $this->transaction['invoiceNumber'] ?: $this->transaction['orderId'],
            "ttl" => $this->transaction['amount'],
            "tel" => $this->customer['telephoneNumber'],
            "eml" => $this->customer['email'],
            "vid" => $this->vendorId,
            "curr" => $this->currency,
            "p1" => $this->payloads['payload1'],
            "p2" => $this->payloads['payload2'],
            "p3" => $this->payloads['payload3'],
            "p4" => $this->payloads['payload4'],
            "lbk" => $this->failedCallback,
            "cbk" => $this->callback,
            "cst" => $this->customer['sendEmail'],
            "crl" => $this->callbackMode,
            "hsh" => $this->generateInitialHash(),
        ];


        foreach ($this->allChannels as $channel) {
            if (in_array($channel, $this->activeChannels)) {
                $params[$channel] = 1;
                continue;
            }

            $params[$channel] = 0;
        }

        try {
            $response = $this->client->request('POST', $this->initiateEndpoint, [
                'form_params' => $params
            ]);

            return $response->getBody()->getContents();
        } catch (\Exception $exception) {
            return $exception->getMessage();
        }
    }