Docs
Webhooks

Webhook events.

Subscribe to 26 platform events across 8 resources. Every delivery is signed with an HMAC-SHA256 header so you can verify the payload came from SendMint and not a forged source.

  • Method

    POST
  • Signature header

    X-SendMint-Signature
  • Retry policy

    Exponential, 5 attempts

Verify a delivery

Compute an HMAC-SHA256 of the raw request body using the endpoint's signing secret (shown once on creation, rotatable from the endpoint kebab menu). Compare the result to the value in X-SendMint-Signature.

// Node.js, verify an incoming webhook
import crypto from "node:crypto";

function verifyWebhook(
  rawBody: string,
  signature: string | null,
  secret: string,
): boolean {
  if (!signature) return false;
  const expected = crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature),
  );
}

Event catalog

Every event ships a JSON body with shape { id, type, createdAt, data }. The type matches the event key listed below.

Links

3
  • Link created

    link.created
  • Link viewed

    link.viewed
  • Link archived

    link.archived

Signatures

7
  • Envelope sent

    envelope.sent
  • Envelope viewed

    envelope.viewed
  • Envelope signed (by one signer)

    envelope.signed
  • Envelope completed (all signed)

    envelope.completed
  • Envelope declined

    envelope.declined
  • Envelope voided

    envelope.voided
  • Envelope reminded

    envelope.reminded

Proposals

4
  • Proposal sent

    proposal.sent
  • Proposal viewed

    proposal.viewed
  • Proposal accepted

    proposal.accepted
  • Proposal declined

    proposal.declined

Data rooms

3
  • Data room created

    dataroom.created
  • Visitor joined data room

    dataroom.visitor.added
  • Data room deleted

    dataroom.deleted

CRM

3
  • Contact created

    contact.created
  • Contact updated

    contact.updated
  • Form submitted

    form.submitted

File requests

3
  • Request created

    request.created
  • Request fulfilled

    request.fulfilled
  • Request reminded

    request.reminded

Pipeline

1
  • Deal stage changed

    deal.stage_changed

Workflows

2
  • Workflow run succeeded

    workflow.run.success
  • Workflow run failed

    workflow.run.failed

Build it: /settings/webhooks

Add a webhook endpoint, pick the events you care about, and start receiving deliveries. The dialog shows the same event catalog rendered on this page.