Service Documentation CUSTOMER EXPOSED SERVICE: "Data Push"
To make use of any of the invocations contained within this information, as well as the provided APIs, the use of a ProjectName, UrlBase, and an ApiKey requested beforehand is required.
Important Contact Information:
- For technical inquiries or assistance: soporte@ado-tech.com
- For information about this API and other solutions in our catalog, please contact our financial area for evaluation at julian@ado-tech.com
- For changes that require adjustments, you can contact the financial area for validation
Note: All access keys, endpoint URLs, and other access elements will only be provided after reaching a formal agreement between both entities.
Service Overview
This documentation covers two types of services:
- Client-Exposed Services (implemented by the client): Services that the client must implement to receive webhook notifications and handle authentication
- ADO Services (provided by ADO): Services that clients can call to retrieve validation data with images
Client-Exposed Services
The client must expose a RESTful web service utilizing the OAuth2 authentication method to enable ADO to perform push operations on the database. These services include token generation and webhook data reception.
ADO Services
ADO provides validation services that clients can call to retrieve complete transaction data including images when requested.
Key Differences
- Webhook (Client-Exposed): Receives transaction notifications without images
- Validation Service (ADO): Returns complete transaction data with images when requested
Client-Exposed Services
Token Service (Client Implementation Required)
Description: This service must be implemented by the client to issue an OAuth2 authentication token to authorize subsequent requests to the database push service.
HTTP Method: POST
Endpoint: /api/token
Request Parameters
Parameter |
Type |
Required |
Description |
grant_type |
String |
Yes |
Type of HTTP authentication |
username |
String |
Yes |
Username for token retrieval |
password |
String |
Yes |
Corresponding password for token retrieval |
Response Parameters
Parameter |
Type |
Description |
access_token |
String |
Issued access token |
token_type |
String |
Generated token type |
expires_in |
Integer |
Token expiration time in minutes |
.issued |
String |
Token issuance date and time |
.expires |
String |
Token expiration date and time |
HTTP Request Example
curl -X POST http://localhost:62859/api/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=admin&password=contraseña"
Response Example
{
"access_token": "laK8SdjrKUAN7ja4SicUS-mL8eNWW74OTU2ZmSzjABLCGUgZknEifQkNtd5F20pBQiWvDpVwda9Bf31hB-mnzJLWmuKYY1sygHT37RQGI3Ym1HkLHwduutHwze2m9ZSBWCSV9NgOjO5Zd0Rcl9eexjFOS7cR6lOIZxxu31rLI_mHMbgtdSMAG-gToiHkgeXw6zbYjVaO1IzKMDjczyLZuvlYOfKNiJeh-3XbfjRxUy0",
"token_type": "bearer",
"expires_in": 59,
".issued": "Mon, 27 May 2024 20:38:24 GMT",
".expires": "Mon, 27 May 2024 20:39:24 GMT"
}
Database Push Service - Webhook (Client Implementation Required)
Description: This service must be implemented by the client to receive transaction data via webhook notifications. Note: This webhook does not contain images.
HTTP Method: POST
Endpoint: /api/Integration/Documents
Request Parameters
Parameter |
Type |
Required |
Description |
JsonTransaction |
JSON |
Yes |
JSON object containing transaction information in progress |
Authorization |
String |
Yes |
Authentication token (in request header) |
Response Codes
Code |
Description |
200 |
Process completed successfully |
401 |
Authorization failure |
500 |
Internal server error |
HTTP Request Example
curl -X POST http://localhost:62859/api/Integration/Documents \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"Uid":"d3a0bc78a0c344c48f1951a9e181c6b2",
"StartingDate":"2024-05-05T19:43:31.968755-05:00",
"CreationDate":"2024-05-05T19:43:28.0930662-05:00",
"CreationIP":"127.0.0.1",
"DocumentType":1,
"IdNumber":"1193539722",
"FirstName":"ROGER",
"SecondName":"JAVIER",
"FirstSurname":"DE AVILA",
"SecondSurname":"ARIAS",
"Gender":"M",
"BirthDate":"1990-05-03T00:00:00",
"PlaceBirth":"BOGOTÁ D.C. (BOGOTÁ D.C.)",
"TransactionType":1,
"TransactionTypeName":"Enroll",
"IssueDate":"2008-05-08T00:00:00",
"AdoProjectId":"126",
"TransactionId":"8676",
"ProductId":"1",
"ComparationFacesSuccesful":false,
"FaceFound":false,
"FaceDocumentFrontFound":false,
"BarcodeFound":false,
"ResultComparationFaces":0.0,
"ComparationFacesAproved":false,
"Extras":{
"IdState":"8676",
"StateName":"Proceso satisfactorio"
},
"Scores":[
{
"Id":8676,
"UserName":"Rest",
"StateName":"Proceso satisfactorio",
"StartingDate":"2020-08-05T19:43:31.968755-05:00",
"Observation":"Calificado automáticamente - Rest_Close"
}
]
}'
Validation Service (ADO Provided)
Get Validation Data
Description: This service is provided by ADO and allows clients to retrieve complete validation information for a specific transaction. Note: This service returns images when requested (returnImages=true).
HTTP Method: GET
Endpoint: /api/Example/Validation/Example
Query Parameters
Parameter |
Type |
Required |
Description |
returnImages |
Boolean |
No |
Whether to return images in response |
returnDocuments |
Boolean |
No |
Whether to return signed documents |
returnVideoLiveness |
Boolean |
No |
Whether to return video liveness data |
HTTP Request Example
curl -X GET "https://adocolombia.ado-tech.com/Example/api/Example/Validation/Example?returnImages=true" \
-H "accept: application/json" \
-H "apiKey: Example" \
-H "returnDocuments: false" \
-H "returnVideoLiveness: true"
Complete Response Structure
Main Response Fields
Field |
Type |
Description |
Uid |
String |
Unique identifier for the transaction |
StartingDate |
DateTime |
Date and time when the process started |
CreationDate |
DateTime |
Date and time when the record was created |
CreationIP |
String |
IP address from which the transaction was initiated |
DocumentType |
Integer |
Type of document (1 = ID Card, etc.) |
IdNumber |
String |
Document identification number |
FirstName |
String |
Person's first name |
SecondName |
String |
Person's second name |
FirstSurname |
String |
Person's first surname |
SecondSurname |
String |
Person's second surname |
Gender |
String |
Person's gender (M/F) |
BirthDate |
DateTime |
Person's birth date |
Street |
String |
Street address |
CedulateCondition |
String |
ID card condition |
Spouse |
String |
Spouse information |
Home |
String |
Home address |
MaritalStatus |
String |
Marital status |
DateOfIdentification |
DateTime |
Date of identification |
DateOfDeath |
DateTime |
Date of death (if applicable) |
MarriageDate |
DateTime |
Marriage date |
Instruction |
String |
Special instructions |
PlaceBirth |
String |
Place of birth |
Nationality |
String |
Nationality |
MotherName |
String |
Mother's name |
FatherName |
String |
Father's name |
HouseNumber |
String |
House number |
Profession |
String |
Profession |
ExpeditionCity |
String |
City where document was issued |
ExpeditionDepartment |
String |
Department where document was issued |
BirthCity |
String |
City of birth |
BirthDepartment |
String |
Department of birth |
TransactionType |
Integer |
Type of transaction (1 = Enroll) |
TransactionTypeName |
String |
Name of transaction type |
IssueDate |
DateTime |
Date when document was issued |
BarcodeText |
String |
Barcode text from document |
OcrTextSideOne |
String |
OCR text from side one |
OcrTextSideTwo |
String |
OCR text from side two |
SideOneWrongAttempts |
Integer |
Number of wrong attempts on side one |
SideTwoWrongAttempts |
Integer |
Number of wrong attempts on side two |
FoundOnAdoAlert |
Boolean |
Whether found on ADO alert list |
AdoProjectId |
String |
ADO project identifier |
TransactionId |
String |
Transaction identifier |
ProductId |
String |
Product identifier |
ComparationFacesSuccesful |
Boolean |
Whether face comparison was successful |
FaceFound |
Boolean |
Whether face was found |
FaceDocumentFrontFound |
Boolean |
Whether face was found on document front |
BarcodeFound |
Boolean |
Whether barcode was found |
ResultComparationFaces |
Float |
Result of face comparison |
ResultCompareDocumentFaces |
Float |
Result of document face comparison |
ComparationFacesAproved |
Boolean |
Whether face comparison was approved |
ThresholdCompareDocumentFaces |
Float |
Threshold for document face comparison |
CompareFacesDocumentResult |
String |
Result of face document comparison |
NumberPhone |
String |
Phone number |
CodFingerprint |
String |
Fingerprint code |
ResultQRCode |
String |
QR code result |
DactilarCode |
String |
Dactyloscopic code |
ReponseControlList |
String |
Control list response |
Latitude |
String |
GPS latitude coordinate |
Longitude |
String |
GPS longitude coordinate |
SessionId |
String |
Session identifier |
CustomerIdFromClient |
String |
Customer ID from client |
ProcessId |
String |
Process identifier |
DocumentTypeFromClient |
Integer |
Document type from client |
IdNumberFromClient |
String |
ID number from client |
NotEnrolledForComparisonWithClientData |
Boolean |
Whether not enrolled for comparison |
ExpirationDate |
DateTime |
Expiration date |
Field |
Type |
Description |
IdState |
String |
State identifier |
StateName |
String |
State name |
Images Array Fields
Field |
Type |
Description |
Id |
Integer |
Image identifier |
ImageTypeId |
Integer |
Type of image identifier |
ImageTypeName |
String |
Type of image name |
Image |
String |
Base64 encoded image data |
DownloadCode |
String |
Download code for image |
Image Types
ImageTypeId |
ImageTypeName |
Description |
1 |
Documento de identidad cara 1 |
ID document side 1 |
2 |
Documento de identidad cara 2 |
ID document side 2 |
3 |
Fotografía del cliente |
Client photograph |
12 |
Fotografía facial del documento |
Document facial photograph |
13 |
Fotografía firma del documento |
Document signature photograph |
17 |
Recorte Documento de identidad cara 1 |
ID document side 1 crop |
18 |
Recorte Documento de identidad cara 2 |
ID document side 2 crop |
20 |
Video de Liveness |
Liveness video |
SignedDocuments Array Fields
Field |
Type |
Description |
(Array structure depends on signed document type) |
Various |
Signed document information |
Scores Array Fields
Field |
Type |
Description |
Id |
Integer |
Score identifier |
UserName |
String |
Username who scored |
StateName |
String |
State name |
CausalRejectionName |
String |
Reason for rejection |
StartingDate |
DateTime |
Date when scoring started |
Observation |
String |
Observation notes |
ObservationFromList |
String |
Observation from predefined list |
Response_ANI Object Fields
Field |
Type |
Description |
Niup |
String |
National identification number |
FirstSurname |
String |
First surname |
Particle |
String |
Particle (connecting word) |
SecondSurname |
String |
Second surname |
FirstName |
String |
First name |
SecondName |
String |
Second name |
ExpeditionMunicipality |
String |
Municipality where document was issued |
ExpeditionDepartment |
String |
Department where document was issued |
ExpeditionDate |
String |
Date when document was issued |
CedulaState |
String |
ID card state code |
CedulaStateDescription |
String |
ID card state description |
Parameters Object Fields
Field |
Type |
Description |
(Structure depends on specific parameters) |
Various |
Additional parameters |
StateSignatureDocument Object Fields
Field |
Type |
Description |
(Structure depends on signature state) |
Various |
Signature document state information |
Error Handling
Common Error Responses
HTTP Status |
Description |
Response Format |
400 |
Bad Request |
{"error": "Invalid request parameters"} |
401 |
Unauthorized |
{"error": "Invalid or expired token"} |
404 |
Not Found |
{"error": "Resource not found"} |
500 |
Internal Server Error |
{"error": "Internal server error"} |