avatax 22.10.0 → 23.2.0

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/gem-push.yml +3 -3
  3. data/.gitignore +2 -0
  4. data/README.md +1 -1
  5. data/avatax.gemspec +1 -0
  6. data/lib/avatax/api.rb +14 -0
  7. data/lib/avatax/client/accounts.rb +11 -11
  8. data/lib/avatax/client/addresses.rb +2 -2
  9. data/lib/avatax/client/advancedrules.rb +5 -5
  10. data/lib/avatax/client/ageverification.rb +59 -0
  11. data/lib/avatax/client/avafileforms.rb +5 -5
  12. data/lib/avatax/client/batches.rb +8 -8
  13. data/lib/avatax/client/certexpressinvites.rb +3 -3
  14. data/lib/avatax/client/certificates.rb +15 -15
  15. data/lib/avatax/client/companies.rb +22 -22
  16. data/lib/avatax/client/compliance.rb +1 -1
  17. data/lib/avatax/client/contacts.rb +6 -6
  18. data/lib/avatax/client/customers.rb +13 -13
  19. data/lib/avatax/client/datasources.rb +6 -6
  20. data/lib/avatax/client/definitions.rb +93 -73
  21. data/lib/avatax/client/distancethresholds.rb +6 -6
  22. data/lib/avatax/client/ecommercetoken.rb +2 -2
  23. data/lib/avatax/client/firmclientlinkages.rb +9 -9
  24. data/lib/avatax/client/free.rb +1 -1
  25. data/lib/avatax/client/fundingrequests.rb +2 -2
  26. data/lib/avatax/client/items.rb +51 -48
  27. data/lib/avatax/client/jurisdictionoverrides.rb +6 -6
  28. data/lib/avatax/client/locations.rb +12 -12
  29. data/lib/avatax/client/multidocument.rb +10 -10
  30. data/lib/avatax/client/nexus.rb +15 -15
  31. data/lib/avatax/client/notices.rb +4 -4
  32. data/lib/avatax/client/notifications.rb +3 -3
  33. data/lib/avatax/client/provisioning.rb +2 -2
  34. data/lib/avatax/client/registrar.rb +14 -14
  35. data/lib/avatax/client/reports.rb +4 -4
  36. data/lib/avatax/client/settings.rb +6 -6
  37. data/lib/avatax/client/subscriptions.rb +3 -3
  38. data/lib/avatax/client/taxcodes.rb +6 -6
  39. data/lib/avatax/client/taxcontent.rb +5 -5
  40. data/lib/avatax/client/taxrules.rb +6 -6
  41. data/lib/avatax/client/transactions.rb +60 -22
  42. data/lib/avatax/client/upcs.rb +6 -6
  43. data/lib/avatax/client/userdefinedfields.rb +3 -3
  44. data/lib/avatax/client/users.rb +8 -8
  45. data/lib/avatax/client/utilities.rb +3 -3
  46. data/lib/avatax/configuration.rb +4 -1
  47. data/lib/avatax/connection.rb +6 -5
  48. data/lib/avatax/version.rb +1 -1
  49. data/spec/spec_helper.rb +1 -1
  50. metadata +16 -2
@@ -19,7 +19,7 @@ module AvaTax
19
19
  # @param model [TaxCodeModel[]] The tax code you wish to create.
20
20
  # @return [TaxCodeModel[]]
21
21
  def create_tax_codes(companyId, model) path = "/api/v2/companies/#{companyId}/taxcodes"
22
- post(path, model, {}, "22.10.0") end
22
+ post(path, model, {}, "23.2.0") end
23
23
 
24
24
  # Delete a single tax code
25
25
  #
@@ -33,7 +33,7 @@ module AvaTax
33
33
  # @param id [Integer] The ID of the tax code you wish to delete.
34
34
  # @return [ErrorDetail[]]
35
35
  def delete_tax_code(companyId, id) path = "/api/v2/companies/#{companyId}/taxcodes/#{id}"
36
- delete(path, {}, "22.10.0") end
36
+ delete(path, {}, "23.2.0") end
37
37
 
38
38
  # Retrieve a single tax code
39
39
  #
@@ -51,7 +51,7 @@ module AvaTax
51
51
  # @param id [Integer] The primary key of this tax code
52
52
  # @return [Object]
53
53
  def get_tax_code(companyId, id) path = "/api/v2/companies/#{companyId}/taxcodes/#{id}"
