B4X Requires Chilkat v11.0.0+
B4X
Send DocuSign XML Request
See more HTTP Misc Examples
Demonstrates how to send a DocuSign XML request.Chilkat B4X Downloads
Dim success As Boolean = False
' This requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
Dim req As ChilkatHttpRequest
req.Initialize
req.HttpVerb = "POST"
' Replace "12999999" with your own account number. (12999999 is a ficticious account number)
req.Path = "/restapi/v2/accounts/12999999/envelopes"
req.AddHeader("Accept", "application/xml")
' Don't worry about the boundary string. Chilkat will automatically generate one and include it.
req.ContentType = "multipart/form-data"
Dim xmlCred As ChilkatXml
xmlCred.Initialize
xmlCred.Tag = "DocuSignCredentials"
xmlCred.UpdateChildContent("Username", "YOUR_DOCUSIGN_USERNAME")
xmlCred.UpdateChildContent("Password", "YOUR_DOCUSIGN_PASSWORD")
xmlCred.UpdateChildContent("IntegratorKey", "ABCD-12345678-1234-AAAA-BBBB-abcdabcdabcd")
xmlCred.EmitXmlDecl = False
xmlCred.EmitCompact = True
req.AddHeader("X-DocuSign-Authentication", xmlCred.GetXml)
' Don't worry about Host or Content-Length headers, Chilkat automatically adds them...
' Build the XML for the 1st body part..
Dim xml As ChilkatXml
xml.Initialize
xml.Tag = "envelopeDefinition"
xml.AddAttribute("xmlns", "http://www.docusign.com/restapi")
xml.UpdateChildContent("emailSubject", "Signature Request: Test Test:001019:033611")
xml.UpdateChildContent("status", "sent")
xml.UpdateChildContent("documents|document|documentId", "1")
xml.UpdateChildContent("documents|document|name", "001019_TestTest_RetailDeals_163357")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|hostEmail", "admin@chilkatsoft.com")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|hostName", "Chilkat Admin")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|signerName", "Test Test")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|recipientId", "1")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|routingOrder", "1")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|signerEmail", "test@tyest.com")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorString", "\SDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|optional", "False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorString", "\OSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|optional", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorString", "\OPSSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|optional", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|scaleValue", "0.7")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorString", "\PSSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|optional", "False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|scaleValue", "0.7")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorString", "\IDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|optional", "False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorString", "\OIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|optional", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorString", "\OPSIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|optional", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|scaleValue", "0.5")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorString", "\PSIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|optional", "False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|scaleValue", "0.5")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|hostEmail", "admin@chilkatsoft.com")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|hostName", "Chilkat Admin")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|signerName", "Dealer Representative")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|recipientId", "2")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|routingOrder", "2")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorString", "\DSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|optional", "False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorString", "\DOSDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|optional", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorString", "\DIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|optional", "False")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent", "True")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorString", "\DOIDP")
xml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|optional", "True")
xml.EmitXmlDecl = False
Log(xml.GetXml)
xml.EmitCompact = True
req.AddStringForUpload2("", "", xml.GetXml, "utf-8", "application/xml")
req.AddFileForUpload2("", "qa_data/pdf/signatureForm.pdf", "application/pdf")
req.AddSubHeader(1, "Content-Disposition", "file; filename=" & Chr(34) & "signatureForm.pdf" & Chr(34) & ";documentid=1")
Dim http As ChilkatHttp
http.Initialize("http")
http.SessionLogFilename = "qa_output/log.txt"
Dim resp As ChilkatHttpResponse
resp.Initialize
success = http.HttpSReq("na2.docusign.net", 443, True, req, resp)
If success = False Then
Log(http.LastErrorText)
Return
End If
If resp.StatusCode <> 201 Then
Log(resp.BodyStr)
Log("Response status code: " & resp.StatusCode)
Log("Failed.")
Return
End If
' Examine the response..
xml.LoadXml(resp.BodyStr)
Dim envelopeId As String = xml.GetChildContent("envelopeId")
Log("envelopeId = " & envelopeId)
Dim status As String = xml.GetChildContent("status")
Log("status = " & status)
Dim statusDateTime As String = xml.GetChildContent("statusDateTime")
Log("statusDateTime = " & statusDateTime)
Dim uri As String = xml.GetChildContent("uri")
Log("uri = " & uri)