back  Back to APIs

Invoice 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 digitisation module not only extracts all information from e invoice documents, but also incorporates a state of the art parser which intelligently classifies the extracted information into relevant fields such as billing and shipping addresses, vendor information, purchase order ID, invoice and due dates and It works on various invoice formats, bills,receipts which eases your invoicing process.

try it out

( Click on the image to enlarge )

More than just the API

Explore the top features of Invoice Extraction

Extract data from any invoice with just a single API

State of the art parser- intelligently classifies the extracted information into relevant fields

High level of data accuracy irrespective of the formats

Customise the variables that need to be read from the documents

How it works?

Single API for all invoice/electronic invoice formats. See how our API automates invoice processing with this quick demonstation video.

Try the API

Please select Invoice Template

Please drag and drop files or click to browse.

Drag and Drop

or Click to browse files

Please wait...

Samples to try

Check out the API results using samples provided below.

Image Courtesy : Google

Your document is processed successfully.

{{k}}

{{v}}

{{h}}
{{d}}

Documentation

POST

{{url}}/api/v1/invoice

API Token

  Regenerate

{{tokenDisplay}}  

Usage and Code Samples

curl --location --request POST '{{url}}/api/v1/invoice' \
--header 'token: < your private token >' \
--header 'content-type: application/json' \
--data-raw '{
	"doc_type":'image',
	"doc_base64": '< base64 string of document >',
	"req_id": '< req id string >',
	"category": '< 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": '< req id string >', "category": '< string >' }");
  Request request = new Request.Builder()
	.url("{{url}}/api/v1/invoice")
	.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/v1/invoice")
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": < req id string >, "category": '< 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/v1/invoice");
  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": < req id string > , "category": '< 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/v1/invoice',
  'headers': {
	'token': '< your private token >',
	'content-type':'application/json'
  },
  body: '{"doc_type":"image", "doc_base64": "< base64 string of document >","req_id": < req id string > , "category": '< string >' }'
	};
	request(options, function (error, response) {
	if (error) throw new Error(error);
console.log(response.body);
});
var client = new RestClient("{{url}}/api/v1/invoice");
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": < req id string >" + "" +
@"    "category": < 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/v1/invoice');
$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": < req id string > , "category": '< 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 ($@) {
	warn "Exception when calling DefaultApi->apiV1LengthOfStayPredictionPost: $@";
}
																				
import requests
url = "{{url}}/api/v1/invoice"
payload = {"doc_type":"image", "doc_base64": "< base64 string of document >", "req_id": < req id string > , "category": '< 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 >,
  "category" : < 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 >,
  "data" : < dict >,
}

Field Details

Request Field Details

Fields Values/Description
doc_type “image” / “pdf”
req_id Unique request ID used for processing requests
category 'generic' or 'motor'
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 document uploaded
error_message If success is False then: Error message
data Dictionary of extracted data