Feature List
Which Data Fields can asynchronous processing of Smartscan extract?¶
Below is an overview of all the features we support.
- The caller has to specify which fields they want processed by the API.
- We continuously work with our integrations to expand our feature and language support. Please contact us if you would like us to look into new features.
Feature items¶
Information
Note that we do not infer implicit columns, meaning we do not infer information that is not stated explicitly in the line items table. Similarly, we won't return prices including and excluding VAT, unless they are listed explicitly in the document.
Feature name | Premium | Description | Example |
---|---|---|---|
BANK_ACCOUNT_NUMBER | * | Bank account number | 0002012345 |
BANK_REGISTRATION_NUMBER | * | Bank registration number (in countries where relevant - eg. Denmark) | 0007 |
BIC | * | BIC code | DABADKKK |
CREDIT_CARD_LAST_FOUR | Last four digits of the credit card that was used for payment | 2345 |
|
CURRENCY | Three-letter currency code | EUR |
|
CUSTOMER_NUMBER | * | Number that identifies the customer | 12345 |
DOCUMENT_DATE | * | The date that the document was issued | 2022-10-24 |
DOCUMENT_NUMBER | * | A number that identifies the document (invoice number for invoices etc.) | 012782-04 |
DOCUMENT_TYPE | - Support for Invoice , Receipt , Credit Note and Debit Note |
||
- The API returns absolute values for amounts, meaning the amount is returned without indicating whether it's positive or negative. | |||
IBAN | IBAN code | DK50 0007 0007 1112 22 |
|
ORDER_NUMBER | * | (experimental). Order number if present on e.g. an invoice | 20220201-1234 |
OCR_LINE_BE_PAYMENT_ID | * | Belgian Payment ID: OGM | +++123/1234/12345+++ |
OCR_LINE_DK_CREDITOR_ID | Danish creditor ID: FIK Account number | 12345678 |
|
OCR_LINE_DK_PAYMENT_ID | Danish Payment ID: FIK Debitor or payment reference | 000000001010123 |
|
OCR_LINE_DK_TYPE | Danish Payment info: FIK Type field | +71 |
|
OCR_LINE_FI_PAYMENT_ID | Finnish Payment ID: Viitenumero | 123456789 |
|
OCR_LINE_NL_PAYMENT_ID | Dutch Payment ID: Betalingskenmerk | 123456789 |
|
OCR_LINE_NO_PAYMENT_ID | Norwegian Payment ID: Kundeidentifikasjon (KID) | 123456789 |
|
OCR_LINE_SE_BANKGIRO_CREDITOR_ID | Swedish Payment info: BankGiro | 0070070 |
|
OCR_LINE_SE_PAYMENT_ID | Swedish Payment ID :Märkning | 123456789 |
|
OCR_LINE_SE_PLUSGIRO_CREDITOR_ID | Swedish Payment info: PlusGiro | 41 |
|
PAYMENT_DUE_DATE | The last day that the payment has to be made | 2022-10-24 |
|
PAYMENT_METHOD | Cash , Credit Card or Bank Transfer |
Bank Transfer |
|
PURCHASE_LINES | * | Line items information; description, quantity and prices. See all the supported fields listed below. | |
RECEIVER_ADDRESS | * | (experimental) | |
RECEIVER_COUNTRY_CODE | * | (experimental) | |
RECEIVER_NAME | * | (experimental) | |
RECEIVER_ORDER_NUMBER | * | (experimental) | |
RECEIVER_VAT_NUMBER | * | (experimental) | |
SUPPLIER_ADDRESS | * | Address of the supplier's company | Gærtorvet 3, 1799 København |
SUPPLIER_COUNTRY_CODE | Two-letter country code of the supplier's origin | DK |
|
SUPPLIER_ORGANISATION_NUMBER | * | National company ID (e.g. CVR in DK or KvK in the NL) | 11122007 |
SUPPLIER_NAME | * | Name of the supplier's company | Visma |
SUPPLIER_VAT_NUMBER | * | VAT number for the supplier's company (relevant in the EU) | DK11122007 |
TEXT_ANNOTATION | The full OCR output for the document | ||
TOTAL_EXCL_VAT | The total of the document excluding VAT. Will always be returned as absolute value. | 20.21 |
|
TOTAL_INCL_VAT | The total of the document including VAT. Will always be returned as absolute value. | 21.50 |
|
TOTAL_VAT | The total VAT of the document. Will always be returned as absolute value. | 1.29 |
|
VAT_DISTRIBUTION | * | VAT levels; percentages and amount they represent. See the details here. | |
PAGE_TEXTS | The text content of the document per page. | ||
QR_CODES | Extract QR codes found in document images. Returns the decoded text content of any QR codes detected. | "https://example.com" |
|
SWISS_QR_BILLS | Extract and parse Swiss QR bill payment information from QR codes. Returns structured payment data including amounts, accounts, and parties. | See Swiss QR Bills |
Upcoming features¶
Smartscan currently cannot predict the Order Reference, but you can provide it in the feedback calls as ORDER_REFERENCE
, which we can then use in the future to train Smartscan.
Default Feature Set¶
Unlike the synchronous Smartscan, the asynchronous Smartscan does not have a default feature set. The caller must specify which features they want to extract from the document.
Purchase Lines¶
Leverage Smartscan’s functionality for extracting invoice line item extraction. With the asynchronous processing of Smartscan, you can extract line items from invoices and receipts from documents with any number of pages.
Feature Name | Type | Description | Example Value |
---|---|---|---|
itemNumber | string | This is the row number, position, index, or ID for this line item (if it is stated on the document). | 1 |
code | string | Product code, product number, or SKU associated with the line item. It is an ID that the supplier assigns to each specific product. | A25006 |
description | string | The text description for the line item. It will typically be the name of a product or a text describing the delivered service. | Sport socks long 3-pack black 43-46 |
quantity | string | The quantity for this line item. | 12 |
unit | string | The unit of the line item, e.g. ‘pieces’, ‘kg’, or ‘lb’. | kg |
unitPriceInclVat | string | The net or gross price of one unit of this item including vat. | 12.5 |
unitPriceExclVat | string | The net or gross price of one unit of this item excluding vat. | 12.5 |
unitPrice | string | The net or gross price of one unit of this item. The unit price is typically referred to as the “Price” or “unit price”, and it is not always stated if it is incl or excl the vat amount. | 12.5 |
totalInclVat | string | The total amount including vat. | 150.00 |
totalExclVat | string | The total amount excluding vat. | 120.00 |
totalAmount | string | The total amount is typically present for every line item, and is usually found as the rightmost value on the line. This is the value we return as the total_amount. This general total amount of this line item often does not distinguish between including VAT (incl_vat) or excluding VAT (excl_vat). | 150.00 |
totalVat | string | The total vat amount for the specific line item. | 30.0 |
percentageVat | string | The tax/vat rate associated with the line item. | 25.0 |
pageRef | number | Page number on which the line was found | 25.0 |
discount | future field | ||
percentageDiscount | future field |
Multiple VAT levels¶
Leverage Smartscan's functionality for extracting multiple VAT levels present on a document. This feature is executed only on the first and last page of the document.
To begin using and access the feature, simply include VAT_DISTRIBUTION
as a requested feature from Smartscan, as shown in Smartscan's feature list. This will add VAT outputs wherever our system identifies them. Please note that if Smartscan determines the relevant VAT information is not present on the document, no VAT output will be generated.
This also means that we do not attempt to compute VAT, base amount or amount including VAT based on the other features. We simply return what is stated on the document.
Information
The feature is now supported in almost all our markets. We have limited output to at most two distinct percentages based on the output quality.
Romania (RO), Norway (NO), Sweden (SE), Germany (DE), Finland (FI), Spain (ES)
.
Feature Name | Type | Description | Example Value |
---|---|---|---|
percentage | string | VAT level percentage. The decimal delimiter is always a dot. | "percentage": "25.0" |
amount | string | The amount the percentage represents rounded to two decimal points. | "amount": "585.45" |
inclVat | string | Amount incl vat for this vat percentage. | "inclVat": "2926.25" |
exclVat | string | The base amount vat is based on. | "exclVat": "2341.80" |
pageRef | number | Page number on which the distribution was found. | "pageRef": 1 |
Example | |
---|---|
![]() |
![]() |
(In this example there is no explicit inclVat
or exclVat
amount - to these elements are not returned.)
Question Answering (QA)¶
Questions for Smartscan is a powerful API feature designed to revolutionise the way businesses interact with their documents. It is a general-purpose question-answering system tailored specifically for business documents, serving as a supplementary tool to the standard feature extraction capabilities.
Information
With asynchronous processing, the QA feature can process documents of any length, making it ideal for comprehensive document analysis. Unlike the synchronous version which is limited to 5 questions on 5 pages, the async QA feature can handle larger documents and more complex question sets.
Questions
Our focus is on returning readable information directly from documents. While Questions for Smartscan is not a chatbot, users can ask human language questions about the content present in the document, like "what is the order number" or "what is the VAT amount". You cannot ask questions like "What is not on the document" or "What is the weather?"
How to Use QA¶
To use the QA functionality in asynchronous processing, simply provide one or more questions in the questions
field of your request. The QA
feature will be automatically added to your feature list when questions are present:
{
"document": {
"source": {
"httpUri": "https://example.com/document.pdf"
}
},
"features": ["TOTAL_INCL_VAT", "PURCHASE_LINES"],
"questions": [
"How much is the VAT amount?",
"What is the order reference?",
"What services were provided?",
"What are the payment terms?"
]
}
Note
When you include questions in your request, the QA
feature is automatically added to your feature list, so you don't need to explicitly specify it.
QA Response Format¶
The QA feature returns results within the standard async response structure. Each QA annotation contains a list of Answer Candidates:
Field Name | Type | Description | Example Value |
---|---|---|---|
question | string | The original question that was asked | "How much is the VAT amount?" |
answer | string | The extracted answer from the document (may be empty if not found) | "1.250,00" |
confidence | object | Confidence level and value | {"level": "UNKNOWN", "value": 0} |
pageRef | number | Page number where the answer was found | 1 |
Example QA Response¶
{
"id": "transaction-id-123",
"customId": "custom-id-456",
"annotations": [
{
"feature": "QA",
"answerCandidates": [
{
"question": "How much is the VAT amount?",
"answer": "1.250,00",
"confidence": {
"level": "UNKNOWN",
"value": 0
},
"pageRef": 1
},
{
"question": "What is the order reference?",
"answer": "",
"confidence": {
"level": "UNKNOWN",
"value": 0
},
"pageRef": 1
},
{
"question": "What services were provided?",
"answer": "Consulting services for system integration and software development",
"confidence": {
"level": "UNKNOWN",
"value": 0
},
"pageRef": 2
}
]
}
]
}
Note that the answer field may be empty if the system determines that the information is not available in the document, as shown in the second example above. The confidence level is currently set to UNKNOWN
with a value of 0
in the async implementation.
QR Code Features¶
QR Codes¶
The QR_CODES
feature extracts and decodes any QR codes found in document images. With asynchronous processing, this feature can scan all pages of any document length to identify QR codes and returns their decoded text content.
Information
Unlike the synchronous version which is limited to the first 5 pages, the async QR_CODES feature can process documents of any length, making it ideal for comprehensive QR code extraction from large documents.
Common use cases include: - Extracting URLs for digital receipts or additional information - Reading contact information or business details - Capturing payment references or transaction IDs - Processing multi-page documents with QR codes throughout
The feature returns an array of strings, where each string represents the decoded content of a detected QR code.
Swiss QR Bills¶
The SWISS_QR_BILLS
feature is specifically designed to extract and parse Swiss QR bill payment information. Swiss QR bills are standardized payment slips used in Switzerland that contain structured payment data encoded in QR codes.
Information
This feature automatically validates the QR bill format according to Swiss payment standards and only returns data from valid Swiss QR bills. Invalid or malformed QR bills are ignored. With async processing, it can handle documents of any length containing multiple Swiss QR bills.
When a valid Swiss QR bill is detected, the following structured information is extracted:
Field Name | Type | Description | Example Value |
---|---|---|---|
qrType | string | Swiss QR Code identifier, always "SPC" | "SPC" |
version | string | Swiss QR bill specification version | "0200" |
codingType | string | Character encoding type, always "1" | "1" |
account | string | IBAN or QR-IBAN of the creditor | "CH4431999123000889012" |
creditorAddressType | string | Address format: "S" for structured, "K" for combined | "S" |
creditorName | string | Name of the creditor or company | "Max Muster & Co" |
creditorAddressLine_1 | string | Street/P.O. Box or first address line of the creditor | "Musterstrasse" |
creditorAddressLine_2 | string | Building number or second address line of the creditor | "123" |
creditorAddressPostalCode | string | Postal code of the creditor | "8000" |
creditorAddressCity | string | City or town of the creditor | "Seldwyla" |
creditorAddressCountry | string | Country code of the creditor | "CH" |
ultimateCreditorAddressType | string | Address format of the ultimate creditor | "S" |
ultimateCreditorName | string | Name of the ultimate creditor | "Sara Ultimate Creditor" |
ultimateCreditorAddressLine_1 | string | Street/P.O. Box or first address line of the ultimate creditor | "Ultimate Street" |
ultimateCreditorAddressLine_2 | string | Building number or second address line of the ultimate creditor | "456" |
ultimateCreditorAddressPostalCode | string | Postal code of the ultimate creditor | "9000" |
ultimateCreditorAddressCity | string | City or town of the ultimate creditor | "Ultimate City" |
ultimateCreditorAddressCountry | string | Country code of the ultimate creditor | "CH" |
amount | string | Payment amount | "1949.75" |
currency | string | Payment currency (CHF or EUR) | "CHF" |
ultimateDebtorAddressType | string | Address format of the ultimate debtor | "S" |
ultimateDebtorName | string | Name of the ultimate debtor | "Sara Beispiel" |
ultimateDebtorAddressLine_1 | string | Street/P.O. Box or first address line of the ultimate debtor | "Musterstrasse" |
ultimateDebtorAddressLine_2 | string | Building number or second address line of the ultimate debtor | "1" |
ultimateDebtorAddressPostalCode | string | Postal code of the ultimate debtor | "8000" |
ultimateDebtorAddressCity | string | City or town of the ultimate debtor | "Seldwyla" |
ultimateDebtorAddressCountry | string | Country code of the ultimate debtor | "CH" |
paymentReferenceType | string | Reference type: "QRR", "SCOR", or "NON" | "QRR" |
paymentReference | string | Payment reference number | "210000000003139471430009017" |
unstructuredMessage | string | Additional payment information or message | "Order from 15.10.2020" |
trailer | string | End of payment data indicator, always "EPD" | "EPD" |
Example Response:
{
"swissQrBills": [
{
"qrType": "SPC",
"version": "0200",
"codingType": "1",
"account": "CH4431999123000889012",
"creditorAddressType": "S",
"creditorName": "Max Muster & Co",
"creditorAddressLine_1": "Musterstrasse",
"creditorAddressLine_2": "123",
"creditorAddressPostalCode": "8000",
"creditorAddressCity": "Seldwyla",
"creditorAddressCountry": "CH",
"ultimateCreditorAddressType": "S",
"ultimateCreditorName": "Sara Ultimate Creditor",
"ultimateCreditorAddressLine_1": "Ultimate Street",
"ultimateCreditorAddressLine_2": "456",
"ultimateCreditorAddressPostalCode": "9000",
"ultimateCreditorAddressCity": "Ultimate City",
"ultimateCreditorAddressCountry": "CH",
"amount": "1949.75",
"currency": "CHF",
"ultimateDebtorAddressType": "S",
"ultimateDebtorName": "Sara Beispiel",
"ultimateDebtorAddressLine_1": "Musterstrasse",
"ultimateDebtorAddressLine_2": "1",
"ultimateDebtorAddressPostalCode": "8000",
"ultimateDebtorAddressCity": "Seldwyla",
"ultimateDebtorAddressCountry": "CH",
"paymentReferenceType": "QRR",
"paymentReference": "210000000003139471430009017",
"unstructuredMessage": "Order from 15.10.2020",
"trailer": "EPD"
}
]
}