Auth
Parse ID card images during signup
Parse ID card images during signup
POST
https://api-gw.verolabs.co/api/v2/chat
/
api
/
v2
/
chat
/
api
/
id-card
Parse ID card images during signup
curl --request POST \
--url https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card \
--header 'Content-Type: application/json' \
--data '
{
"frontImage": "aSDinaTvuI8gbWludGxpZnk=",
"backImage": "aSDinaTvuI8gbWludGxpZnk=",
"portraitImage": "aSDinaTvuI8gbWludGxpZnk="
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
frontImage: 'aSDinaTvuI8gbWludGxpZnk=',
backImage: 'aSDinaTvuI8gbWludGxpZnk=',
portraitImage: 'aSDinaTvuI8gbWludGxpZnk='
})
};
fetch('https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card"
payload = {
"frontImage": "aSDinaTvuI8gbWludGxpZnk=",
"backImage": "aSDinaTvuI8gbWludGxpZnk=",
"portraitImage": "aSDinaTvuI8gbWludGxpZnk="
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card"
payload := strings.NewReader("{\n \"frontImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"backImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"portraitImage\": \"aSDinaTvuI8gbWludGxpZnk=\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using RestSharp;
var options = new RestClientOptions("https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddJsonBody("{\n \"frontImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"backImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"portraitImage\": \"aSDinaTvuI8gbWludGxpZnk=\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);falseCURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"frontImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"backImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"portraitImage\": \"aSDinaTvuI8gbWludGxpZnk=\"\n}");
CURLcode ret = curl_easy_perform(hnd);{
"success": true,
"data": {
"idNumber": "<string>",
"fullName": "<string>",
"dateOfBirth": "<string>",
"sex": "<string>",
"nationality": "<string>",
"placeOfOrigin": "<string>",
"placeOfResidence": "<string>",
"dateOfExpiry": "<string>",
"dateOfIssue": "<string>",
"issuedBy": "<string>",
"address": "<string>"
},
"imageUrls": {
"front": "<string>",
"back": "<string>",
"portrait": "<string>"
},
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>",
"details": "<string>",
"status": 123
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>",
"details": "<string>",
"status": 123
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>",
"details": "<string>",
"status": 123
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>",
"details": "<string>",
"status": 123
}Body
application/json
Base64 image payload used by the signup ID-card scan flow.
Base64-encoded ID-card images captured or uploaded in the signup flow. frontImage is required; backImage and portraitImage are optional.
Response
Parsed ID-card data and uploaded image URLs when available.
ID-card parsing response returned by the chat/ekyc route.
Whether parsing succeeded.
Parsed Vietnamese ID card fields.
Hide child attributes
Hide child attributes
Citizen ID number.
Full name on the ID card.
Date of birth as parsed from the document.
Sex/gender value on the document.
Nationality.
Place of origin.
Place of residence.
Expiry date.
Issue date when available.
Issuing authority when available.
Parsed address when returned by backend.
Error message when parsing fails.
⌘I
Parse ID card images during signup
curl --request POST \
--url https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card \
--header 'Content-Type: application/json' \
--data '
{
"frontImage": "aSDinaTvuI8gbWludGxpZnk=",
"backImage": "aSDinaTvuI8gbWludGxpZnk=",
"portraitImage": "aSDinaTvuI8gbWludGxpZnk="
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
frontImage: 'aSDinaTvuI8gbWludGxpZnk=',
backImage: 'aSDinaTvuI8gbWludGxpZnk=',
portraitImage: 'aSDinaTvuI8gbWludGxpZnk='
})
};
fetch('https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card"
payload = {
"frontImage": "aSDinaTvuI8gbWludGxpZnk=",
"backImage": "aSDinaTvuI8gbWludGxpZnk=",
"portraitImage": "aSDinaTvuI8gbWludGxpZnk="
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card"
payload := strings.NewReader("{\n \"frontImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"backImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"portraitImage\": \"aSDinaTvuI8gbWludGxpZnk=\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using RestSharp;
var options = new RestClientOptions("https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddJsonBody("{\n \"frontImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"backImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"portraitImage\": \"aSDinaTvuI8gbWludGxpZnk=\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);falseCURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_WRITEDATA, stdout);
curl_easy_setopt(hnd, CURLOPT_URL, "https://api-gw.verolabs.co/api/v2/chat/api/v2/chat/api/id-card");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"frontImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"backImage\": \"aSDinaTvuI8gbWludGxpZnk=\",\n \"portraitImage\": \"aSDinaTvuI8gbWludGxpZnk=\"\n}");
CURLcode ret = curl_easy_perform(hnd);{
"success": true,
"data": {
"idNumber": "<string>",
"fullName": "<string>",
"dateOfBirth": "<string>",
"sex": "<string>",
"nationality": "<string>",
"placeOfOrigin": "<string>",
"placeOfResidence": "<string>",
"dateOfExpiry": "<string>",
"dateOfIssue": "<string>",
"issuedBy": "<string>",
"address": "<string>"
},
"imageUrls": {
"front": "<string>",
"back": "<string>",
"portrait": "<string>"
},
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>",
"details": "<string>",
"status": 123
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>",
"details": "<string>",
"status": 123
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>",
"details": "<string>",
"status": 123
}{
"error": "<string>",
"message": "<string>",
"detail": "<string>",
"details": "<string>",
"status": 123
}
