โ† Signing Flows Developers

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.

API reference โ†— OpenAPI JSON Interactive demo

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.

Open the integration demo โ†’

Deployment access controls may require signing in before opening the platform links.