Skip to main content

Data Extraction

Docutains Data Extraction/ Data Capture SDK for Android can extract document data based on the detected text.

Initialization

Make sure to add the following dependency in your app's build.gradle file:

def docutainSdkVersion = '1.7.0.3'
implementation("de.docutain:Docutain-SDK-DataExtraction:$docutainSdkVersion")

Set android.enableJetifier=true in your gradle.properties file.

Initialize Docutain's Android SDK as described here.

Set Analyze Configuration

If you do not need to analyze for BIC and PaymentState, you can skip this section and jump directly to Get the detected data.

If you want to analyze BIC and / or PaymentState, you need to set the analyze configuration accordingly prior to getting the data:

val analyzeConfig = AnalyzeConfiguration()
analyzeConfig.readBIC = true //defaults to false
analyzeConfig.readPaymentState = true //defaults to false
if(!DocumentDataReader.setAnalyzeConfiguration(analyzeConfig)){
val error = DocutainSDK.getLastError()
}

Get the detected data

In order to get the detected data of the scanned or imported document, call the following line of code:

//...
//scan or import file
//...

val jsonData = DocumentDataReader.analyze()

The detected data will be returned as JSON string. Depending on how you configured your AnalyzeConfiguration, the structure will be one of the two following. The differences will be in IBAN, Bank and PaymentState.

When reading BIC is deactivated (default behaviour), you will get a value IBAN which contains all detected IBANs:

{
"Address":
{
"Name1": "Verbandsgemeindeverwaltung Nastätten",
"Name2": "",
"Name3": "",
"Zipcode": "56352",
"City": "Nastätten",
"Street": "Postfach",
"Phone": "06772 802 0",
"CustomerId": "",
"IBAN": ["DE76570928000208303503", "DE41510500150710030316"]
},
"Date": "2020-01-24",
"Amount": "940.84",
"InvoiceId": "20/VA06894/0009500",
"Reference": "RNr:20/VA06894/0009500 vom 24.01.2020"
}

When reading BIC is activated, you will get a value Bank which contains tuples of the BIC and the IBAN, if any detected:

{
"Address":
{
"Name1": "Verbandsgemeindeverwaltung Nastätten",
"Name2": "",
"Name3": "",
"Zipcode": "56352",
"City": "Nastätten",
"Street": "Postfach",
"Phone": "06772 802 0",
"CustomerId": "",
"Bank": [{"BIC": "GENODE51DIE",
"IBAN": "DE76570928000208303503"},
{"BIC": "NASSDE55XXX",
"IBAN": "DE41510500150710030316"}]
},
"Date": "2020-01-24",
"Amount": "940.84",
"InvoiceId": "20/VA06894/0009500",
"Reference": "RNr:20/VA06894/0009500 vom 24.01.2020"
}

When reading the payment state is activated, you will get a value PaymentState which contains either Paid or ToBePaid:

{
"Address":
{
"Name1": "Verbandsgemeindeverwaltung Nastätten",
"Name2": "",
"Name3": "",
"Zipcode": "56352",
"City": "Nastätten",
"Street": "Postfach",
"Phone": "06772 802 0",
"CustomerId": "",
"Bank": [{"BIC": "GENODE51DIE",
"IBAN": "DE76570928000208303503"},
{"BIC": "NASSDE55XXX",
"IBAN": "DE41510500150710030316"}]
},
"Date": "2020-01-24",
"Amount": "940.84",
"InvoiceId": "20/VA06894/0009500",
"Reference": "RNr:20/VA06894/0009500 vom 24.01.2020",
"PaymentState": "ToBePaid"
}