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)

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)

Removing a Signer

skribble.signature_request.signer.remove(signature_request_id, signer_id)

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)

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)

Listing Attachments

attachments = skribble.signature_request.attachment.list(signature_request_id)

Downloading an Attachment

content = skribble.signature_request.attachment.download(signature_request_id, attachment_id)

Deleting an Attachment

skribble.signature_request.attachment.delete(signature_request_id, attachment_id)

Managing Signature Requests

Getting a Signature Request

request = skribble.signature_request.get(signature_request_id)

Listing Signature Requests

requests = skribble.signature_request.list(page_size=10)

Withdrawing a Signature Request

skribble.signature_request.withdraw(signature_request_id, message="Request withdrawn")

Deleting a Signature Request

skribble.signature_request.delete(signature_request_id)

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}")

API Reference

For detailed API documentation, see: