Send for signature

Send the contract for signature: marks it sent and emails a signing link to every signer who hasn't signed (with sequential signing, only the first signing-order group). Can also re-send a contract that is already sent.

POST https://api.centerfy.ai/webhooks/inbound/contracts/:id/send

Headers

HeaderRequiredValueDescription
x-api-keyYesyour sub-account API key (cfy_…)Authenticates the request; or use Authorization: Bearer <key>.

Path parameters

NameTypeRequiredDescription
idstring (uuid)YesThe contract id.

Body parameters

NameTypeRequiredDefaultDescription
messagestringNo—Personal message included in the email; max 2000 characters.
base_urlstring (https URL)No—Origin for the signing links, e.g. your white-label app domain. Only the origin is used; must be https. Defaults to the Centerfy app URL.

Request body

{
  "message": "Hi Jamie, please review and sign when you get a chance."
}

Example

curl -X POST "https://api.centerfy.ai/webhooks/inbound/contracts/{id}/send" \
  -H "x-api-key: $CENTERFY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "message": "Hi Jamie, please review and sign when you get a chance."
}'
import { CenterfyClient } from "@centerfy/sdk";

const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });

const result = await centerfy.contracts.send("<contractId>", {
  "message": "Hi Jamie, please review and sign when you get a chance."
});
console.log(result);
centerfy contracts send <contractId> '{"message":"Hi Jamie, please review and sign when you get a chance."}'

MCP tool: centerfy_contracts_send (see MCP server)

Response

{
  "status": "success",
  "contract_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
  "action": "send",
  "results": [
    {
      "email": "[email protected]",
      "success": true
    }
  ]
}

Errors

  • 400 — if base_url is not a valid https URL, or the contract has no prepared PDF, no signers, a field assigned to a deleted recipient, or a signer without a signature field.
  • 502 — with results if no email could be delivered — the contract is still marked sent, so use Remind signers to retry.
  • 404 — if the contract is not in this sub-account.

Notes

The body is optional. Only draft or sent contracts can be sent (409 otherwise).

© 2026 Centerfy AI. All rights reserved.