Sample code for 30+ languages & platforms
PowerShell

Send DocuSign XML Request

See more HTTP Misc Examples

Demonstrates how to send a DocuSign XML request.

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

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

$req = New-Object Chilkat.HttpRequest

$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"

$xmlCred = New-Object Chilkat.Xml
$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..
$xml = New-Object Chilkat.Xml
$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

$($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=`"signatureForm.pdf`";documentid=1")

$http = New-Object Chilkat.Http

$http.SessionLogFilename = "qa_output/log.txt"

$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpSReq("na2.docusign.net",443,$true,$req,$resp)
if ($success -eq $false) {
    $($http.LastErrorText)
    exit
}

if ($resp.StatusCode -ne 201) {
    $($resp.BodyStr)
    $("Response status code: " + $resp.StatusCode)
    $("Failed.")
    exit
}

# Examine the response..
$xml.LoadXml($resp.BodyStr)
$envelopeId = $xml.GetChildContent("envelopeId")
$("envelopeId = " + $envelopeId)
$status = $xml.GetChildContent("status")
$("status = " + $status)
$statusDateTime = $xml.GetChildContent("statusDateTime")
$("statusDateTime = " + $statusDateTime)
$uri = $xml.GetChildContent("uri")
$("uri = " + $uri)