Microblink Commerce FAQ

Learn more about Microblink’s solutions for physical receipts, digital receipts, shopper accounts and more.

General

The Microblink Commerce suite currently supports iOS, Android, and API. We don’t currently support other platforms (e.g. Flutter/Cordova, React Native), although we do have clients that use them by creating wrappers into our supported platforms.

You can find our iOS SDK documentation here and our Android SDK documentation here. You can access our API, including relevant documentation, here.

Note: The full scan results object for iOS SDK can be found here. We are happy to work with our clients to add new properties as needed as part of our standard implementation.

How can customers evaluate Microblink Commerce products?

  • Customers will need to register first via www.microblink.com/login.
  • Once registered and logged in, they will be able to request their 30-day free trial to track and manage license and API keys.
  • Before they can access a trial license, they will need to submit their contact information, as well as what product they’re interested in. After their request is approved, they should receive a notification via email. This process may take up to 24-48 hours.

What are the differences between the SDK and API?

There are no differences in commercial terms whether you use SDK, API or both.

The SDK allows the client to leverage the custom camera and its various real-time callbacks to help the end user take the best possible picture of the receipt. Callbacks include receipt detection, blur detection, merchant, date, and total detection, too far and too close detection – all custom models built internally. The SDK processes the image locally on the device and is updated monthly.

Our API takes in an image and processes it on a server. All models used in the SDK are also deployed via the API, which is also updated once per month.

From a user experience perspective, there is no real difference, and results are passed back to the end-user in real-time under both scenarios.

What are the types of receipts you support? How do you handle receipts with product numbers (e.g., Target, Walmart, Costco)? How do you handle receipts with no product numbers (e.g., Kroger, Albertsons)?

If the receipt has a product number (which can include either a SKU, UPC, derivation of a UPC, part number, etc.), then we will attempt to use that number to lookup the product on our backend, and return the UPC, brand, product name, category, and attributes associated with it.

If the receipt only has a description, we perform text processing heuristics and iterate against our ever-growing product catalog to try and find the related UPC, brand, category, and attributes for that product. We use the description (e.g., YOP YOG VAN), merchant (Kroger), and price as inputs to the logic. If we can only get to a brand and aren’t sure of the exact UPC, we return an array of possible UPCs.

What countries do you support?

We currently support the United States, Canada, Mexico, Brazil, the United Kingdom, Germany, Spain, Poland, Sweden, South Africa, Australia, Indonesia, Philippines, and Singapore.

We’ve built custom extraction models for English, Spanish, French, German, Polish, Portuguese, and Swedish. We currently only support Latin characters.

It takes roughly 30 days to add support for a new language, so please reach out to commerceteam@microblink.com if your language of interest is not reflected above.

Do you have your own camera UX? Can we build our own?

We do offer our own Custom Camera Controller UI. For greater control, clients can build out their own UI that sits on top of our base camera controller.

Security

Where do you store images?

We store images and resultant data on AWS. For clients in the United States, these servers are located in Virginia. In compliance with GDPR, all European client data is stored on servers in the European Union.

How do you secure communication between the SDK and your servers?

We do standard HTTPS using TLS, client side certificate pinning, and symmetric encryption of any user credentials.

For email linking solutions for digital receipts, what do you do with user credentials?

Microblink never stores user credentials for any of our solutions. All credentials are maintained locally on the user’s device.

Physical Receipts

How long does it take to process a receipt?

Both our API and SDKs work in real-time (anywhere from less than a second to 4-5 seconds, depending on the network connection).

What do you consider a receipt?

Our system was trained on till slip receipts received post-purchase from retail merchants. Larger documents, like A4-sized invoices (e.g. hotel bills) were not used in training our system and are currently not supported.

What type of payment methods do you currently support?

Credit, Debit, Cash, Gift Card, Check, EBT/Food Stamps, Loyalty Redemption and WIC.

This list grows as needed with clients to support additional payment methods.

Which merchants does Microblink support?

Our merchant detection system uses Machine Learning models, phone number and address lookups, string matching, tax identification numbers, and other methods to find the merchant.

In the United States, we also have a database of more than 250,000 unique store locations that we look up using phone numbers and addresses. This database is updated regularly and includes store locations from hundreds of other countries, as well.

How do you find the merchant? Do you build support via merchant by merchant template?

We have a number of ways to identify the merchant, including ML logo and text mode. Our logic is generic, which allows us to scale in new markets in an accelerated fashion.

How do you find duplicate receipts?

We’ve built our own algorithm to detect duplicate receipts, using all of the trip-level fields returned, including merchant, date, time, total, transaction ID, cashier ID, and register ID (if present), as well as all of the basket data (including the order of the products) to determine whether the receipt has been seen before.

How do you scan long receipts?

For clients using the SDK, we guide the end-user to take multiple pictures of the receipt, starting from the top of the receipt all the way to the bottom. We merge the OCR results on our side to put all of the data back together.

Product Catalog

Our product intelligence works across any receipt (or e-receipt) format to provide SKU-level purchase insights at scale.

What data is passed back?

The full documentation of properties can be found here.

How big is your product catalog?

Microblink’s product catalog is currently around 15 million products and constantly growing.

We only ingest products once we know they are actually purchased, and we add products using a mix of online retailer web scraping and in-store human data collection. As part of the ingestion process we clean the brand name and category to align with our proprietary taxonomy.

