Receipt
The Node.js SDK supports the Mindee V1 Receipt API.
Product Specifications
Endpoint Name
expense_receipts
Recommended Version
v5.5
Supports Polling/Webhooks
✔️ Yes
Support Synchronous HTTP Calls
✔️ Yes
Geography
🌐 Global
Quick-Start
Using the sample below, we are going to illustrate how to extract the data that we want using the SDK.

Sample Code
const mindee = require("mindee");
// for TS or modules:
// import * as mindee from "mindee";
// Init a new client
const mindeeClient = new mindee.Client({ apiKey: "my-api-key" });
// Load a file from disk
const inputSource = mindeeClient.docFromPath("/path/to/the/file.ext");
// Parse the file
const apiResponse = mindeeClient.parse(
mindee.product.ReceiptV5,
inputSource
);
// Handle the response Promise
apiResponse.then((resp) => {
// print a string summary
console.log(resp.document.toString());
});You can also call this product asynchronously:
const mindee = require("mindee");
// for TS or modules:
// import * as mindee from "mindee";
// Init a new client
const mindeeClient = new mindee.Client({ apiKey: "my-api-key" });
// Load a file from disk
const inputSource = mindeeClient.docFromPath("/path/to/the/file.ext");
// Parse the file
const apiResponse = mindeeClient.enqueueAndParse(
mindee.product.ReceiptV5,
inputSource
);
// Handle the response Promise
apiResponse.then((resp) => {
// print a string summary
console.log(resp.document.toString());
});Sample Output (rST)
########
Document
########
:Mindee ID: d96fb043-8fb8-4adc-820c-387aae83376d
:Filename: default_sample.jpg
Inference
#########
:Product: mindee/expense_receipts v5.3
:Rotation applied: Yes
Prediction
==========
:Expense Locale: en-GB; en; GB; GBP;
:Purchase Category: food
:Purchase Subcategory: restaurant
:Document Type: EXPENSE RECEIPT
:Purchase Date: 2016-02-26
:Purchase Time: 15:20
:Total Amount: 10.20
:Total Net: 8.50
:Total Tax: 1.70
:Tip and Gratuity:
:Taxes:
+---------------+--------+----------+---------------+
| Base | Code | Rate (%) | Amount |
+===============+========+==========+===============+
| 8.50 | VAT | 20.00 | 1.70 |
+---------------+--------+----------+---------------+
:Supplier Name: Clachan
:Supplier Company Registrations: Type: VAT NUMBER, Value: 232153895
Type: VAT NUMBER, Value: 232153895
:Supplier Address: 34 Kingley Street W1B 50H
:Supplier Phone Number: 02074940834
:Receipt Number: 54/7500
:Line Items:
+--------------------------------------+----------+--------------+------------+
| Description | Quantity | Total Amount | Unit Price |
+======================================+==========+==============+============+
| Meantime Pale | 2.00 | 10.20 | |
+--------------------------------------+----------+--------------+------------+
Page Predictions
================
Page 0
------
:Expense Locale: en-GB; en; GB; GBP;
:Purchase Category: food
:Purchase Subcategory: restaurant
:Document Type: EXPENSE RECEIPT
:Purchase Date: 2016-02-26
:Purchase Time: 15:20
:Total Amount: 10.20
:Total Net: 8.50
:Total Tax: 1.70
:Tip and Gratuity:
:Taxes:
+---------------+--------+----------+---------------+
| Base | Code | Rate (%) | Amount |
+===============+========+==========+===============+
| 8.50 | VAT | 20.00 | 1.70 |
+---------------+--------+----------+---------------+
:Supplier Name: Clachan
:Supplier Company Registrations: Type: VAT NUMBER, Value: 232153895
Type: VAT NUMBER, Value: 232153895
:Supplier Address: 34 Kingley Street W1B 50H
:Supplier Phone Number: 02074940834
:Receipt Number: 54/7500
:Line Items:
+--------------------------------------+----------+--------------+------------+
| Description | Quantity | Total Amount | Unit Price |
+======================================+==========+==============+============+
| Meantime Pale | 2.00 | 10.20 | |
+--------------------------------------+----------+--------------+------------+Standard Fields
These fields are generic and used in several products.
Basic Field
Each prediction object contains a set of fields that inherit from the generic Field class.
A typical Field object will have the following attributes:
value (
number | string): corresponds to the field value. Can beundefinedif no value was extracted.confidence (
number): the confidence score of the field prediction.boundingBox (
[Point, Point, Point, Point]): contains exactly 4 relative vertices (points) coordinates of a right rectangle containing the field in the document.polygon (
Point[]): contains the relative vertices coordinates (Point) of a polygon containing the field in the image.pageId (
number): the ID of the page, alwaysundefinedwhen at document-level.reconstructed (
boolean): indicates whether an object was reconstructed (not extracted as the API gave it).
Aside from the previous attributes, all basic fields have access to a toString() method that can be used to print their value as a string.
AddressField
Aside from the basic BaseField attributes, the address field AddressField also implements the following:
streetNumber (
string): String representation of the street number. Can benull.streetName (
string): Name of the street. Can benull.poBox (
string): String representation of the PO Box number. Can benull.addressComplement (
string): Address complement. Can benull.city (
string): City name. Can benull.postalCode (
string): String representation of the postal code. Can benull.state (
string): State name. Can benull.country (
string): Country name. Can benull.
Amount Field
The amount field AmountField only has one constraint: its value is a number (or undefined).
Classification Field
The classification field ClassificationField does not implement all the basic Field attributes. It only implements value, confidence and pageId.
Company Registration Field
Aside from the basic Field attributes, the company registration field CompanyRegistrationField also implements the following:
type (
string): the type of company.
Date Field
Aside from the basic Field attributes, the date field DateField also implements the following:
dateObject (
Date): an accessible representation of the value as a JavaScript object.
Locale Field
The locale field LocaleField implements the value, confidence and pageId from the base Field attributes.
In addition, it comes with these specific attributes:
language (
string): ISO 639-1 language code (e.g.:enfor English). Can beundefined.country (
string): ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 code for countries (e.g.:GRBorGBfor "Great Britain"). Can beundefined.currency (
string): ISO 4217 code for currencies (e.g.:USDfor "US Dollars"). Can beundefined.
String Field
The text field StringField only has one constraint: its value is a string (or undefined).
Taxes Field
Tax
Aside from the basic Field attributes, the tax field TaxField also implements the following:
rate (
number): the tax rate applied to an item can be expressed as a percentage. Can beundefined.code (
string): tax code (or equivalent, depending on the origin of the document). Can beundefined.base (
number): base amount used for the tax. Can beundefined.value (
number): the value of the tax. Can benull.
Taxes (Array)
The Taxes field represents an array-like collection of TaxField objects. As it is the representation of several objects, it has access to a custom toString() method that can render a TaxField object as a table line.
Specific Fields
Fields which are specific to this product; they are not used in any other product.
Line Items Field
List of all line items on the receipt.
A ReceiptV5LineItem implements the following attributes:
description(string): The item description.quantity(number): The item quantity.totalAmount(number): The item total amount.unitPrice(number): The item unit price.
Attributes
The following fields are extracted for Receipt V5:
Purchase Category
category (ClassificationField): The purchase category of the receipt.
Possible values include:
'toll'
'food'
'parking'
'transport'
'accommodation'
'gasoline'
'telecom'
'miscellaneous'
'software'
'shopping'
'energy'
console.log(result.document.inference.prediction.category.value);Purchase Date
date (DateField): The date the purchase was made.
console.log(result.document.inference.prediction.date.value);Document Type
documentType (ClassificationField): The type of receipt: EXPENSE RECEIPT or CREDIT CARD RECEIPT.
Possible values include:
'EXPENSE RECEIPT'
'CREDIT CARD RECEIPT'
'OTHER'
console.log(result.document.inference.prediction.documentType.value);Line Items
lineItems (ReceiptV5LineItem[]): List of all line items on the receipt.
for (const lineItemsElem of result.document.inference.prediction.lineItems) {
console.log(lineItemsElem.value);
}Expense Locale
locale (LocaleField): The locale of the document.
console.log(result.document.inference.prediction.locale.value);Receipt Number
receiptNumber (StringField): The receipt number or identifier.
console.log(result.document.inference.prediction.receiptNumber.value);Purchase Subcategory
subcategory (ClassificationField): The purchase subcategory of the receipt for transport and food.
Possible values include:
'plane'
'taxi'
'train'
'restaurant'
'shopping'
'other'
'groceries'
'cultural'
'electronics'
'office_supplies'
'micromobility'
'car_rental'
'public'
'delivery'
null
console.log(result.document.inference.prediction.subcategory.value);Supplier Address
supplierAddress : The address of the supplier or merchant.
console.log(result.document.inference.prediction.supplierAddress.value);Supplier Company Registrations
supplierCompanyRegistrations (CompanyRegistrationField[]): List of company registration numbers associated to the supplier.
for (const supplierCompanyRegistrationsElem of result.document.inference.prediction.supplierCompanyRegistrations) {
console.log(supplierCompanyRegistrationsElem.value);
}Supplier Name
supplierName (StringField): The name of the supplier or merchant.
console.log(result.document.inference.prediction.supplierName.value);Supplier Phone Number
supplierPhoneNumber (StringField): The phone number of the supplier or merchant.
console.log(result.document.inference.prediction.supplierPhoneNumber.value);Taxes
taxes (TaxField[]): The list of taxes present on the receipt.
for (const taxesElem of result.document.inference.prediction.taxes) {
console.log(taxesElem.value);
}Purchase Time
time (StringField): The time the purchase was made.
console.log(result.document.inference.prediction.time.value);Tip and Gratuity
tip (AmountField): The total amount of tip and gratuity.
console.log(result.document.inference.prediction.tip.value);Total Amount
totalAmount (AmountField): The total amount paid: includes taxes, discounts, fees, tips, and gratuity.
console.log(result.document.inference.prediction.totalAmount.value);Total Net
totalNet (AmountField): The net amount paid: does not include taxes, fees, and discounts.
console.log(result.document.inference.prediction.totalNet.value);Total Tax
totalTax (AmountField): The sum of all taxes.
console.log(result.document.inference.prediction.totalTax.value);Last updated
Was this helpful?

