Sample code for 30+ languages & platforms
Visual Basic 6.0

Send DocuSign XML Request

See more HTTP Misc Examples

Demonstrates how to send a DocuSign XML request.

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

' This requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim req As New ChilkatHttpRequest

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 New ChilkatXml
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 = 0
xmlCred.EmitCompact = 1
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 New ChilkatXml
xml.Tag = "envelopeDefinition"
success = 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 = 0

Debug.Print xml.GetXml()

xml.EmitCompact = 1

success = req.AddStringForUpload2("","",xml.GetXml(),"utf-8","application/xml")
success = req.AddFileForUpload2("","qa_data/pdf/signatureForm.pdf","application/pdf")
success = req.AddSubHeader(1,"Content-Disposition","file; filename=""signatureForm.pdf"";documentid=1")

Dim http As New ChilkatHttp

http.SessionLogFilename = "qa_output/log.txt"

Dim resp As New ChilkatHttpResponse
success = http.HttpSReq("na2.docusign.net",443,1,req,resp)
If (success = 0) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

If (resp.StatusCode <> 201) Then
    Debug.Print resp.BodyStr
    Debug.Print "Response status code: " & resp.StatusCode
    Debug.Print "Failed."
    Exit Sub
End If

' Examine the response..
success = xml.LoadXml(resp.BodyStr)
Dim envelopeId As String
envelopeId = xml.GetChildContent("envelopeId")
Debug.Print "envelopeId = " & envelopeId
Dim status As String
status = xml.GetChildContent("status")
Debug.Print "status = " & status
Dim statusDateTime As String
statusDateTime = xml.GetChildContent("statusDateTime")
Debug.Print "statusDateTime = " & statusDateTime
Dim uri As String
uri = xml.GetChildContent("uri")
Debug.Print "uri = " & uri