Back to APIs

KYC Extraction

{{el |capitalize:true}}

{{username ? 'subscribe' : 'start free trial'}}

Remaining API Counts:

{{(token.limit-token.counter) || '0' }}
Remaining API Count : {{(token.limit-token.counter) || '0' }}

API Overview

Arya’s KYC extraction module provides state of the art results for extraction of information from a variety of ID proof(s) which need to be submitted as a part of KYC regulation. The module robustly identifies all KYC documents such as PAN card, AADHAR card, Voter ID, Driver’s Licence or Passport and extracts information accordingly, all included within a single API. With this module, ekyc verification of any client can be done in a matter of seconds and the complete onboarding process gets more efficient and streamlined.

try it out

( Click on the image to enlarge )

How it works?

75% cost reduction and lightning fast results! Know all about our KYC API and how it works in this quick video

Digitizing KYC extraction through AI

Arya's KYC Extraction API for accurate information retrieval from variety of ID proof(s) for seamless KYC process. The module identifies any KYC document such as PAN card, AADHAR card, Voter ID, Passport, Driving licence and extracts information accordingly.

Read More

Try the API

Please drag and drop files or click to browse.

Drag and Drop

or Click to browse files


Please wait!
Processing the document...

Samples to try

Check out the API results using samples provided below.

Image Courtesy : Google


Please wait!
Processing the document...

Your document is extracted successfully.

Key {{showTicks?'Arya API':'Value'}} Govt Record
{{k|clean|capitalize:true}} Date of Birth Date of Expiry :  {{v}} {{verifiedData[k] || verifiedData['registered_name'] || '-'}} {{verifiedData['aadhaarNumber'] || '-'}} {{verifiedData['gender'] || '-'}}

Documentation

POST

{{url}}/api/{{api_version}}/kyc

API Token

  Regenerate

{{tokenDisplay}}  

Usage and Code Samples

curl --location --request POST '{{url}}/api/{{api_version}}/kyc' \
--header 'token: < your private token >' \
--header 'content-type: application/json' \
--data-raw '{
	"doc_type":'image',
	"doc_base64": '< base64 string of document >',
	"req_id": '< string >'
}'
																						
OkHttpClient client = new OkHttpClient().newBuilder().build();
  MediaType mediaType = MediaType.parse("application/javascript");
  RequestBody body = RequestBody.create(mediaType, "{ "doc_type":'image', "doc_base64": '< base64 string of document >',"req_id": '< string >'  }");
  Request request = new Request.Builder()
	.url("{{url}}/api/{{api_version}}/kyc")
	.method("POST", body)
	.addHeader("token", "< your private token >")
	.addHeader("content-type", "application/json")
	.build();
  Response response = client.newCall(request).execute();
require "uri"
require "net/http"
url = URI("{{url}}/api/{{api_version}}/kyc")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["token"] = "< your private token >"
request["content-type"] = "application/json"
request.body = "{"doc_type":'image', "doc_base64": '< base64 string of document >',"req_id": < string >  }"
response = https.request(request)
puts response.read_body
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
  curl_easy_setopt(curl, CURLOPT_URL, "{{url}}/api/{{api_version}}/kyc");
  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
  struct curl_slist *headers = NULL;
  headers = curl_slist_append(headers, "token: < your private token >");
  headers = curl_slist_append(headers, "content-type: application/json");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  const char *data = "{"doc_type":'image', "doc_base64": '< base64 string of document >',"req_id": < string >  }";
  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
  res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
																					
var request = require('request');
var options = {
  'method': 'POST',
  'url': '{{url}}/api/{{api_version}}/kyc',
  'headers': {
	'token': '< your private token >',
	'content-type':'application/json'
  },
  body: '{"doc_type":"image", "doc_base64": "< base64 string of document >","req_id": < string >  }'
	};
	request(options, function (error, response) {
	if (error) throw new Error(error);
console.log(response.body);
});
var client = new RestClient("{{url}}/api/{{api_version}}/kyc");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("token", "< your private token >");
request.AddHeader("content-type", "application/json");
var body = @"{" + "" +
@"    "doc_type": 'image'," + "" +
@"    "doc_base64": '< base64 string of document >'," + "" +
@"    "req_id": < string >" + "" +
@"  }";
request.AddParameter("application/json", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{url}}/api/{{api_version}}/kyc');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
  'token' => '< your private token >',
  'content-type' => 'application/json'
));
$request->setBody('{"doc_type":"image", "doc_base64": "< base64 string of document >","req_id": < string >  }');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
	echo $response->getBody();
  }
  else {
	echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
	$response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
?>
use Data::Dumper;
use WWW::SwaggerClient::Configuration;
use WWW::SwaggerClient::DefaultApi;
my $api_instance = WWW::SwaggerClient::DefaultApi->new();
my $body = WWW::SwaggerClient::Object::V1_lengthofstayprediction_body->new(); # V1_lengthofstayprediction_body | 
my $token = token_example; # String | 
eval { 
	my $result = $api_instance->apiV1LengthOfStayPredictionPost(body => $body, token => $token, content-type=>'application/json');
	print Dumper($result);
};
if ([email protected]) {
	warn "Exception when calling DefaultApi->apiV1LengthOfStayPredictionPost: [email protected]";
}
																				
import requests
url = "{{url}}/api/{{api_version}}/kyc"
payload = {"doc_type":"image", "doc_base64": "< base64 string of document >", "req_id": < string >  }
headers = {
  'token': '< your private token >',
  'content-type':'application/json'
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
	

Request Parameters

Header parameters

Name Description
token
String

Body parameters

Name Description
body {
  "doc_type" : < string >,
  "req_id" : < string >,
  "doc_base64": < base64 encoded string >
}

Response Parameters

Status: 200 - API Request Successful

Body parameters

Name Description
body {
  "req_id" : < string >,
  "success" : < boolean >,
  "doc_type": < string >
  "error_message" : < string >,
  "extracted_data" : < dict >,
  "image_quality": < string >
  "verify_data" : < dict > ( after verification )
}

Field Details

Request Field Details

Fields Values/Description
doc_type “image” / “pdf”
req_id Request ID used for processing requests
doc_base64 Base64 encoded string of the document

Response Field Details

Fields Values/Description
req_id Corresponding request id
success Flag if the request is processed successfully
doc_type Type of KYC document uploaded
error_message If success is False then: Error message
verify_data Object of verified data (after verification)