/veryfi-nodejs

Node.js module for communicating with the Veryfi OCR API. || read: https://veryfi.com/nodejs

Primary LanguageJavaScript

Veryfi SDK for Node.js

Node.js - version npm Code style: black

Table of Contents

veryfi-nodejs is a Node.js module for communicating with the Veryfi OCR API

Installation

Install from npm, a package manager for Javascript.

npm i @veryfi/veryfi-sdk

You may need to run the above command with sudo.

Getting Started

Obtaining Client ID and user keys

If you don't have an account with Veryfi, please go ahead and register here: https://app.veryfi.com/signup/api/

Node.js API Client Library

The veryfi library can be used to communicate with Veryfi API. All available functionality is described here: https://veryfi.github.io/veryfi-nodejs/

Below is a sample script using Veryfi for OCR and extracting data from a document:

Extracting Data

const Client = require('@veryfi/veryfi-sdk');
const client_id = 'your_client_id';
const client_secret = 'your_client_secret';
const username = 'your_username';
const api_key = 'your_password';

const categories = ['Grocery', 'Utilities', 'Travel'];
const file_path = './test/receipt.png';

This submits a document for processing (3-5 seconds for a response)

let veryfi_client = new Client(client_id, client_secret, username, api_key);
let response = veryfi_client.process_document(file_path, categories=categories).then(response => {
  console.log(response)
});

...or with a URL

let response = veryfi_client.process_document_url(url, external_id=some_id).then(response => {
  console.log(response)
});

Response

>>> {
      abn_number: '',
      account_number: '',
      bill_to_address: '2 Court Square\nNew York, NY 12210',
      bill_to_name: 'John Smith',
      bill_to_vat_number: '',
      card_number: '',
      cashback: 0,
      category: 'Repairs & Maintenance',
      created: '2021-06-28 19:20:02',
      currency_code: 'USD',
      date: '2019-02-11 00:00:00',
      delivery_date: '',
      discount: 0,
      document_reference_number: '',
      document_title: '',
      document_type: 'invoice',
      due_date: '2019-02-26',
      duplicate_of: 37055375,
      external_id: '',
      id: 37187909,
      img_file_name: 'receipt.png',
      img_thumbnail_url: 'https://scdn.veryfi.com/receipts/thumbnail.png',
      img_url: 'https://scdn.veryfi.com/receipts/receipt.png',
      insurance: '',
      invoice_number: 'US-001',
      is_duplicate: 1,
      line_items: [
        {
          date: '',
          description: 'Front and rear brake cables',
          discount: 0,
          id: 68004313,
          order: 0,
          price: 100,
          quantity: 1,
          reference: '',
          section: '',
          sku: '',
          tax: 0,
          tax_rate: 0,
          total: 100,
          type: 'product',
          unit_of_measure: ''
        },
        {
          date: '',
          description: 'New set of pedal arms',
          discount: 0,
          id: 68004315,
          order: 1,
          price: 15,
          quantity: 2,
          reference: '',
          section: '',
          sku: '',
          tax: 0,
          tax_rate: 0,
          total: 30,
          type: 'product',
          unit_of_measure: ''
        },
        {
          date: '',
          description: 'Labor 3hrs',
          discount: 0,
          id: 68004316,
          order: 2,
          price: 5,
          quantity: 3,
          reference: '',
          section: '',
          sku: '',
          tax: 0,
          tax_rate: 0,
          total: 15,
          type: 'service',
          unit_of_measure: ''
        }
      ],
      notes: '',
      ocr_text: '\n' +
        '\fEast Repair Inc.\n' +
        '1912 Harvest Lane\n' +
        'New York, NY 12210\n' +
        '\n' +
        'BILL TO\t\tSHIP TO\tRECEIPT #\tUS-001\n' +
        'John Smith\t\tJohn Smith\tRECEIPT DATE\t11/02/2019\n' +
        '2 Court Square\t3787 Pineview Drive\n' +
        '\tP.O.#\t2312/2019\n' +
        'New York, NY 12210\tCambridge, MA 12210\n' +
        '\tDUE DATE\t26/02/2019\n' +
        'Receipt Total\t\t\t$154.06\n' +
        '\n' +
        'QTY DESCRIPTION\t\t\tUNIT PRICE\tAMOUNT\n' +
        '1\tFront and rear brake cables\t\t100.00\t100.00\n' +
        '2\tNew set of pedal arms\t\t\t15.00\t30.00\n' +
        '3\tLabor 3hrs\t\t\t\t5.00\t15.00\n' +
        '\n' +
        '\tSubtotal\t145.00\n' +
        '\tSales Tax 6.25%\t9.06\n' +
        '\n' +
        'TERMS & CONDITIONS\n' +
        'Payment is due within 15 days\n' +
        'Please make checks payable to: East Repair\n' +
        '\tJohn Smith\n' +
        '\tInc.\n',
      order_date: '',
      payment_display_name: '',
      payment_terms: '15 days',
      payment_type: '',
      phone_number: '',
      purchase_order_number: '2312/2019',
      rounding: 0,
      service_end_date: '',
      service_start_date: '',
      ship_date: '',
      ship_to_address: '3787 Pineview Drive\nCambridge, MA 12210',
      ship_to_name: 'John Smith',
      shipping: 0,
      store_number: '',
      subtotal: 145,
      tax: 9.06,
      tax_lines: [ { base: 0, name: 'Sales', order: 0, rate: 6.25, total: 9.06 } ],
      tip: 0,
      total: 154.06,
      total_weight: '',
      tracking_number: '',
      updated: '2021-06-28 19:20:03',
      vat_number: '',
      vendor: {
        address: '1912 Harvest Lane\nNew York, NY 12210',
        category: 'Car Repair',
        email: '',
        fax_number: '',
        name: 'East Repair',
        phone_number: '',
        raw_name: 'East Repair Inc.',
        vendor_logo: 'https://cdn.veryfi.com/logos/tmp/560806841.png',
        vendor_reg_number: '',
        vendor_type: 'Car Repair',
        web: ''
      },
      vendor_account_number: '',
      vendor_bank_name: '',
      vendor_bank_number: '',
      vendor_bank_swift: '',
      vendor_iban: ''
    }

Updating a document

let new_vendor = {"name": "Starbucks", "address": "123 Easy Str, San Francisco, CA 94158"};
let category = "Meals & Entertainment";
let new_total = 11.23;
veryfi_client.update_document(id=12345,
    {
        'vendor': new_vendor,
        'category': new_category,
        'total': new_total
    })
.then(response => {
  console.log(response)
});

Need help?

Visit https://docs.veryfi.com/ to access integration guides and usage notes in the Veryfi API Documentation Portal

If you run into any issue or need help installing or using the library, please contact support@veryfi.com.

If you found a bug in this library or would like new features added, then open an issue or pull requests against this repo!

Tutorial Video

Veryfi Tutorial