Identity Document Verification
Before creating a signing process or running a background check, Auco verifies against the official record that the identity document exists and that its holder is not registered as deceased. In signing processes it also compares the signer's name with the one in the record.
If the verification fails, Auco does not create the process and responds 400 with a code that says what failed. This way no documents are sent for signature and no checks are paid for on behalf of an identity that does not exist.
When a country or document type has no coverage, the verification is skipped and the process goes on. The same happens if the official record does not respond: a provider failure never stops the process from being created.
🧩 Where It Applies
| Service | What is verified | What it needs |
|---|---|---|
POST /document/upload | Status and name of each signer. | signProfile[x].identification and signProfile[x].identificationType. See Signer fields. |
POST /document/save | Status and name of each signer. | The template's signatureProfile must define the signer's identification and document type. |
POST /validate/background | Document status. There is no name. | type set to CC, CE or PPT. With NIT, Auco checks that the company exists in the RUES. |
In signing processes only signers that carry identification are verified. In background checks, the PP and INT types are not verified.
Signer Fields
These fields go in each element of signProfile in POST /document/upload:
| Name | Type | Description |
|---|---|---|
signProfile[x].identification | String optional | Signer's identification number. |
signProfile[x].identificationType | String conditional | Document type, for example CC or CE. Without it, the signer is not verified and its status comes back as NOT_SUPPORTED. |
signProfile[x].country | String optional | Two-letter ISO code of the document's country. Default is CO. |
📥 Response Examples
When a signer carries identification, the response of POST /document/upload and of POST /document/save includes identityValidation, with one element per verified signer:
{
"document": "ABCDEF1234",
"identityValidation": [
{
"identification": "123456789",
"name": "John Smith",
"validated": true,
"status": "ALIVE",
"nameStatus": "MATCH"
}
]
}
📋 Response Fields
| Field | Type | Description |
|---|---|---|
identityValidation | Array<Object> | Optional. Returned only if some signer sent identification. |
identityValidation[].identification | String | Identification number that was verified. |
identityValidation[].name | String | Signer name the record was compared against. |
identityValidation[].validated | Boolean | true only when status is ALIVE. |
identityValidation[].status | String | Document status. See Document statuses. |
identityValidation[].nameStatus | String | Result of the name comparison: MATCH, NO_MATCH, NOT_FOUND, UNSUPPORTED or ERROR. It is null when it was not compared. |
identityValidation only comes in the creation response. If you need it later, keep it in your integration.
🔄 Document Statuses (identityValidation[].status)
| Status | Description |
|---|---|
ALIVE | The document exists and its holder is alive. |
DECEASED | The document holder is registered as deceased. Rejects the process. |
NOT_FOUND | The document does not exist in the official record. Rejects the process. |
UNKNOWN | The record answered without a conclusive status. |
UNSUPPORTED | The country or document type has no verification coverage. |
ERROR | The lookup provider failed. |
UNAVAILABLE | Auco could not run the lookup. |
NOT_SUPPORTED | The signer has no identificationType, so it was not verified. |
Only DECEASED, NOT_FOUND and a name in NO_MATCH reject the process; with any other status the process is created.
New values may appear. Treat an unknown value as a non-validated result, without failing your integration.
🚫 Rejection Codes
All of them respond 400. The code comes in message.
| Code | Description |
|---|---|
SIGNER_IDENTITY_DECEASED | Signing processes. A signer is registered as deceased. |
SIGNER_IDENTITY_NOT_FOUND | Signing processes. A signer's document does not exist in the official record. |
SIGNER_NAME_MISMATCH | Signing processes. A signer's name does not match the one in the record. |
IDENTITY_DECEASED | Background check. The document holder is registered as deceased. |
IDENTITY_NOT_FOUND | Background check. The document does not exist in the official record. |
COMPANY_NOT_FOUND | Background check with type: NIT. The company does not exist in the RUES. |
In signing processes, the error body identifies the signer that caused it. SIGNER_NAME_MISMATCH also carries name:
{
"message": "SIGNER_IDENTITY_NOT_FOUND",
"identification": "123456789"
}