Waafir
Connect AI Tools

waafir-esign reference

The waafir-esign server exposes Waafir's first-party e-signature service to a connected AI client: create an envelope over a file in your organisation, have its signatories sign (or decline), track status, and download the signed PDF. Signatures are eIDAS AES (PAdES), produced by Waafir's own signing engine; every signature captures signer consent (IP address, user agent, timestamp) on a tamper-evident audit trail, and the signed PDF is stored as the newest version of the source file.

Connection: https://app.waafir.io/api/mcp/waafir-esign — see Setup. Read tools require a read-scope PAT; creating, signing, and declining require write scope. A token restricted to specific data rooms can only work with envelopes over files in those data rooms — the same boundary the data room tools enforce.

A paid offering, with a monthly signature quota

Unlike the other MCP servers, waafir-esign is a paid surface (signing inside the Waafir app itself stays free for every organisation):

  • Access requires the E-Signatures add-on or an active Waafir subscription. Without either, every request returns an ADDON_NOT_PURCHASED error.
  • Subscribed organisations get a bundled quota of 10 signatures per calendar month through this server.
  • Each purchased unit of the E-Signatures add-on adds 100 signatures per month; units stack.
  • The quota is a hard ceiling: at the limit, esign_sign returns an ESIGN_QUOTA_EXCEEDED error prompting you to buy more units or upgrade — nothing is ever charged per-signature automatically.

Only successful esign_sign calls consume quota. Declines, reads, downloads, and failed attempts do not. Check headroom any time with esign_quota_status.

Tools

esign_create_envelope (write)

Create an envelope over a file in your organisation, naming its signatories. Signers are Waafir users, matched by email.

FieldTypeRequiredDescription
fileIdstring (UUID)yesThe file to be signed. Must belong to your organisation.
signatoriesarrayyesOne or more { "email": string, "name"?: string }.
transactionIdstring (UUID)noAttach the envelope to a transaction.
sendbooleannoWhen true, open the envelope for signing immediately.

Returns the envelope (id, status, …). A draft envelope must be sent (send: true at creation) before anyone can sign.

esign_list_envelopes (read)

List your organisation's envelopes, newest first. Optional filters: transactionId, fileId. Returns { envelopes: [...] } with each envelope's signatories and statuses.

esign_get_envelope (read)

Get one envelope with its signatories and their statuses (pending / signed / declined). Input: envelopeId.

esign_sign (write)

Sign your own pending signatory slot — the slot whose email matches the user who owns the token. Consumes one signature from the monthly quota. Input: envelopeId. Returns the updated envelope plus signaturesRemainingThisMonth.

Errors you may see: ESIGN_QUOTA_EXCEEDED (quota ceiling — buy more units or upgrade), a 403 if you are not a pending signatory, a 409 if the envelope is not open for signing.

esign_decline (write)

Decline your own pending slot (terminal — the envelope becomes declined). Input: envelopeId. Consumes no quota.

esign_download_signed (read)

Get a short-lived presigned download URL for the signed PDF. Input: envelopeId. Returns { download_url, expires_in_seconds }. The envelope must have at least one recorded signature; the signed PDF is also available in the product as the newest version of the source file.

esign_quota_status (read)

No inputs. Returns { quota, used, remaining } for the current calendar month — total quota (bundled + purchased units), signatures used, and headroom before the ceiling.

Signatures are eIDAS Advanced Electronic Signatures (PAdES), valid for NDAs and contracts under US ESIGN/UETA and EU eIDAS. Signer consent (IP, user agent, timestamp) is recorded on Waafir's append-only, hash-chained audit trail at signing time. Qualified (QES) signatures are not part of this release.