veryfi 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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