public static function createEnvelopeFromTemplate(Client $client, $templateId, $emailSubject, array $templateRoles, $status, $bannerId) { //Creates the data field containing the banner ID value $textTabs[0] = array("tabLabel" => "BannerId", "xPosition" => "435", "yPosition" => "440", "value" => $bannerId, "pageNumber" => "5", "documentId" => "1"); $roles = $templateRoles; $roles[0]['tabs'] = array("textTabs" => $textTabs); $data = array("accountId" => $client->getAccountID(), "emailSubject" => $emailSubject, "templateId" => $templateId, "templateRoles" => $roles, "status" => $status); $http = new \Guzzle\Http\Client(); //$request = $http->createRequest('POST', $client->getBaseUrl() . '/envelopes', ['body' => json_encode($data)]); $request = $http->createRequest('POST', $client->getBaseUrl() . '/envelopes'); $request->setBody(json_encode($data), 'application/json'); $request->setHeader('Content-Type', 'application/json'); $request->setHeader('Accept', 'application/json'); $request->setHeader('X-DocuSign-Authentication', $client->getAuthHeader()); try { $response = $http->send($request); $result = $response->json(); } catch (\Guzzle\Http\Exception\BadResponseException $e) { throw new \Exception(print_r($e->getResponse()->json(), true)); } return new Envelope($result['envelopeId'], $result['uri'], $result['statusDateTime'], $result['status']); }