Tax statement

Comprehensive capture and extraction of Tax statements.

Verification of tax statements is crucial for financial compliance and tax reporting. It enables you to authenticate the accuracy of financial data, ensuring that it aligns with revenue claims. This validation is critical for securing rental accommodations, obtaining mortgage approvals, and fostering trust in financial transactions that depend on accurate income documentation.

Introduction

Datakeen's OCR service automatically extracts information from Tax statements.

  • Information is captured as structured data and can be extracted as a .json through our API.
  • Authenticity checks generate a compliance score to determine whether the tax statement has been altered.

2021 Model

Extracted informationControlsOther checks
- Year of statement
- Full name
- Tax number
- Tax statement ID
- Tax reference income
- Net taxable income
- Number of tax units
- Annual income salary
- 10% deduction
- Non-professional incomes
- Allowance
- Special 10% allowance
- Net non-professional incomes
- Minimal deduction
- Pensions and annuities
- Disability pensions
- Declared furnished rental income
- Net furnished rental income
- Net wages and pensions
- Taxable income from transferable securities
- Total wages and salaries
- Postal address
- Address
- Full name of 2nd submitter
- 2nd submitter's tax number
- 2nd submitter's tax reference
- 2nd submitter's reference tax income
- 2nd submitter's total annual income
- Deduction 10% for 2nd submitter
- Non-professional incomes for 2nd submitter
- 2nd submitter's deduction
- Special deduction of 10% for 2nd filler
- Net non-professional incomes for 2nd filer
- Minimum deduction for 2nd filer
- Pensions and annuities for 2nd filer
- 2nd submitter's disability pensions
- Declared furnished
-rental income of 2nd submitter
- Net furnished rental income of 2nd submitter
- 2nd submitter's net wages and pensions
- Total salaries and similar income of 2nd submitter
- Tax number conformity check
- Compliance check of 2nd submitter's tax number
- Conformity check of the tax reference
- Match between extracted "Tax reference income" and "Tax reference income" retrieved from 2DDoc
- Match between "number of tax units" extracted and "number of tax units" retrieved from 2DDoc
- Match of extracted "Tax statement ID" and "Tax statement ID" retrieved from 2DDoc
- Match of extracted fiscal year and extracted fiscal year retrieved from 2DDoc
- Match of extracted tax number and name retrieved from 2DDoc
- Match of extracted tax number of 2nd submitter and retrieved name of 2nd submitter on 2DDoc
- Match name extracted and name retrieved from 2DDoc
- Match of name extracted from 2nd submitter and name of 2nd submitter retrieved from 2DDoc
- Match of extracted name and sent name (exact, fuzzy, very fuzzy)
- Match of extracted 2nd submitter name and sent 2nd submitter name (exact, fuzzy, very fuzzy)
- Api response from Import Gouv
- 2DDoc content

Setting up the API

The synchronous API model extracts data from Tax statements in real time. The synchronous API model also performs verification checks in order to control Document Validity, and Data consistency.

📘

API token is required

In order to perform any call, you will need an API token that can be retrieved thanks your API credentials. To learn about authentification, please refer to this page

curl --request POST \
     --url https://api.datakeen.co/api/v1/reco/tax-reference \
     --header 'accept: application/json' \
     --header 'content-type: application/json'
npm install api --save

const sdk = require('api')('@datakeen/v1.4.0#ax268r1ilnd0liqe');

sdk.postRecoId()
  .then(({ data }) => console.log(data))
  .catch(err => console.error(err));
require 'uri'
require 'net/http'

url = URI("https://api.datakeen.co/api/v1/reco/tax-reference")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["accept"] = 'application/json'
request["content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
composer require guzzlehttp/guzzle

<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.datakeen.co/api/v1/reco/tax-reference', [
  'headers' => [
    'accept' => 'application/json',
    'content-type' => 'application/json',
  ],
]);

echo $response->getBody();
python -m pip install requests

import requests

url = "https://api.datakeen.co/api/v1/reco/tax-reference"

headers = {
    "accept": "application/json",
    "content-type": "application/json"
}

response = requests.post(url, headers=headers)

