Objective-C
Objective-C
Send DocuSign XML Request
See more HTTP Misc Examples
Demonstrates how to send a DocuSign XML request.Chilkat Objective-C Downloads
#import <CkoHttpRequest.h>
#import <CkoXml.h>
#import <CkoHttp.h>
#import <CkoHttpResponse.h>
#import <NSString.h>
BOOL success = NO;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoHttpRequest *req = [[CkoHttpRequest alloc] init];
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" value: @"application/xml"];
// Don't worry about the boundary string. Chilkat will automatically generate one and include it.
req.ContentType = @"multipart/form-data";
CkoXml *xmlCred = [[CkoXml alloc] init];
xmlCred.Tag = @"DocuSignCredentials";
[xmlCred UpdateChildContent: @"Username" value: @"YOUR_DOCUSIGN_USERNAME"];
[xmlCred UpdateChildContent: @"Password" value: @"YOUR_DOCUSIGN_PASSWORD"];
[xmlCred UpdateChildContent: @"IntegratorKey" value: @"ABCD-12345678-1234-AAAA-BBBB-abcdabcdabcd"];
xmlCred.EmitXmlDecl = NO;
xmlCred.EmitCompact = YES;
[req AddHeader: @"X-DocuSign-Authentication" value: [xmlCred GetXml]];
// Don't worry about Host or Content-Length headers, Chilkat automatically adds them...
// Build the XML for the 1st body part..
CkoXml *xml = [[CkoXml alloc] init];
xml.Tag = @"envelopeDefinition";
[xml AddAttribute: @"xmlns" value: @"http://www.docusign.com/restapi"];
[xml UpdateChildContent: @"emailSubject" value: @"Signature Request: Test Test:001019:033611"];
[xml UpdateChildContent: @"status" value: @"sent"];
[xml UpdateChildContent: @"documents|document|documentId" value: @"1"];
[xml UpdateChildContent: @"documents|document|name" value: @"001019_TestTest_RetailDeals_163357"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|hostEmail" value: @"admin@chilkatsoft.com"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|hostName" value: @"Chilkat Admin"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|signerName" value: @"Test Test"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|recipientId" value: @"1"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|routingOrder" value: @"1"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|signerEmail" value: @"test@tyest.com"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|anchorString" value: @"\\SDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere|optional" value: @"False"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|anchorString" value: @"\\OSDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[1]|optional" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|anchorString" value: @"\\OPSSDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|optional" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[2]|scaleValue" value: @"0.7"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|anchorString" value: @"\\PSSDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|optional" value: @"False"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|signHereTabs|signHere[3]|scaleValue" value: @"0.7"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|anchorString" value: @"\\IDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere|optional" value: @"False"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|anchorString" value: @"\\OIDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[1]|optional" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|anchorString" value: @"\\OPSIDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|optional" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[2]|scaleValue" value: @"0.5"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|anchorString" value: @"\\PSIDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|optional" value: @"False"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner|tabs|initialHereTabs|initialHere[3]|scaleValue" value: @"0.5"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|hostEmail" value: @"admin@chilkatsoft.com"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|hostName" value: @"Chilkat Admin"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|signerName" value: @"Dealer Representative"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|recipientId" value: @"2"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|routingOrder" value: @"2"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|anchorString" value: @"\\DSDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere|optional" value: @"False"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|anchorString" value: @"\\DOSDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|signHereTabs|signHere[1]|optional" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|anchorString" value: @"\\DIDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere|optional" value: @"False"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorIgnoreIfNotPresent" value: @"True"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|anchorString" value: @"\\DOIDP"];
[xml UpdateChildContent: @"recipients|inPersonSigners|inPersonSigner[1]|tabs|initialHereTabs|initialHere[1]|optional" value: @"True"];
xml.EmitXmlDecl = NO;
NSLog(@"%@",[xml GetXml]);
xml.EmitCompact = YES;
[req AddStringForUpload2: @"" filename: @"" strData: [xml GetXml] charset: @"utf-8" contentType: @"application/xml"];
[req AddFileForUpload2: @"" path: @"qa_data/pdf/signatureForm.pdf" contentType: @"application/pdf"];
[req AddSubHeader: [NSNumber numberWithInt: 1] name: @"Content-Disposition" value: @"file; filename=\"signatureForm.pdf\";documentid=1"];
CkoHttp *http = [[CkoHttp alloc] init];
http.SessionLogFilename = @"qa_output/log.txt";
CkoHttpResponse *resp = [[CkoHttpResponse alloc] init];
success = [http HttpSReq: @"na2.docusign.net" port: [NSNumber numberWithInt: 443] ssl: YES request: req response: resp];
if (success == NO) {
NSLog(@"%@",http.LastErrorText);
return;
}
if ([resp.StatusCode intValue] != 201) {
NSLog(@"%@",resp.BodyStr);
NSLog(@"%@%d",@"Response status code: ",[resp.StatusCode intValue]);
NSLog(@"%@",@"Failed.");
return;
}
// Examine the response..
[xml LoadXml: resp.BodyStr];
NSString *envelopeId = [xml GetChildContent: @"envelopeId"];
NSLog(@"%@%@",@"envelopeId = ",envelopeId);
NSString *status = [xml GetChildContent: @"status"];
NSLog(@"%@%@",@"status = ",status);
NSString *statusDateTime = [xml GetChildContent: @"statusDateTime"];
NSLog(@"%@%@",@"statusDateTime = ",statusDateTime);
NSString *uri = [xml GetChildContent: @"uri"];
NSLog(@"%@%@",@"uri = ",uri);