IDCanopy Developers
QES identify and sign

QES identify and sign

Available on request. Identify a person and have them sign a PDF with a qualified electronic signature in one session

Available on request. Contact IDCanopy for access; details may change. Test environment only.

Identify a person and have them sign a PDF with a qualified electronic signature (QES) in one session. The flow pauses after identification so you can upload the document, personalised with the identified name if you need it. One signer per session.

This follows the draft contract 0.1.0. It runs in a test environment only; the base URL is shared on request. It is a separate service from the QES onboarding operations of the Umbrella API (/onboarding/*), which stay as documented.

Flow

  1. POST /qes-onboarding/sessions creates a session and returns a url. Send the person there to identify. The session is identifying.
  2. After identification the session moves to awaiting_document and your webhook receives session.awaiting_document. GET /qes-onboarding/sessions/{session_id} now carries the identification summary.
  3. Upload the PDF with PUT /qes-onboarding/sessions/{session_id}/document. The session moves to signing and the person signs.
  4. On session.completed, read the session for the signature evidence and download the signed PDF from GET /qes-onboarding/sessions/{session_id}/signed-document.

A session that is not finished can be cancelled with POST /qes-onboarding/sessions/{session_id}/cancel.

Statuses

StatusMeaningNext
createdBeing set up.identifying
identifyingThe person can identify at url.awaiting_document
awaiting_documentIdentified. Upload the PDF.signing
signingThe person can sign.completed
completedSigned. Final.
failedEnded without a signature. Final.
cancelledCancelled by you. Final.
expiredThe link expired. Final.

failed, cancelled and expired carry a failure_reason: provider_unavailable, provider_failed, provider_expired, document_not_uploaded or cancelled_by_client. Every session keeps a history of its status changes, oldest first.

Authentication

Send your API token as Authorization: Bearer <token> on every call.

Pending verification: how the token is issued is not part of the contract yet.

Errors

Errors are application/problem+json with type, title, status, code and detail. Branch on the HTTP status and code.

HTTPcodeMeaningWhat to do
400invalid_requestThe request is malformed or fails validation; detail names the field.Fix the request.
401unauthorizedMissing or invalid token.Check the token.
403forbiddenThe token is valid but not enabled for QES onboarding.Contact IDCanopy.
404session_not_foundNo session with this id for your account.Check the id.
409wrong_stateThe session is not in a state that allows this call.Read the session and follow its status.
429rate_limitedRate limit reached.Retry after Retry-After seconds.
500internal_errorUnexpected error.Retry later.
502provider_unavailableThe signing service did not respond as expected.Retry later.

Pages

  • Sessions: create, read, upload the document, download the signed PDF, cancel.
  • Webhooks: set the URL, verify the signature, the events.
  • Reference: every operation and schema.

On this page