# Create Embedded Template Draft POST https://api.hellosign.com/v3/template/create_embedded_draft Content-Type: application/json The first step in an embedded template workflow. Creates a draft template that can then be further set up in the template 'edit' stage. Reference: https://developer.hellosign.com/api/template/create-embedded-draft ## SDK Code Examples ```php PHP setUsername("YOUR_API_KEY"); // $config->setAccessToken("YOUR_ACCESS_TOKEN"); $field_options = (new Dropbox\Sign\Model\SubFieldOptions()) ->setDateFormat(Dropbox\Sign\Model\SubFieldOptions::DATE_FORMAT_DD_MM_YYYY); $merge_fields_1 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Full Name") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_TEXT); $merge_fields_2 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Is Registered?") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_CHECKBOX); $merge_fields = [ $merge_fields_1, $merge_fields_2, ]; $signer_roles_1 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Client") ->setOrder(0); $signer_roles_2 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Witness") ->setOrder(1); $signer_roles = [ $signer_roles_1, $signer_roles_2, ]; $template_create_embedded_draft_request = (new Dropbox\Sign\Model\TemplateCreateEmbeddedDraftRequest()) ->setClientId("37dee8d8440c66d54cfa05d92c160882") ->setMessage("For your approval") ->setSubject("Please sign this document") ->setTestMode(true) ->setTitle("Test Template") ->setCcRoles([ "Manager", ]) ->setFiles([ ]) ->setFieldOptions($field_options) ->setMergeFields($merge_fields) ->setSignerRoles($signer_roles); try { $response = (new Dropbox\Sign\Api\TemplateApi(config: $config))->templateCreateEmbeddedDraft( template_create_embedded_draft_request: $template_create_embedded_draft_request, ); print_r($response); } catch (Dropbox\Sign\ApiException $e) { echo "Exception when calling TemplateApi#templateCreateEmbeddedDraft: {$e->getMessage()}"; } ``` ```csharp C# using System; using System.Collections.Generic; using System.IO; using System.Text.Json; using Dropbox.Sign.Api; using Dropbox.Sign.Client; using Dropbox.Sign.Model; namespace Dropbox.SignSandbox; public class TemplateCreateEmbeddedDraftExample { public static void Run() { var config = new Configuration(); config.Username = "YOUR_API_KEY"; // config.AccessToken = "YOUR_ACCESS_TOKEN"; var fieldOptions = new SubFieldOptions( dateFormat: SubFieldOptions.DateFormatEnum.DD_MM_YYYY ); var mergeFields1 = new SubMergeField( name: "Full Name", type: SubMergeField.TypeEnum.Text ); var mergeFields2 = new SubMergeField( name: "Is Registered?", type: SubMergeField.TypeEnum.Checkbox ); var mergeFields = new List { mergeFields1, mergeFields2, }; var signerRoles1 = new SubTemplateRole( name: "Client", order: 0 ); var signerRoles2 = new SubTemplateRole( name: "Witness", order: 1 ); var signerRoles = new List { signerRoles1, signerRoles2, }; var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest( clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: new List { new FileStream( path: "./example_signature_request.pdf", mode: FileMode.Open ), }, fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles ); try { var response = new TemplateApi(config).TemplateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest: templateCreateEmbeddedDraftRequest ); Console.WriteLine(response); } catch (ApiException e) { Console.WriteLine("Exception when calling TemplateApi#TemplateCreateEmbeddedDraft: " + e.Message); Console.WriteLine("Status Code: " + e.ErrorCode); Console.WriteLine(e.StackTrace); } } } ``` ```typescript TypeScript import * as fs from 'fs'; import api from "@dropbox/sign" import models from "@dropbox/sign" const apiCaller = new api.TemplateApi(); apiCaller.username = "YOUR_API_KEY"; // apiCaller.accessToken = "YOUR_ACCESS_TOKEN"; const fieldOptions: models.SubFieldOptions = { dateFormat: models.SubFieldOptions.DateFormatEnum.DdMmYyyy, }; const mergeFields1: models.SubMergeField = { name: "Full Name", type: models.SubMergeField.TypeEnum.Text, }; const mergeFields2: models.SubMergeField = { name: "Is Registered?", type: models.SubMergeField.TypeEnum.Checkbox, }; const mergeFields = [ mergeFields1, mergeFields2, ]; const signerRoles1: models.SubTemplateRole = { name: "Client", order: 0, }; const signerRoles2: models.SubTemplateRole = { name: "Witness", order: 1, }; const signerRoles = [ signerRoles1, signerRoles2, ]; const templateCreateEmbeddedDraftRequest: models.TemplateCreateEmbeddedDraftRequest = { clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: [ fs.createReadStream("./example_signature_request.pdf"), ], fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles, }; apiCaller.templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest, ).then(response => { console.log(response.body); }).catch(error => { console.log("Exception when calling TemplateApi#templateCreateEmbeddedDraft:"); console.log(error.body); }); ``` ```java Java package com.dropbox.sign_sandbox; import com.dropbox.sign.ApiException; import com.dropbox.sign.Configuration; import com.dropbox.sign.api.*; import com.dropbox.sign.auth.*; import com.dropbox.sign.JSON; import com.dropbox.sign.model.*; import java.io.File; import java.math.BigDecimal; import java.time.LocalDate; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; public class TemplateCreateEmbeddedDraftExample { public static void main(String[] args) { var config = Configuration.getDefaultApiClient(); ((HttpBasicAuth) config.getAuthentication("api_key")).setUsername("YOUR_API_KEY"); // ((HttpBearerAuth) config.getAuthentication("oauth2")).setBearerToken("YOUR_ACCESS_TOKEN"); var fieldOptions = new SubFieldOptions(); fieldOptions.dateFormat(SubFieldOptions.DateFormatEnum.DD_MM_YYYY); var mergeFields1 = new SubMergeField(); mergeFields1.name("Full Name"); mergeFields1.type(SubMergeField.TypeEnum.TEXT); var mergeFields2 = new SubMergeField(); mergeFields2.name("Is Registered?"); mergeFields2.type(SubMergeField.TypeEnum.CHECKBOX); var mergeFields = new ArrayList(List.of ( mergeFields1, mergeFields2 )); var signerRoles1 = new SubTemplateRole(); signerRoles1.name("Client"); signerRoles1.order(0); var signerRoles2 = new SubTemplateRole(); signerRoles2.name("Witness"); signerRoles2.order(1); var signerRoles = new ArrayList(List.of ( signerRoles1, signerRoles2 )); var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest(); templateCreateEmbeddedDraftRequest.clientId("37dee8d8440c66d54cfa05d92c160882"); templateCreateEmbeddedDraftRequest.message("For your approval"); templateCreateEmbeddedDraftRequest.subject("Please sign this document"); templateCreateEmbeddedDraftRequest.testMode(true); templateCreateEmbeddedDraftRequest.title("Test Template"); templateCreateEmbeddedDraftRequest.ccRoles(List.of ( "Manager" )); templateCreateEmbeddedDraftRequest.files(List.of ( new File("./example_signature_request.pdf") )); templateCreateEmbeddedDraftRequest.fieldOptions(fieldOptions); templateCreateEmbeddedDraftRequest.mergeFields(mergeFields); templateCreateEmbeddedDraftRequest.signerRoles(signerRoles); try { var response = new TemplateApi(config).templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest ); System.out.println(response); } catch (ApiException e) { System.err.println("Exception when calling TemplateApi#templateCreateEmbeddedDraft"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); e.printStackTrace(); } } } ``` ```ruby Ruby require "json" require "dropbox-sign" Dropbox::Sign.configure do |config| config.username = "YOUR_API_KEY" # config.access_token = "YOUR_ACCESS_TOKEN" end field_options = Dropbox::Sign::SubFieldOptions.new field_options.date_format = "DD - MM - YYYY" merge_fields_1 = Dropbox::Sign::SubMergeField.new merge_fields_1.name = "Full Name" merge_fields_1.type = "text" merge_fields_2 = Dropbox::Sign::SubMergeField.new merge_fields_2.name = "Is Registered?" merge_fields_2.type = "checkbox" merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = Dropbox::Sign::SubTemplateRole.new signer_roles_1.name = "Client" signer_roles_1.order = 0 signer_roles_2 = Dropbox::Sign::SubTemplateRole.new signer_roles_2.name = "Witness" signer_roles_2.order = 1 signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = Dropbox::Sign::TemplateCreateEmbeddedDraftRequest.new template_create_embedded_draft_request.client_id = "37dee8d8440c66d54cfa05d92c160882" template_create_embedded_draft_request.message = "For your approval" template_create_embedded_draft_request.subject = "Please sign this document" template_create_embedded_draft_request.test_mode = true template_create_embedded_draft_request.title = "Test Template" template_create_embedded_draft_request.cc_roles = [ "Manager", ] template_create_embedded_draft_request.files = [ File.new("./example_signature_request.pdf", "r"), ] template_create_embedded_draft_request.field_options = field_options template_create_embedded_draft_request.merge_fields = merge_fields template_create_embedded_draft_request.signer_roles = signer_roles begin response = Dropbox::Sign::TemplateApi.new.template_create_embedded_draft( template_create_embedded_draft_request, ) p response rescue Dropbox::Sign::ApiError => e puts "Exception when calling TemplateApi#template_create_embedded_draft: #{e}" end ``` ```python Python import json from datetime import date, datetime from pprint import pprint from dropbox_sign import ApiClient, ApiException, Configuration, api, models configuration = Configuration( username="YOUR_API_KEY", # access_token="YOUR_ACCESS_TOKEN", ) with ApiClient(configuration) as api_client: field_options = models.SubFieldOptions( date_format="DD - MM - YYYY", ) merge_fields_1 = models.SubMergeField( name="Full Name", type="text", ) merge_fields_2 = models.SubMergeField( name="Is Registered?", type="checkbox", ) merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = models.SubTemplateRole( name="Client", order=0, ) signer_roles_2 = models.SubTemplateRole( name="Witness", order=1, ) signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = models.TemplateCreateEmbeddedDraftRequest( client_id="37dee8d8440c66d54cfa05d92c160882", message="For your approval", subject="Please sign this document", test_mode=True, title="Test Template", cc_roles=[ "Manager", ], files=[ open("./example_signature_request.pdf", "rb").read(), ], field_options=field_options, merge_fields=merge_fields, signer_roles=signer_roles, ) try: response = api.TemplateApi(api_client).template_create_embedded_draft( template_create_embedded_draft_request=template_create_embedded_draft_request, ) pprint(response) except ApiException as e: print("Exception when calling TemplateApi#template_create_embedded_draft: %s\n" % e) ``` ```go Create Embedded Draft Template package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.hellosign.com/v3/template/create_embedded_draft" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("Authorization", "Basic :") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```swift Create Embedded Draft Template import Foundation let headers = [ "Authorization": "Basic :", "Content-Type": "application/json" ] let request = NSMutableURLRequest(url: NSURL(string: "https://api.hellosign.com/v3/template/create_embedded_draft")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```php PHP setUsername("YOUR_API_KEY"); // $config->setAccessToken("YOUR_ACCESS_TOKEN"); $field_options = (new Dropbox\Sign\Model\SubFieldOptions()) ->setDateFormat(Dropbox\Sign\Model\SubFieldOptions::DATE_FORMAT_DD_MM_YYYY); $merge_fields_1 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Full Name") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_TEXT); $merge_fields_2 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Is Registered?") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_CHECKBOX); $merge_fields = [ $merge_fields_1, $merge_fields_2, ]; $signer_roles_1 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Client") ->setOrder(0); $signer_roles_2 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Witness") ->setOrder(1); $signer_roles = [ $signer_roles_1, $signer_roles_2, ]; $template_create_embedded_draft_request = (new Dropbox\Sign\Model\TemplateCreateEmbeddedDraftRequest()) ->setClientId("37dee8d8440c66d54cfa05d92c160882") ->setMessage("For your approval") ->setSubject("Please sign this document") ->setTestMode(true) ->setTitle("Test Template") ->setCcRoles([ "Manager", ]) ->setFiles([ ]) ->setFieldOptions($field_options) ->setMergeFields($merge_fields) ->setSignerRoles($signer_roles); try { $response = (new Dropbox\Sign\Api\TemplateApi(config: $config))->templateCreateEmbeddedDraft( template_create_embedded_draft_request: $template_create_embedded_draft_request, ); print_r($response); } catch (Dropbox\Sign\ApiException $e) { echo "Exception when calling TemplateApi#templateCreateEmbeddedDraft: {$e->getMessage()}"; } ``` ```csharp C# using System; using System.Collections.Generic; using System.IO; using System.Text.Json; using Dropbox.Sign.Api; using Dropbox.Sign.Client; using Dropbox.Sign.Model; namespace Dropbox.SignSandbox; public class TemplateCreateEmbeddedDraftExample { public static void Run() { var config = new Configuration(); config.Username = "YOUR_API_KEY"; // config.AccessToken = "YOUR_ACCESS_TOKEN"; var fieldOptions = new SubFieldOptions( dateFormat: SubFieldOptions.DateFormatEnum.DD_MM_YYYY ); var mergeFields1 = new SubMergeField( name: "Full Name", type: SubMergeField.TypeEnum.Text ); var mergeFields2 = new SubMergeField( name: "Is Registered?", type: SubMergeField.TypeEnum.Checkbox ); var mergeFields = new List { mergeFields1, mergeFields2, }; var signerRoles1 = new SubTemplateRole( name: "Client", order: 0 ); var signerRoles2 = new SubTemplateRole( name: "Witness", order: 1 ); var signerRoles = new List { signerRoles1, signerRoles2, }; var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest( clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: new List { new FileStream( path: "./example_signature_request.pdf", mode: FileMode.Open ), }, fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles ); try { var response = new TemplateApi(config).TemplateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest: templateCreateEmbeddedDraftRequest ); Console.WriteLine(response); } catch (ApiException e) { Console.WriteLine("Exception when calling TemplateApi#TemplateCreateEmbeddedDraft: " + e.Message); Console.WriteLine("Status Code: " + e.ErrorCode); Console.WriteLine(e.StackTrace); } } } ``` ```typescript TypeScript import * as fs from 'fs'; import api from "@dropbox/sign" import models from "@dropbox/sign" const apiCaller = new api.TemplateApi(); apiCaller.username = "YOUR_API_KEY"; // apiCaller.accessToken = "YOUR_ACCESS_TOKEN"; const fieldOptions: models.SubFieldOptions = { dateFormat: models.SubFieldOptions.DateFormatEnum.DdMmYyyy, }; const mergeFields1: models.SubMergeField = { name: "Full Name", type: models.SubMergeField.TypeEnum.Text, }; const mergeFields2: models.SubMergeField = { name: "Is Registered?", type: models.SubMergeField.TypeEnum.Checkbox, }; const mergeFields = [ mergeFields1, mergeFields2, ]; const signerRoles1: models.SubTemplateRole = { name: "Client", order: 0, }; const signerRoles2: models.SubTemplateRole = { name: "Witness", order: 1, }; const signerRoles = [ signerRoles1, signerRoles2, ]; const templateCreateEmbeddedDraftRequest: models.TemplateCreateEmbeddedDraftRequest = { clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: [ fs.createReadStream("./example_signature_request.pdf"), ], fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles, }; apiCaller.templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest, ).then(response => { console.log(response.body); }).catch(error => { console.log("Exception when calling TemplateApi#templateCreateEmbeddedDraft:"); console.log(error.body); }); ``` ```java Java package com.dropbox.sign_sandbox; import com.dropbox.sign.ApiException; import com.dropbox.sign.Configuration; import com.dropbox.sign.api.*; import com.dropbox.sign.auth.*; import com.dropbox.sign.JSON; import com.dropbox.sign.model.*; import java.io.File; import java.math.BigDecimal; import java.time.LocalDate; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; public class TemplateCreateEmbeddedDraftExample { public static void main(String[] args) { var config = Configuration.getDefaultApiClient(); ((HttpBasicAuth) config.getAuthentication("api_key")).setUsername("YOUR_API_KEY"); // ((HttpBearerAuth) config.getAuthentication("oauth2")).setBearerToken("YOUR_ACCESS_TOKEN"); var fieldOptions = new SubFieldOptions(); fieldOptions.dateFormat(SubFieldOptions.DateFormatEnum.DD_MM_YYYY); var mergeFields1 = new SubMergeField(); mergeFields1.name("Full Name"); mergeFields1.type(SubMergeField.TypeEnum.TEXT); var mergeFields2 = new SubMergeField(); mergeFields2.name("Is Registered?"); mergeFields2.type(SubMergeField.TypeEnum.CHECKBOX); var mergeFields = new ArrayList(List.of ( mergeFields1, mergeFields2 )); var signerRoles1 = new SubTemplateRole(); signerRoles1.name("Client"); signerRoles1.order(0); var signerRoles2 = new SubTemplateRole(); signerRoles2.name("Witness"); signerRoles2.order(1); var signerRoles = new ArrayList(List.of ( signerRoles1, signerRoles2 )); var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest(); templateCreateEmbeddedDraftRequest.clientId("37dee8d8440c66d54cfa05d92c160882"); templateCreateEmbeddedDraftRequest.message("For your approval"); templateCreateEmbeddedDraftRequest.subject("Please sign this document"); templateCreateEmbeddedDraftRequest.testMode(true); templateCreateEmbeddedDraftRequest.title("Test Template"); templateCreateEmbeddedDraftRequest.ccRoles(List.of ( "Manager" )); templateCreateEmbeddedDraftRequest.files(List.of ( new File("./example_signature_request.pdf") )); templateCreateEmbeddedDraftRequest.fieldOptions(fieldOptions); templateCreateEmbeddedDraftRequest.mergeFields(mergeFields); templateCreateEmbeddedDraftRequest.signerRoles(signerRoles); try { var response = new TemplateApi(config).templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest ); System.out.println(response); } catch (ApiException e) { System.err.println("Exception when calling TemplateApi#templateCreateEmbeddedDraft"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); e.printStackTrace(); } } } ``` ```ruby Ruby require "json" require "dropbox-sign" Dropbox::Sign.configure do |config| config.username = "YOUR_API_KEY" # config.access_token = "YOUR_ACCESS_TOKEN" end field_options = Dropbox::Sign::SubFieldOptions.new field_options.date_format = "DD - MM - YYYY" merge_fields_1 = Dropbox::Sign::SubMergeField.new merge_fields_1.name = "Full Name" merge_fields_1.type = "text" merge_fields_2 = Dropbox::Sign::SubMergeField.new merge_fields_2.name = "Is Registered?" merge_fields_2.type = "checkbox" merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = Dropbox::Sign::SubTemplateRole.new signer_roles_1.name = "Client" signer_roles_1.order = 0 signer_roles_2 = Dropbox::Sign::SubTemplateRole.new signer_roles_2.name = "Witness" signer_roles_2.order = 1 signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = Dropbox::Sign::TemplateCreateEmbeddedDraftRequest.new template_create_embedded_draft_request.client_id = "37dee8d8440c66d54cfa05d92c160882" template_create_embedded_draft_request.message = "For your approval" template_create_embedded_draft_request.subject = "Please sign this document" template_create_embedded_draft_request.test_mode = true template_create_embedded_draft_request.title = "Test Template" template_create_embedded_draft_request.cc_roles = [ "Manager", ] template_create_embedded_draft_request.files = [ File.new("./example_signature_request.pdf", "r"), ] template_create_embedded_draft_request.field_options = field_options template_create_embedded_draft_request.merge_fields = merge_fields template_create_embedded_draft_request.signer_roles = signer_roles begin response = Dropbox::Sign::TemplateApi.new.template_create_embedded_draft( template_create_embedded_draft_request, ) p response rescue Dropbox::Sign::ApiError => e puts "Exception when calling TemplateApi#template_create_embedded_draft: #{e}" end ``` ```python Python import json from datetime import date, datetime from pprint import pprint from dropbox_sign import ApiClient, ApiException, Configuration, api, models configuration = Configuration( username="YOUR_API_KEY", # access_token="YOUR_ACCESS_TOKEN", ) with ApiClient(configuration) as api_client: field_options = models.SubFieldOptions( date_format="DD - MM - YYYY", ) merge_fields_1 = models.SubMergeField( name="Full Name", type="text", ) merge_fields_2 = models.SubMergeField( name="Is Registered?", type="checkbox", ) merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = models.SubTemplateRole( name="Client", order=0, ) signer_roles_2 = models.SubTemplateRole( name="Witness", order=1, ) signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = models.TemplateCreateEmbeddedDraftRequest( client_id="37dee8d8440c66d54cfa05d92c160882", message="For your approval", subject="Please sign this document", test_mode=True, title="Test Template", cc_roles=[ "Manager", ], files=[ open("./example_signature_request.pdf", "rb").read(), ], field_options=field_options, merge_fields=merge_fields, signer_roles=signer_roles, ) try: response = api.TemplateApi(api_client).template_create_embedded_draft( template_create_embedded_draft_request=template_create_embedded_draft_request, ) pprint(response) except ApiException as e: print("Exception when calling TemplateApi#template_create_embedded_draft: %s\n" % e) ``` ```go Default Example package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.hellosign.com/v3/template/create_embedded_draft" payload := strings.NewReader("{\n \"client_id\": \"37dee8d8440c66d54cfa05d92c160882\",\n \"file_urls\": [\n \"https://www.dropbox.com/s/ad9qnhbrjjn64tu/mutual-NDA-example.pdf?dl=1\"\n ],\n \"cc_roles\": [\n \"Manager\"\n ],\n \"field_options\": {\n \"date_format\": \"DD - MM - YYYY\"\n },\n \"merge_fields\": [\n {\n \"name\": \"Full Name\",\n \"type\": \"text\"\n },\n {\n \"name\": \"Is Registered?\",\n \"type\": \"checkbox\"\n }\n ],\n \"message\": \"For your approval\",\n \"signer_roles\": [\n {\n \"name\": \"Client\",\n \"order\": 0\n },\n {\n \"name\": \"Witness\",\n \"order\": 1\n }\n ],\n \"subject\": \"Please sign this document\",\n \"test_mode\": true,\n \"title\": \"Test Template\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Basic :") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```swift Default Example import Foundation let headers = [ "Authorization": "Basic :", "Content-Type": "application/json" ] let parameters = [ "client_id": "37dee8d8440c66d54cfa05d92c160882", "file_urls": ["https://www.dropbox.com/s/ad9qnhbrjjn64tu/mutual-NDA-example.pdf?dl=1"], "cc_roles": ["Manager"], "field_options": ["date_format": "DD - MM - YYYY"], "merge_fields": [ [ "name": "Full Name", "type": "text" ], [ "name": "Is Registered?", "type": "checkbox" ] ], "message": "For your approval", "signer_roles": [ [ "name": "Client", "order": 0 ], [ "name": "Witness", "order": 1 ] ], "subject": "Please sign this document", "test_mode": true, "title": "Test Template" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.hellosign.com/v3/template/create_embedded_draft")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```php PHP setUsername("YOUR_API_KEY"); // $config->setAccessToken("YOUR_ACCESS_TOKEN"); $field_options = (new Dropbox\Sign\Model\SubFieldOptions()) ->setDateFormat(Dropbox\Sign\Model\SubFieldOptions::DATE_FORMAT_DD_MM_YYYY); $merge_fields_1 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Full Name") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_TEXT); $merge_fields_2 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Is Registered?") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_CHECKBOX); $merge_fields = [ $merge_fields_1, $merge_fields_2, ]; $signer_roles_1 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Client") ->setOrder(0); $signer_roles_2 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Witness") ->setOrder(1); $signer_roles = [ $signer_roles_1, $signer_roles_2, ]; $template_create_embedded_draft_request = (new Dropbox\Sign\Model\TemplateCreateEmbeddedDraftRequest()) ->setClientId("37dee8d8440c66d54cfa05d92c160882") ->setMessage("For your approval") ->setSubject("Please sign this document") ->setTestMode(true) ->setTitle("Test Template") ->setCcRoles([ "Manager", ]) ->setFiles([ ]) ->setFieldOptions($field_options) ->setMergeFields($merge_fields) ->setSignerRoles($signer_roles); try { $response = (new Dropbox\Sign\Api\TemplateApi(config: $config))->templateCreateEmbeddedDraft( template_create_embedded_draft_request: $template_create_embedded_draft_request, ); print_r($response); } catch (Dropbox\Sign\ApiException $e) { echo "Exception when calling TemplateApi#templateCreateEmbeddedDraft: {$e->getMessage()}"; } ``` ```csharp C# using System; using System.Collections.Generic; using System.IO; using System.Text.Json; using Dropbox.Sign.Api; using Dropbox.Sign.Client; using Dropbox.Sign.Model; namespace Dropbox.SignSandbox; public class TemplateCreateEmbeddedDraftExample { public static void Run() { var config = new Configuration(); config.Username = "YOUR_API_KEY"; // config.AccessToken = "YOUR_ACCESS_TOKEN"; var fieldOptions = new SubFieldOptions( dateFormat: SubFieldOptions.DateFormatEnum.DD_MM_YYYY ); var mergeFields1 = new SubMergeField( name: "Full Name", type: SubMergeField.TypeEnum.Text ); var mergeFields2 = new SubMergeField( name: "Is Registered?", type: SubMergeField.TypeEnum.Checkbox ); var mergeFields = new List { mergeFields1, mergeFields2, }; var signerRoles1 = new SubTemplateRole( name: "Client", order: 0 ); var signerRoles2 = new SubTemplateRole( name: "Witness", order: 1 ); var signerRoles = new List { signerRoles1, signerRoles2, }; var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest( clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: new List { new FileStream( path: "./example_signature_request.pdf", mode: FileMode.Open ), }, fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles ); try { var response = new TemplateApi(config).TemplateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest: templateCreateEmbeddedDraftRequest ); Console.WriteLine(response); } catch (ApiException e) { Console.WriteLine("Exception when calling TemplateApi#TemplateCreateEmbeddedDraft: " + e.Message); Console.WriteLine("Status Code: " + e.ErrorCode); Console.WriteLine(e.StackTrace); } } } ``` ```typescript TypeScript import * as fs from 'fs'; import api from "@dropbox/sign" import models from "@dropbox/sign" const apiCaller = new api.TemplateApi(); apiCaller.username = "YOUR_API_KEY"; // apiCaller.accessToken = "YOUR_ACCESS_TOKEN"; const fieldOptions: models.SubFieldOptions = { dateFormat: models.SubFieldOptions.DateFormatEnum.DdMmYyyy, }; const mergeFields1: models.SubMergeField = { name: "Full Name", type: models.SubMergeField.TypeEnum.Text, }; const mergeFields2: models.SubMergeField = { name: "Is Registered?", type: models.SubMergeField.TypeEnum.Checkbox, }; const mergeFields = [ mergeFields1, mergeFields2, ]; const signerRoles1: models.SubTemplateRole = { name: "Client", order: 0, }; const signerRoles2: models.SubTemplateRole = { name: "Witness", order: 1, }; const signerRoles = [ signerRoles1, signerRoles2, ]; const templateCreateEmbeddedDraftRequest: models.TemplateCreateEmbeddedDraftRequest = { clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: [ fs.createReadStream("./example_signature_request.pdf"), ], fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles, }; apiCaller.templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest, ).then(response => { console.log(response.body); }).catch(error => { console.log("Exception when calling TemplateApi#templateCreateEmbeddedDraft:"); console.log(error.body); }); ``` ```java Java package com.dropbox.sign_sandbox; import com.dropbox.sign.ApiException; import com.dropbox.sign.Configuration; import com.dropbox.sign.api.*; import com.dropbox.sign.auth.*; import com.dropbox.sign.JSON; import com.dropbox.sign.model.*; import java.io.File; import java.math.BigDecimal; import java.time.LocalDate; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; public class TemplateCreateEmbeddedDraftExample { public static void main(String[] args) { var config = Configuration.getDefaultApiClient(); ((HttpBasicAuth) config.getAuthentication("api_key")).setUsername("YOUR_API_KEY"); // ((HttpBearerAuth) config.getAuthentication("oauth2")).setBearerToken("YOUR_ACCESS_TOKEN"); var fieldOptions = new SubFieldOptions(); fieldOptions.dateFormat(SubFieldOptions.DateFormatEnum.DD_MM_YYYY); var mergeFields1 = new SubMergeField(); mergeFields1.name("Full Name"); mergeFields1.type(SubMergeField.TypeEnum.TEXT); var mergeFields2 = new SubMergeField(); mergeFields2.name("Is Registered?"); mergeFields2.type(SubMergeField.TypeEnum.CHECKBOX); var mergeFields = new ArrayList(List.of ( mergeFields1, mergeFields2 )); var signerRoles1 = new SubTemplateRole(); signerRoles1.name("Client"); signerRoles1.order(0); var signerRoles2 = new SubTemplateRole(); signerRoles2.name("Witness"); signerRoles2.order(1); var signerRoles = new ArrayList(List.of ( signerRoles1, signerRoles2 )); var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest(); templateCreateEmbeddedDraftRequest.clientId("37dee8d8440c66d54cfa05d92c160882"); templateCreateEmbeddedDraftRequest.message("For your approval"); templateCreateEmbeddedDraftRequest.subject("Please sign this document"); templateCreateEmbeddedDraftRequest.testMode(true); templateCreateEmbeddedDraftRequest.title("Test Template"); templateCreateEmbeddedDraftRequest.ccRoles(List.of ( "Manager" )); templateCreateEmbeddedDraftRequest.files(List.of ( new File("./example_signature_request.pdf") )); templateCreateEmbeddedDraftRequest.fieldOptions(fieldOptions); templateCreateEmbeddedDraftRequest.mergeFields(mergeFields); templateCreateEmbeddedDraftRequest.signerRoles(signerRoles); try { var response = new TemplateApi(config).templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest ); System.out.println(response); } catch (ApiException e) { System.err.println("Exception when calling TemplateApi#templateCreateEmbeddedDraft"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); e.printStackTrace(); } } } ``` ```ruby Ruby require "json" require "dropbox-sign" Dropbox::Sign.configure do |config| config.username = "YOUR_API_KEY" # config.access_token = "YOUR_ACCESS_TOKEN" end field_options = Dropbox::Sign::SubFieldOptions.new field_options.date_format = "DD - MM - YYYY" merge_fields_1 = Dropbox::Sign::SubMergeField.new merge_fields_1.name = "Full Name" merge_fields_1.type = "text" merge_fields_2 = Dropbox::Sign::SubMergeField.new merge_fields_2.name = "Is Registered?" merge_fields_2.type = "checkbox" merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = Dropbox::Sign::SubTemplateRole.new signer_roles_1.name = "Client" signer_roles_1.order = 0 signer_roles_2 = Dropbox::Sign::SubTemplateRole.new signer_roles_2.name = "Witness" signer_roles_2.order = 1 signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = Dropbox::Sign::TemplateCreateEmbeddedDraftRequest.new template_create_embedded_draft_request.client_id = "37dee8d8440c66d54cfa05d92c160882" template_create_embedded_draft_request.message = "For your approval" template_create_embedded_draft_request.subject = "Please sign this document" template_create_embedded_draft_request.test_mode = true template_create_embedded_draft_request.title = "Test Template" template_create_embedded_draft_request.cc_roles = [ "Manager", ] template_create_embedded_draft_request.files = [ File.new("./example_signature_request.pdf", "r"), ] template_create_embedded_draft_request.field_options = field_options template_create_embedded_draft_request.merge_fields = merge_fields template_create_embedded_draft_request.signer_roles = signer_roles begin response = Dropbox::Sign::TemplateApi.new.template_create_embedded_draft( template_create_embedded_draft_request, ) p response rescue Dropbox::Sign::ApiError => e puts "Exception when calling TemplateApi#template_create_embedded_draft: #{e}" end ``` ```python Python import json from datetime import date, datetime from pprint import pprint from dropbox_sign import ApiClient, ApiException, Configuration, api, models configuration = Configuration( username="YOUR_API_KEY", # access_token="YOUR_ACCESS_TOKEN", ) with ApiClient(configuration) as api_client: field_options = models.SubFieldOptions( date_format="DD - MM - YYYY", ) merge_fields_1 = models.SubMergeField( name="Full Name", type="text", ) merge_fields_2 = models.SubMergeField( name="Is Registered?", type="checkbox", ) merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = models.SubTemplateRole( name="Client", order=0, ) signer_roles_2 = models.SubTemplateRole( name="Witness", order=1, ) signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = models.TemplateCreateEmbeddedDraftRequest( client_id="37dee8d8440c66d54cfa05d92c160882", message="For your approval", subject="Please sign this document", test_mode=True, title="Test Template", cc_roles=[ "Manager", ], files=[ open("./example_signature_request.pdf", "rb").read(), ], field_options=field_options, merge_fields=merge_fields, signer_roles=signer_roles, ) try: response = api.TemplateApi(api_client).template_create_embedded_draft( template_create_embedded_draft_request=template_create_embedded_draft_request, ) pprint(response) except ApiException as e: print("Exception when calling TemplateApi#template_create_embedded_draft: %s\n" % e) ``` ```go Form Fields Per Document Example package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.hellosign.com/v3/template/create_embedded_draft" payload := strings.NewReader("{\n \"client_id\": \"37dee8d8440c66d54cfa05d92c160882\",\n \"file_urls\": [\n \"https://www.dropbox.com/s/ad9qnhbrjjn64tu/mutual-NDA-example.pdf?dl=1\"\n ],\n \"cc_roles\": [\n \"Manager\"\n ],\n \"field_options\": {\n \"date_format\": \"DD - MM - YYYY\"\n },\n \"form_fields_per_document\": [\n {\n \"type\": \"text\",\n \"api_id\": \"uniqueIdHere_1\",\n \"document_index\": 0,\n \"height\": 16,\n \"required\": true,\n \"signer\": \"1\",\n \"width\": 100,\n \"x\": 112,\n \"y\": 328,\n \"name\": \"\",\n \"page\": 1\n },\n {\n \"type\": \"signature\",\n \"api_id\": \"uniqueIdHere_2\",\n \"document_index\": 0,\n \"height\": 30,\n \"required\": true,\n \"signer\": \"0\",\n \"width\": 120,\n \"x\": 530,\n \"y\": 415,\n \"name\": \"\",\n \"page\": 1\n }\n ],\n \"merge_fields\": [\n {\n \"name\": \"Full Name\",\n \"type\": \"text\"\n },\n {\n \"name\": \"Is Registered?\",\n \"type\": \"checkbox\"\n }\n ],\n \"message\": \"For your approval\",\n \"signer_roles\": [\n {\n \"name\": \"Client\",\n \"order\": 0\n },\n {\n \"name\": \"Witness\",\n \"order\": 1\n }\n ],\n \"subject\": \"Please sign this document\",\n \"test_mode\": true,\n \"title\": \"Test Template\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Basic :") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```swift Form Fields Per Document Example import Foundation let headers = [ "Authorization": "Basic :", "Content-Type": "application/json" ] let parameters = [ "client_id": "37dee8d8440c66d54cfa05d92c160882", "file_urls": ["https://www.dropbox.com/s/ad9qnhbrjjn64tu/mutual-NDA-example.pdf?dl=1"], "cc_roles": ["Manager"], "field_options": ["date_format": "DD - MM - YYYY"], "form_fields_per_document": [ [ "type": "text", "api_id": "uniqueIdHere_1", "document_index": 0, "height": 16, "required": true, "signer": "1", "width": 100, "x": 112, "y": 328, "name": "", "page": 1 ], [ "type": "signature", "api_id": "uniqueIdHere_2", "document_index": 0, "height": 30, "required": true, "signer": "0", "width": 120, "x": 530, "y": 415, "name": "", "page": 1 ] ], "merge_fields": [ [ "name": "Full Name", "type": "text" ], [ "name": "Is Registered?", "type": "checkbox" ] ], "message": "For your approval", "signer_roles": [ [ "name": "Client", "order": 0 ], [ "name": "Witness", "order": 1 ] ], "subject": "Please sign this document", "test_mode": true, "title": "Test Template" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.hellosign.com/v3/template/create_embedded_draft")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```php PHP setUsername("YOUR_API_KEY"); // $config->setAccessToken("YOUR_ACCESS_TOKEN"); $field_options = (new Dropbox\Sign\Model\SubFieldOptions()) ->setDateFormat(Dropbox\Sign\Model\SubFieldOptions::DATE_FORMAT_DD_MM_YYYY); $merge_fields_1 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Full Name") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_TEXT); $merge_fields_2 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Is Registered?") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_CHECKBOX); $merge_fields = [ $merge_fields_1, $merge_fields_2, ]; $signer_roles_1 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Client") ->setOrder(0); $signer_roles_2 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Witness") ->setOrder(1); $signer_roles = [ $signer_roles_1, $signer_roles_2, ]; $template_create_embedded_draft_request = (new Dropbox\Sign\Model\TemplateCreateEmbeddedDraftRequest()) ->setClientId("37dee8d8440c66d54cfa05d92c160882") ->setMessage("For your approval") ->setSubject("Please sign this document") ->setTestMode(true) ->setTitle("Test Template") ->setCcRoles([ "Manager", ]) ->setFiles([ ]) ->setFieldOptions($field_options) ->setMergeFields($merge_fields) ->setSignerRoles($signer_roles); try { $response = (new Dropbox\Sign\Api\TemplateApi(config: $config))->templateCreateEmbeddedDraft( template_create_embedded_draft_request: $template_create_embedded_draft_request, ); print_r($response); } catch (Dropbox\Sign\ApiException $e) { echo "Exception when calling TemplateApi#templateCreateEmbeddedDraft: {$e->getMessage()}"; } ``` ```csharp C# using System; using System.Collections.Generic; using System.IO; using System.Text.Json; using Dropbox.Sign.Api; using Dropbox.Sign.Client; using Dropbox.Sign.Model; namespace Dropbox.SignSandbox; public class TemplateCreateEmbeddedDraftExample { public static void Run() { var config = new Configuration(); config.Username = "YOUR_API_KEY"; // config.AccessToken = "YOUR_ACCESS_TOKEN"; var fieldOptions = new SubFieldOptions( dateFormat: SubFieldOptions.DateFormatEnum.DD_MM_YYYY ); var mergeFields1 = new SubMergeField( name: "Full Name", type: SubMergeField.TypeEnum.Text ); var mergeFields2 = new SubMergeField( name: "Is Registered?", type: SubMergeField.TypeEnum.Checkbox ); var mergeFields = new List { mergeFields1, mergeFields2, }; var signerRoles1 = new SubTemplateRole( name: "Client", order: 0 ); var signerRoles2 = new SubTemplateRole( name: "Witness", order: 1 ); var signerRoles = new List { signerRoles1, signerRoles2, }; var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest( clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: new List { new FileStream( path: "./example_signature_request.pdf", mode: FileMode.Open ), }, fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles ); try { var response = new TemplateApi(config).TemplateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest: templateCreateEmbeddedDraftRequest ); Console.WriteLine(response); } catch (ApiException e) { Console.WriteLine("Exception when calling TemplateApi#TemplateCreateEmbeddedDraft: " + e.Message); Console.WriteLine("Status Code: " + e.ErrorCode); Console.WriteLine(e.StackTrace); } } } ``` ```typescript TypeScript import * as fs from 'fs'; import api from "@dropbox/sign" import models from "@dropbox/sign" const apiCaller = new api.TemplateApi(); apiCaller.username = "YOUR_API_KEY"; // apiCaller.accessToken = "YOUR_ACCESS_TOKEN"; const fieldOptions: models.SubFieldOptions = { dateFormat: models.SubFieldOptions.DateFormatEnum.DdMmYyyy, }; const mergeFields1: models.SubMergeField = { name: "Full Name", type: models.SubMergeField.TypeEnum.Text, }; const mergeFields2: models.SubMergeField = { name: "Is Registered?", type: models.SubMergeField.TypeEnum.Checkbox, }; const mergeFields = [ mergeFields1, mergeFields2, ]; const signerRoles1: models.SubTemplateRole = { name: "Client", order: 0, }; const signerRoles2: models.SubTemplateRole = { name: "Witness", order: 1, }; const signerRoles = [ signerRoles1, signerRoles2, ]; const templateCreateEmbeddedDraftRequest: models.TemplateCreateEmbeddedDraftRequest = { clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: [ fs.createReadStream("./example_signature_request.pdf"), ], fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles, }; apiCaller.templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest, ).then(response => { console.log(response.body); }).catch(error => { console.log("Exception when calling TemplateApi#templateCreateEmbeddedDraft:"); console.log(error.body); }); ``` ```java Java package com.dropbox.sign_sandbox; import com.dropbox.sign.ApiException; import com.dropbox.sign.Configuration; import com.dropbox.sign.api.*; import com.dropbox.sign.auth.*; import com.dropbox.sign.JSON; import com.dropbox.sign.model.*; import java.io.File; import java.math.BigDecimal; import java.time.LocalDate; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; public class TemplateCreateEmbeddedDraftExample { public static void main(String[] args) { var config = Configuration.getDefaultApiClient(); ((HttpBasicAuth) config.getAuthentication("api_key")).setUsername("YOUR_API_KEY"); // ((HttpBearerAuth) config.getAuthentication("oauth2")).setBearerToken("YOUR_ACCESS_TOKEN"); var fieldOptions = new SubFieldOptions(); fieldOptions.dateFormat(SubFieldOptions.DateFormatEnum.DD_MM_YYYY); var mergeFields1 = new SubMergeField(); mergeFields1.name("Full Name"); mergeFields1.type(SubMergeField.TypeEnum.TEXT); var mergeFields2 = new SubMergeField(); mergeFields2.name("Is Registered?"); mergeFields2.type(SubMergeField.TypeEnum.CHECKBOX); var mergeFields = new ArrayList(List.of ( mergeFields1, mergeFields2 )); var signerRoles1 = new SubTemplateRole(); signerRoles1.name("Client"); signerRoles1.order(0); var signerRoles2 = new SubTemplateRole(); signerRoles2.name("Witness"); signerRoles2.order(1); var signerRoles = new ArrayList(List.of ( signerRoles1, signerRoles2 )); var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest(); templateCreateEmbeddedDraftRequest.clientId("37dee8d8440c66d54cfa05d92c160882"); templateCreateEmbeddedDraftRequest.message("For your approval"); templateCreateEmbeddedDraftRequest.subject("Please sign this document"); templateCreateEmbeddedDraftRequest.testMode(true); templateCreateEmbeddedDraftRequest.title("Test Template"); templateCreateEmbeddedDraftRequest.ccRoles(List.of ( "Manager" )); templateCreateEmbeddedDraftRequest.files(List.of ( new File("./example_signature_request.pdf") )); templateCreateEmbeddedDraftRequest.fieldOptions(fieldOptions); templateCreateEmbeddedDraftRequest.mergeFields(mergeFields); templateCreateEmbeddedDraftRequest.signerRoles(signerRoles); try { var response = new TemplateApi(config).templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest ); System.out.println(response); } catch (ApiException e) { System.err.println("Exception when calling TemplateApi#templateCreateEmbeddedDraft"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); e.printStackTrace(); } } } ``` ```ruby Ruby require "json" require "dropbox-sign" Dropbox::Sign.configure do |config| config.username = "YOUR_API_KEY" # config.access_token = "YOUR_ACCESS_TOKEN" end field_options = Dropbox::Sign::SubFieldOptions.new field_options.date_format = "DD - MM - YYYY" merge_fields_1 = Dropbox::Sign::SubMergeField.new merge_fields_1.name = "Full Name" merge_fields_1.type = "text" merge_fields_2 = Dropbox::Sign::SubMergeField.new merge_fields_2.name = "Is Registered?" merge_fields_2.type = "checkbox" merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = Dropbox::Sign::SubTemplateRole.new signer_roles_1.name = "Client" signer_roles_1.order = 0 signer_roles_2 = Dropbox::Sign::SubTemplateRole.new signer_roles_2.name = "Witness" signer_roles_2.order = 1 signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = Dropbox::Sign::TemplateCreateEmbeddedDraftRequest.new template_create_embedded_draft_request.client_id = "37dee8d8440c66d54cfa05d92c160882" template_create_embedded_draft_request.message = "For your approval" template_create_embedded_draft_request.subject = "Please sign this document" template_create_embedded_draft_request.test_mode = true template_create_embedded_draft_request.title = "Test Template" template_create_embedded_draft_request.cc_roles = [ "Manager", ] template_create_embedded_draft_request.files = [ File.new("./example_signature_request.pdf", "r"), ] template_create_embedded_draft_request.field_options = field_options template_create_embedded_draft_request.merge_fields = merge_fields template_create_embedded_draft_request.signer_roles = signer_roles begin response = Dropbox::Sign::TemplateApi.new.template_create_embedded_draft( template_create_embedded_draft_request, ) p response rescue Dropbox::Sign::ApiError => e puts "Exception when calling TemplateApi#template_create_embedded_draft: #{e}" end ``` ```python Python import json from datetime import date, datetime from pprint import pprint from dropbox_sign import ApiClient, ApiException, Configuration, api, models configuration = Configuration( username="YOUR_API_KEY", # access_token="YOUR_ACCESS_TOKEN", ) with ApiClient(configuration) as api_client: field_options = models.SubFieldOptions( date_format="DD - MM - YYYY", ) merge_fields_1 = models.SubMergeField( name="Full Name", type="text", ) merge_fields_2 = models.SubMergeField( name="Is Registered?", type="checkbox", ) merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = models.SubTemplateRole( name="Client", order=0, ) signer_roles_2 = models.SubTemplateRole( name="Witness", order=1, ) signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = models.TemplateCreateEmbeddedDraftRequest( client_id="37dee8d8440c66d54cfa05d92c160882", message="For your approval", subject="Please sign this document", test_mode=True, title="Test Template", cc_roles=[ "Manager", ], files=[ open("./example_signature_request.pdf", "rb").read(), ], field_options=field_options, merge_fields=merge_fields, signer_roles=signer_roles, ) try: response = api.TemplateApi(api_client).template_create_embedded_draft( template_create_embedded_draft_request=template_create_embedded_draft_request, ) pprint(response) except ApiException as e: print("Exception when calling TemplateApi#template_create_embedded_draft: %s\n" % e) ``` ```go Form Fields Per Document and Groups Example package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.hellosign.com/v3/template/create_embedded_draft" payload := strings.NewReader("{\n \"client_id\": \"37dee8d8440c66d54cfa05d92c160882\",\n \"file_urls\": [\n \"https://www.dropbox.com/s/ad9qnhbrjjn64tu/mutual-NDA-example.pdf?dl=1\"\n ],\n \"cc_roles\": [\n \"Manager\"\n ],\n \"field_options\": {\n \"date_format\": \"DD - MM - YYYY\"\n },\n \"form_field_groups\": [\n {\n \"group_id\": \"RadioItemGroup1\",\n \"group_label\": \"Radio Item Group 1\",\n \"requirement\": \"require_0-1\"\n }\n ],\n \"form_fields_per_document\": [\n {\n \"type\": \"radio\",\n \"api_id\": \"uniqueIdHere_1\",\n \"document_index\": 0,\n \"height\": 18,\n \"required\": false,\n \"signer\": \"0\",\n \"width\": 18,\n \"x\": 112,\n \"y\": 328,\n \"name\": \"\",\n \"page\": 1\n },\n {\n \"type\": \"radio\",\n \"api_id\": \"uniqueIdHere_2\",\n \"document_index\": 0,\n \"height\": 18,\n \"required\": false,\n \"signer\": \"0\",\n \"width\": 18,\n \"x\": 112,\n \"y\": 370,\n \"name\": \"\",\n \"page\": 1\n }\n ],\n \"merge_fields\": [\n {\n \"name\": \"Full Name\",\n \"type\": \"text\"\n },\n {\n \"name\": \"Is Registered?\",\n \"type\": \"checkbox\"\n }\n ],\n \"message\": \"For your approval\",\n \"signer_roles\": [\n {\n \"name\": \"Client\",\n \"order\": 0\n },\n {\n \"name\": \"Witness\",\n \"order\": 1\n }\n ],\n \"subject\": \"Please sign this document\",\n \"test_mode\": true,\n \"title\": \"Test Template\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Basic :") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```swift Form Fields Per Document and Groups Example import Foundation let headers = [ "Authorization": "Basic :", "Content-Type": "application/json" ] let parameters = [ "client_id": "37dee8d8440c66d54cfa05d92c160882", "file_urls": ["https://www.dropbox.com/s/ad9qnhbrjjn64tu/mutual-NDA-example.pdf?dl=1"], "cc_roles": ["Manager"], "field_options": ["date_format": "DD - MM - YYYY"], "form_field_groups": [ [ "group_id": "RadioItemGroup1", "group_label": "Radio Item Group 1", "requirement": "require_0-1" ] ], "form_fields_per_document": [ [ "type": "radio", "api_id": "uniqueIdHere_1", "document_index": 0, "height": 18, "required": false, "signer": "0", "width": 18, "x": 112, "y": 328, "name": "", "page": 1 ], [ "type": "radio", "api_id": "uniqueIdHere_2", "document_index": 0, "height": 18, "required": false, "signer": "0", "width": 18, "x": 112, "y": 370, "name": "", "page": 1 ] ], "merge_fields": [ [ "name": "Full Name", "type": "text" ], [ "name": "Is Registered?", "type": "checkbox" ] ], "message": "For your approval", "signer_roles": [ [ "name": "Client", "order": 0 ], [ "name": "Witness", "order": 1 ] ], "subject": "Please sign this document", "test_mode": true, "title": "Test Template" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.hellosign.com/v3/template/create_embedded_draft")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```php PHP setUsername("YOUR_API_KEY"); // $config->setAccessToken("YOUR_ACCESS_TOKEN"); $field_options = (new Dropbox\Sign\Model\SubFieldOptions()) ->setDateFormat(Dropbox\Sign\Model\SubFieldOptions::DATE_FORMAT_DD_MM_YYYY); $merge_fields_1 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Full Name") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_TEXT); $merge_fields_2 = (new Dropbox\Sign\Model\SubMergeField()) ->setName("Is Registered?") ->setType(Dropbox\Sign\Model\SubMergeField::TYPE_CHECKBOX); $merge_fields = [ $merge_fields_1, $merge_fields_2, ]; $signer_roles_1 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Client") ->setOrder(0); $signer_roles_2 = (new Dropbox\Sign\Model\SubTemplateRole()) ->setName("Witness") ->setOrder(1); $signer_roles = [ $signer_roles_1, $signer_roles_2, ]; $template_create_embedded_draft_request = (new Dropbox\Sign\Model\TemplateCreateEmbeddedDraftRequest()) ->setClientId("37dee8d8440c66d54cfa05d92c160882") ->setMessage("For your approval") ->setSubject("Please sign this document") ->setTestMode(true) ->setTitle("Test Template") ->setCcRoles([ "Manager", ]) ->setFiles([ ]) ->setFieldOptions($field_options) ->setMergeFields($merge_fields) ->setSignerRoles($signer_roles); try { $response = (new Dropbox\Sign\Api\TemplateApi(config: $config))->templateCreateEmbeddedDraft( template_create_embedded_draft_request: $template_create_embedded_draft_request, ); print_r($response); } catch (Dropbox\Sign\ApiException $e) { echo "Exception when calling TemplateApi#templateCreateEmbeddedDraft: {$e->getMessage()}"; } ``` ```csharp C# using System; using System.Collections.Generic; using System.IO; using System.Text.Json; using Dropbox.Sign.Api; using Dropbox.Sign.Client; using Dropbox.Sign.Model; namespace Dropbox.SignSandbox; public class TemplateCreateEmbeddedDraftExample { public static void Run() { var config = new Configuration(); config.Username = "YOUR_API_KEY"; // config.AccessToken = "YOUR_ACCESS_TOKEN"; var fieldOptions = new SubFieldOptions( dateFormat: SubFieldOptions.DateFormatEnum.DD_MM_YYYY ); var mergeFields1 = new SubMergeField( name: "Full Name", type: SubMergeField.TypeEnum.Text ); var mergeFields2 = new SubMergeField( name: "Is Registered?", type: SubMergeField.TypeEnum.Checkbox ); var mergeFields = new List { mergeFields1, mergeFields2, }; var signerRoles1 = new SubTemplateRole( name: "Client", order: 0 ); var signerRoles2 = new SubTemplateRole( name: "Witness", order: 1 ); var signerRoles = new List { signerRoles1, signerRoles2, }; var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest( clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: new List { new FileStream( path: "./example_signature_request.pdf", mode: FileMode.Open ), }, fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles ); try { var response = new TemplateApi(config).TemplateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest: templateCreateEmbeddedDraftRequest ); Console.WriteLine(response); } catch (ApiException e) { Console.WriteLine("Exception when calling TemplateApi#TemplateCreateEmbeddedDraft: " + e.Message); Console.WriteLine("Status Code: " + e.ErrorCode); Console.WriteLine(e.StackTrace); } } } ``` ```typescript TypeScript import * as fs from 'fs'; import api from "@dropbox/sign" import models from "@dropbox/sign" const apiCaller = new api.TemplateApi(); apiCaller.username = "YOUR_API_KEY"; // apiCaller.accessToken = "YOUR_ACCESS_TOKEN"; const fieldOptions: models.SubFieldOptions = { dateFormat: models.SubFieldOptions.DateFormatEnum.DdMmYyyy, }; const mergeFields1: models.SubMergeField = { name: "Full Name", type: models.SubMergeField.TypeEnum.Text, }; const mergeFields2: models.SubMergeField = { name: "Is Registered?", type: models.SubMergeField.TypeEnum.Checkbox, }; const mergeFields = [ mergeFields1, mergeFields2, ]; const signerRoles1: models.SubTemplateRole = { name: "Client", order: 0, }; const signerRoles2: models.SubTemplateRole = { name: "Witness", order: 1, }; const signerRoles = [ signerRoles1, signerRoles2, ]; const templateCreateEmbeddedDraftRequest: models.TemplateCreateEmbeddedDraftRequest = { clientId: "37dee8d8440c66d54cfa05d92c160882", message: "For your approval", subject: "Please sign this document", testMode: true, title: "Test Template", ccRoles: [ "Manager", ], files: [ fs.createReadStream("./example_signature_request.pdf"), ], fieldOptions: fieldOptions, mergeFields: mergeFields, signerRoles: signerRoles, }; apiCaller.templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest, ).then(response => { console.log(response.body); }).catch(error => { console.log("Exception when calling TemplateApi#templateCreateEmbeddedDraft:"); console.log(error.body); }); ``` ```java Java package com.dropbox.sign_sandbox; import com.dropbox.sign.ApiException; import com.dropbox.sign.Configuration; import com.dropbox.sign.api.*; import com.dropbox.sign.auth.*; import com.dropbox.sign.JSON; import com.dropbox.sign.model.*; import java.io.File; import java.math.BigDecimal; import java.time.LocalDate; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; public class TemplateCreateEmbeddedDraftExample { public static void main(String[] args) { var config = Configuration.getDefaultApiClient(); ((HttpBasicAuth) config.getAuthentication("api_key")).setUsername("YOUR_API_KEY"); // ((HttpBearerAuth) config.getAuthentication("oauth2")).setBearerToken("YOUR_ACCESS_TOKEN"); var fieldOptions = new SubFieldOptions(); fieldOptions.dateFormat(SubFieldOptions.DateFormatEnum.DD_MM_YYYY); var mergeFields1 = new SubMergeField(); mergeFields1.name("Full Name"); mergeFields1.type(SubMergeField.TypeEnum.TEXT); var mergeFields2 = new SubMergeField(); mergeFields2.name("Is Registered?"); mergeFields2.type(SubMergeField.TypeEnum.CHECKBOX); var mergeFields = new ArrayList(List.of ( mergeFields1, mergeFields2 )); var signerRoles1 = new SubTemplateRole(); signerRoles1.name("Client"); signerRoles1.order(0); var signerRoles2 = new SubTemplateRole(); signerRoles2.name("Witness"); signerRoles2.order(1); var signerRoles = new ArrayList(List.of ( signerRoles1, signerRoles2 )); var templateCreateEmbeddedDraftRequest = new TemplateCreateEmbeddedDraftRequest(); templateCreateEmbeddedDraftRequest.clientId("37dee8d8440c66d54cfa05d92c160882"); templateCreateEmbeddedDraftRequest.message("For your approval"); templateCreateEmbeddedDraftRequest.subject("Please sign this document"); templateCreateEmbeddedDraftRequest.testMode(true); templateCreateEmbeddedDraftRequest.title("Test Template"); templateCreateEmbeddedDraftRequest.ccRoles(List.of ( "Manager" )); templateCreateEmbeddedDraftRequest.files(List.of ( new File("./example_signature_request.pdf") )); templateCreateEmbeddedDraftRequest.fieldOptions(fieldOptions); templateCreateEmbeddedDraftRequest.mergeFields(mergeFields); templateCreateEmbeddedDraftRequest.signerRoles(signerRoles); try { var response = new TemplateApi(config).templateCreateEmbeddedDraft( templateCreateEmbeddedDraftRequest ); System.out.println(response); } catch (ApiException e) { System.err.println("Exception when calling TemplateApi#templateCreateEmbeddedDraft"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); e.printStackTrace(); } } } ``` ```ruby Ruby require "json" require "dropbox-sign" Dropbox::Sign.configure do |config| config.username = "YOUR_API_KEY" # config.access_token = "YOUR_ACCESS_TOKEN" end field_options = Dropbox::Sign::SubFieldOptions.new field_options.date_format = "DD - MM - YYYY" merge_fields_1 = Dropbox::Sign::SubMergeField.new merge_fields_1.name = "Full Name" merge_fields_1.type = "text" merge_fields_2 = Dropbox::Sign::SubMergeField.new merge_fields_2.name = "Is Registered?" merge_fields_2.type = "checkbox" merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = Dropbox::Sign::SubTemplateRole.new signer_roles_1.name = "Client" signer_roles_1.order = 0 signer_roles_2 = Dropbox::Sign::SubTemplateRole.new signer_roles_2.name = "Witness" signer_roles_2.order = 1 signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = Dropbox::Sign::TemplateCreateEmbeddedDraftRequest.new template_create_embedded_draft_request.client_id = "37dee8d8440c66d54cfa05d92c160882" template_create_embedded_draft_request.message = "For your approval" template_create_embedded_draft_request.subject = "Please sign this document" template_create_embedded_draft_request.test_mode = true template_create_embedded_draft_request.title = "Test Template" template_create_embedded_draft_request.cc_roles = [ "Manager", ] template_create_embedded_draft_request.files = [ File.new("./example_signature_request.pdf", "r"), ] template_create_embedded_draft_request.field_options = field_options template_create_embedded_draft_request.merge_fields = merge_fields template_create_embedded_draft_request.signer_roles = signer_roles begin response = Dropbox::Sign::TemplateApi.new.template_create_embedded_draft( template_create_embedded_draft_request, ) p response rescue Dropbox::Sign::ApiError => e puts "Exception when calling TemplateApi#template_create_embedded_draft: #{e}" end ``` ```python Python import json from datetime import date, datetime from pprint import pprint from dropbox_sign import ApiClient, ApiException, Configuration, api, models configuration = Configuration( username="YOUR_API_KEY", # access_token="YOUR_ACCESS_TOKEN", ) with ApiClient(configuration) as api_client: field_options = models.SubFieldOptions( date_format="DD - MM - YYYY", ) merge_fields_1 = models.SubMergeField( name="Full Name", type="text", ) merge_fields_2 = models.SubMergeField( name="Is Registered?", type="checkbox", ) merge_fields = [ merge_fields_1, merge_fields_2, ] signer_roles_1 = models.SubTemplateRole( name="Client", order=0, ) signer_roles_2 = models.SubTemplateRole( name="Witness", order=1, ) signer_roles = [ signer_roles_1, signer_roles_2, ] template_create_embedded_draft_request = models.TemplateCreateEmbeddedDraftRequest( client_id="37dee8d8440c66d54cfa05d92c160882", message="For your approval", subject="Please sign this document", test_mode=True, title="Test Template", cc_roles=[ "Manager", ], files=[ open("./example_signature_request.pdf", "rb").read(), ], field_options=field_options, merge_fields=merge_fields, signer_roles=signer_roles, ) try: response = api.TemplateApi(api_client).template_create_embedded_draft( template_create_embedded_draft_request=template_create_embedded_draft_request, ) pprint(response) except ApiException as e: print("Exception when calling TemplateApi#template_create_embedded_draft: %s\n" % e) ``` ```go Form Fields Per Document and Rules Example package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.hellosign.com/v3/template/create_embedded_draft" payload := strings.NewReader("{\n \"client_id\": \"37dee8d8440c66d54cfa05d92c160882\",\n \"file_urls\": [\n \"https://www.dropbox.com/s/ad9qnhbrjjn64tu/mutual-NDA-example.pdf?dl=1\"\n ],\n \"cc_roles\": [\n \"Manager\"\n ],\n \"field_options\": {\n \"date_format\": \"DD - MM - YYYY\"\n },\n \"form_field_rules\": [\n {\n \"id\": \"rule_1\",\n \"trigger_operator\": \"AND\",\n \"triggers\": [\n {\n \"id\": \"uniqueIdHere_1\",\n \"operator\": \"is\",\n \"value\": \"foo\"\n }\n ],\n \"actions\": [\n {\n \"hidden\": true,\n \"type\": \"change-field-visibility\",\n \"field_id\": \"uniqueIdHere_2\"\n }\n ]\n }\n ],\n \"form_fields_per_document\": [\n {\n \"type\": \"text\",\n \"api_id\": \"uniqueIdHere_1\",\n \"document_index\": 0,\n \"height\": 16,\n \"required\": true,\n \"signer\": \"0\",\n \"width\": 100,\n \"x\": 112,\n \"y\": 328,\n \"name\": \"\",\n \"page\": 1\n },\n {\n \"type\": \"signature\",\n \"api_id\": \"uniqueIdHere_2\",\n \"document_index\": 0,\n \"height\": 30,\n \"required\": true,\n \"signer\": \"0\",\n \"width\": 120,\n \"x\": 530,\n \"y\": 415,\n \"name\": \"\",\n \"page\": 1\n }\n ],\n \"merge_fields\": [\n {\n \"name\": \"Full Name\",\n \"type\": \"text\"\n },\n {\n \"name\": \"Is Registered?\",\n \"type\": \"checkbox\"\n }\n ],\n \"message\": \"For your approval\",\n \"signer_roles\": [\n {\n \"name\": \"Client\",\n \"order\": 0\n },\n {\n \"name\": \"Witness\",\n \"order\": 1\n }\n ],\n \"subject\": \"Please sign this document\",\n \"test_mode\": true,\n \"title\": \"Test Template\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Basic :") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```swift Form Fields Per Document and Rules Example import Foundation let headers = [ "Authorization": "Basic :", "Content-Type": "application/json" ] let parameters = [ "client_id": "37dee8d8440c66d54cfa05d92c160882", "file_urls": ["https://www.dropbox.com/s/ad9qnhbrjjn64tu/mutual-NDA-example.pdf?dl=1"], "cc_roles": ["Manager"], "field_options": ["date_format": "DD - MM - YYYY"], "form_field_rules": [ [ "id": "rule_1", "trigger_operator": "AND", "triggers": [ [ "id": "uniqueIdHere_1", "operator": "is", "value": "foo" ] ], "actions": [ [ "hidden": true, "type": "change-field-visibility", "field_id": "uniqueIdHere_2" ] ] ] ], "form_fields_per_document": [ [ "type": "text", "api_id": "uniqueIdHere_1", "document_index": 0, "height": 16, "required": true, "signer": "0", "width": 100, "x": 112, "y": 328, "name": "", "page": 1 ], [ "type": "signature", "api_id": "uniqueIdHere_2", "document_index": 0, "height": 30, "required": true, "signer": "0", "width": 120, "x": 530, "y": 415, "name": "", "page": 1 ] ], "merge_fields": [ [ "name": "Full Name", "type": "text" ], [ "name": "Is Registered?", "type": "checkbox" ] ], "message": "For your approval", "signer_roles": [ [ "name": "Client", "order": 0 ], [ "name": "Witness", "order": 1 ] ], "subject": "Please sign this document", "test_mode": true, "title": "Test Template" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.hellosign.com/v3/template/create_embedded_draft")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```