Developer guide
Your first signing flow.
Use the existing API to take a PDF from upload to signing and evidence. This guide is an orientation; the live OpenAPI reference supplies the complete fields, response schemas and permissions for your installation.
1. Prepare your account
Use a test account and create an API token with the required permissions in the platform. Keep the token on your server. The interactive demo requires an account and token; no credentials are included in this website.
curl "$PLATFORM_URL/api/v1/me" \
-H "Authorization: Bearer $SIGNING_FLOWS_TOKEN"
2. Upload a PDF
Send a PDF as multipart form data. Inspect the response to identify the document and workflow; do not assume that the document ID and workflow ID are interchangeable.
curl "$PLATFORM_URL/api/v1/documents" \
-H "Authorization: Bearer $SIGNING_FLOWS_TOKEN" \
-F "file=@agreement.pdf" \
-F "title=Example agreement"
3. Configure the workflow and participants
Configure the workflow, then add its signers. Use the response identifiers and consult the reference for all required fields and policy settings.
PATCH /api/v1/workflows/:id
POST /api/v1/workflows/:id/signers
4. Dispatch and follow the journey
Dispatch only after the participants and document are ready. Send an Idempotency-Key on operations you may retry, especially dispatch. Reuse the same key and body for the same operation; a new operation needs a new key.
POST /api/v1/workflows/:id/dispatch
GET /api/v1/workflows/:id
5. Receive events and retrieve evidence
Configure webhooks under Integrations. Verify incoming event signatures according to the API reference, accept duplicate deliveries safely and preserve the documented identifiers. Completion events carry the instance identifier used for the delivery package.
GET /api/v1/documents/:id/package
Handle failures explicitly
Inspect HTTP status and the response message. Authentication failures, missing permissions, invalid input and workflow conflicts need different handling. Do not retry every error as if it were a network timeout.
Try the existing demo
The demo shows the application state next to API requests and responses. It polls to make the journey visible; a production integration can subscribe to webhooks. Use synthetic documents and a test account.
Deployment access controls may require signing in before opening the platform links.