The Mocha Signature external API lets your application send documents for signature, follow every recipient's progress, and receive the finished PDF on your own endpoint. Two headers to authenticate, JSON in and JSON out, signed webhooks for the events that matter.
Authentication, environments, your first request in four languages, webhook setup and signature verification.
Read the guide →Every endpoint with its request fields, example bodies, webhook payloads, schemas and status codes.
Open the reference →List the templates in your account and read the recipient roles each one expects before you send.
Send a document out for signature straight from your own application, with your own subject line and message.
Show live signing progress per recipient — viewed, completed, declined, with the reason they gave.
Receive the signed PDF the moment every recipient is done, signed with HMAC-SHA256 and retried on failure.
Once you have a template and an API key, sending an envelope is a single request. Read the recipient roles from /get-template-detail first so they always match the template.
# Read your credentials from the environment - never paste an API key
# into a shell command, where it lands in your history and process list.
# export MOCHA_TENANT=...
# export MOCHA_API_KEY=...
curl -X POST \
'https://services.us.uat.mochatechnologies.com/signature/api/V1/send-envelop' \
-H "X-Tenant: $MOCHA_TENANT" \
-H "Api-Key: $MOCHA_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"user_id": "acf28c4584f007dca67b",
"company_name": "Your Company",
"email_subject": "Please sign the Non-Disclosure Agreement",
"message": "Kindly review and sign the attached document.",
"template_id": "73766101002022",
"recipients_role": [
{ "role": "Signer 1", "name": "John Doe", "email": "john.doe@example.com" }
]
}'| Endpoint | What it does |
|---|---|
| POST /get-template-by-user | List the templates available to your account. |
| POST /get-template-detail | Read a template's recipient roles and how many are required. |
| POST /send-envelop | Create an envelope from a template and email it for signing. |
| POST /envelop-tracking | Track the envelope and each recipient's state. |
| POST /webhook/deliveries | Inspect the delivery log for a single webhook attempt. |
Send us the endpoint you are calling, the request body and the response you received — our team will take it from there.