54
- get(path, {}, "22.10.0") end
54
+ get(path, {}, "23.2.0") end
55
55
 
56
56
  # Retrieve tax codes for this company
57
57
  #
@@ -76,7 +76,7 @@ module AvaTax
76
76
  # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
77
77
  # @return [FetchResult]
78
78
  def list_tax_codes_by_company(companyId, options={}) path = "/api/v2/companies/#{companyId}/taxcodes"
79
- get(path, options, "22.10.0") end
79
+ get(path, options, "23.2.0") end
80
80
 
81
81
  # Retrieve all tax codes
82
82
  #
@@ -100,7 +100,7 @@ module AvaTax
100
100
  # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
101
101
  # @return [FetchResult]
102
102
  def query_tax_codes(options={}) path = "/api/v2/taxcodes"
103
- get(path, options, "22.10.0") end
103
+ get(path, options, "23.2.0") end
104
104
 
105
105
  # Update a single tax code
106
106
  #
@@ -121,7 +121,7 @@ module AvaTax
121
121
  # @param model [Object] The tax code you wish to update.
122
122
  # @return [Object]
123
123
  def update_tax_code(companyId, id, model) path = "/api/v2/companies/#{companyId}/taxcodes/#{id}"
124
- put(path, model, {}, "22.10.0") end
124
+ put(path, model, {}, "23.2.0") end
125
125
  end
126
126
  end
127
127
  end
@@ -37,7 +37,7 @@ module AvaTax
37
37
  # @param model [Object] Parameters about the desired file format and report format, specifying which company, locations and TaxCodes to include.
38
38
  # @return [Object]
39
39
  def build_tax_content_file(model) path = "/api/v2/pointofsaledata/build"
40
- post(path, model, {}, "22.10.0") end
40
+ post(path, model, {}, "23.2.0") end
41
41
 
42
42
  # Build a tax content file for a single location
43
43
  #
@@ -78,7 +78,7 @@ module AvaTax
78
78
  # @param includeJurisCodes [Boolean] When true, the file will include jurisdiction codes in the result.
79
79
  # @return [Object]
80
80
  def build_tax_content_file_for_location(companyId, id, options={}) path = "/api/v2/companies/#{companyId}/locations/#{id}/pointofsaledata"
81
- get(path, options, "22.10.0") end
81
+ get(path, options, "23.2.0") end
82
82
 
83
83
  # Download a file listing tax rates by postal code
84
84
  #
@@ -131,7 +131,7 @@ module AvaTax
131
131
  # @param region [String] A two character region code which limits results to a specific region.
132
132
  # @return [Object]
133
133
  def download_tax_rates_by_zip_code(date, options={}) path = "/api/v2/taxratesbyzipcode/download/#{date}"
134
- get(path, options, "22.10.0") end
134
+ get(path, options, "23.2.0") end
135
135
 
136
136
  # Sales tax rates for a specified address
137
137
  #
@@ -165,7 +165,7 @@ module AvaTax
165
165
  # @param country [String] Name or ISO 3166 code identifying the country. This field supports many different country identifiers: * Two character ISO 3166 codes * Three character ISO 3166 codes * Fully spelled out names of the country in ISO supported languages * Common alternative spellings for many countries For a full list of all supported codes and names, please see the Definitions API `ListCountries`.
166
166
  # @return [Object]
167
167
  def tax_rates_by_address(options={}) path = "/api/v2/taxrates/byaddress"
168
- get(path, options, "22.10.0") end
168
+ get(path, options, "23.2.0") end
169
169
 
170
170
  # Sales tax rates for a specified country and postal code. This API is only available for US postal codes.
171
171
  #
@@ -196,7 +196,7 @@ module AvaTax
196
196
  # @param postalCode [String] The postal code of the location.
197
197
  # @return [Object]
198
198
  def tax_rates_by_postal_code(options={}) path = "/api/v2/taxrates/bypostalcode"
199
- get(path, options, "22.10.0") end
199
+ get(path, options, "23.2.0") end
200
200
  end
201
201
  end
202
202
  end
@@ -27,7 +27,7 @@ module AvaTax
27
27
  # @param model [TaxRuleModel[]] The tax rule you wish to create.
28
28
  # @return [TaxRuleModel[]]
29
29
  def create_tax_rules(companyId, model) path = "/api/v2/companies/#{companyId}/taxrules"
30
- post(path, model, {}, "22.10.0") end
30
+ post(path, model, {}, "23.2.0") end
31
31
 
