API Reference
bludelta.ai is a machine learning-based invoice and document capture solution. Based on an image or pdf file as input it returns data that can be processed by machines, works out of the box with standard recognition rates of the most popular fields >90%. For further general information and a free test please visit: https://bludelta.ai
This website documents the core of the bludelta.ai service – the bludelta.ai JSON API. The API returns document and invoice details (e.g. like an invoice or document date, invoice id, gross/net amounts, VATs, and many more fields). Aside from the extracted data, it returns also raw text (ocr) and a pdf with marks of the extracted fields. The API should be used to programmatically integrate an invoice capture service into your existing workflows. It is cloud-based but can be also installed locally. Invoices are just interpreted and NOT STORED!
API Access Token
To use this service you will need an API token. In case you don’t have one yet please contact bludelta-support@blumatix.at and ask for a free test key.
Sample Integration Clients
You can download sample clients in C#, java, and Powershell from our GitHub repository: https://github.com/blumatix
Request an open API compliant API description file from here.
No Developer? Test bludelta.ai with our Web Interface
bludelta.ai offers also UI components on top of our core API. E.g. in case you just want to do a quick test without accessing our programmatic interface then we recommend you to use our online interface: https://bludelta.ai/testen
Supported invoice details
Title | Description | Response Type | Id | Notice |
Document Type | Classify document to Invoice/CreditMemo/Other | DetectionResponse | 8192 | Value: Invoice, CreditMemo or Other |
Invoice Currency | Main currency of invoice | DetectionResponse | 524288 | ISO Code 4217 |
Invoice Id | Document identifier | DetectionResponse | 1024 | |
Invoice Date | Date of issue | DetectionResponse | 64 | YYYY-MM-DD (ISO 8601) |
Grand Total Amount | Grand total amount | DetectionResponse | 16 | decimal separator '.', no group separator, two decimal digits |
Vat Group | Vat rate Net amount Vat amount |
DetectionGroupResponse | 536870912 | for each vat detail: one DetectionResponse |
Net Total Amount | Total net amount | DetectionResponse | 256 | deprecated Use Vat Groups instead to calculate total net amount |
Vat Total Amount | Total vat amount | DetectionResponse | 1073741824 | deprecated Use Vat Groups instead to calculate total vat amount |
Iban | Iban | DetectionResponse | 16384 | for each Iban: one DetectInvoiceResponse |
Bic | Bic | DetectionResponse | 32768 | for each Bic: one DetectInvoiceResponse |
Bank Group | Bank Code Bank Account |
DetectionGroupResponse | 17179869184 | for each bank detail: one DetectionResponse |
Due Date Group | Due Date Date Due Date Duration |
DetectionGroupResponse | 17592186044416 | for each due date detail: one DetectionResponse |
Discount Group | Discount Date Discount Duration Discount Percent |
DetectionGroupResponse | 1099511627776 | for each discount detail: one DetectionResponse |
UId | Vat Id classified for Sender or Receiver or other | DetectionResponse | 8388608 | Sender/Receiver classification is returned in Name property (SenderVatId, ReceiverVatId, VatId) |
Customer Id | Customer Identifier | DetectionResponse | 2097152 | |
Tax Number | German Tax Number | DetectionResponse | 4194304 | |
Delivery Note Id | Delivery Note Identifier in header | DetectionResponse | 1048576 | single identifier in header |
Delivery Date | Delivery Date | DetectionResponse | 8 | single date - no timespan |
Receiver Order Id | Order Identifier of Receiver in header | DetectionResponse | 33554432 | single identifier in header |
Receiver Order Date | Order Date of Receiver | DetectionResponse | 134217728 | |
Sender Order Id | Order Identifier of Sender | DetectionResponse | 16777216 | |
Sender Order Date | Order Date of Sender | DetectionResponse | 67108864 | |
ISR Reference | Swiss inpayment slip reference | DetectionResponse | 34359738368 | |
ISR Subscriber | ISR customer number | DetectionResponse | 35184372088832 | |
KID Number | KID number is used in Norway for payment identification | DetectionResponse | 70368744177664 | |
Company Registration Number | Local company registration number for Sender or Receiver. Currently only supported for Czechia. | DetectionResponse | 140737488355328 | |
Sender Name | Name of Sender | DetectionResponse | 2 | deprecated Use name of Sender contact instead |
Sender Contact | Contact information of Sender | ContactResponse | 2 | Name, Address, Email, ... |
Receiver Contact | Contact information of Sender | ContactResponse | 128 | Name, Address, Email, ... |
Contacts | A list of all contacts that where found on the invoice - including the sender and receiver contacts. | List of ContactResponse | 281474976710656 | Each contact consists of: Name, Address, Email, ... |
Line Items | Line item table | LineItemTableResponse | 65536 | Each line item (LineItemResponse) contains: ItemId, PositionNumber, Description, Quantity, UnitPrice, OrderId, DeliveryId, TotalAmount |
Release Information
What's New in V1.15.1
- US#9741 For German documents, all contacts found are returned. The contact prediction quality for german documents also improved.
What's New in V1.15
- US#8865 Language Portuguese and Region Portugal added
- US#9634 New invoice detail: Company Registration number (for czech)
- US#9676 New invoice detail: All Contacts
Improvements
- US#8691 Language Polish and region Poland improved
- US#9734 All found invoice details are returned for document type "Other"
- US#8899 Improvement of Contacts
Issues / Bugs fixes
- ISSUE#9367 Czech ICO number needed
- ISSUE#9372 OCR splits up one word into two
- ISSUE#9374 Deficient pfd format fails to return predictions
- ISSUE#9644 Fix a situation where a Due Date was predicted instead of the Invoice Date
- ISSUE#9726 Fix Amazon Business invoices
- ISSUE#9737 Fix Deutsche Telekom invoices
- BUG#9600 Fix Facebook invoices
- ISSUE#9758 Fix BLU DELTA Service Crashes due to extremely large images in PDFs
- ISSUE#7709 Same Tax number highlighted several times in Result Pdf
- ISSUE#9501 Invoice Id improved
- BUG#9115 Amounts followed by special characters where not found
What's New in V1.14
- US#8857 Language Norwegian and Region Norway added
- US#8858 Language Slovakian and Region Slovakia added
- US#8859 Language Croatian and Region Croatia added
- US#8860 Language Turkish and Region Turkey added
- US#8492 Region United Arab Emirates added
- US#7846 New invoice detail: KID Number
- #9289 Temporarily reduced Vat Rates in Norway
- US#8493 Region South Africa added
- US#7847 Use of Swiss QR Code
Improvements
- US#8630 Vat Id classification Sender/Receiver improved
- US#8690 Region Czechia improved
- US#8851/8855 Line Items improved
Issues / Bugs fixes
- Bug#7710 BIC was often wrong
- ISSUE#8954 Fixed OCR problems which could happen in specific situations (OnPremise)
- ISSUE#8944 Document Type is not correct
- ISSUE#8959 Invoice Id is not correct
What's New in V1.13
- Changed IsrNumber to IsrReference
- US#8002 New invoice detail Payment conditions: Due Date and Discount
- US#8683 New invoice detail: Isr Subscriber
- US#8419 Full text can be requested
- US#8494 Language Dutch and Region Netherlands added
- US#8366 Region France added
- US#8367 Region Mexico added
- US#8368 Region Spain added
- US#8493 Region South Africa added
- US#8495 Region Italy added
Issues / Bugs fixes
- ISSUE#8788 Missing Result Pdf fixed
- ISSUE#8697 Corrupt Pdf format fixed
- ISSUE#8698 Problems with Bank Group in UK fixed
- ISSUE#8552 Invoice Id fixed
What's New in V1.12
- Changed DetectInvoiceRequest.Filter, DetectionResponse.Type and DetectionGroupResponse.Type from Int32 to Int64 to support more invoice details
- US#8310 Language Czech and Region Czechia added
- US#8220 Languages Italien and French and Region Switzerland added
- US#8281 Region United Kingdom added
- US#8168 Region New Zealand added
- US#8167 Region Australia added
- US#7842 New invoice detail: Bank Information
- US#7845 New invoice detail: Swiss ISR Reference
Improvements
- US#8167 Language English has been improved
- 8576 Multiple Receiver Order Ids and Delivery Note Ids predicted, independent from line items
- US#8356 Vat Ids for Poland have been improved
Issues / Bugs fixes
- ISSUE#8567 Timeout for invoice fixed
- ISSUE#8389 Limit of Line Items removed
- ISSUE#8438 Fix multiple Vat Groups
What's New in V1.11
- US#7874 Temporarily reduced Vat Rates in Germany and Austria implemented
Bug/Issue Fixes
- ISSUE#7600: Unit price in line items is not of datatype Amount
- ISSUE#8039: Invoice Id cut off
- BUG#7259: Incorrect Bounding Box for Sender name
- BUG#7819: OnPremise: Timeout with pings
- BUG#7967: Currency missing
- BUG#8137: Wrong Sender Order Id on Spanish invoice
- BUG#8163: Typename missing for Document Type "Other"
- BUG#8170: OnPremise: Setup failed with new VC++ runtime already installed
- BUG#8215: Error in Result-Pdf creation with mixed mode pdfs
- BUG#8229: Some image-based Result-Pdfs do not render the OCRWord-Layer
What's New in V1.10.1
- US#7455: "Glow effect" in Result-Pdf file can be switched on/off in configuration (default: off)
- Default for number of processed pages has been increased from 5 to 10
Improvements
- ISSUE#7640: Invoice Format detection (letter or receipt) has been improved
- ISSUE#7765: Document Type for Polish Invoices improved
Bug/Issue Fixes
- BUG#7819: In some special situation the service "ping" ran into timeout
- BUG#7876: Fixed a 3rd party memory leak by using a new version of the ML.Net library
What's New in V1.10
- US#7444: Language Polish and region Poland added
- US#7627: Due Date - beta / custom invoice detail
Improvements
- Recognition rate improved for: Invoice Date, Delivery Date, Grand Total Amount, Vat Groups
- Number of processed pages increased to ten
- Checksum validation has been added to Spanish Vat Ids
- US#7460: Logging has been improved
- ISSUE#7661: additional format of German Vat Id
- ISSUE#7613: Line items improved
Bug/Issue Fixes
- ISSUE#7484: Sender Order Ids in Line items classified as Spanish Vat Ids
- BUG#7466: Document Type "Other" not handled correctly
- ISSUE#4832: Memory Leak in Pdf creation
- BUG#7619: Contact recognition fails for unknown language
- ISSUE#7667: Wrong prediction for Delivery Note Id
- BUG#7727: Exception while pdf creation
- ISSUE#7622: Error in Line Items
What's New in V1.9.4
- US#7425: New value "Other" has been added to invoice detail "Document Type"
- US#7425: Document Format information has been added to invoice
- US#7423: Performance has been improved significantly
- US#7460: Logging has been improved
Bug/Issue Fixes
- BUG#7437: Vat rate format exception
- BUG#7454: False Positives reduced
- BUG#7464,7456: Line items model returned internal error
What's New in V1.9
- US#7339,7341,7344,7358: Invoice details for Spanish Invoices
- US#7162: Embed OCR textfor scanned invoices in the result pdf
- US#7163:Deskew pages in scanned invoices in the result pdf
- US#7266:Draw bounding boxes for all new invoice details in the result pdf
Bug/Issue Fixes
- BUG#7422: Ensure that there is always only 1 LineItem-Bookmark in the ResultPdf
- BUG#7400: Pages with minimal text might crash the service
- BUG#7405: DeliveryNoteIds and ReceiverOrderIds within LineItems
- BUG#7414: Unit Price inLine Items incorrectly formatted
Deprecated
- NetTotalAmount - use VatGroups instead
- VatTotalAmount - use VatGroups instead
What's New in V1.8
- US#7032: Improved prediction of English invoices
- US#7052: Introduced separation of sender and receiver UID
- US#7164: Enable hover effect in results pdf
- US#7228: Added new detail receiver name, address and improved sender recognitions
- US#7262: Added new detail German Steuernummer
- US#7307: Added new detail BIC
- US#7237: General improvement of AI models for existing details
- BUG#6752: Net amount and VAT amount are equal in certain cases
- BUG#7030: Prediction Groups (VAT-Groups) are not marked in the Result-PDF currently
- ISSUE#7289: Result PDF shows results with just one color instead of 2
- ISSUE#7314: Sender name missing
What’s New in V1.7.2
- ISSUE#7310: all components build as x64
- ISSUE#7312: Performance issues: PdfSharp library removed
- ISSUE#7347: Logging improved
What’s New in V1.7.1
- BUG#7252: OCR Worker crashes fixed
- ISSUE#7275: Proxy Server not used - fixed
- BUG#7279: Version Property removed
What’s New in V1.7
- US#7107: Email has been added to Sender Contact
- US#6962: Quantity has been added to Line Item
- US#7240: Enable to add prefix to the standard REST-route
Improvements
- US#7180: Improved recognition rate for Invoice Id
- US#7181: Improved recognition rate for Invoice Date
- US#7088: Improved recognition rate for Line Items
Bug/Issue Fixes
- BUG#7211: Certain Pdf Invoices caused error during interpretation due to encoding error
- BUG#7238: Authentication Error is not returned for empty APIKEY
What’s New in V1.6.1
- US#7096: Get additional information for Uids: Sender or Receiver
- US#7186: Provide session id
Bug/Issue Fixes
- BUG#7157: VatGroups with empty net amount or vat amount did not include Value property.
- BUG#7149: Bounding Box was missing for Sender name.
- BUG#7150: Sender name was always returned, independent from user settings.
What’s New in V1.6
- US#7037: The recognition rate of Vat Groups has been improved.
- US#7047: The recognition rate of Sender has been improved, but it is still BETA.
Bug/Issue Fixes
- BUG#7101: Setup failed due to spaces in python bin path.
- BUG#7100: Http request over proxy did not work.
- BUG#7038: OCR crashed in high load situations.
New invoice detail Sender is currently in BETA state
What’s New in V1.5
- US#6976: The delivery slip number is now extracted from invoices. If there are more than one, all of them will be returned, except they are part of the line items.
- US#6983: The OCR text result is returned in the BLU DELTA API response. The structure contains the text and additional properties like position, size, bold, etc.
- US#7029: The BLU DELTA API returns a Http 500 error only in cases with system impact. In other cases an empty prediction is returned.
- US#7040: It is possible to distinguish different (sub-)customers who are using the same API key, by using an additional SubKey. The new SubKey can be provided additionally to the API Key in the Http header.
Bug/Issue Fixes
- BUG#7030: Prediction Groups are not marked in the Result Pdf
- ISSUE#7054: Labes on result Pdf on wrong location
New invoice detail Sender is currently in BETA state
What’s New in V1.4
- Support for Custom Models
- Support for Custom Smart Rules
Bug/Issue Fixes
- US#7016: In the result Pdf all invoice details are marked – not only the requested ones.
- US#7017: OCR is unable to process certain pdf formats.
- US#7021: A Pdf document with an unusual image size (e.g. very tall and narrow) can not be processed by the OCR.
- If a document can not be processed, a http 400 File Format error will be returned instead of a http 500 error.
What’s New in V1.3.x
-
New invoice details (full list):
InvoiceId, InvoiceDate, GrandTotalAmount, DocumentType, Ibans, UIDs, Currency, ReceiverOrderId, ReceiverOrderDate, SenderOrderId, SenderOrderDate, DeliveryDate, CustomerId, VatGroup (VatRate, VatAmount, NetAmount)
- Result PDF creation. The API creates a PDF that is enabled for highlighting extracted document details.
- Extended logging capabilities
- The performance of invoice analysation and feature creation was improved.
- Changes: The former parameter flags was renamed to filter. It is now optional. In case it's missing all invoice details for the current user will be returned.
Bug/Issue Fixes
- #6992: Http 500 error in case empty invoice was delivered to API. Now returns valid result but with empty predictions.
- #6997: Different prediction results between Online and Onsite API. Now returns toally equal results.
- #6999: Http 500 error in case no invoice currency could be found. Now returns valid result but with empty currency prediction.
- #7002: Processing time of very large invoices with big number of pages
- #6868: OCR fails on certain pdfs
API Endpoint
https://api.bludelta.ai/
Request Content-Types: application/json
Request Custom Header
X-ApiKey: YOUR_API_KEY
The API Key is used to authenticate and authorize the use of the BLU DELTA API. If you have not received an API key yet: You can request a free trial from bludelta-support@blumatix.at
e.g. "fmHjlBM+nzRN4VQxgnZx9HdixhYXXXXeqHsx6a3Dso03QNKyXXXXyML0KODbNY9T9mfeFU6jZLv+xeuXDLaHig=="X-ApiIdentifier: YOUR_API_IDENTIFIER (optional)
The API Identifier can be used to track the usage of sub-customers (e.g. platforms or partners have again customers and want to track the usage of their customers). If you need this flexibility then please contact our support team: bludelta-support@blumatix.at
e.g. "partner.customer"Attention: Depending on the configuration of your API key,
you may have to send a predefined identifier here.
Response Content-Types: application/json
Schemes: http, https
Version: 1.15.1
API Json Response (exemplary)
{
"DocumentResolution": <integer>,
"DocumentFormat": <string>,
"Language": "<string>",
"InvoiceDetailTypePredictions": <DetectionResponse>[
{..."TypeName": "DocumentType"...},
{..."TypeName": "InvoiceId"...},
{..."TypeName": "SenderOrderId"...},
{..."TypeName": "CustomerId"...},
{..."TypeName": "InvoiceDate"...},
{..."TypeName": "SenderOrderDate"...},
{..."TypeName": "ReceiverOrderDate"...},
{..."TypeName": "DeliveryDate"...},
{..."TypeName": "Iban"...},
{..."TypeName": "Bic"...},
{..."TypeName": "SenderVatId"...},
{..."TypeName": "ReceiverVatId"...},
{..."TypeName": "UId"...},
{..."TypeName": "NetTotalAmount"...},
{..."TypeName": "VatTotalAmount"...},
{..."TypeName": "GrandTotalAmount"...},
{..."TypeName": "InvoiceCurrency"...},
{..."TypeName": "DeliveryNoteId"...},
{..."TypeName": "ReceiverOrderId"...},
{..."TypeName": "TaxNumber"...},
{..."TypeName": "Sender"...},
{..."TypeName": "IsrReference"...},
{..."TypeName": "IsrSubscriber"...}],
{..."TypeName": "KId"...}],
{..."TypeName": "CompanyRegistrationNumber"...}],
"PredictionGroups": <DetectionGroupResponse>[
{
...,
"TypeName": "VatGroup",
"InvoiceDetailTypePredictions": <DetectionResponse>[
{..."TypeName": "VatRate"...},
{..."TypeName": "NetAmount"...},
{..."TypeName": "VatAmount"...}]
},
{
...,
"TypeName": "BankGroup",
"InvoiceDetailTypePredictions": <DetectionResponse>[
{..."TypeName": "BankCode"...},
{..."TypeName": "BankAccount"...},
},
{
...,
"TypeName": "DueDateGroup",
"InvoiceDetailTypePredictions": <DetectionResponse>[
{..."TypeName": "DueDateDate"...},
{..."TypeName": "DueDateDuration"...},
},
{
...,
"TypeName": "DiscountGroup",
"InvoiceDetailTypePredictions": <DetectionResponse>[
{..."TypeName": "DiscountDate"...},
{..."TypeName": "DiscountDuration"...},
{..."TypeName": "DiscountPercent"...}]
}],
"LineItemTable": <LineItemTableResponse>,
"Sender": <ContactResponse>,
"Receiver": <ContactResponse>,
"Contacts": <List of ContactResponse>,
"IsQualityOk": <boolean>,
"ResultPdf": <string>,
"OcrResult": <string>,
"DocumentText": <string>,
"Confidence": <double>,
"InvoiceState": <integer>
}
Paths
Extracts invoice features of a provided invoice.
Extracts invoice features of a provided invoice.
undefined
Filter for Invoice details that shall be predicted
flag 'None' will return all available Invoice details for your subscription,
else define the filter by providing a bitmask for the Invoice details that shall be predicted.
e.g. Filter = GrandTotalAmount | Ibans.
Filters:
- None: 0
- Sender: 2
- DeliveryDate: 8
- GrandTotalAmount: 16
- InvoiceDate: 64
- Receiver: 128
- InvoiceId: 1024
- DocumentType: 8192
- Ibans: 16384
- Bics: 32768
- LineItems: 65536
- InvoiceCurrency: 524288
- DeliveryNoteId: 1048576
- CustomerId: 2097152
- TaxNumber: 4194304
- VatIds: 8388608
- SenderOrderId: 16777216
- ReceiverOrderId: 33554432
- SenderOrderDate: 67108864
- ReceiverOrderDate: 134217728
- VatGroup: 536870912
- BankGroup: 17179869184
- DueDateGroup: 17592186044416
- DiscountGroup: 1099511627776
- IsrReference: 34359738368
- IsrSubscriber: 35184372088832
- KId: 70368744177664
- CompanyRegistrationNumber: 140737488355328
- Contacts: 281474976710656
Invoice (encoded as base64 with padding string) - accepted formats: PDF, JPG, PNG, GIF, TIFF
Special Invoice format.
for future use only
- None: 0
- EbInterface: 1
Additional properties that will be used for invoice processing, provided as Key-Value pairs.
If this flag is set, the response will contain the sent invoice as pdf-document with marked predictions.
If this flag is set, the response will contain the OCR result as json string.
If this flag is set, the response will contain the plain text of the document as detected by the OCR.
This is an optional parameter to pass all potential languages for the current document as a comma separated list to the internal OCR-Component. Specifying the correct document language (or a small potential set of languages) will reduce failures of the OCR and can improve the quality of the predictions.
Accept Header
Example Request with CURL
In the following example all invoice details are requested for a certain invoice. Therefore, a request.json file has been created. The "Filter" property is set to "None" which means that we want all possible invoice details. The "Invoice" property contains the invoice encoded in Base64.
{
"Filter": "None",
"Invoice": "YOUR_INVOICE_IN_BASE64",
}
curl
curl -vX POST https://api.bludelta.ai/invoicedetail/detect \
-H 'Content-Type: application/json' \
-H 'X-ApiKey:YOUR_API_KEY' \
-d @request.json
Service call successfully finished
Invoice format error
Unauthorized. Invalid ApiKey (or invalid ApiIdentifier)
Customer is not allowed to make any predictions
Oops, something broke
Response Content-Types: application/json
Response Example (200 OK)
{
"DocumentResolution": "integer (int32)",
"DocumentFormat": "string",
"Language": "string",
"InvoiceDetailTypePredictions": "List",
"PredictionGroups": "List",
"FormattedResult": "string",
"IsQualityOk": "boolean",
"ResultPdf": "string",
"OcrResult": "string",
"DocumentText": "string"
}
Schema Definitions
DetectInvoiceRequest: object
Extracts invoice features of a provided invoice.
- Filter: integer (int64)
-
Filter for Invoice details that shall be predicted
flag 'None' will return all available Invoice details for your subscription,
else define the filter by providing a bitmask for the Invoice details that shall be predicted.
e.g. Filter = GrandTotalAmount | Ibans.
Filters:
- None: 0
- Sender: 2
- DeliveryDate: 8
- GrandTotalAmount: 16
- InvoiceDate: 64
- Receiver: 128
- InvoiceId: 1024
- DocumentType: 8192
- Ibans: 16384
- Bics: 32768
- LineItems: 65536
- InvoiceCurrency: 524288
- DeliveryNoteId: 1048576
- CustomerId: 2097152
- TaxNumber: 4194304
- VatIds: 8388608
- SenderOrderId: 16777216
- ReceiverOrderId: 33554432
- SenderOrderDate: 67108864
- ReceiverOrderDate: 134217728
- VatGroup: 536870912
- BankGroup: 17179869184
- DueDateGroup: 17592186044416
- DiscountGroup: 1099511627776
- IsrReference: 34359738368
- IsrSubscriber: 35184372088832
- KId: 70368744177664
- CompanyRegistrationNumber: 140737488355328
- Contacts: 281474976710656
- Invoice: string
-
Invoice (encoded as base64 with padding string) - accepted formats: PDF, JPG, PNG, GIF, TIFF
- Format: integer (int32)
-
Special Invoice format.
for future use only- None: 0
- EbInterface: 1
- PropertyStore: Dictionary<String,String>
-
Additional properties that will be used for invoice processing, provided as Key-Value pairs.
- CreateResultPdf: boolean
-
If this flag is set, the response will contain the sent invoice as pdf-document with marked predictions.
- AddOcrResult: boolean
-
If this flag is set, the response will contain the OCR result as json string.
- AddDocumentText: boolean
-
If this flag is set, the response will contain the plain text of the document as detected by the OCR.
- Languages: string
-
This is an optional parameter to pass all potential languages for the current document as a comma separated list to the internal OCR-Component. Specifying the correct document language (or a small potential set of languages) will reduce failures of the OCR and can improve the quality of the predictions.
Supported languages:
- de...German
- en...English
- es...Spanish
- pl...Polish
- it...Italian
- fr...French
- cs...Czech
- sk...Slovakian
- nl...Dutch
- nb...Norwegian
- hr...Croatian
- tr...Turkish
- pt...Portuguese
Example
{
"Filter": "integer (int64)",
"Invoice": "string",
"Format": "integer (int32)",
"PropertyStore": "object",
"CreateResultPdf": "boolean",
"AddOcrResult": "boolean"
"AddDocumentText": "boolean"
"Languages": "string"
}
Dictionary<String,String>: object
Dictionary<String,String>
- Key: "ReceiverVatId" string Value: receiver vat id(s) string
-
The given receiver Vat id (single id oder comma separated list) is used by the service to split all extracted Vat ids into two groups: receiver Vat ids and sender Vat ids. Whenever an extracted Vat id is found in the list, it will be returned as Vat id and other Vat ids are returned as sender Vat ids. The name of the result is set to ReceiverVatId or SenderVatId respectively.
- Key: "SessionLogId" string Value: session id string
-
The session id is used to add this id to every log entry belonging to this request for easy log file monitoring.
Example
"object"
DetectInvoiceResponse: object
DetectInvoiceResponse
- DocumentResolution: integer (int32)
-
Resolution of the original document in dpi.
- DocumentFormat: string
-
The format of the document which is either "Letter" or "Receipt"
- Language: string
-
The language of the document that was identified by BLU DELTA
- InvoiceDetailTypePredictions: DetectionResponse
-
List of Predictions - One for each predicted invoice detail.
- PredictionGroups: DetectionGroupResponse
-
List of PredictionGroups - One for each predicted invoice detail
e.g. VatGroup, containing predictions for Vat Rate, Net Amount and Vat Amount - Sender: ContactResponse
-
The sender (biller) of the invoice
- Receiver: ContactResponse
-
The receiver of the invoice
- Contacts: List of ContactResponse
-
For German documents, the list contains all contacts found on the document - including sender and receiver. For all other languages, the list contains only sender and receiver.
- LineItemTable: LineItemTableResponse
-
Table of line items
- FormattedResult: string
-
Special invoice format. (for future use only)
- IsQualityOk: boolean
-
Invoice quality flag. (for future use only)
- ResultPdf: string
-
Result pdf-document with marked predictions (encoded as base64 string).
Will contain an empty string if the pdf could not be created successfully. - OcrResult: OCR Result Schema Definitions
-
OCR Result (as json string).
Will contain an empty string if the OCR result could not be created successfully. - DocumentText: string
-
Plain text of the document as detected by the OCR.
Will contain an empty string if the OCR failed.
The escape sequence\r\n
(CarriageReturn + LineFeed) is used to signify the end of a line. - Confidence: double
-
Describes the confidence that the invoice can be auto-processed without human validation.
(-1 = unknown, 0 = validate manually, 1 = autoprocess) - InvoiceState: integer (int32)
-
Specifies if the response contains all requested data.
The value is built from a bitmask for all tasks which could not successfully
deliver a result.
States:
- Ok: 0
- Prediction failed: 1
- Result pdf failed: 2
- OCR Result failed: 4
Example
{
"DocumentResolution": "integer (int32)",
"DocumentFormat": "string",
"Language": "string",
"InvoiceDetailTypePredictions": "List",
"PredictionGroups": "List",
"Sender": "ContactResponse",
"Receiver": "ContactResponse",
"Contacts": "List of ContactResponse",
"LineItemTable": "LineItemTableResponse",
"FormattedResult": "string",
"IsQualityOk": "boolean",
"ResultPdf": "string",
"OcrResult": "string",
"DocumentText": "string",
"Confidence": "double",
"InvoiceState": "integer (int32)"
}
DetectionResponse: object
DetectionResponse
- Type: integer (int64)
-
Predicted invoice detail
The definition of the actual type values can be found here. - TypeName: string
-
Name of predicted invoice detail
The definition of the actual name values can be found here.
Note: if specific sender or receiver vat-ids are detected, then vat-id name
values will be overwritten with more specific name values. These values are
listed here:- SenderVatId (if the VatId belongs to the sender) or
- ReceiverVatId (if the VatId belongs to the receiver) or
- VatId (for others)
- Value: string
-
Predicted value
Formats:
- GrandTotalAmount: decimal separator '.', no group separator, two decimal digits, e.g. 9.00, 2314.50, -12.99
- NetAmount: decimal separator '.', no group separator, two decimal digits, e.g. 9.00, 2314.50, -12.99
- VatAmount: decimal separator '.', no group separator, two decimal digits, e.g. 9.00, 2314.50, -12.99
- VatRate: decimal separator '.', no group separator, one decimal digits, e.g. 20.0, 19.0, 10.0
- InvoiceDate: YYYY-MM-DD (ISO 8601)
- DeliveryDate: YYYY-MM-DD (ISO 8601)
- SenderOrderDate: YYYY-MM-DD (ISO 8601)
- ReceiverOrderDate: YYYY-MM-DD (ISO 8601)
- InvoiceId: string
- InvoiceCurrency: string
- CustomerId: string
- SenderOrderId: string
- ReceiverOrderId: string
- DocumentType: 'Invoice', 'CreditMemo' or 'Other'
- Ibans: string without blanks, comma separated
- Bics: string without blanks, comma separated
- VatIds: string without blanks, comma separated
- DeliveryNoteId: string
- Sender: string
- TaxNumber: string
- BankCode: string
- BankAccount: string
- DueDateDate: YYYY-MM-DD (ISO 8601)
- DueDateDuration: number (days)
- DiscountDate: YYYY-MM-DD (ISO 8601)
- DiscountDuration: number (days)
- DiscountPercent: decimal separator '.', no group separator,
- IsrReference: digits
- IsrSubscriber: digits
- KId: digits
- CompanyRegistrationNumber: string
- Score: double (double)
-
Scored probability. Value between zero and one.
- X: integer (int32)
-
X-Position of prediction according to the document resolution
- Y: integer (int32)
-
Y-Position of prediction according to the document resolution
- Width: integer (int32)
-
Width of prediction according to the document resolution
- Height: integer (int32)
-
Height of prediction according to the document resolution
- Confidence: double (double)
-
Describes the confidence that this invoice detail can be auto-processed without human validation.
(-1 = unknown, 0 = validate manually, 1 = autoprocess)
Example
{
"Type": "int (int64)",
"TypeName": "string",
"Value": "string",
"Score": "double (double)",
"X": "integer (int32)",
"Y": "integer (int32)",
"Width": "integer (int32)",
"Height": "integer (int32)",
"Confidence": "double (double)"
}
DetectionGroupResponse: object
DetectionGroupResponse
- Type: integer (int64)
-
Predicted invoice detail
- TypeName: string
-
Predicted invoice detail
- InvoiceDetailTypePredictions: DetectionResponse
-
List of Predictions - One for each predicted invoice detail.
Example
{
"Type": "int (int64)",
"TypeName": "string",
"InvoiceDetailTypePredictions": "List"
}
ContactResponse: object
ContactResponse
- Name: DetailResponse
-
Name of the contact
- Address: AddressResponse
-
Address of the contact
- Score: double (double)
-
Scored probability. Value between zero and one.
- WebsiteUrl: DetailResponse
-
List of websites of the contact
- Email: DetailResponse
-
List of e-mail addresses of the contact
- Phone: DetailResponse
-
Phone number of the contact
- Fax: DetailResponse
-
Fax number of the contact
Example
{
"Name": "DetailResponse",
"Address": "AddressResponse",
"Score": "double (double)",
"WebsiteUrl": "List",
"Email": "List",
"Phone": "DetailResponse",
"Fax": "DetailResponse"
}
AddressResponse: object
AddressResponse
- Street: DetailResponse
-
Street (incl. street number)
- ZipCode: DetailResponse
-
Zip code / postal code
- City: DetailResponse
-
City
- Country: DetailResponse
-
Country (ISO 3166-1)
- X: integer (int32)
-
X-Position according to the document resolution
- Y: integer (int32)
-
Y-Position according to the document resolution
- Width: integer (int32)
-
Width according to the document resolution
- Height: integer (int32)
-
Height according to the document resolution
Example
{
"Street": "DetailResponse",
"ZipCode": "DetailResponse",
"City": "DetailResponse",
"Country": "DetailResponse",
"X": "integer (int32)",
"Y": "integer (int32)",
"Width": "integer (int32)",
"Height": "integer (int32)"
}
LineItemTableResponse: object
LineItemTableResponse
- LineItems: LineItemResponse
-
List of predicted line items
-
LineItemResponse
Example
{
"LineItems": "List"
}
LineItemResponse: object
LineItemResponse
- ItemId: DetailResponse
-
Line item id
- PositionNumber: integer (int32)
-
Sequential number for each predicted line item, starting at 1
- Description: DetailResponse
-
Line description
- Quantity: DetailResponse
-
Line quantity
- UnitPrice: DetailResponse
-
Line unit price
- TotalAmount: DetailResponse
-
Line total amount
- OrderId: DetailResponse
-
Line order id
- DeliveryId: DetailResponse
-
Line delivery id
- Score: double (double)
-
Scored probability. Value between zero and one.
- X: integer (int32)
-
X-Position of prediction according to the document resolution
- Y: integer (int32)
-
Y-Position of prediction according to the document resolution
- Width: integer (int32)
-
Width of prediction according to the document resolution
- Height: integer (int32)
-
Height of prediction according to the document resolution
Example
{
"ItemId": "DetailResponse",
"PositionNumber": "integer (int32)",
"Description": "DetailResponse",
"Quantity": "DetailResponse",
"UnitPrice": "DetailResponse",
"TotalAmount": "DetailResponse",
"OrderId": "DetailResponse",
"DeliveryId": "DetailResponse",
"Score": "double (double)",
"X": "integer (int32)",
"Y": "integer (int32)",
"Width": "integer (int32)",
"Height": "integer (int32)"
}
DetailResponse: object
DetailResponse
- Name: string
-
Name of predicted detail
- Value: string
-
Predicted value
- Score: double (double)
-
Scored probability. Value between zero and one.
- X: integer (int32)
-
X-Position of prediction according to the document resolution
- Y: integer (int32)
-
Y-Position of prediction according to the document resolution
- Width: integer (int32)
-
Width of prediction according to the document resolution
- Height: integer (int32)
-
Height of prediction according to the document resolution
Example
{
"Name": "string",
"Text": "string",
"Value": "string",
"Score": "double (double)",
"X": "integer (int32)",
"Y": "integer (int32)",
"Width": "integer (int32)",
"Height": "integer (int32)"
}