print(response.text)
CURL *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.datakeen.co/api/v1/reco/tax-reference");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
dotnet add package RestSharp

using RestSharp;


var options = new RestClientOptions("https://api.datakeen.co/api/v1/reco/tax-reference");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("content-type", "application/json");
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);

CURL *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.datakeen.co/api/v1/reco/tax-reference");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "accept: application/json");
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
(require '[clj-http.client :as client])

(client/post "https://api.datakeen.co/api/v1/reco/tax-reference" {:content-type :json
                                                       :accept :json})
package main

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

func main() {

	url := "https://api.datakeen.co/api/v1/reco/tax-reference"

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("accept", "application/json")
	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))

}
POST /api/v1/reco/tax-reference HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: api.datakeen.co
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.datakeen.co/api/v1/reco/tax-reference")
  .post(null)
  .addHeader("accept", "application/json")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
const options = {
  method: 'POST',
  headers: {accept: 'application/json', 'content-type': 'application/json'}
};

fetch('https://api.datakeen.co/api/v1/reco/tax-reference', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://api.datakeen.co/api/v1/reco/tax-reference")
  .post(null)
  .addHeader("accept", "application/json")
  .addHeader("content-type", "application/json")
  .build()

val response = client.newCall(request).execute()
#import <Foundation/Foundation.h>

NSDictionary *headers = @{ @"accept": @"application/json",
                           @"content-type": @"application/json" };

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.datakeen.co/api/v1/reco/id"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];
open Cohttp_lwt_unix
open Cohttp
open Lwt

let uri = Uri.of_string "https://api.datakeen.co/api/v1/reco/tax-reference" in
let headers = Header.add_list (Header.init ()) [
  ("accept", "application/json");
  ("content-type", "application/json");
] in

Client.call ~headers `POST uri
>>= fun (res, body_stream) ->
  (* Do stuff with the result *)
$headers=@{}
$headers.Add("accept", "application/json")
$headers.Add("content-type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.datakeen.co/api/v1/reco/tax-reference' -Method POST -Headers $headers
library(httr)

url <- "https://api.datakeen.co/api/v1/reco/tax-reference"

response <- VERB("POST", url, content_type("application/json"), accept("application/json"))

content(response, "text")
import Foundation

let headers = [
  "accept": "application/json",
  "content-type": "application/json"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.datakeen.co/api/v1/reco/tax-reference")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()

🚧

Sending multiple documents

Scans, pictures and documents should be sent one by one. If you want to send multiple scans at the same time, please refer to the multi-docs API.

API Response

An instance of the usual response is displayed in the following JSON. You will find the complete information, including extraction and checks. More detailed examples of each extracted field are given below.

{
    "controls": {
        "impotGouvCheck": {
            "confidence": 1,
            "value": true
        },
        "match2DDocName": {
            "confidence": null,
            "value": null
        },
        "match2DDocName2": {
            "confidence": null,
            "value": null
        },
        "match2DDocNbShare": {
            "confidence": null,
            "value": null
        },
        "match2DDocTaxNumber": {
            "confidence": null,
            "value": null
        },
        "match2DDocTaxNumber2": {
            "confidence": null,
            "value": null
        },
        "match2DDocTaxRefIncome": {
            "confidence": null,
            "value": null
        },
        "match2DDocTaxReference": {
            "confidence": null,
            "value": null
        },
        "match2DDocTaxYear": {
            "confidence": null,
            "value": null
        },
        "taxNumber2Conformity": {
            "confidence": null,
            "value": null
        },
        "taxNumberConformity": {
            "confidence": 1,
            "value": true
        },
        "taxReferenceConformity": {
            "confidence": 1,
            "value": true
        }
    },
    "datamatrixInformation": null,
    "extractedInformation": {
        "BNCPro": {
            "confidence": null,
            "value": ""
        },
        "BNCPro2": {
            "confidence": null,
            "value": ""
        },
        "BNCProNet": {
            "confidence": null,
            "value": ""
        },
        "BNCProNet2": {
            "confidence": null,
            "value": ""
        },
        "Salary": {
            "confidence": null,
            "value": ""
        },
        "Salary2": {
            "confidence": null,
            "value": ""
        },
        "SalaryAndPension": {
            "confidence": null,
            "value": ""
        },
        "SalaryAndPension2": {
            "confidence": null,
            "value": ""
        },
        "declaredRentalIncome": {
            "confidence": null,
            "value": ""
        },
        "declaredRentalIncome2": {
            "confidence": null,
            "value": ""
        },
        "deduction": {
            "confidence": null,
            "value": ""
        },
        "deduction2": {
            "confidence": null,
            "value": ""
        },
        "invalidityPension": {
            "confidence": null,
            "value": ""
        },
        "invalidityPension2": {
            "confidence": null,
            "value": ""
        },
        "minimalDeduction": {
            "confidence": null,
            "value": ""
        },
        "minimalDeduction2": {
            "confidence": null,
            "value": ""
        },
        "name": {
            "confidence": 0.7919941487537692,
            "value": "PAUL DUPOND"
        },
        "name2": {
            "confidence": null,
            "value": ""
        },
        "nbShare": {
            "confidence": 0.811041884938362,
            "value": "1.5"
        },
        "netRentalIncome": {
            "confidence": null,
            "value": ""
        },
        "netRentalIncome2": {
            "confidence": null,
            "value": ""
        },
        "postalAddress": {
            "confidence": 0.8093513258764418,
            "value": "CHEMIN DE LA CHARBONNIERE 29 AV DE ST ROCH 13740 LE ROVE"
        },
        "propertyIncome": {
            "confidence": null,
            "value": ""
        },
        "reduction": {
            "confidence": null,
            "value": ""
        },
        "reduction2": {
            "confidence": null,
            "value": ""
        },
        "reductionSpe": {
            "confidence": null,
            "value": ""
        },
        "reductionSpe2": {
            "confidence": null,
            "value": ""
        },
        "retirementPension": {
            "confidence": null,
            "value": ""
        },
        "retirementPension2": {
            "confidence": null,
            "value": ""
        },
        "taxAddress": {
            "confidence": 0.8632041218938227,
            "value": "13740 LE ROVE CHEMIN DE LA CHARBONNIERE 29 AV DE ST ROCH"
        },
        "taxNumber": {
            "confidence": 0.7894230863870177,
            "value": "3009699242200"
        },
        "taxNumber2": {
            "confidence": null,
            "value": ""
        },
        "taxRefIncome": {
            "confidence": 0.796378372301696,
            "value": "17382"
        },
        "taxRefIncome2": {
            "confidence": null,
            "value": ""
        },
        "taxReference": {
            "confidence": 0.724188740395526,
            "value": "2113B16585901"
        },
        "taxReference2": {
            "confidence": null,
            "value": ""
        },
        "taxYear": {
            "confidence": 0.8210788975097003,
            "value": "2020"
        },
        "taxableNetIncome": {
            "confidence": null,
            "value": ""
        },
        "totalSalary": {
            "confidence": null,
            "value": ""
        },
        "totalSalary2": {
            "confidence": null,
            "value": ""
        }
    },
    "impotGouvResults": {
        "message": "Success",
        "results": {
            "control": true
        },
        "status": 200
    }
}

Extracted information format

For each field, the confidence value indicates the degree of certainty of the extraction with regard to the data on the tax statement.

Year of statement

The lastName (key) on the tax statement is returned as a string (value).

lastNameValue
valuestring
confidencenumber
"taxYear": {
  "confidence": 0.8210788975097003,
  "value": "2020"
}

Full name

The name (key) on the tax statement is returned as a string (value).

nameValue
valuestring
confidencenumber
"name": {
  "confidence": 0.7919941487537692,
  "value": "PAUL DUPOND"
}

Tax number

The taxNumber (key) on the tax statement is returned as a string (value).

taxNumberValue
valuestring
confidencenumber
taxNumber

Tax statement ID

The taxReference (key) on the tax statement is returned as a string (value).

taxReferenceValue
valuestring
confidencenumber
"taxReference": {
  "confidence": 0.724188740395526,
  "value": "2113B16585901"
}

Tax reference income

The taxRefIncome (key) on the tax statement is returned as a string (value).

taxRefIncomeValue
valuestring
confidencenumber
"taxRefIncome": {
  "confidence": 0.796378372301696,
  "value": "17382"
}

Net taxable income

The taxableNetIncome (key) on the tax statement is returned as a string (value).

taxableNetIncomeValue
valuestring
confidencenumber
"taxableNetIncome": {
  "confidence": null,
  "value": ""
}

Number of tax units

The nbShare (key) on the tax statement is returned as a string (value).

nbShareValue
valuestring
confidencenumber
"nbShare": {
  "confidence": 0.811041884938362,
  "value": "1.5"
}

Annual income salary

The Salary or gender (key) on the tax statement is returned as a string (value).

SalaryValue
valuestring
confidencenumber
"Salary": {
  "confidence": null,
  "value": "30234"
}

10% deduction

The deduction (key) on the tax statement is returned as a string (value).

deductionValue
valuestring
confidencenumber
"deduction": {
  "confidence": null,
  "value": "290"
}

Non-professional incomes

The BNCPro (key) on the tax statement is returned as a string (value).

BNCProValue
valuestring
confidencenumber
"BNCPro": {
  "confidence": 0.376,
  "value": "12394"
}

Allowance

The reduction (key) on the tax statement is returned as a string (value).

reductionValue
valuestring
confidencenumber
"reduction": {
  "confidence": 0.845,
  "value": "1234"
}

Special 10% allowance

The reductionSpe (key) on the tax statement is returned as a string (value).

reductionSpeValue
valuestring
confidencenumber
"reductionSpe": {
  "confidence": 0.534,
  "value": "2134"
}

Net non-professional incomes

The BNCProNet (key) on the tax statement is returned as a string (value).

BNCProNetValue
valuestring
confidencenumber
"BNCProNet": {
  "confidence": 0.376,
  "value": "12394"
}

Minimal deduction

The minimalDeduction (key) on the tax statement is returned as a string (value).

minimalDeductionValue
valuestring
confidencenumber
"minimalDeduction": {
  "confidence": 0.4385,
  "value": "203"
}

Pensions and annuities

The invalidityPension (key) on the tax statement is returned as a string (value).

invalidityPensionValue
valuestring
confidencenumber
"invalidityPension": {
  "confidence": 0.8234,
  "value": "934"
}

Net furnished rental income

The netRentalIncome (key) on the tax statement is returned as a string (value).

netRentalIncomeValue
valuestring
confidencenumber
"netRentalIncome": {
  "confidence": null,
  "value": ""
}

Net wages and pensions

The SalaryAndPension (key) on the tax statement is returned as a string (value).

SalaryAndPensionValue
valuestring
confidencenumber
"SalaryAndPension": {
  "confidence": null,
  "value": ""
}

Taxable income from transferable securities

The nationality (key) on the tax statement is returned as a string (value).

nationalityValue
valuestring
confidencenumber

Total wages and salaries

The totalSalary or gender (key) on the tax statement is returned as a string (value).

totalSalaryValue
valuestring
confidencenumber
"totalSalary": {
  "confidence": null,
  "value": ""
}

Postal address

The postalAddress (key) on the tax statement is returned as a string (value).

postalAddressValue
valuestring
confidencenumber
"postalAddress": {
  "confidence": 0.8093513258764418,
  "value": "CHEMIN DE LA CHARBONNIERE 29 AV DE ST ROCH 13740 LE ROVE"
}

Address

The taxAddress (key) on the tax statement is returned as a string (value).

taxAddressValue
valuestring
confidencenumber
"taxAddress": {
  "confidence": 0.8632041218938227,
  "value": "13740 LE ROVE CHEMIN DE LA CHARBONNIERE 29 AV DE ST ROCH"
}

Full name of 2nd submitter

The name2 (key) on the tax statement is returned as a string (value).

name2Value
valuestring
confidencenumber
"name2": {
  "confidence": 0.7919941487537692,
  "value": "JEANNE DURAND"
}

2nd submitter's tax number

The taxNumber2 (key) on the tax statement is returned as a string (value).

taxNumber2Value
valuestring
confidencenumber
"taxNumber2": {
  "confidence": 0.724188740395526,
  "value": "98323048234"
}

2nd submitter's tax reference

The countryCode (key) on the tax statement is returned as a string (value).

countryCodeValue
valuestring
confidencenumber
"taxReference2": {
  "confidence": 0.724188740395526,
  "value": "2113B16585901"
}

2nd submitter's reference tax income

The taxRefIncome2 (key) on the tax statement is returned as a string (value).

taxRefIncome2Value
valuestring
confidencenumber
"taxRefIncome2": {
  "confidence": 0.796378372301696,
  "value": "17382"
}

2nd submitter total annual income

The Salary2 (key) on the tax statement is returned as a string (value).

Salary2Value
valuestring
confidencenumber
"Salary2": {
  "confidence": null,
  "value": "30234"
}

Deduction of 10% for 2nd submitter

The deduction2 (key) on the tax statement is returned as a string (value).

deduction2Value
valuestring
confidencenumber
"deduction2": {
  "confidence": null,
  "value": "290"
}

Non-professional incomes fo 2nd tax filler

The BNCPro2 (key) on the tax statement is returned as a string (value).

BNCPro2Value
valuestring
confidencenumber
"BNCPro2": {
  "confidence": 0.376,
  "value": "12394"
}

2nd submitter's deduction

The reduction2 (key) on the tax statement is returned as a string (value).

reduction2Value
valuestring
confidencenumber
"reduction2": {
  "confidence": 0.845,
  "value": "1234"
}

Special deduction of 10% for 2nd submitter

The reductionSpe2 (key) on the tax statement is returned as a string (value).

reductionSpe2Value
valuestring
confidencenumber
"reductionSpe2": {
  "confidence": 0.845,
  "value": "1234"
}

Net non-professional incomes for 2nd submitter

The BNCProNet2 (key) on the tax statement is returned as a string (value).

BNCProNet2Value
valuestring
confidencenumber
"BNCProNet2": {
  "confidence": 0.376,
  "value": "12394"
}

Minimum deduction for 2nd submitter

The minimalDeduction2 or gender (key) on the tax statement is returned as a string (value).

minimalDeduction2Value
valuestring
confidencenumber
"minimalDeduction2": {
  "confidence": 0.4385,
  "value": "203"
}

Pensions and annuities for 2nd submitter

The retirementPension2 (key) on the tax statement is returned as a string (value).

retirementPension2Value
valuestring
confidencenumber
"retirementPension2": {
  "confidence": 0.8234,
  "value": "934"
}

2nd submitter's disability pensions

The invalidityPension2 (key) on the tax statement is returned as a string (value).

invalidityPension2Value
valuestring
confidencenumber
"invalidityPension2": {
  "confidence": 0.8234,
  "value": "934"
}

Declared furnished rental income for 2nd submitter

The declaredRentalIncome2 (key) on the tax statement is returned as a string (value).

declaredRentalIncome2Value
valuestring
confidencenumber
"declaredRentalIncome2": {
  "confidence": null,
  "value": ""
}

Net furnished rental income 2nd of submitter

The netRentalIncome2 (key) on the tax statement is returned as a string (value).

netRentalIncome2Value
valuestring
confidencenumber
"netRentalIncome2": {
  "confidence": null,
  "value": ""
}

2nd submitter's net wages and pensions

The SalaryAndPension2 (key) on the tax statement is returned as a string (value).

SalaryAndPension2Value
valuestring
confidencenumber
"SalaryAndPension2": {
  "confidence": null,
  "value": ""
}

Total salaries and similar income of 2nd submitter

The totalSalary2 (key) on the tax statement is returned as a string (value).

totalSalary2Value
valuestring
confidencenumber
"totalSalary2": {
  "confidence": null,
  "value": ""
}

Control results format

The controls applied to each document can be extracted in a boolean format. The confidence field indicated the degree of certainty of the control.

Tax number conformity check

The taxNumberConformity controls whether the tax number is conform in regards of the norm of tax numbers, returns as a boolean (value).

taxNumberConformityValue
valueboolean
confidencenumber
"taxNumberConformity": {
  "confidence": 1,
  "value": true
}

Compliance check of 2nd submitter's tax number

The taxNumber2Conformity controls whether the tax number is conform in regards of the norm of tax numbers for the second filer, returns as a boolean (value).

taxNumber2ConformityValue
valueboolean
confidencenumber
"taxNumber2Conformity": {
  "confidence": null,
  "value": null
}

Conformity check of the tax reference

The taxReferenceConformity controls whether the tax reference is conform in regards of the norm of tax references, returns as a boolean (value).

taxReferenceConformityValue
valueboolean
confidencenumber
"taxReferenceConformity": {
  "confidence": 1,
  "value": true
}

Match between extracted "Tax reference income" and "Tax reference income" retrieved from 2DDoc

The match2DDocTaxRefIncome controls whether the tax reference income is the same as the one extracted from the 2DDoc, returns as a boolean (value).

match2DDocTaxRefIncomeValue
valueboolean
confidencenumber
"match2DDocTaxRefIncome": {
  "confidence": null,
  "value": null
},

Match between "number of tax units" extracted and "number of tax units" retrieved from 2DDoc

The match2DDocNbShare controls whether the number of tax units is the same as the one extracted from the 2DDoc, returns as a boolean (value).

match2DDocNbShareValue
valueboolean
confidencenumber
"match2DDocNbShare": {
  "confidence": null,
  "value": null
}

Match of extracted "Tax reference number" and "Tax reference number" retrieved from 2DDoc

The match2DDocTaxReference controls whether the tax reference is the same as the one extracted from the 2DDoc, returns as a boolean (value).

match2DDocTaxReferenceValue
valueboolean
confidencenumber
"match2DDocTaxReference": {
  "confidence": null,
  "value": null
},

Match of extracted fiscal year and extracted fiscal year retrieved from 2DDoc

The match2DDocTaxYear controls whether the tax year is the same as the one extracted from the 2DDoc, returns as a boolean (value).

match2DDocTaxYearValue
valueboolean
confidencenumber
"match2DDocTaxYear": {
  "confidence": null,
  "value": null
},

Match of extracted tax number and name retrieved from 2DDoc

The match2DDocTaxNumber controls whether the tax number is the same as the one extracted from the 2DDoc, returns as a boolean (value).

match2DDocTaxNumberValue
valueboolean
confidencenumber
"match2DDocTaxNumber": {
  "confidence": null,
  "value": null
}

Match of extracted tax number of 2nd submitter and retrived name of 2nd submitter on 2DDoc

The match2DDocTaxNumber2 controls whether the tax number of 2nd filer is the same as the one extracted from the 2DDoc, returns as a boolean (value).

match2DDocTaxNumber2Value
valueboolean
confidencenumber
"match2DDocTaxNumber2": {
  "confidence": null,
  "value": null
},

Match name extracted and name retrieved from 2DDoc

The match2DDocName controls whether the name is the same as the one extracted from the 2DDoc, returns as a boolean (value).

match2DDocNameValue
valueboolean
confidencenumber
"match2DDocName": {
  "confidence": null,
  "value": null
}

Match of name extracted from 2nd submitter and name of 2nd submitter retrieved from 2DDoc

The match2DDocName2 controls whether the name of 2nd filer is the same as the one extracted from the 2DDoc, returns as a boolean (value).

match2DDocName2Value
valueboolean
confidencenumber
"match2DDocName2": {
  "confidence": null,
  "value": null
}

Field matching

The use can provided, optionally, the expected information as an input to verify if they correspond to the extracted information. userInput supports the information as shown bellow in the example.

userInputValue
namestring
name2string
"userInput": {
  "name": "",
  "name2": "",
}

By providing a base64 string encoded photo of the person in userInput, we verify if is the same person present on the card.

Here is the as output example for field matching:

{
  "matchUserInputName" : {
    "value": true,
    "confidence": 0.8
  },
  "matchUserInputName2" : {
    "value": true,
    "confidence": 0.8
  }
}

Additional information

🚧

Loaded scans must pass prerequisites

To provide a qualitative service and a comprehensive data capture, every picture, scan, or document sent to our API must comply with determined prerequisites which can be found on this page

❗️

API limitations

  • Maximum size : 5 MB
  • Maximum number of calls per minute : 10 calls

What’s Next

Ready to process tax statements ? See our API Reference for detailed information