Skip to content

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
Example json

(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"
    }
  ]
}