Obtain an OAuth access token via the Adobe Sign OAuth 2.0 flow; scopes required include agreement_send and optionally agreement_read.
Upload the document as a transient document via POST /api/rest/v6/transientDocuments with the file as multipart/form-data; record the returned transientDocumentId.
Create the agreement by POSTing to /api/rest/v6/agreements with a JSON body referencing the transientDocumentId, fileInfos array, participantSetsInfo (defining signers and their order), name, and signatureType (ESIGN or WRITTEN).
Set state to 'IN_PROCESS' to send immediately; the API returns an agreementId.
Register a webhook via POST /api/rest/v6/webhooks specifying your endpoint URL and the events to receive (e.g., AGREEMENT_WORKFLOW_COMPLETED).
Retrieve the signed document via GET /api/rest/v6/agreements/{agreementId}/combinedDocument once the completion event is received.
Known gotchas
Adobe Sign uses shard-specific base URIs (e.g., api.na1.adobesign.com vs api.eu1.adobesign.com); always resolve the correct base URI for the account from the /api/rest/v6/baseUris endpoint after auth, not from documentation examples.
Transient documents expire after one use and within a short time window; create the agreement in the same request flow as the upload.
Participant ordering (sequential vs parallel) is controlled by the 'order' field in participantSetsInfo; misconfiguring order causes all parties to receive the document simultaneously when sequential was intended.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp