Sample code for 30+ languages & platforms
Lianja

Send DocuSign XML Request

See more HTTP Misc Examples

Demonstrates how to send a DocuSign XML request.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loReq = createobject("CkHttpRequest")

loReq.HttpVerb = "POST"

// Replace "12999999" with your own account number. (12999999 is a ficticious account number)
loReq.Path = "/restapi/v2/accounts/12999999/envelopes"

loReq.AddHeader("Accept","application/xml")

// Don't worry about the boundary string.  Chilkat will automatically generate one and include it.
loReq.ContentType = "multipart/form-data"

loXmlCred = createobject("CkXml")
loXmlCred.Tag = "DocuSignCredentials"
loXmlCred.UpdateChildContent("Username","YOUR_DOCUSIGN_USERNAME")
loXmlCred.UpdateChildContent("Password","YOUR_DOCUSIGN_PASSWORD")
loXmlCred.UpdateChildContent("IntegratorKey","ABCD-12345678-1234-AAAA-BBBB-abcdabcdabcd")
loXmlCred.EmitXmlDecl = .F.
loXmlCred.EmitCompact = .T.
loReq.AddHeader("X-DocuSign-Authentication",loXmlCred.GetXml())

// Don't worry about Host or Content-Length headers, Chilkat automatically adds them...

// Build the XML for the 1st body part..
loXml = createobject("CkXml")
loXml.Tag = "envelopeDefinition"
loXml.AddAttribute("xmlns","http://www.docusign.com/restapi")
loXml.UpdateChildContent("emailSubject","Signature Request: Test Test:001019:033611")
loXml.UpdateChildContent("status","sent")
loXml.UpdateChildContent("documents|document|documentId","1")
loXml.UpdateChildContent("documents|document|name","001019_TestTest_RetailDeals_163357")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|hostEmail","admin@chilkatsoft.com")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|hostName","Chilkat Admin")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|signerName","Test  Test")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|recipientId","1")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|routingOrder","1")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|signerEmail","test@tyest.com")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorString","\\SDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorString","\\OSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorString","\\OPSSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|scaleValue","0.7")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorString","\\PSSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|scaleValue","0.7")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorString","\\IDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorString","\\OIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorString","\\OPSIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|scaleValue","0.5")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorString","\\PSIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|scaleValue","0.5")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|hostEmail","admin@chilkatsoft.com")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|hostName","Chilkat Admin")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|signerName","Dealer Representative")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|recipientId","2")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|routingOrder","2")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorString","\\DSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorString","\\DOSDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|optional","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorString","\\DIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|optional","False")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent","True")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorString","\\DOIDP")
loXml.UpdateChildContent("recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|optional","True")
loXml.EmitXmlDecl = .F.

? loXml.GetXml()

loXml.EmitCompact = .T.

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

loHttp = createobject("CkHttp")

loHttp.SessionLogFilename = "qa_output/log.txt"

loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpSReq("na2.docusign.net",443,.T.,loReq,loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loReq
    release loXmlCred
    release loXml
    release loHttp
    release loResp
    return
endif

if (loResp.StatusCode <> 201) then
    ? loResp.BodyStr
    ? "Response status code: " + str(loResp.StatusCode)
    ? "Failed."
    release loReq
    release loXmlCred
    release loXml
    release loHttp
    release loResp
    return
endif

// Examine the response..
loXml.LoadXml(loResp.BodyStr)
lcEnvelopeId = loXml.GetChildContent("envelopeId")
? "envelopeId = " + lcEnvelopeId
lcStatus = loXml.GetChildContent("status")
? "status = " + lcStatus
lcStatusDateTime = loXml.GetChildContent("statusDateTime")
? "statusDateTime = " + lcStatusDateTime
lcUri = loXml.GetChildContent("uri")
? "uri = " + lcUri


release loReq
release loXmlCred
release loXml
release loHttp
release loResp