veryfi 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,273 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: home
6
+ ---
7
+
8
+ - [Minimal example](#minimal-example)
9
+ - [Document API](#document-api)
10
+ - [Line Items API](#line-items-api)
11
+ - [Tags API](#tags-api)
12
+
13
+ ### Minimal example
14
+
15
+ Below is a sample script using <a href="https://www.veryfi.com" target="_blank">**Veryfi**</a> for OCR and extracting data from a document:
16
+
17
+ ```ruby
18
+ require 'veryfi'
19
+
20
+ veryfi_client = Veryfi::Client.new(
21
+ client_id: 'your_client_id',
22
+ client_secret: 'your_client_secret',
23
+ username: 'your_username',
24
+ api_key: 'your_password'
25
+ )
26
+ ```
27
+
28
+ This submits a document for processing (3-5 seconds for a response)
29
+
30
+ ```ruby
31
+ params = {
32
+ file_path: './test/receipt.jpg',
33
+ auto_delete: 1,
34
+ boost_mode: 1,
35
+ async: 1,
36
+ external_id: '123456789',
37
+ max_pages_to_process: 10,
38
+ tags: ['tag1'],
39
+ categories: [
40
+ 'Advertising & Marketing',
41
+ 'Automotive'
42
+ ]
43
+ }
44
+
45
+ response = veryfi_client.document.process(params)
46
+
47
+ puts response
48
+ ```
49
+
50
+ ...or with a URL
51
+
52
+ ```ruby
53
+ params = {
54
+ file_url: "https://raw.githubusercontent.com/veryfi/veryfi-python/master/tests/assets/receipt_public.jpg",
55
+ auto_delete: 1,
56
+ boost_mode: 1,
57
+ async: 1,
58
+ external_id: "123456789",
59
+ max_pages_to_process: 10,
60
+ tags: ["tag1"],
61
+ categories: [
62
+ "Advertising & Marketing",
63
+ "Automotive"
64
+ ]
65
+ }
66
+
67
+ response = veryfi_client.document.process_url(params)
68
+
69
+ puts response
70
+ ```
71
+
72
+ This will produce the following response:
73
+
74
+ ```json
75
+ {
76
+ "abn_number": "",
77
+ "account_number": "",
78
+ "bill_to_address": "2 Court Square\nNew York, NY 12210",
79
+ "bill_to_name": "John Smith",
80
+ "bill_to_vat_number": "",
81
+ "card_number": "",
82
+ "cashback": 0,
83
+ "category": "Repairs & Maintenance",
84
+ "created": "2021-06-28 19:20:02",
85
+ "currency_code": "USD",
86
+ "date": "2019-02-11 00:00:00",
87
+ "delivery_date": "",
88
+ "discount": 0,
89
+ "document_reference_number": "",
90
+ "document_title": "",
91
+ "document_type": "invoice",
92
+ "due_date": "2019-02-26",
93
+ "duplicate_of": 37055375,
94
+ "external_id": "",
95
+ "id": 37187909,
96
+ "img_file_name": "receipt.png",
97
+ "img_thumbnail_url": "https://scdn.veryfi.com/receipts/thumbnail.png",
98
+ "img_url": "https://scdn.veryfi.com/receipts/receipt.png",
99
+ "insurance": "",
100
+ "invoice_number": "US-001",
101
+ "is_duplicate": 1,
102
+ "line_items": [
103
+ {
104
+ "date": "",
105
+ "description": "Front and rear brake cables",
106
+ "discount": 0,
107
+ "id": 68004313,
108
+ "order": 0,
109
+ "price": 100,
110
+ "quantity": 1,
111
+ "reference": "",
112
+ "section": "",
113
+ "sku": "",
114
+ "tax": 0,
115
+ "tax_rate": 0,
116
+ "total": 100,
117
+ "type": "product",
118
+ "unit_of_measure": ""
119
+ },
120
+ {
121
+ "date": "",
122
+ "description": "New set of pedal arms",
123
+ "discount": 0,
124
+ "id": 68004315,
125
+ "order": 1,
126
+ "price": 15,
127
+ "quantity": 2,
128
+ "reference": "",
129
+ "section": "",
130
+ "sku": "",
131
+ "tax": 0,
132
+ "tax_rate": 0,
133
+ "total": 30,
134
+ "type": "product",
135
+ "unit_of_measure": ""
136
+ },
137
+ {
138
+ "date": "",
139
+ "description": "Labor 3hrs",
140
+ "discount": 0,
141
+ "id": 68004316,
142
+ "order": 2,
143
+ "price": 5,
144
+ "quantity": 3,
145
+ "reference": "",
146
+ "section": "",
147
+ "sku": "",
148
+ "tax": 0,
149
+ "tax_rate": 0,
150
+ "total": 15,
151
+ "type": "service",
152
+ "unit_of_measure": ""
153
+ }
154
+ ],
155
+ "notes": "",
156
+ "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",
157
+ "order_date": "",
158
+ "payment_display_name": "",
159
+ "payment_terms": "15 days",
160
+ "payment_type": "",
161
+ "phone_number": "",
162
+ "purchase_order_number": "2312/2019",
163
+ "rounding": 0,
164
+ "service_end_date": "",
165
+ "service_start_date": "",
166
+ "ship_date": "",
167
+ "ship_to_address": "3787 Pineview Drive\nCambridge, MA 12210",
168
+ "ship_to_name": "John Smith",
169
+ "shipping": 0,
170
+ "store_number": "",
171
+ "subtotal": 145,
172
+ "tax": 9.06,
173
+ "tax_lines": [
174
+ {
175
+ "base": 0,
176
+ "name": "Sales",
177
+ "order": 0,
178
+ "rate": 6.25,
179
+ "total": 9.06
180
+ }
181
+ ],
182
+ "tip": 0,
183
+ "total": 154.06,
184
+ "total_weight": "",
185
+ "tracking_number": "",
186
+ "updated": "2021-06-28 19:20:03",
187
+ "vat_number": "",
188
+ "vendor": {
189
+ "address": "1912 Harvest Lane\nNew York, NY 12210",
190
+ "category": "Car Repair",
191
+ "email": "",
192
+ "fax_number": "",
193
+ "name": "East Repair",
194
+ "phone_number": "",
195
+ "raw_name": "East Repair Inc.",
196
+ "vendor_logo": "https://cdn.veryfi.com/logos/tmp/560806841.png",
197
+ "vendor_reg_number": "",
198
+ "vendor_type": "Car Repair",
199
+ "web": ""
200
+ },
201
+ "vendor_account_number": "",
202
+ "vendor_bank_name": "",
203
+ "vendor_bank_number": "",
204
+ "vendor_bank_swift": "",
205
+ "vendor_iban": ""
206
+ }
207
+ ```
208
+
209
+ ---
210
+
211
+ ### Document API
212
+
213
+ See [API schema](https://app.swaggerhub.com/apis/Veryfi/verify-api/) for request params and response details.
214
+
215
+ ```ruby
216
+ # Update document
217
+ veryfi_client.document.update(document_id, params)
218
+
219
+ # Delete document by ID
220
+ veryfi_client.document.delete(document_id)
221
+
222
+ # Get document by ID
223
+ veryfi_client.document.get(document_id)
224
+
225
+ # List all documents
226
+ veryfi_client.document.all
227
+ ```
228
+
229
+ ---
230
+
231
+ ### Line Items API
232
+
233
+ See [API schema](https://app.swaggerhub.com/apis/Veryfi/verify-api/) for request params and response details.
234
+
235
+ ```ruby
236
+ # Get document line items
237
+ veryfi_client.line_items.all(document_id)
238
+
239
+ # Get line item by document id and line item id
240
+ veryfi_client.line_items.get(document_id, id)
241
+
242
+ # Create/update/delete document line item
243
+ veryfi_client.line_items.create(document_id, params)
244
+ veryfi_client.line_items.update(document_id, params)
245
+ veryfi_client.line_items.delete(document_id, params)
246
+ ```
247
+
248
+ ---
249
+
250
+ ### Tags API
251
+
252
+ See [API schema](https://app.swaggerhub.com/apis/Veryfi/verify-api/) for request params and response details.
253
+
254
+ ```ruby
255
+ # Tags
256
+ # List all tags
257
+ veryfi_client.tag.all
258
+
259
+ # Delete a tag by ID
260
+ veryfi_client.tag.delete(id)
261
+
262
+ # List all document tags
263
+ veryfi_client.document_tag.all(document_id)
264
+
265
+ # Add tag to document
266
+ veryfi_client.document_tag.add(document_id, name: "tag_name")
267
+
268
+ # Delete tag by document id and tag id
269
+ veryfi_client.document_tag.delete(document_id, id)
270
+
271
+ # Delete all document tags
272
+ veryfi_client.document_tag.delete_all(document_id)
273
+ ```
@@ -88,11 +88,11 @@ module Veryfi
88
88
  )
89
89
  end
90
90
 
91
- def default_headers(has_files: false)
91
+ def default_headers
92
92
  {
93
93
  "User-Agent": "Ruby Veryfi-Ruby/0.1.0",
94
94
  "Accept": "application/json",
95
- "Content-Type": has_files ? "application/x-www-form-urlencoded" : "application/json",
95
+ "Content-Type": "application/json",
96
96
  "Client-Id": client_id,
97
97
  "Authorization": "apikey #{username}:#{api_key}"
98
98
  }
@@ -20,7 +20,7 @@ module Veryfi
20
20
  # private
21
21
 
22
22
  def digest
23
- OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new("sha256"), secret, payload)
23
+ OpenSSL::HMAC.digest(OpenSSL::Digest.new("sha256"), secret, payload)
24
24
  end
25
25
 
26
26
  def payload
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Veryfi
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
data/veryfi.gemspec CHANGED
@@ -27,14 +27,16 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.add_dependency "faraday", "~> 1.7"
29
29
 
30
- spec.add_development_dependency "bundler", "~> 1.17"
31
- spec.add_development_dependency "bundler-audit", "~> 0.6"
30
+ spec.add_development_dependency "bundler", "~> 2.2"
31
+ spec.add_development_dependency "bundler-audit", "~> 0.9"
32
32
  spec.add_development_dependency "pry", "~> 0.14"
33
33
  spec.add_development_dependency "rake", "~> 13.0"
34
34
  spec.add_development_dependency "rspec", "~> 3.9"
35
35
  spec.add_development_dependency "rspec-its", "~> 1.3"
36
36
  spec.add_development_dependency "rubocop", "~> 0.82"
37
37
  spec.add_development_dependency "rubocop-rspec", "~> 1.38"
38
+ spec.add_development_dependency "simplecov", "~> 0.21"
39
+ spec.add_development_dependency "simplecov-badge", "~> 2.0"
38
40
  spec.add_development_dependency "vcr", "~> 6.0"
39
41
  spec.add_development_dependency "webmock", "~> 3.14"
40
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: veryfi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Veryfi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-31 00:00:00.000000000 Z
11
+ date: 2021-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.17'
61
+ version: '2.2'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.17'
68
+ version: '2.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler-audit
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.6'
75
+ version: '0.9'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.6'
82
+ version: '0.9'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +164,34 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '1.38'
167
+ - !ruby/object:Gem::Dependency
168
+ name: simplecov
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.21'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.21'
181
+ - !ruby/object:Gem::Dependency
182
+ name: simplecov-badge
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '2.0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '2.0'
167
195
  - !ruby/object:Gem::Dependency
168
196
  name: vcr
169
197
  requirement: !ruby/object:Gem::Requirement
@@ -218,6 +246,15 @@ files:
218
246
  - bin/rspec
219
247
  - bin/rubocop
220
248
  - bin/setup
249
+ - coverage/coverage-badge.png
250
+ - docs/.gitignore
251
+ - docs/404.html
252
+ - docs/Gemfile
253
+ - docs/Gemfile.lock
254
+ - docs/_config.yml
255
+ - docs/_includes/footer.html
256
+ - docs/_includes/header.html
257
+ - docs/index.markdown
221
258
  - lib/.keep
222
259
  - lib/veryfi.rb
223
260
  - lib/veryfi/api/document.rb