Skip to main content

document-ocr

Request Body Samples:

//POST /document-ocr  HTTP/1.1
//Host: https://api.facia.ai
//Content-Type: application/json
//Authorization: Bearer <access-token-here>

{
"type": "document_ocr",
"file": "file.jpg"
}
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer token");

var formdata = new FormData();
formdata.append("type", "document_ocr");
formdata.append("file", fileInput.files[0], "321238932_678447270428202_3141578377253799698_n.jpeg");

var requestOptions = {
method: 'POST',
headers: myHeaders,
body: formdata,
redirect: 'follow'
};

fetch("/api/transaction/create--ocr-transaction", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));

curl --location 'https://api.facia.ai/document-ocr' \
--header 'Content-Type: application/json' \
--data '{
"type": "document_ocr",
"file": file.jpg
}'
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => '/document-ocr',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('type' => 'document_ocr','file'=> new CURLFILE('/321238932_678447270428202_3141578377253799698_n.jpeg')),
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer token'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import requests

url = "/document-ocr"

payload={'type': 'document_ocr'}

files=[
('file',('321238932_678447270428202_3141578377253799698_n.jpeg',open('/321238932_678447270428202_3141578377253799698_n.jpeg','rb'),'image/jpeg'))
]
headers = {
'Authorization': 'Bearer token'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
require 'net/http'
require 'uri'

url = URI.parse('/document-ocr')
token = 'your_token'
payload = {
'type' => 'document_ocr',
'file' => File.new('/path/to/321238932_678447270428202_3141578377253799698_n.jpeg', 'rb')
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.path)
request['Authorization'] = "Bearer #{token}"
request.set_form(payload, 'multipart/form-data')
response = http.request(request)
puts "Response Code: #{response.code}"
puts "Response Body: #{response.body}"
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;

public class FaceSearchRequest {

public static void main(String[] args) {
try {
String url = "/document-ocr";
String token = "your_token";
String payload = "type=document_ocr";
String filePath = "/path/to/321238932_678447270428202_3141578377253799698_n.jpeg";
File file = new File(filePath);
URL uri = new URI(url).toURL();
HttpURLConnection connection = (HttpURLConnection) uri.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Authorization", "Bearer " + token);
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=--------------------------123456789012345678901234");
DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream());
outputStream.writeBytes("--" + "--------------------------123456789012345678901234" + "\r\n");
outputStream.writeBytes("Content-Disposition: form-data; name=\"client_reference\"\r\n\r\nQWERTY12345\r\n");
outputStream.writeBytes("--" + "--------------------------123456789012345678901234" + "\r\n");
outputStream.writeBytes("Content-Disposition: form-data; name=\"allow_override\"\r\n\r\nfalse\r\n");
outputStream.writeBytes("--" + "--------------------------123456789012345678901234" + "\r\n");
outputStream.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"" + file.getName() + "\"\r\n");
outputStream.writeBytes("Content-Type: image/jpeg\r\n\r\n");
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.writeBytes("\r\n");
fileInputStream.close();
outputStream.writeBytes("--" + "--------------------------123456789012345678901234" + "--\r\n");
outputStream.flush();
int responseCode = connection.getResponseCode();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
System.out.println("Response Code: " + responseCode);
System.out.println("Response Body: " + response.toString());
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

class Program
{
static async Task Main()
{
string apiUrl = "/document-ocr";
string token = "your_token";
var payload = new MultipartFormDataContent
{
{ new StringContent("document_ocr"), "type" },
{ new StreamContent(File.OpenRead("/path/to/321238932_678447270428202_3141578377253799698_n.jpeg")), "file", "321238932_678447270428202_3141578377253799698_n.jpeg" }
};
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
var response = await httpClient.PostAsync(apiUrl, payload);
Console.WriteLine($"Response Code: {response.StatusCode}");
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Response Body: {responseBody}");
}
}
}
package main

import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
)

func main() {
apiURL := "/document-ocr"
token := "your_token"
payload := &bytes.Buffer{}
writer := multipart.NewWriter(payload)

_ = writer.WriteField("type", "document_ocr")


file, err := os.Open("/path/to/321238932_678447270428202_3141578377253799698_n.jpeg")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()

part, err := writer.CreateFormFile("file", file.Name())
if err != nil {
fmt.Println("Error creating form file:", err)
return
}
_, err = io.Copy(part, file)
if err != nil {
fmt.Println("Error copying file to form:", err)
return
}
_ = writer.Close()
request, err := http.NewRequest("POST", apiURL, payload)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
request.Header.Set("Content-Type", writer.FormDataContentType())
request.Header.Set("Authorization", "Bearer "+token)
client := &http.Client{}
response, err := client.Do(request)
if err != nil {
fmt.Println("Error making request:", err)
return
}
defer response.Body.Close()
fmt.Println("Response Code:", response.Status)
responseBody, err := io.ReadAll(response.Body)
if err != nil {
fmt.Println("Error reading response body:", err)
return
}
fmt.Println("Response Body:", string(responseBody))
}

Request Parameter

ParametersDescription
type Required: Yes
Type: string
Example: type=document_ocr
Type must be face_search.
file Required: Yes
Type: file
Example: file=file
File must be of type .jpeg, .jpg or .png.

Response Sample


