Guest Signature

Submit OTP and apply the guest signature

Validates the OTP code and applies the handwritten signature to the document. Public, token-based (no login).

On success the session token is consumed (single-use): any later call with the same token returns 410 Gone.

Privacy

The returned receipt is non-PII: it carries only signed_at plus an optional evidence_id / completion_url.

Example

curl -X POST https://api.faireplace.com/api/public/guest-signature/3f8b1c2d-...-9a0e/sign \
  -H "Content-Type: application/json" \
  -d '{
    "otp_code": "123456",
    "signature_image_base64": "iVBORw0KGgoAAAANSUhEUg..."
  }'

Response:

{
  "signed_at": "2026-06-20T14:30:00Z",
  "evidence_id": "ev_550e8400e29b41d4",
  "completion_url": "https://app.faireplace.com/signature/done"
}
post/public/guest-signature/{token}/sign

Request

  • Base URL: https://api.faireplace.com/api
  • URL: https://api.faireplace.com/api/public/guest-signature/{token}/sign
  • Auth: none required

Path parameters

tokenstring required

Guest session token (clear UUID v4 from the email link).

Request body

otp_codestring required

OTP code received via the channel returned by request-otp.

signature_image_base64string byte required

Base64-encoded handwritten signature image (PNG/JPEG recommended). Validated server-side for size and format before being relayed to the signature orchestrator.

Example request

{
  "otp_code": "123456",
  "signature_image_base64": "iVBORw0KGgoAAAANSUhEUgAAASwAAACoCAMAAABt9SM9..."
}

Response

Signature applied successfully.

signed_atstring date-time required

Server timestamp at which the signature was applied.

evidence_idstring nullable

Evidence identifier returned by the signature orchestrator (if any).

completion_urlstring nullable

URL the signer can be redirected to after completion (if any).

Example response

{
  "signed_at": "2026-06-20T14:30:00Z",
  "evidence_id": "ev_550e8400e29b41d4",
  "completion_url": "https://app.faireplace.com/signature/done"
}

Changes

No recorded changes to this operation across all 1 revision of this API.