E-signature

Send for signature

esign_send · Changes data · Markdown

Sends a PDF from the file store to up to 10 people to sign; each gets their own link by email.

$0.50 a call

From your agent’s balance. A call that fails costs nothing.

An example

Send the trade agreement to Jana Weber to sign, with a short note.

Your agent callsesign_send$0.50 a call

The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.

With these arguments
{
  "file_id": "9a1c3e5a-7d9f-4b1d-8f3a-6c8e0a2c4d7b",
  "title": "Trade account agreement",
  "signers": [
    {
      "name": "Jana Weber",
      "email": "jana@weber-kuechenplanung.example"
    }
  ],
  "message": "Hi Jana, here is the trade agreement we discussed. Thank you!"
}
What comes back
{
  "request_id": "f69fb13e-fe13-4c13-8796-90a48c48b466",
  "title": "Trade account agreement",
  "status": "sent",
  "order": "parallel",
  "sent_at": "2026-10-14T08:00:00+00:00",
  "expires_at": "2026-11-13T08:00:00+00:00",
  "completed_at": null,
  "document_file_id": "af2b15c0-6dd9-4c17-bf47-6058e6081a1b",
  "signers": [
    {
      "position": 1,
      "name": "Jana Weber",
      "email": "jana@weber-kuechenplanung.example",
      "status": "pending",
      "viewed_at": null,
      "signed_at": null,
      "decline_reason": null,
      "signing_url": "https://cncto.co/sign/MQ:1xHMcm:FjyO0nW3owav1LijKir_KQzzzV2zqeQUgZfA9dOgGlk"
    }
  ]
}

Use it when

A contract, agreement or form needs signatures.

What it does

Send a PDF from the file store to up to 10 people to sign. Each gets an email with their own link, signs in the browser by drawing or typing, and everyone gets the signed PDF with a signing certificate. Without fields, a signature page with a signature and date line per signer is added at the end. With fields, place them yourself: page, x, y, width and height in percent of the page from its top-left corner (a signature field of about 30 x 5 fits a line). Every signer needs a signature field. Signers are emailed at once (parallel) or one after another (sequential). Emailing people outside the business needs an account that has topped up once. You hear how it goes as events (account_events, or a channel from notify_subscribe): esign.signed after each signature that leaves others to sign, naming who is left, esign.completed when everyone has signed, and esign.declined if someone declines.

What comes back

The request: its request_id, title, status, order, when it was sent and expires, the document's file_id, and each signer with their status and signing link. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
file_idRequiredstringA PDF in the file store. Exactly 36 characters.
titleRequiredstringWhat signers see, e.g. "Service agreement". 1 to 200 characters.
signersRequiredarray of objects1 to 10 items.
signers[].nameRequiredstringUp to 120 characters.
signers[].emailRequiredstringUp to 254 characters.
fieldsarray of objectsUp to 300 items.
fields[].signerRequiredintegerThe signer's number in the signers list, from 1. At least 1.
fields[].kindRequiredstringOne of: signature,initials,name,date,text,checkbox.
fields[].pageRequiredintegerAt least 1.
fields[].xRequirednumberLeft edge, in percent of the page width from the left.
fields[].yRequirednumberTop edge, in percent of the page height from the top.
fields[].widthRequirednumberIn percent of the page width.
fields[].heightRequirednumberIn percent of the page height.
fields[].requiredbooleanDefault true (false for checkboxes).
fields[].labelstringShown to the signer, e.g. "Company name". Up to 120 characters.
messagestringA note to the signers, shown in the email and on the signing page. Up to 2,000 characters.
orderstringOne of: parallel,sequential. Default: parallel.
expires_in_daysinteger1 to 90. Default: 30.

The call

Over MCP, call esign_send on https://api.conecto.chat/mcp/esign. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/esign_send \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_id":"9a1c3e5a-7d9f-4b1d-8f3a-6c8e0a2c4d7b","title":"Trade account agreement","signers":[{"name":"Jana Weber","email":"jana@weber-kuechenplanung.example"}],"message":"Hi Jana, here is the trade agreement we discussed. Thank you!"}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
not_found404No file in the store has that file_id.Find it with files_list.
not_pdf400The file is not a PDF.Make one with documents_convert_to_pdf first.
too_many_pages400The PDF has more pages than a request takes.Split it with fewer pages.
invalid_input400A field is not on the page, too small, or of an unknown kind, or a signer has no signature field.Place fields in percent of the page, and give each signer a signature field.
payment_required_for_outbound402The balance is still free credit, which cannot send documents to people outside the business.Top up once (POST /v1/topups).
storage_full409The file store has no room for the request's files.Delete files with files_delete, or add room with files_add_storage.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md