{
"status": true,
"message": "Transaction Created",
"result": {
"data": {
"reference_id": "4SEAUGEHNCSFVQK"
}
}
}


Response Parameter

ParametersDescription
reference_id Type: string
Example: reference_id=4SEAUGEHNCSFVQK
The unique identifier associated with the created transaction.
message Type: string
Example: message=Transaction Created

Document OCR Result

This endpoint accepts a single field in the body request payload: reference_id. Once the backend finalizes the response, this endpoint returns a ocr_results object with multiple object ids. Failure to provide a valid reference_id will result in a 422 status code.

Endpoint

POSThttps://api.facia.ai/result

Authorization:

Token Type: Bearer
Description:

This API utilizes Access token or Client-Secret key in header for authentication.

You can use your client_id and client_secret key when using the "/request-access-token" endpoint to obtain a Bearer token for authorization while connecting to this API. For additional details on Authorization, click Here

Run in Postman

Request Body Samples:

//POST /result HTTP/1.1
//Host: api.facia.ai
//Content-Type: application/json
//Authorization: Bearer <access-token-here>

{
"reference_id": "4SEAUGEHNCSFVQK"
}

var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer token");

var formdata = new FormData();
formdata.append("reference_id", "4SEAUGEHNCSFVQK");

var requestOptions = {
method: 'POST',
headers: myHeaders,
body: formdata,
redirect: 'follow'
};

fetch("/result", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));

curl --location 'https://api.facia.ai/result' \
--header 'Content-Type: application/json' \
--data '{
"reference_id": "W4437KIWN0KDM13"
}'
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => '/result',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'reference_id' => '4SEAUGEHNCSFVQK'
),
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer token'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
import requests

url = "/result"

payload={
"reference_id": "4SEAUGEHNCSFVQK"
}
files=[

]
headers = {
'Authorization': 'Bearer token'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
require 'net/http'
require 'uri'

url = URI.parse('/result')
token = 'your_token'
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url.path)
request['Authorization'] = "Bearer #{token}"
request.set_form_data(
'reference_id' => '4SEAUGEHNCSFVQK'
)
response = http.request(request)
puts "Response Code: #{response.code}"
puts "Response Body: #{response.body}"
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class FaceSearchResultRequest {

public static void main(String[] args) {
try {
String apiUrl = "/result";
String token = "your_token";
String referenceId = "4SEAUGEHNCSFVQK";
URL url = new URL(apiUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Authorization", "Bearer " + token);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write("reference_id=" + referenceId);
writer.flush();
writer.close();
int responseCode = connection.getResponseCode();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;

while ((line = reader.readLine()) != null) {
response.append(line);
}

reader.close();
System.out.println("Response Code: " + responseCode);
System.out.println("Response Body: " + response.toString());
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
static async Task Main()
{
string apiUrl = "/result";
string token = "your_token";
string referenceId = "4SEAUGEHNCSFVQK";
using (var httpClient = new HttpClient())
{
var request = new HttpRequestMessage(HttpMethod.Post, apiUrl);
request.Headers.Add("Authorization", "Bearer " + token);
var postData = new System.Collections.Generic.Dictionary<string, string>();
postData.Add("reference_id", referenceId);
request.Content = new FormUrlEncodedContent(postData);
var response = await httpClient.SendAsync(request);
Console.WriteLine($"Response Code: {response.StatusCode}");
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Response Body: {responseBody}");
}
}
}
package main

import (
"fmt"
"io/ioutil"
"net/http"
)

func main() {
apiURL := "/result"
token := "your_token"
referenceID := "4SEAUGEHNCSFVQK"
payload := strings.NewReader("reference_id=" + referenceID)
client := &http.Client{}
request, err := http.NewRequest("POST", apiURL, payload)
if err != nil {
fmt.Println("Error creating request:", err)
return
}
request.Header.Set("Authorization", "Bearer "+token)
response, err := client.Do(request)
if err != nil {
fmt.Println("Error making request:", err)
return
}
defer response.Body.Close()
fmt.Println("Response Code:", response.Status)
responseBody, err := ioutil.ReadAll(response.Body)
if err != nil {
fmt.Println("Error reading response body:", err)
return
}
fmt.Println("Response Body:", string(responseBody))
}

Request Parameter

ParametersDescription
reference_id Required: Yes
Type: string
Example: reference_id=4SEAUGEHNCSFVQK
The unique identifier associated with the created transaction.

Response Sample


{
"status": true,
"message": "Success",
"result": {
"data": {
"id": 154,
"reference_id": "4SEAUGEHNCSFVQK",
"ocr_results": {
"full_name": "John Livone",
"father_name": "Alex Livone",
"native_full_name": "N/A",
"native_father_name": "N/A",
"date_of_birth": "1986-06-09",
"issue_date": "2020-12-11",
"expiry_date": "2030-12-11",
"document_number": "A123456",
"nationality": "N/A",
"country": "United Kingdom",
"document_country": "GB",
"document_type": "id_card"
},
"proof_id": "6639d393dec66577ce07ff4d",
"created_at": "2024-05-07 07:09:07",
}
}
}


Response Parameter

ParametersDescription
reference_id Type: string
Example: reference_id=4SEAUGEHNCSFVQK
This key includes the reference number of the request.
ocr_results Type: object
It contains the response generated by the system.
proof_id Type: string
It is the id of submitted proof.