32
32
  # Delete a single tax rule
33
33
  #
@@ -53,7 +53,7 @@ module AvaTax
53
53
  # @param id [Integer] The ID of the tax rule you wish to delete.
54
54
  # @return [ErrorDetail[]]
55
55
  def delete_tax_rule(companyId, id) path = "/api/v2/companies/#{companyId}/taxrules/#{id}"
56
- delete(path, {}, "22.10.0") end
56
+ delete(path, {}, "23.2.0") end
57
57
 
58
58
  # Retrieve a single tax rule
59
59
  #
@@ -79,7 +79,7 @@ module AvaTax
79
79
  # @param id [Integer] The primary key of this tax rule
80
80
  # @return [Object]
81
81
  def get_tax_rule(companyId, id) path = "/api/v2/companies/#{companyId}/taxrules/#{id}"
82
- get(path, {}, "22.10.0") end
82
+ get(path, {}, "23.2.0") end
83
83
 
84
84
  # Retrieve tax rules for this company
85
85
  #
@@ -112,7 +112,7 @@ module AvaTax
112
112
  # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
113
113
  # @return [FetchResult]
114
114
  def list_tax_rules(companyId, options={}) path = "/api/v2/companies/#{companyId}/taxrules"
115
- get(path, options, "22.10.0") end
115
+ get(path, options, "23.2.0") end
116
116
 
117
117
  # Retrieve all tax rules
118
118
  #
@@ -144,7 +144,7 @@ module AvaTax
144
144
  # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
145
145
  # @return [FetchResult]
146
146
  def query_tax_rules(options={}) path = "/api/v2/taxrules"
147
- get(path, options, "22.10.0") end
147
+ get(path, options, "23.2.0") end
148
148
 
149
149
  # Update a single tax rule
150
150
  #
@@ -171,7 +171,7 @@ module AvaTax
171
171
  # @param model [Object] The tax rule you wish to update.
172
172
  # @return [Object]
173
173
  def update_tax_rule(companyId, id, model) path = "/api/v2/companies/#{companyId}/taxrules/#{id}"
174
- put(path, model, {}, "22.10.0") end
174
+ put(path, model, {}, "23.2.0") end
175
175
  end
176
176
  end
177
177
  end
@@ -35,7 +35,7 @@ module AvaTax
35
35
  # @param model [Object] information about the transaction and lines to be added
36
36
  # @return [Object]
37
37
  def add_lines(model, options={}) path = "/api/v2/companies/transactions/lines/add"
38
- post(path, model, options, "22.10.0") end
38
+ post(path, model, options, "23.2.0") end
39
39
 
40
40
  # Correct a previously created transaction
41
41
  #
@@ -81,7 +81,7 @@ module AvaTax
81
81
  # @param model [Object] The adjustment you wish to make
82
82
  # @return [Object]
