Digital Onboarding

Identity Paper Verification - Signicat Paper API

520 views February 6, 2018 February 6, 2018 1

Overview

The Signicat Paper API provides the functionality to analyze an identity document (like a passport or a driver’s license). The API both validates the authenticity of the ID paper and extracts the data printed on it. In addition, the API can extract the photo on the ID paper, which in turn can be used towards the Microsoft Face API in order to add an additional layer of security by verifying that the end user is the owner of the ID paper provided.

Using the service

Authentication

All requests must be authenticated by means of an OIDC access token, supplied as an Authorization header of type Bearer. For more
instructions on how to obtain such a token, please refer to Accessing Signicat REST services. This service requires that the scope “client.paper.analyze” is requested.

API

Environment
Base URL
Beta https://beta.signicat.com
Preproduction https://preprod.signicat.com
Production https://id.signicat.com
Path
Verb
Content type
Input
Output
/paper/ PUT application/json Identity paper request payload If accepted (HTTP 202), returns RequestStatus.
/paper/{requestId} GET application/json AnalysisResult
/paper/{requestId}/status GET application/json RequestStatus

Code examples

Examples using cURL
curl -X PUT \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Cache-Control: no-cache" \
    -H "Authorization: Bearer <token>" \
    -d '{"country_code":"GB", "type": "passport", "include_images": true, "front_image": "base64image", "back_image": null}' \
  "https://<ENVIRONMENT>.signicat.com/paper/"
curl -X GET \
    -H "Accept: application/json" \
    -H "Cache-Control: no-cache" \
    -H "Authorization: Bearer <token>" \
  "https://<ENVIRONMENT>.signicat.com/paper/<requestId>"
curl -X GET \
    -H "Accept: application/json" \
    -H "Cache-Control: no-cache" \
    -H "Authorization: Bearer <token>" \
  "https://<ENVIRONMENT>.signicat.com/paper/<requestId>/status"

Messages

AnalysisRequest

Type
Description
country_code String ISO 3166-1 alpha-2 country code of ID paper issuer. Can be autodetected in certain cases, but its presence is recommended.
type enum values: [drivers_license|passport|national_id_card|residence_permit]. Type of ID paper to analyze.
include_images boolean If true, image-type features (like photo and signature) will be returned in the AnalysisResult as base64 encoded images.
front_image Base64 encoded image A base64 encoded image of the front side of the ID paper.
back_image Base64 encoded image A base64 encoded image of the back side of the ID paper. In the case of passports, this can be null.

RequestStatus

Type
Description
request_id String The request ID to use for subsequent requests to the API
status_code enum values: [completed|failed|pending|processing|missing]. If completed or failed, the AnalysisResult can be fetched. If pending or processing, the status endpoint must be polled. If missing, the analysis has either timed out or the requestId is invalid.
status URI URI to the status endpoint which can be polled for updates to this request.
result URI URI to the result endpoint which can be queried to get the AnalysisResult for this request. If the status is pending or processing, requests to this endpoint will block until results exist.

AnalysisResult

Type
Description
status enum values: [completed|failed|pending|processing|missing].
fields Object Map of key-value pairs where each pair corresponds to an attribute found on the ID paper (e.g. surname)
mrz Object Map of key-value pairs where the key corresponds to an attribute found in the Machine-Readable-Zone in the ID-paper.

The value is an object containing two attributes:

  • value (String): The value of this attribute
  • verified (boolean): Whether this attribute was covered by and passes a checksum check. Note that certain attributes (like names) are not covered by check digits in standard MRZs

Was this helpful?