Signature Requests Guide
This guide explains how to create and manage signature requests using the Skribble SDK.Creating a Signature Request
# Create a signature request with a document URL
signature_request = {
"title": "Test Signature Request",
"message": "Please sign this document",
"file_url": "https://example.com/document.pdf",
"signatures": [
{
"account_email": "signer@company.com",
"signer_identity_data": {
"email_address": "signer@company.com",
"first_name": "John",
"last_name": "Doe",
"language": "en"
},
"sequence": 1
}
]
}
response = skribble.signature_request.create(signature_request)
// Create a signature request with a document URL
const signatureRequest = {
title: "Test Signature Request",
message: "Please sign this document",
file_url: "https://example.com/document.pdf",
signatures: [
{
account_email: "signer@company.com",
signer_identity_data: {
email_address: "signer@company.com",
first_name: "John",
last_name: "Doe",
language: "en"
},
sequence: 1
}
]
};
const response = await skribble.signature_request.create(signatureRequest);
Managing Signers
Adding a Signer
new_signer = {
"account_email": "new.signer@company.com",
"signer_identity_data": {
"email_address": "new.signer@company.com",
"first_name": "Jane",
"last_name": "Smith",
"language": "en"
}
}
response = skribble.signature_request.signer.add(signature_request_id, new_signer)
const newSigner = {
account_email: "new.signer@company.com",
signer_identity_data: {
email_address: "new.signer@company.com",
first_name: "Jane",
last_name: "Smith",
language: "en"
}
};
const response = await skribble.signature_request.signer.add(signatureRequestId, newSigner);
Removing a Signer
skribble.signature_request.signer.remove(signature_request_id, signer_id)
await skribble.signature_request.signer.remove(signatureRequestId, signerId);
Replacing All Signers
new_signers = [
{
"account_email": "signer1@company.com",
"signer_identity_data": {
"email_address": "signer1@company.com",
"first_name": "John",
"last_name": "Doe",
"language": "en"
}
},
{
"account_email": "signer2@company.com",
"signer_identity_data": {
"email_address": "signer2@company.com",
"first_name": "Jane",
"last_name": "Smith",
"language": "en"
}
}
]
response = skribble.signature_request.signer.replace(signature_request_id, new_signers)
const newSigners = [
{
account_email: "signer1@company.com",
signer_identity_data: {
email_address: "signer1@company.com",
first_name: "John",
last_name: "Doe",
language: "en"
}
},
{
account_email: "signer2@company.com",
signer_identity_data: {
email_address: "signer2@company.com",
first_name: "Jane",
last_name: "Smith",
language: "en"
}
}
];
const response = await skribble.signature_request.signer.replace(signatureRequestId, newSigners);
Managing Attachments
Adding an Attachment
attachment = {
"filename": "terms.txt",
"content_type": "text/plain",
"content": base64.b64encode(b"Terms and conditions").decode()
}
response = skribble.signature_request.attachment.add(signature_request_id, attachment)
const attachment = {
filename: "terms.txt",
content_type: "text/plain",
content: Buffer.from("Terms and conditions").toString('base64')
};
const response = await skribble.signature_request.attachment.add(signatureRequestId, attachment);
Listing Attachments
attachments = skribble.signature_request.attachment.list(signature_request_id)
const attachments = await skribble.signature_request.attachment.list(signatureRequestId);
Downloading an Attachment
content = skribble.signature_request.attachment.download(signature_request_id, attachment_id)
const content = await skribble.signature_request.attachment.download(signatureRequestId, attachmentId);
Deleting an Attachment
skribble.signature_request.attachment.delete(signature_request_id, attachment_id)
await skribble.signature_request.attachment.delete(signatureRequestId, attachmentId);
Managing Signature Requests
Getting a Signature Request
request = skribble.signature_request.get(signature_request_id)
const request = await skribble.signature_request.get(signatureRequestId);
Listing Signature Requests
requests = skribble.signature_request.list(page_size=10)
const requests = await skribble.signature_request.list({ pageSize: 10 });
Withdrawing a Signature Request
skribble.signature_request.withdraw(signature_request_id, message="Request withdrawn")
await skribble.signature_request.withdraw(signatureRequestId, { message: "Request withdrawn" });
Deleting a Signature Request
skribble.signature_request.delete(signature_request_id)
await skribble.signature_request.delete(signatureRequestId);
Error Handling
For detailed error handling guidance, please refer to our Error Handling Guide.try:
response = skribble.signature_request.create(signature_request)
except SkribbleValidationError as e:
print(f"Invalid request data: {e.message}")
except SkribbleAPIError as e:
print(f"API error ({e.status_code}): {e.message}")
try {
const response = await skribble.signature_request.create(signatureRequest);
} catch (error) {
if (error instanceof SkribbleValidationError) {
console.error('Invalid request data:', error.message);
} else if (error instanceof SkribbleAPIError) {
console.error(`API error (${error.statusCode}):`, error.message);
}
}
API Reference
For detailed API documentation, see:API Reference
Browse the complete API reference