83
83
  def adjust_transaction(companyCode, transactionCode, model, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/adjust"
84
- post(path, model, options, "22.10.0") end
84
+ post(path, model, options, "23.2.0") end
85
85
 
86
86
  # Get audit information about a transaction
87
87
  #
@@ -118,7 +118,7 @@ module AvaTax
118
118
  # @param transactionCode [String] The code identifying the transaction
119
119
  # @return [Object]
120
120
  def audit_transaction(companyCode, transactionCode) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/audit"
121
- get(path, {}, "22.10.0") end
121
+ get(path, {}, "23.2.0") end
122
122
 
123
123
  # Get audit information about a transaction
124
124
  #
@@ -156,7 +156,7 @@ module AvaTax
156
156
  # @param documentType [String] The document type of the original transaction (See DocumentType::* for a list of allowable values)
157
157
  # @return [Object]
158
158
  def audit_transaction_with_type(companyCode, transactionCode, documentType) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/types/#{documentType}/audit"
159
- get(path, {}, "22.10.0") end
159
+ get(path, {}, "23.2.0") end
160
160
 
161
161
  # Lock a set of documents
162
162
  #
@@ -176,7 +176,7 @@ module AvaTax
176
176
  # @param model [Object] bulk lock request
177
177
  # @return [Object]
178
178
  def bulk_lock_transaction(model) path = "/api/v2/transactions/lock"
179
- post(path, model, {}, "22.10.0") end
179
+ post(path, model, {}, "23.2.0") end
180
180
 
181
181
  # Change a transaction's code
182
182
  #
@@ -222,7 +222,7 @@ module AvaTax
222
222
  # @param model [Object] The code change request you wish to execute
223
223
  # @return [Object]
224
224
  def change_transaction_code(companyCode, transactionCode, model, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/changecode"
225
- post(path, model, options, "22.10.0") end
225
+ post(path, model, options, "23.2.0") end
226
226
 
227
227
  # Commit a transaction for reporting
228
228
  #
@@ -266,7 +266,7 @@ module AvaTax
266
266
  # @param model [Object] The commit request you wish to execute
267
267
  # @return [Object]
268
268
  def commit_transaction(companyCode, transactionCode, model, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/commit"
269
- post(path, model, options, "22.10.0") end
269
+ post(path, model, options, "23.2.0") end
270
270
 
271
271
  # Create or adjust a transaction
272
272
  #
@@ -313,7 +313,7 @@ module AvaTax
313
313
  # @param model [Object] The transaction you wish to create or adjust
314
314
  # @return [Object]
315
315
  def create_or_adjust_transaction(model, options={}) path = "/api/v2/transactions/createoradjust"
316
- post(path, model, options, "22.10.0") end
316
+ post(path, model, options, "23.2.0") end
317
317
 
318
318
  # Create a new transaction
319
319
  #
@@ -367,7 +367,7 @@ module AvaTax
367
367
  # @param model [Object] The transaction you wish to create
368
368
  # @return [Object]
369
369
  def create_transaction(model, options={}) path = "/api/v2/transactions/create"
370
- post(path, model, options, "22.10.0") end
370
+ post(path, model, options, "23.2.0") end
371
371
 
372
372
  # Remove lines from an existing unlocked transaction
373
373
  #
@@ -398,7 +398,19 @@ module AvaTax
398
398
  # @param model [Object] information about the transaction and lines to be removed
399
399
  # @return [Object]
400
400
  def delete_lines(model, options={}) path = "/api/v2/companies/transactions/lines/delete"
401
- post(path, model, options, "22.10.0") end
401
+ post(path, model, options, "23.2.0") end
402
+
403
+ # Fetches the Variance data generated for all the transactions done by Company.
404
+ #
405
+ # ### Security Policies
406
+ #
407
+ # * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
408
+ # * This API depends on the following active services:*Required* (all): AvaTaxPro, BasicReturns.
409
+ # Swagger Name: AvaTaxClient
410
+ # @param companyCode [String]
411
+ # @return [Object]
412
+ def get_all_variance_report_by_company_code(companyCode) path = "/api/v2/companies/#{companyCode}/AllVariance"
413
+ get(path, {}, "23.2.0") end
402
414
 
403
415
  # Retrieve a single transaction by code
404
416
  #
@@ -440,7 +452,7 @@ module AvaTax
440
452
  # @param include [String] Specifies objects to include in this fetch call
441
453
  # @return [Object]
442
454
  def get_transaction_by_code(companyCode, transactionCode, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}"
443
- get(path, options, "22.10.0") end
455
+ get(path, options, "23.2.0") end
444
456
 
445
457
  # Retrieve a single transaction by code
446
458
  #
@@ -465,7 +477,7 @@ module AvaTax
465
477
  # @param include [String] Specifies objects to include in this fetch call
466
478
  # @return [Object]
467
479
  def get_transaction_by_code_and_type(companyCode, transactionCode, documentType, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/types/#{documentType}"
468
- get(path, options, "22.10.0") end
480
+ get(path, options, "23.2.0") end
469
481
 
470
482
  # Retrieve a single transaction by ID
471
483
  #
@@ -495,7 +507,20 @@ module AvaTax
495
507
  # @param include [String] Specifies objects to include in this fetch call
496
508
  # @return [Object]
497
509
  def get_transaction_by_id(id, options={}) path = "/api/v2/transactions/#{id}"
498
- get(path, options, "22.10.0") end
510
+ get(path, options, "23.2.0") end
511
+
512
+ # Fetches the Variance data generated for particular Company by transaction ID
513
+ #
514
+ # ### Security Policies
515
+ #
516
+ # * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
517
+ # * This API depends on the following active services:*Required* (all): AvaTaxPro, BasicReturns.
518
+ # Swagger Name: AvaTaxClient
519
+ # @param companyCode [String]
520
+ # @param transactionId [String]
521
+ # @return [Object]
522
+ def get_variance_report_by_company_code_by_transaction_id(companyCode, transactionId) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionId}/variance"
523
+ get(path, {}, "23.2.0") end
499
524
 
500
525
  # Retrieve all transactions
501
526
  #
@@ -543,7 +568,7 @@ module AvaTax
543
568
  # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
544
569
  # @return [FetchResult]
545
570
  def list_transactions_by_company(companyCode, options={}) path = "/api/v2/companies/#{companyCode}/transactions"
546
- get(path, options, "22.10.0") end
571
+ get(path, options, "23.2.0") end
547
572
 
548
573
  # Lock a single transaction
549
574
  #
@@ -552,7 +577,7 @@ module AvaTax
552
577
  # This API is mainly used for connector developers to simulate what happens when the Returns product locks a document.
553
578
  # After this API call succeeds, the document will be locked and can't be voided or adjusted.
554
579
  #
555
- # This API is only available to customers in Sandbox with AvaTaxPro subscription. On production servers, this API is available by invitation only.
580
+ # On Sandbox, this API is only available to customers who have both an AvaTaxPro and a Managed Returns subscription. On Production, this API is only available internally for the Avalara Returns team.
556
581
  #
557
582
  # If you have more than one document with the same `code`, specify the `documentType` parameter to choose between them.
558
583
  #
@@ -589,7 +614,7 @@ module AvaTax
589
614
  # @param model [Object] The lock request you wish to execute
590
615
  # @return [Object]
591
616
  def lock_transaction(companyCode, transactionCode, model, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/lock"
592
- post(path, model, options, "22.10.0") end
617
+ post(path, model, options, "23.2.0") end
593
618
 
594
619
  # Create a refund for a transaction
595
620
  #
@@ -646,7 +671,7 @@ module AvaTax
646
671
  # @param model [Object] Information about the refund to create
647
672
  # @return [Object]
648
673
  def refund_transaction(companyCode, transactionCode, model, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/refund"
649
- post(path, model, options, "22.10.0") end
674
+ post(path, model, options, "23.2.0") end
650
675
 
651
676
  # Perform multiple actions on a transaction
652
677
  #
@@ -690,7 +715,7 @@ module AvaTax
690
715
  # @param model [Object] The data from an external system to reconcile against AvaTax
691
716
  # @return [Object]
692
717
  def settle_transaction(companyCode, transactionCode, model, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/settle"
693
- post(path, model, options, "22.10.0") end
718
+ post(path, model, options, "23.2.0") end
694
719
 
695
720
  # Uncommit a transaction for reporting
696
721
  #
@@ -728,7 +753,7 @@ module AvaTax
728
753
  # @param include [String] Specifies objects to include in this fetch call
729
754
  # @return [Object]
730
755
  def uncommit_transaction(companyCode, transactionCode, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/uncommit"
731
- post(path, options, "22.10.0") end
756
+ post(path, options, "23.2.0") end
732
757
 
733
758
  # Unvoids a transaction
734
759
  #
@@ -763,7 +788,20 @@ module AvaTax
763
788
  # @param include [String] Specifies objects to include in this fetch call
764
789
  # @return [Object]
765
790
  def unvoid_transaction(companyCode, transactionCode, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/unvoid"
766
- post(path, options, "22.10.0") end
791
+ post(path, options, "23.2.0") end
792
+
793
+ # Generates the Variance report which will capture the difference between "Tax Calculated by Avalara" Vs "Actual Tax" paid at custom clearance at line / header level.
794
+ #
795
+ # ### Security Policies
796
+ #
797
+ # * This API requires one of the following user roles: AccountAdmin, AccountUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPAdmin, CSPTester, ProStoresOperator, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
798
+ # * This API depends on the following active services:*Required* (all): AvaTaxPro, BasicReturns.
799
+ # Swagger Name: AvaTaxClient
800
+ # @param companyCode [String]
801
+ # @param model [VarianceRequestModel[]]
802
+ # @return [Object]
803
+ def variance_report(companyCode, model) path = "/api/v2/companies/#{companyCode}/variance"
804
+ post(path, model, {}, "23.2.0") end
767
805
 
768
806
  # Verify a transaction
769
807
  #
@@ -806,7 +844,7 @@ module AvaTax
806
844
  # @param model [Object] The data from an external system to reconcile against AvaTax
807
845
  # @return [Object]
808
846
  def verify_transaction(companyCode, transactionCode, model, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/verify"
809
- post(path, model, options, "22.10.0") end
847
+ post(path, model, options, "23.2.0") end
810
848
 
811
849
  # Void a transaction
812
850
  #
@@ -851,7 +889,7 @@ module AvaTax
851
889
  # @param model [Object] The void request you wish to execute. To void a transaction the code must be set to 'DocVoided'
852
890
  # @return [Object]
853
891
  def void_transaction(companyCode, transactionCode, model, options={}) path = "/api/v2/companies/#{companyCode}/transactions/#{transactionCode}/void"
854
- post(path, model, options, "22.10.0") end
892
+ post(path, model, options, "23.2.0") end
855
893
  end
856
894
  end
857
895
  end
@@ -17,7 +17,7 @@ module AvaTax
17
17
  # @param model [UPCModel[]] The UPC you wish to create.
18
18
  # @return [UPCModel[]]
19
19
  def create_u_p_cs(companyId, model) path = "/api/v2/companies/#{companyId}/upcs"
20
- post(path, model, {}, "22.10.0") end
20
+ post(path, model, {}, "23.2.0") end
21
21
 
22
22
  # Delete a single UPC
23
23
  #
@@ -32,7 +32,7 @@ module AvaTax
32
32
  # @param id [Integer] The ID of the UPC you wish to delete.
33
33
  # @return [ErrorDetail[]]
34
34
  def delete_u_p_c(companyId, id) path = "/api/v2/companies/#{companyId}/upcs/#{id}"
35
- delete(path, {}, "22.10.0") end
35
+ delete(path, {}, "23.2.0") end
36
36
 
37
37
  # Retrieve a single UPC
38
38
  #
@@ -48,7 +48,7 @@ module AvaTax
48
48
  # @param id [Integer] The primary key of this UPC
49
49
  # @return [Object]
50
50
  def get_u_p_c(companyId, id) path = "/api/v2/companies/#{companyId}/upcs/#{id}"
51
- get(path, {}, "22.10.0") end
51
+ get(path, {}, "23.2.0") end
52
52
 
53
53
  # Retrieve UPCs for this company
54
54
  #
@@ -71,7 +71,7 @@ module AvaTax
71
71
  # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
72
72
  # @return [FetchResult]
73
73
  def list_u_p_cs_by_company(companyId, options={}) path = "/api/v2/companies/#{companyId}/upcs"
74
- get(path, options, "22.10.0") end
74
+ get(path, options, "23.2.0") end
75
75
 
76
76
  # Retrieve all UPCs
77
77
  #
@@ -93,7 +93,7 @@ module AvaTax
93
93
  # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
94
94
  # @return [FetchResult]
95
95
  def query_u_p_cs(options={}) path = "/api/v2/upcs"
96
- get(path, options, "22.10.0") end
96
+ get(path, options, "23.2.0") end
97
97
 
98
98
  # Update a single UPC
99
99
  #
@@ -112,7 +112,7 @@ module AvaTax
112
112
  # @param model [Object] The UPC you wish to update.
113
113
  # @return [Object]
114
114
  def update_u_p_c(companyId, id, model) path = "/api/v2/companies/#{companyId}/upcs/#{id}"
115
- put(path, model, {}, "22.10.0") end
115
+ put(path, model, {}, "23.2.0") end
116
116
  end
117
117
  end
118
118
  end
@@ -16,7 +16,7 @@ module AvaTax
16
16
  # @param id [Integer] The id of the User Defined Field you wish to delete.
17
17
  # @return [ErrorDetail[]]
18
18
  def delete_user_defined_field(companyId, id) path = "/api/v2/companies/#{companyId}/userdefinedfields/#{id}"
19
- delete(path, {}, "22.10.0") end
19
+ delete(path, {}, "23.2.0") end
20
20
 
21
21
  #
22
22
  #
@@ -30,7 +30,7 @@ module AvaTax
30
30
  # @param allowDefaults [Boolean] If true this will add defaulted UDFs to the list that are not named yet
31
31
  # @return [FetchResult]
32
32
  def list_user_defined_fields_by_company_id(companyId, options={}) path = "/api/v2/companies/#{companyId}/userdefinedfields"
33
- get(path, options, "22.10.0") end
33
+ get(path, options, "23.2.0") end
34
34
 
35
35
  # Update a User Defined Field identified by id for a company
36
36
  #
@@ -46,7 +46,7 @@ module AvaTax
46
46
  # @param model [Object]
47
47
  # @return [Object]
48
48
  def update_user_defined_field(companyId, model, options={}) path = "/api/v2/companies/#{companyId}/userdefinedfields"
49
- post(path, model, options, "22.10.0") end
49
+ post(path, model, options, "23.2.0") end
50
50
  end
51
51
  end
52
52
  end
@@ -20,7 +20,7 @@ module AvaTax
20
20
  # @param model [Object] An object containing your current password and the new password.
21
21
  # @return [String]
22
22
  def change_password(model) path = "/api/v2/passwords"
23
- put(path, model, {}, "22.10.0") end
23
+ put(path, model, {}, "23.2.0") end
24
24
 
25
25
  # Create new users
26
26
  #
@@ -42,7 +42,7 @@ module AvaTax
42
42
  # @param model [UserModel[]] The user or array of users you wish to create.
43
43
  # @return [UserModel[]]
44
44
  def create_users(accountId, model) path = "/api/v2/accounts/#{accountId}/users"
45
- post(path, model, {}, "22.10.0") end
45
+ post(path, model, {}, "23.2.0") end
46
46
 
47
47
  # Delete a single user
48
48
  #
@@ -61,7 +61,7 @@ module AvaTax
61
61
  # @param accountId [Integer] The accountID of the user you wish to delete.
62
62
  # @return [ErrorDetail[]]
63
63
  def delete_user(id, accountId) path = "/api/v2/accounts/#{accountId}/users/#{id}"
64
- delete(path, {}, "22.10.0") end
64
+ delete(path, {}, "23.2.0") end
65
65
 
66
66
  # Retrieve a single user
67
67
  #
@@ -81,7 +81,7 @@ module AvaTax
81
81
  # @param include [String] Optional fetch commands.
82
82
  # @return [Object]
83
83
  def get_user(id, accountId, options={}) path = "/api/v2/accounts/#{accountId}/users/#{id}"
84
- get(path, options, "22.10.0") end
84
+ get(path, options, "23.2.0") end
85
85
 
86
86
  # Retrieve all entitlements for a single user
87
87
  #
@@ -109,7 +109,7 @@ module AvaTax
109
109
  # @param accountId [Integer] The accountID of the user you wish to get.
110
110
  # @return [Object]
111
111
  def get_user_entitlements(id, accountId) path = "/api/v2/accounts/#{accountId}/users/#{id}/entitlements"
112
- get(path, {}, "22.10.0") end
112
+ get(path, {}, "23.2.0") end
113
113
 
114
114
  # Retrieve users for this account
115
115
  #
@@ -138,7 +138,7 @@ module AvaTax
138
138
  # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
139
139
  # @return [FetchResult]
140
140
  def list_users_by_account(accountId, options={}) path = "/api/v2/accounts/#{accountId}/users"
141
- get(path, options, "22.10.0") end
141
+ get(path, options, "23.2.0") end
142
142
 
143
143
  # Retrieve all users
144
144
  #
@@ -168,7 +168,7 @@ module AvaTax
168
168
  # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
169
169
  # @return [FetchResult]
170
170
  def query_users(options={}) path = "/api/v2/users"
171
- get(path, options, "22.10.0") end
171
+ get(path, options, "23.2.0") end
172
172
 
173
173
  # Update a single user
174
174
  #
@@ -186,7 +186,7 @@ module AvaTax
186
186
  # @param model [Object] The user object you wish to update.
187
187
  # @return [Object]
188
188
  def update_user(id, accountId, model) path = "/api/v2/accounts/#{accountId}/users/#{id}"
189
- put(path, model, {}, "22.10.0") end
189
+ put(path, model, {}, "23.2.0") end
190
190
  end
191
191
  end
192
192
  end
@@ -17,7 +17,7 @@ module AvaTax
17
17
  # @param serviceTypeId [String] The service to check
18
18
  # @return [Object]
19
19
  def get_my_subscription(serviceTypeId) path = "/api/v2/utilities/subscriptions/#{serviceTypeId}"
20
- get(path, {}, "22.10.0") end
20
+ get(path, {}, "23.2.0") end
21
21
 
22
22
  # List all services to which the current user is subscribed
23
23
  #
@@ -32,7 +32,7 @@ module AvaTax
32
32
  # Swagger Name: AvaTaxClient
33
33
  # @return [FetchResult]
34
34
  def list_my_subscriptions() path = "/api/v2/utilities/subscriptions"
35
- get(path, {}, "22.10.0") end
35
+ get(path, {}, "23.2.0") end
36
36
 
37
37
  # Tests connectivity and version of the service
38
38
  #
@@ -59,7 +59,7 @@ module AvaTax
59
59
  # Swagger Name: AvaTaxClient
60
60
  # @return [Object]
61
61
  def ping() path = "/api/v2/utilities/ping"
62
- get(path, {}, "22.10.0") end
62
+ get(path, {}, "23.2.0") end
63
63
  end
64
64
  end
65
65
  end
@@ -19,7 +19,8 @@ module AvaTax
19
19
  :custom_logger_options,
20
20
  :proxy,
21
21
  :faraday_response,
22
- :response_big_decimal_conversion
22
+ :response_big_decimal_conversion,
23
+ :log_request_and_response_info
23
24
  ].freeze
24
25
 
25
26
  DEFAULT_APP_NAME = nil
@@ -36,6 +37,7 @@ module AvaTax
36
37
  DEFAULT_PROXY = nil
37
38
  DEFAULT_FARADAY_RESPONSE = false
38
39
  DEFAULT_RESPONSE_BIG_DECIMAL_CONVERSION = false
40
+ DEFAULT_LOG_REQUEST_AND_RESPONSE_INFO = false
39
41
 
40
42
  attr_accessor *VALID_OPTIONS_KEYS
41
43
 
@@ -70,6 +72,7 @@ module AvaTax
70
72
  self.proxy = DEFAULT_PROXY
71
73
  self.faraday_response = DEFAULT_FARADAY_RESPONSE
72
74
  self.response_big_decimal_conversion = DEFAULT_RESPONSE_BIG_DECIMAL_CONVERSION
75
+ self.log_request_and_response_info = DEFAULT_LOG_REQUEST_AND_RESPONSE_INFO
73
76
  end
74
77
 
75
78
  end
@@ -4,8 +4,8 @@ module AvaTax
4
4
 
5
5
  module Connection
6
6
  private
7
- AUTHORIZATION_FILTER_REGEX = /(Authorization\:\ \"Basic\ )(\w+)\=/
8
- REMOVED_LABEL = '\1[REMOVED]'
7
+ AUTHORIZATION_FILTER_REGEX = /(Authorization)([^&]+)/
8
+ REMOVED_LABEL = '\1 [REMOVED]'
9
9
 
10
10
  def connection
11
11
  client_id = "#{app_name};#{app_version};RubySdk;API_VERSION;#{machine_name}"
@@ -26,7 +26,7 @@ module AvaTax
26
26
  bigdecimal_load: :bigdecimal
27
27
  }
28
28
  end
29
-
29
+ faraday.request :instrumentation
30
30
  faraday.response :json, content_type: /\bjson$/
31
31
  faraday.request :basic_auth, username, password
32
32
 
@@ -34,14 +34,15 @@ module AvaTax
34
34
  # see https://github.com/lostisland/faraday/blob/main/docs/middleware/request/authentication.md
35
35
  # faraday.request :authorization, :basic, username, password
36
36
 
37
+ default_logger_options = { headers: true, bodies: log_request_and_response_info }
37
38
  if logger
38
- faraday.response :logger do |logger|
39
+ faraday.response :logger, nil, default_logger_options do |logger|
39
40
  logger.filter(AUTHORIZATION_FILTER_REGEX, REMOVED_LABEL)
40
41
  end
41
42
  end
42
43
 
43
44
  if custom_logger
44
- faraday.response :logger, custom_logger, custom_logger_options do |logger|
45
+ faraday.response :logger, custom_logger, default_logger_options.merge(custom_logger_options) do |logger|
45
46
  logger.filter(AUTHORIZATION_FILTER_REGEX, REMOVED_LABEL)
46
47
  end
47
48
  end
@@ -1,3 +1,3 @@
1
1
  module AvaTax
2
- VERSION = '22.10.0'.freeze unless defined?(::AvaTax::VERSION)
2
+ VERSION = '23.2.0'.freeze unless defined?(::AvaTax::VERSION)
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -16,7 +16,7 @@ AvaTax.configure do |config|
16
16
  end
17
17
  end
18
18
 
19
- client = AvaTax::Client.new()
19
+ client = AvaTax::Client.new({ :logger => true, :log_request_and_response_info => true })
20
20
  companies = client.query_companies
21
21
 
22
22
  RSpec.configure do |config|