---
title: "Signer identity review"
method: GET
path: "/v1/documents/{documentId}/assignments/{assignmentId}/signers/{signerId}/identity-verification"
tags: ["Assignments"]
---

# Signer identity review

`GET /v1/documents/{documentId}/assignments/{assignmentId}/signers/{signerId}/identity-verification`

## Request

- Base URL: `https://api.assinafy.com.br`
- URL: `https://api.assinafy.com.br/v1/documents/{documentId}/assignments/{assignmentId}/signers/{signerId}/identity-verification`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

The signer's identity-document verification as the account's reviewer sees it. When the provider sends a verification to review, the account decides it with **Decide signer identity review**. The signer can still view and sign meanwhile; the review holds the document's certification instead (status `pending_identity_review` once every signer has signed).
Evidence is a summary kept by Assinafy (no images or biometrics). `evidence_available` is false when the provider keeps none or it could not be fetched yet. While the review is open, `images` lists the evidence images the reviewer can open with **Signer identity review image**. A verification the provider approved directly, without a review, shows no evidence here (`evidence_available` is false); its evidence is on the `signer_identity_verified` activity. Reachable with the `documents:read` OAuth scope, but the images and the decision are not available to OAuth applications (`403`): the review is made by a person in Assinafy.

[Copy as Markdown](https://api.assinafy.com.br/v1/docs/markdown?method=get&path=%2Fv1%2Fdocuments%2F%7BdocumentId%7D%2Fassignments%2F%7BassignmentId%7D%2Fsigners%2F%7BsignerId%7D%2Fidentity-verification) [Open in ChatGPT](https://chatgpt.com/?q=Read%20the%20API%20documentation%20at%20https%3A%2F%2Fapi.assinafy.com.br%2Fv1%2Fdocs%2Fmarkdown%3Fmethod%3Dget%26path%3D%252Fv1%252Fdocuments%252F%257BdocumentId%257D%252Fassignments%252F%257BassignmentId%257D%252Fsigners%252F%257BsignerId%257D%252Fidentity-verification%20and%20help%20me%20integrate%20this%20endpoint.) [Open in Claude](https://claude.ai/new?q=Read%20the%20API%20documentation%20at%20https%3A%2F%2Fapi.assinafy.com.br%2Fv1%2Fdocs%2Fmarkdown%3Fmethod%3Dget%26path%3D%252Fv1%252Fdocuments%252F%257BdocumentId%257D%252Fassignments%252F%257BassignmentId%257D%252Fsigners%252F%257BsignerId%257D%252Fidentity-verification%20and%20help%20me%20integrate%20this%20endpoint.)

## Path parameters

- `documentId` string, required
- `assignmentId` string, required
- `signerId` string, required

## Response `200`

Identity review

- object: Standard success wrapper. Operations add their own `data`.
  - `status` integer: HTTP status code, mirrored in the body.
  - `message` string: Human-readable message; empty on success.
  - `data` SignerIdentityReview
    - `id` string
    - `status` 'Pending' | 'InReview' | 'Approved' | 'Declined' | 'Expired' | 'Abandoned'
    - `provider` 'AssinafyVerify'
    - `verification_method` 'IdDocumentFaceMatchBasic'
    - `reason_codes` object[]: Why the provider sent it to review, in its order. Unknown codes have the code as description.
      - `code` string
      - `description` string
    - `evidence_available` boolean
    - `expected` object, nullable: What the signer was registered with.
      - `name` string, nullable
      - `cpf` string, nullable
    - `document` object, nullable: What was read from the document.
      - `type` string, nullable
      - `name` string, nullable
      - `cpf` string, nullable
    - `matches` object, nullable
      - `cpf` boolean, nullable
      - `name` number, nullable: Name similarity, 0-1.
      - `birth_date` boolean, nullable
    - `checks` object[]
      - `name` string
      - `result` string: pass, review, skipped, or a failure result.
      - `score` number, nullable
      - `reasons` string[]
    - `images` string[]: The evidence images the reviewer can open with **Signer identity review image**, in display order: `document_front`, `document_back`, `document_pdf`, `face`. Only while `status` is `InReview`; empty once decided.
    - `ruleset_version` string, nullable
    - `evidence_sha256` string, nullable
    - `reviewed_by` object, nullable
      - `id` string
      - `name` string
    - `reviewed_at` string, date-time, nullable
    - `review_note` string, nullable
    - `completed_at` string, date-time, nullable

## Other responses

- `401`: Missing or invalid credentials.
- `404`: Assignment, signer or verification not found.
- `500`: Unexpected server error.

## Changes

- **2026-10-15** `da98836f863b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/assinafy/apis/assinafy-api-reference/changes/v1/documents/:documentId/assignments/:assignmentId/signers/:signerId/identity-verification/get.md)

---

[API](https://skmtc.dev/assinafy/apis/assinafy-api-reference.md) - [All operations](https://skmtc.dev/assinafy/apis/assinafy-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/assinafy/apis/assinafy-api-reference/revisions/3672991376b6?raw)
