Chilkat2-Python
Chilkat2-Python
Send DocuSign XML Request
See more HTTP Misc Examples
Demonstrates how to send a DocuSign XML request.Chilkat Chilkat2-Python Downloads
import sys
import chilkat2
success = False
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
req = chilkat2.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 = chilkat2.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 = chilkat2.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
print(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 = chilkat2.Http()
http.SessionLogFilename = "qa_output/log.txt"
resp = chilkat2.HttpResponse()
success = http.HttpSReq("na2.docusign.net",443,True,req,resp)
if (success == False):
print(http.LastErrorText)
sys.exit()
if (resp.StatusCode != 201):
print(resp.BodyStr)
print("Response status code: " + str(resp.StatusCode))
print("Failed.")
sys.exit()
# Examine the response..
xml.LoadXml(resp.BodyStr)
envelopeId = xml.GetChildContent("envelopeId")
print("envelopeId = " + envelopeId)
status = xml.GetChildContent("status")
print("status = " + status)
statusDateTime = xml.GetChildContent("statusDateTime")
print("statusDateTime = " + statusDateTime)
uri = xml.GetChildContent("uri")
print("uri = " + uri)