---
title: "Verify otp"
method: POST
path: "/signature_link/verify_otp"
tags: ["Document AI — E-Signatures"]
---

# Verify otp

`POST /signature_link/verify_otp`

## Request

- Base URL: `https://api.paperoffice.ai/latest`
- URL: `https://api.paperoffice.ai/latest/signature_link/verify_otp`
- Auth: HTTP bearer

Signer-facing public endpoint. Verifies the one-time password (OTP) for a signing-link session.

## Request body

- object
  - `token` string, required: Signing token from the signing URL query (?token=). Raw string; MCP URL-encodes it. Example: {"token":"<from signing URL>","otp":"123456"}
  - `otp` string, required: 6-digit OTP from SMS. verify_otp only checks the code; send SMS with po_signature_links_resend_otp.

## Response `200`

Success

- object: OTP verifizieren
  - `status` 'success' | 'error', required: HTTP-Level Status
  - `job_id` string, required
  - `message` string: Menschenlesbare Statusmeldung
  - `pipeline` string
  - `operation` string: Ausgefuehrte Operation
  - `processing_time` string: Gesamte Verarbeitungszeit inkl. Queue (Format: 123.45ms)
  - `result` object, required: Das eigentliche Verarbeitungsergebnis
    - `status` 'completed' | 'failed' | 'timeout': Job-Level Status
    - `message` string: Pipeline-spezifische Statusmeldung
    - `duration_ms` string: Reine Pipeline-Verarbeitungszeit in ms
    - `output` object
      - `verified` boolean

## Other responses

- `4XX`: Error
- `5XX`: Error

---

[API](https://skmtc.dev/paperoffice/apis/paperoffice-ai-api.md) · [All operations](https://skmtc.dev/paperoffice/apis/paperoffice-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/paperoffice/apis/paperoffice-ai-api/revisions/c6a6228a4509?raw)
