---
title: "Request an OTP for the guest signature"
method: POST
path: "/public/guest-signature/{token}/request-otp"
tags: ["Guest Signature"]
---

# Request an OTP for the guest signature

`POST /public/guest-signature/{token}/request-otp`

## Request

- Base URL: `https://api.faireplace.com/api`
- URL: `https://api.faireplace.com/api/public/guest-signature/{token}/request-otp`
- Auth: none required

Triggers delivery of a one-time password to the guest signer. The
backend resolves the tenant and the delivery channel server-side and
relays the request to the signature orchestrator.

Public, token-based (no login). The request takes **no body**.

## Privacy
The response only returns the delivery `channel` (`sms` / `email`):
never the phone number or email used.

## Example
```bash
curl -X POST https://api.faireplace.com/api/public/guest-signature/3f8b1c2d-...-9a0e/request-otp
```

**Response** (`202 Accepted`):
```json
{ "channel": "sms" }
```

## Path parameters

- `token` string, required

## Response `202`

OTP delivery accepted.

- RequestGuestOtpResponse: Response after requesting an OTP. Strictly non-PII: only the channel is returned, never the phone number or email.
  - `channel` 'sms' | 'email', required: Channel used to deliver the OTP code. Only the *nature* of the channel is exposed: never the phone number or email itself.

## Other responses

- `404`: Token invalid, not found, or malformed (generic, anti-oracle).
- `410`: The session has expired or has already been used.
- `423`: Too many failed attempts: session temporarily locked.
- `500`: Internal error (no infra details leaked).
- `503`: The guest signature feature is temporarily disabled.

---

[API](https://skmtc.dev/faireplace/apis/faireplace-property-management-api.md) · [All operations](https://skmtc.dev/faireplace/apis/faireplace-property-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/faireplace/apis/faireplace-property-management-api/revisions/69de39762919?raw)