Our taxonomy is three levels: sector, department, major category. Additionally, we return product attributes. This applies across both physical (paper) and digital (e-Receipts) receipts.
In addition, we have over 400,000 brands in our catalog.

How many sectors do you support?

We currently return 22 sectors, including:

Accessories, Bags & Jewelry
Arts, Crafts & Sewing
Automotive
Baby
Beauty
Clothing
Electronics
Entertainment
Footwear
Grocery
Health & Medicine
Home
Home Improvement
Household Essentials
Industrial
Party, Gifts & Cards
Personal Care
Pet
QSR
School & Office
Sporting Goods
Toys

What is the process for adding new products to your catalog?

Each week, we crawl merchant websites and add products to our catalog that we know are purchased through our paper receipt and e-commerce database. For the remaining 5-10% of products that are not online, we send people into retail stores to find the UPCs we know exist in that store.

How do you classify restaurant receipts?

We’ve built an out-of-home taxonomy to align with the distinct categories found at quick service, fast casual, and sit-down restaurants. Extracted purchase data is mapped to verified menu items at the top 150 merchants in the United States.

What is the process to support a new market? How long does it normally take?

To open a new market, we need to first build a catalog of products unique to that market and need to create a ground truth regression set for that market to enable adequate testing before go-live.

We thoroughly test our text processing logic, working very closely with the client to ensure the data is where it needs to be.

It currently takes 60-90 days to launch in a new, non-English speaking market. It takes less than 30 days to launch in an unsupported English-speaking country.

As a reminder, we currently support the United States, Canada, the United Kingdom, Germany, South Africa, and Australia, and we are in the process of adding support for other non-English speaking markets, which will be available in early 2023.

Digital Receipts/E-Commerce

What products do you offer?

Our e-commerce suite consists of three different products for scraping and parsing inboxes, as well as a product that grabs purchase data from connected merchant accounts.

For E-receipt scraping, we offer a forwarding inbox, on-device scraping/parsing, and a server-to-server product:

  • Forwarding Inbox (API)
    • Client sets up inbox (e.g., receipts@clientname.com) and instructs users to forward e-receipts to this inbox.
    • E-receipts get auto-forwarded to an inbox set up by Microblink.
    • We run a processing job of Microblink inbox every two minutes
    • Clients access the results via API key
  • On-device (SDK)
    • Users connect their inbox locally via username and password
      • OAuth providers (Gmail, Outlook) store the credentials on the device’s keychain (note: Microblink does not save the credentials anywhere).
      • For IMAP providers (Gmail, Yahoo, AOL), users enter their regular email and password, and then the Microblink SDK walks users through the process of creating an App Password in a webview.
    • Microblink connects to the user’s inbox (either via the Gmail/Outlook SDKs or via IMAP) and queries for messages from the list of supported senders
    • We currently support Gmail (OAuth/IMAP), Outlook (OAuth), Yahoo (IMAP), and AOL (IMAP).
  • Server-to-server integration allows for passive, asynchronous scraping of inboxes.
    • Microblink scrapes user inboxes via server, then POSTs the results to client webhook (set up on client side)
    • Users connect their inbox locally via username and password
    • Microblink stores the credentials on the device’s keychain (note: we do not save the credentials anywhere)
    • Client sets up an API to receive structured results
    • Client calls methods into SDK (locally) to queue up scrape jobs (per email account, using credentials stored on-device) for as many merchants as are supported, which is controlled by a client’s server side config

What fields do you return?

What about merchant accounts?

In addition to scraping user’s inboxes, Microblink offers a solution that lets users link their merchant accounts (e.g., Walmart or Target) to extract SKU-level purchase data.

Users authenticate on-device (including the passing through of any two-factor authentication sent from the merchant), and within the SDK, clients dictate how far back they’d like to extract purchase data.

We can go back as far as three (3) years and currently support these merchants.

How do you get around 2FA?

As part of the authentication process, our SDK creates a unique app password for the client’s mobile app, which is used to authenticate with the server.

Where do you currently offer e-commerce?

We are currently live in the United States, Canada, the United Kingdom, South Africa and Germany. For more information, please visit this page. We can support e-commerce in a new market in less than 30 days.

How do you handle duplicate E-Receipts or multiple orders?

Our solution currently looks for duplicate E-receipts via our forwarding inbox solution (we identify by unique, trip-level fields such as merchant, order number, total, etc).

We return structured data from all digital receipts, including order confirmations, order updates, substitutions, pickup and delivery confirmations, etc. In the event that a client wants one clean purchase record (that includes all of these updates and statuses), we can combine the emails into one final “receipt”, along with the component emails that make up that final record. See more here under “Aggregation.”

How do you handle E-Receipts with PDF attachments?

When we detect a PDF attachment, we convert the email’s HTML into PDF and then compare it to the PDF attachment to determine which has the most relevant basket data, which is then parsed.

Which emails do you actually look through?

Microblink only looks for specific senders delineated by our clients. We do not passively scan and collect every email in a user’s inbox.

How do you know which email address it’s coming from? How do you ensure it is a receipt?

We use the email sender to determine whether we should parse the receipt.

To ensure it is an actual receipt (as opposed to a marketing and or promotional email), we run custom-built ML detection models and post-processing logic to make the determination. Then, we parse the receipt through either HTML scraping or by converting the HTML into PDF and generically parsing the receipt.

What if HTML parsing fails?

In the event that our HTML parser fails (which could happen in the event that a supported merchant changes their HTML format and we haven’t yet built out support for it), we convert the HTML to PDF and to generically parse the receipt.