---
title: "Get a signing process — submitted data plus current signing status."
method: GET
path: "/epost/signing/processes/{processId}"
tags: ["ePost Sign"]
---

# Get a signing process — submitted data plus current signing status.

`GET /epost/signing/processes/{processId}`

## Request

- Base URL: `https://api.klara.ch`
- URL: `https://api.klara.ch/epost/signing/processes/{processId}`
- Auth: one of:
  - API key in header `X-API-KEY`
  - HTTP bearer

Returns the data submitted on <code>POST</code> plus the signing status: who has already signed and who has not. The name shown is the one used within the signing process / signature itself — per CISO, no additional profile data is resolved from ePost. Deliberately NOT returned: the full <code>unhashedCredentials</code> (personal-data protection) and the document payload (use <code>GET /signing/processes/{processId}/document</code>).

## Path parameters

- `processId` string, uuid, required

## Response `200`

Current state of the signing process.

- SigningProcess
  - `processId` string, uuid: Unique identifier of the signing process.
  - `title` string: Title of the signing request.
  - `description` string, nullable: Optional description.
  - `submittedBy` object: Who the signing request came from.
    - `pid` string, nullable: Internal ePost id of the resolved tenant. <code>null</code> while the tenant cannot yet be resolved (e.g. forced onboarding pending).
    - `name` string, nullable: Name as used within the signing process / signature itself (verified name applied at signing). <code>null</code> while unresolved.
  - `signatureType` object: Chosen signature type. Locked at creation.
  - `mode` object: Signing order strategy. Locked at creation.
  - `deadline` string, date: Signing deadline (ISO 8601).
  - `documentHandling` object: Restrictions applied to the document during the process.
    - `allowPrint` boolean: Whether participants may print the document from the signing room. Defaults to <code>false</code>.
    - `allowSave` boolean: Whether participants may download / save the document from the signing room. Defaults to <code>false</code>.
  - `forceOnboarding` boolean: Whether forced onboarding was requested for unresolved email participants.
  - `status` object: Current lifecycle status.
  - `deliveryState` object: Delivery/orchestration state of the process side effects (independent of <code>status</code>). Non-terminal values are retryable via <code>POST /signing/processes/{processId}/retry-delivery</code>.
  - `signedCount` integer: Number of participants that have already signed.
  - `pendingCount` integer: Number of participants still outstanding (<code>PENDING</code> / <code>FORCED_ONBOARDING</code>).
  - `participants` object[]: Participants with their current signing status.
    - `internalTrackingId` string, uuid: Process-local participant id. Stable, also while the participant is unresolved. Use this to address the participant on <code>PATCH</code>.
    - `participantId` string, nullable: Internal ePost id of the resolved tenant. <code>null</code> while the participant cannot be resolved (e.g. forced onboarding pending, address-only credential).
    - `name` string, nullable: Name as used within the signing process / signature itself. <code>null</code> while unresolved. Per CISO, no additional profile data from ePost is exposed here.
    - `roles` string[]: Role(s) held by this participant within the process.
    - `status` object: Current signing status of this participant.
    - `deliveryStatus` object, nullable: Delivery progress of the initial document to this participant, independent of the signing <code>status</code> above.
    - `hashedPrimaryValue` string, nullable: Correlates the returned participant with the hash the caller submitted.
    - `signedByUserEmail` string, nullable: Email of the ePost account in whose name the signature was made (account owner). <code>null</code> before signing.
    - `effectiveSignerUserEmail` string, nullable: Email of the user who actually signed (e.g. a shared-account user). <code>null</code> before signing.
    - `sequenceIndex` integer, nullable: 1-based order (<code>SEQUENTIAL</code> mode). <code>null</code> in <code>PARALLEL</code> mode.
    - `rejectedReason` string, nullable: Reason provided when the participant refused to sign. <code>null</code> otherwise.
    - `signedAt` string, date-time, nullable: Timestamp at which the participant signed (ISO 8601). <code>null</code> before signing.
    - `occupied` boolean: Whether the signing room is currently held (locked) by this participant.
  - `document` object: Metadata of the submitted document (never the payload).
    - `fileName` string: Original file name of the uploaded document.
    - `contentType` string: MIME type of the document.
    - `sizeBytes` integer: Size of the document in bytes.
    - `currentVersion` integer: Current document version. Increments with each collected signature.
  - `createdAt` string, date-time: Creation timestamp (ISO 8601).
  - `completedAt` string, date-time, nullable: Timestamp at which every required signature was collected. <code>null</code> while incomplete.
  - `deleteAt` string, date-time, nullable: When the process/document will be finally deleted. Retention per CISO: open + signed documents 90 days; cancelled/deactivated processes 30 days; audit/process metadata 12 months.

## Other responses

- `401`: No Authorization header found or invalid token<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.
- `403`: ePost Sign widget not subscribed.<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.
- `404`: Resource not found<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.
- `429`: API rate limit exceeded<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.
- `500`: Something went wrong on our side while processing the request. Please kindly contact our support.<br/><br/>Failures detected by a downstream service carry that service's own <code>code</code>, which this reference does not enumerate, so the <code>code</code> field may hold a value not documented here. Treat an unrecognised code as a generic failure of the status it arrives with, and do not branch on a code this reference does not list.

---

[API](https://skmtc.dev/klara/apis/klara-public-api.md) · [All operations](https://skmtc.dev/klara/apis/klara-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/klara/apis/klara-public-api/revisions/490b1a879fc2?raw)
