Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(AutoIt) DocuSign Add Recipients to a Draft EnvelopeSee more DocuSign ExamplesDemonstrates how to add one or more recipients to a DocuSign draft envelope. For more information, see https://developers.docusign.com/docs/esign-rest-api/reference/envelopes/enveloperecipients/create/
; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. $oHttp = ObjCreate("Chilkat.Http") ; Load a previously obtained OAuth2 access token. $oJsonToken = ObjCreate("Chilkat.JsonObject") Local $bSuccess = $oJsonToken.LoadFile("qa_data/tokens/docusign.json") If ($bSuccess = False) Then ConsoleWrite($oJsonToken.LastErrorText & @CRLF) Exit EndIf ; Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header. $oHttp.AuthToken = $oJsonToken.StringOf("access_token") ; Send the following request. ; Make sure to use your own account ID (obtained from Get Docusign User Account Information) ; POST https://demo.docusign.net/restapi/v2.1/accounts/<account ID>/envelopes/<envelope ID>/recipients HTTP/1.1 ; Accept: application/json ; Cache-Control: no-cache ; Authorization: Bearer eyJ0eX... ; Content-Length: ... ; Content-Type: application/json ; ; { ; "carbonCopies": [ ; { ; "email": "support@chilkatsoft.com", ; "name": "Chilkat Support", ; "recipientId": "101", ; "tabs": {} ; } ; ], ; "signers": [ ; { ; "email": "admin@chilkatsoft.com", ; "name": "Chilkat Admin", ; "recipientId": "1", ; "tabs": { ; "signHereTabs": [{ ; "anchorString": "Please Sign Here", ; "anchorXOffset": "1", ; "anchorYOffset": "0", ; "anchorIgnoreIfNotPresent": "false", ; "anchorUnits": "inches" ; }] ; } ; }, ; { ; "email": "matt@chilkat.io", ; "name": "Matt", ; "recipientId": "2", ; "tabs": { ; "signHereTabs": [{ ; "anchorString": "Please Also Sign Here", ; "anchorXOffset": "1", ; "anchorYOffset": "0", ; "anchorIgnoreIfNotPresent": "false", ; "anchorUnits": "inches" ; }] ; } ; } ; ] ; } $oJson = ObjCreate("Chilkat.JsonObject") Local $i = 0 $oJson.I = $i $oJson.UpdateString("carbonCopies[i].email","support@chilkatsoft.com") $oJson.UpdateString("carbonCopies[i].name","Chilkat Support") $oJson.UpdateString("carbonCopies[i].recipientId","101") $oJson.UpdateNewObject("carbonCopies[i].tabs") $i = 0 $oJson.I = $i $oJson.UpdateString("signers[i].email","admin@chilkatsoft.com") $oJson.UpdateString("signers[i].name","Chilkat Admin") $oJson.UpdateString("signers[i].recipientId","1") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorString","Please Sign Here") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorXOffset","1") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorYOffset","0") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorIgnoreIfNotPresent","false") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorUnits","inches") $i = $i + 1 $oJson.I = $i $oJson.UpdateString("signers[i].email","matt@chilkat.io") $oJson.UpdateString("signers[i].name","Matt") $oJson.UpdateString("signers[i].recipientId","2") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorString","Please Also Sign Here") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorXOffset","1") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorYOffset","0") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorIgnoreIfNotPresent","false") $oJson.UpdateString("signers[i].tabs.signHereTabs[0].anchorUnits","inches") $oSbJson = ObjCreate("Chilkat.StringBuilder") $oJson.EmitCompact = False $oJson.EmitSb($oSbJson) $oHttp.SetRequestHeader "Cache-Control","no-cache" $oHttp.SetRequestHeader "Accept","application/json" ; Use your own account ID here. $oHttp.SetUrlVar("accountId","7f3f65ed-5e87-418d-94c1-92499ddc8252") ; Use the envelope ID returned by DocuSign when creating the draft envelope). $oHttp.SetUrlVar("envelopeId","cee4191c-f94e-4089-9d7c-8033685cbc1a") Local $sUrl = "https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/recipients" Local $oResp = $oHttp.PTextSb("POST",$sUrl,$oSbJson,"utf-8","application/json",False,False) If ($oHttp.LastMethodSuccess = False) Then ConsoleWrite($oHttp.LastErrorText & @CRLF) Exit EndIf $oJResp = ObjCreate("Chilkat.JsonObject") $oJResp.Load($oResp.BodyStr) $oJResp.EmitCompact = False ConsoleWrite("Response Body:" & @CRLF) ConsoleWrite($oJResp.Emit() & @CRLF) ; If you get a 401 response status code, it's likely you need to refresh the DocuSign OAuth2 token). Local $iRespStatusCode = $oResp.StatusCode ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF) If ($iRespStatusCode >= 400) Then ConsoleWrite("Response Header:" & @CRLF) ConsoleWrite($oResp.Header & @CRLF) ConsoleWrite("Failed." & @CRLF) Exit EndIf ; Sample JSON response: ; (Sample code for parsing the JSON response is shown below) ; { ; "signers": [ ; { ; "creationReason": "sender", ; "requireUploadSignature": "false", ; "email": "admin@chilkatsoft.com", ; "recipientId": "1", ; "requireIdLookup": "false", ; "routingOrder": "1", ; "status": "created", ; "completedCount": "0", ; "deliveryMethod": "email", ; "recipientType": "signer" ; }, ; { ; "creationReason": "sender", ; "requireUploadSignature": "false", ; "email": "matt@chilkat.io", ; "recipientId": "2", ; "requireIdLookup": "false", ; "routingOrder": "1", ; "status": "created", ; "completedCount": "0", ; "deliveryMethod": "email", ; "recipientType": "signer" ; } ; ], ; "agents": [], ; "editors": [], ; "intermediaries": [], ; "carbonCopies": [ ; { ; "email": "support@chilkatsoft.com", ; "recipientId": "101", ; "requireIdLookup": "false", ; "routingOrder": "1", ; "status": "created", ; "completedCount": "0", ; "deliveryMethod": "email", ; "recipientType": "carboncopy" ; } ; ], ; "certifiedDeliveries": [], ; "inPersonSigners": [], ; "seals": [], ; "witnesses": [], ; "recipientCount": "3" ; } ; Sample code for parsing the JSON response... ; Use the following online tool to generate parsing code from sample JSON: ; Generate Parsing Code from JSON Local $sCreationReason Local $sRequireUploadSignature Local $sEmail Local $sRecipientId Local $sRequireIdLookup Local $sRoutingOrder Local $status Local $sCompletedCount Local $sDeliveryMethod Local $sRecipientType Local $sRecipientCount = $oJson.StringOf("recipientCount") $i = 0 Local $iCount_i = $oJson.SizeOfArray("signers") While $i < $iCount_i $oJson.I = $i $sCreationReason = $oJson.StringOf("signers[i].creationReason") $sRequireUploadSignature = $oJson.StringOf("signers[i].requireUploadSignature") $sEmail = $oJson.StringOf("signers[i].email") $sRecipientId = $oJson.StringOf("signers[i].recipientId") $sRequireIdLookup = $oJson.StringOf("signers[i].requireIdLookup") $sRoutingOrder = $oJson.StringOf("signers[i].routingOrder") $status = $oJson.StringOf("signers[i].status") $sCompletedCount = $oJson.StringOf("signers[i].completedCount") $sDeliveryMethod = $oJson.StringOf("signers[i].deliveryMethod") $sRecipientType = $oJson.StringOf("signers[i].recipientType") $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("agents") While $i < $iCount_i $oJson.I = $i ; ... $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("editors") While $i < $iCount_i $oJson.I = $i ; ... $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("intermediaries") While $i < $iCount_i $oJson.I = $i ; ... $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("carbonCopies") While $i < $iCount_i $oJson.I = $i $sEmail = $oJson.StringOf("carbonCopies[i].email") $sRecipientId = $oJson.StringOf("carbonCopies[i].recipientId") $sRequireIdLookup = $oJson.StringOf("carbonCopies[i].requireIdLookup") $sRoutingOrder = $oJson.StringOf("carbonCopies[i].routingOrder") $status = $oJson.StringOf("carbonCopies[i].status") $sCompletedCount = $oJson.StringOf("carbonCopies[i].completedCount") $sDeliveryMethod = $oJson.StringOf("carbonCopies[i].deliveryMethod") $sRecipientType = $oJson.StringOf("carbonCopies[i].recipientType") $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("certifiedDeliveries") While $i < $iCount_i $oJson.I = $i ; ... $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("inPersonSigners") While $i < $iCount_i $oJson.I = $i ; ... $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("seals") While $i < $iCount_i $oJson.I = $i ; ... $i = $i + 1 Wend $i = 0 $iCount_i = $oJson.SizeOfArray("witnesses") While $i < $iCount_i $oJson.I = $i ; ... $i = $i + 1 Wend ; If the recipient already exists within the envelope, we would get ; a success (201) response status code, but errors within the JSON response, such as this: ; { ; "signers": [ ; { ; "creationReason": "sender", ; "requireUploadSignature": "false", ; "email": "admin@chilkatsoft.com", ; "recipientId": "1", ; "requireIdLookup": "false", ; "routingOrder": "1", ; "status": "error", ; "completedCount": "0", ; "deliveryMethod": "email", ; "errorDetails": { ; "errorCode": "RECIPIENT_ALREADY_EXISTS_IN_ENVELOPE", ; "message": "This recipientId already exists." ; }, ; "recipientType": "signer" ; }, ; { ; "creationReason": "sender", ; "requireUploadSignature": "false", ; "email": "matt@chilkat.io", ; "recipientId": "2", ; "requireIdLookup": "false", ; "routingOrder": "1", ; "status": "error", ; "completedCount": "0", ; "deliveryMethod": "email", ; "errorDetails": { ; "errorCode": "RECIPIENT_ALREADY_EXISTS_IN_ENVELOPE", ; "message": "This recipientId already exists." ; }, ; "recipientType": "signer" ; } ; ], ; "agents": [ ; ], ; "editors": [ ; ], ; "intermediaries": [ ; ], ; "carbonCopies": [ ; { ; "email": "support@chilkatsoft.com", ; "recipientId": "101", ; "requireIdLookup": "false", ; "routingOrder": "1", ; "status": "error", ; "completedCount": "0", ; "deliveryMethod": "email", ; "errorDetails": { ; "errorCode": "RECIPIENT_ALREADY_EXISTS_IN_ENVELOPE", ; "message": "This recipientId already exists." ; }, ; "recipientType": "carboncopy" ; } ; ], ; "certifiedDeliveries": [ ; ], ; "inPersonSigners": [ ; ], ; "seals": [ ; ], ; "witnesses": [ ; ], ; "recipientCount": "3" ; } ; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.