---
title: "Create signature request (eSignatures API)"
method: POST
path: "/signatures/create"
tags: ["Document AI — E-Signatures"]
---

# Create signature request (eSignatures API)

`POST /signatures/create`

## Request

- Base URL: `https://api.paperoffice.ai/latest`
- URL: `https://api.paperoffice.ai/latest/signatures/create`
- Auth: HTTP bearer

Create an e-signature request with signers and a document POFID.

## Request body

- union
  - object
    - `pofid` string, required: Alias for document_pofid.
    - `document_pofid` string, required: POFID of the document to sign (required).
    - `signers` object[], required: Signers array; each entry requires name, email, and phone (E.164).
      - `name` string
      - `email` string
      - `phone` string: E.164 phone (required for SMS verification).
    - `channel` 'email' | 'manual' | 'none': Invitation delivery: email (default) sends the invitation email; manual or none only returns the signing URL for the user to pass on. The signer receives the SMS one-time code on the signing page.
    - `signature_type` 'ses': Signature level: ses (simple electronic signature under eIDAS, the only level PaperOffice issues).
    - `signing_order` 'parallel' | 'sequential': Signing order (default: parallel).
    - `expires_days` integer: Validity period in days (default: 7, max: 90).
    - `message` string: Optional message to signers.
    - `placement_template_uuid` string: UUID of a saved layout template (signature field positions per page, including last/all anchors). Used when signature_fields is omitted. Explicit signature_fields win if both are sent.
    - `placement_template_id` string: Alias for placement_template_uuid.
    - `template_uuid` string: Alias for placement_template_uuid.
    - `document_page_count` integer: Document page count for resolving last/all placement anchors. If omitted, the API uses the stored document page count.
    - `signature_fields` object[]: Positioning of signature fields in the PDF. Takes precedence over placement_template_uuid. page may be a number or last/all.
      - `page` unknown
      - `page_anchor` 'absolute' | 'last' | 'all': Layout anchor; last/all are resolved against the document page count
      - `x` number: X-Position
      - `y` number: Y-Position
      - `width` number: Width
      - `height` number: Height
      - `relative` boolean: Relative 0–1 coordinates (default true)
      - `signer_index` integer: Signer index (0-based)
  - object
    - `pofid` string: Alias for document_pofid.
    - `document_pofid` string, required: POFID of the document to sign (required).
    - `signers` object[], required: Signers array; each entry requires name, email, and phone (E.164).
      - `name` string
      - `email` string
      - `phone` string: E.164 phone (required for SMS verification).
    - `channel` 'email' | 'manual' | 'none': Invitation delivery: email (default) sends the invitation email; manual or none only returns the signing URL for the user to pass on. The signer receives the SMS one-time code on the signing page.
    - `signature_type` 'ses': Signature level: ses (simple electronic signature under eIDAS, the only level PaperOffice issues).
    - `signing_order` 'parallel' | 'sequential': Signing order (default: parallel).
    - `expires_days` integer: Validity period in days (default: 7, max: 90).
    - `message` string: Optional message to signers.
    - `placement_template_uuid` string: UUID of a saved layout template (signature field positions per page, including last/all anchors). Used when signature_fields is omitted. Explicit signature_fields win if both are sent.
    - `placement_template_id` string: Alias for placement_template_uuid.
    - `template_uuid` string: Alias for placement_template_uuid.
    - `document_page_count` integer: Document page count for resolving last/all placement anchors. If omitted, the API uses the stored document page count.
    - `signature_fields` object[]: Positioning of signature fields in the PDF. Takes precedence over placement_template_uuid. page may be a number or last/all.
      - `page` unknown
      - `page_anchor` 'absolute' | 'last' | 'all': Layout anchor; last/all are resolved against the document page count
      - `x` number: X-Position
      - `y` number: Y-Position
      - `width` number: Width
      - `height` number: Height
      - `relative` boolean: Relative 0–1 coordinates (default true)
      - `signer_index` integer: Signer index (0-based)

## Response `200`

Success

- object: Unterschriftsanfrage erstellen
  - `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
      - `signature_id` string
      - `signing_url` string, uri
      - `status` 'pending' | 'sent' | 'signed' | 'declined' | 'expired'
      - `signers` object[]
      - `created_at` string, date-time
      - `expires_at` string, date-time

## 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)
