Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/veryfi/veryfi-ruby
Ruby gem for communicating with the Veryfi OCR API.
https://github.com/veryfi/veryfi-ruby
api invoice invoice-parser ocr ocr-library receipt receipt-reader ruby sdk sdk-ruby
Last synced: about 2 months ago
JSON representation
Ruby gem for communicating with the Veryfi OCR API.
- Host: GitHub
- URL: https://github.com/veryfi/veryfi-ruby
- Owner: veryfi
- Created: 2021-09-03T05:37:43.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-04T23:01:49.000Z (10 months ago)
- Last Synced: 2024-04-22T04:23:53.677Z (9 months ago)
- Topics: api, invoice, invoice-parser, ocr, ocr-library, receipt, receipt-reader, ruby, sdk, sdk-ruby
- Language: Ruby
- Homepage:
- Size: 4.72 MB
- Stars: 8
- Watchers: 4
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Veryfi SDK for Ruby
[![Version](https://img.shields.io/gem/v/veryfi)](https://rubygems.org/gems/veryfi)
[![Test](https://github.com/veryfi/veryfi-ruby/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/veryfi/veryfi-ruby/actions/workflows/test.yml)
[![Coverage](https://raw.githubusercontent.com/veryfi/veryfi-ruby/main/coverage/coverage-badge.png)](https://raw.githubusercontent.com/veryfi/veryfi-ruby/main/coverage/coverage-badge.png)**veryfi-ruby** is a Ruby gem for communicating with the [Veryfi OCR API](https://veryfi.com/api/)
[Documentation](https://veryfi.github.io/veryfi-ruby/)
## Table of Contents
- [Top](#veryfi-sdk-for-ruby)
- [Table of Contents](#table-of-contents)
- [Example](#example)
- [Installation](#installation)
- [Getting Started](#getting-started)
- [Obtaining Client ID and user keys](#obtaining-client-id-and-user-keys)
- [Ruby API Client Library](#ruby-api-client-library)
- [Need help?](#need-help)
- [For Developers](#for-developers)
- [Install](#install)
- [Quality tools](#quality-tools)
- [Develop](#develop)## Example
Below is a sample script using **Veryfi** for OCR and extracting data from a document:
```ruby
require 'veryfi'veryfi_client = Veryfi::Client.new(
client_id: 'your_client_id',
client_secret: 'your_client_secret',
username: 'your_username',
api_key: 'your_password'
)
```This submits a document for processing (3-5 seconds for a response)
```ruby
params = {
file_path: './test/receipt.jpg',
auto_delete: true,
boost_mode: false,
async: false,
external_id: '123456789',
max_pages_to_process: 10,
tags: ['tag1'],
categories: [
'Advertising & Marketing',
'Automotive'
]
}response = veryfi_client.document.process(params)
puts response
```...or with a URL
```ruby
params = {
file_url: 'https://raw.githubusercontent.com/veryfi/veryfi-python/master/tests/assets/receipt_public.jpg',
auto_delete: true,
boost_mode: false,
async: false,
external_id: '123456789',
max_pages_to_process: 10,
tags: ['tag1'],
categories: [
'Advertising & Marketing',
'Automotive'
]
}response = veryfi_client.document.process_url(params)
puts response
```This will produce the following response:
```json
{
"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.\n1912 Harvest Lane\nNew York, NY 12210\n\nBILL TO\t\tSHIP TO\tRECEIPT #\tUS-001\nJohn Smith\t\tJohn Smith\tRECEIPT DATE\t11/02/2019\n2 Court Square\t3787 Pineview Drive\n\tP.O.#\t2312/2019\nNew York, NY 12210\tCambridge, MA 12210\n\tDUE DATE\t26/02/2019\nReceipt Total\t\t\t$154.06\n\nQTY DESCRIPTION\t\t\tUNIT PRICE\tAMOUNT\n1\tFront and rear brake cables\t\t100.00\t100.00\n2\tNew set of pedal arms\t\t\t15.00\t30.00\n3\tLabor 3hrs\t\t\t\t5.00\t15.00\n\n\tSubtotal\t145.00\n\tSales Tax 6.25%\t9.06\n\nTERMS & CONDITIONS\nPayment is due within 15 days\nPlease 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": ""
}
```## Installation
```bash
gem install veryfi
```Or add to your Gemfile:
```ruby
gem 'veryfi', '~> 0.1'
```## Getting Started
### Obtaining Client ID and user keys
If you don't have an account with Veryfi, please go ahead and register here: [https://hub.veryfi.com/signup/api/](https://hub.veryfi.com/signup/api/)
### Ruby API Client Library
The **veryfi-ruby** gem can be used to communicate with Veryfi API. All available functionality is described [in docs](https://veryfi.github.io/veryfi-ruby/)
## Need help?
If you run into any issue or need help installing or using the library, please contact [email protected].
If you found a bug in this library or would like new features added, then open an issue or pull requests against this repo!
# For Developers
## Install
```bash
bin/setup
```## Quality tools
* `bin/quality` based on [RuboCop](https://github.com/bbatsov/rubocop)
* `.rubocop.yml` describes active checks## Develop
`bin/ci` checks your specs and runs quality tools
## Release
1. Change version in `lib/veryfi/version.rb`
2. Run `bundle` - this should update `Gemfile.lock`
3. Commit changes, push to a new Github branch, and merge
4. On Github go to `Actions` -> `Release` -> and click `Run workflow` to trigger a new release
5. Release workflow will publish gem to [Rubygems](https://rubygems.org/gems/veryfi)