solidus_avatax_certified 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +28 -0
  3. data/Gemfile +3 -0
  4. data/README.md +4 -0
  5. data/app/assets/javascripts/spree/backend/address_validator.js +1 -1
  6. data/app/assets/javascripts/spree/frontend/address_validator.js +1 -1
  7. data/app/controllers/spree/admin/avatax_settings_controller.rb +5 -13
  8. data/app/models/solidus_avatax_certified/address.rb +2 -8
  9. data/app/models/solidus_avatax_certified/avatax_log.rb +10 -20
  10. data/app/models/solidus_avatax_certified/line.rb +0 -6
  11. data/app/models/solidus_avatax_certified/preference_updater.rb +11 -28
  12. data/app/models/solidus_avatax_certified/request/base.rb +64 -0
  13. data/app/models/solidus_avatax_certified/request/cancel_tax.rb +14 -0
  14. data/app/models/solidus_avatax_certified/request/get_tax.rb +27 -0
  15. data/app/models/solidus_avatax_certified/request/return_tax.rb +50 -0
  16. data/app/models/solidus_avatax_certified/response/address_validation.rb +11 -0
  17. data/app/models/solidus_avatax_certified/response/base.rb +25 -0
  18. data/app/models/solidus_avatax_certified/response/cancel_tax.rb +15 -0
  19. data/app/models/solidus_avatax_certified/response/get_tax.rb +11 -0
  20. data/app/models/spree/address_decorator.rb +2 -2
  21. data/app/models/spree/adjustment_decorator.rb +0 -2
  22. data/app/models/spree/avalara_transaction.rb +20 -108
  23. data/app/models/spree/avatax_configuration.rb +25 -0
  24. data/app/models/spree/calculator/avalara_transaction.rb +18 -10
  25. data/app/models/spree/order_decorator.rb +7 -15
  26. data/app/models/spree/payment_decorator.rb +2 -7
  27. data/app/models/spree/refund_decorator.rb +6 -10
  28. data/app/models/spree/shipping_rate_decorator.rb +1 -1
  29. data/app/models/tax_svc.rb +71 -61
  30. data/app/views/spree/admin/avatax_settings/edit.html.erb +34 -54
  31. data/app/views/spree/admin/avatax_settings/show.html.erb +28 -35
  32. data/app/views/spree/checkout/_address_validator_button.html.erb +1 -1
  33. data/config/initializers/avatax.rb +11 -2
  34. data/config/locales/en.yml +9 -3
  35. data/config/routes.rb +1 -1
  36. data/db/migrate/20170509201056_drop_spree_avalara_preferences.rb +6 -0
  37. data/lib/solidus_avatax_certified/exceptions.rb +4 -0
  38. data/lib/solidus_avatax_certified/preference_seeder.rb +9 -27
  39. data/lib/solidus_avatax_certified/version.rb +3 -0
  40. data/lib/solidus_avatax_certified.rb +2 -0
  41. data/solidus_avatax_certified.gemspec +6 -3
  42. data/spec/controllers/spree/admin/avatax_settings_controller_spec.rb +8 -8
  43. data/spec/factories/response_hash_factories.rb +88 -0
  44. data/spec/features/checkout_spec.rb +1 -1
  45. data/spec/features/vat_spec.rb +1 -1
  46. data/spec/models/solidus_avatax_certified/address_spec.rb +22 -7
  47. data/spec/models/solidus_avatax_certified/avatax_log_spec.rb +17 -24
  48. data/spec/models/solidus_avatax_certified/line_spec.rb +8 -4
  49. data/spec/models/solidus_avatax_certified/request/base_spec.rb +13 -0
  50. data/spec/models/solidus_avatax_certified/request/cancel_tax_spec.rb +13 -0
  51. data/spec/models/solidus_avatax_certified/request/get_tax_spec.rb +31 -0
  52. data/spec/models/solidus_avatax_certified/request/return_tax_spec.rb +31 -0
  53. data/spec/models/solidus_avatax_certified/response/base_spec.rb +21 -0
  54. data/spec/models/spree/address_decorator_spec.rb +5 -5
  55. data/spec/models/spree/adjustment_decorator_spec.rb +0 -10
  56. data/spec/models/spree/avalara_transaction_spec.rb +12 -12
  57. data/spec/models/spree/calculator/avalara_transaction_spec.rb +4 -3
  58. data/spec/models/spree/order_decorator_spec.rb +38 -12
  59. data/spec/models/spree/payment_decorator_spec.rb +7 -9
  60. data/spec/models/spree/refund_decorator_spec.rb +1 -1
  61. data/spec/models/tax_svc_spec.rb +65 -0
  62. data/spec/spec_helper.rb +3 -2
  63. data/spec/support/avatax_config_preferences.rb +1 -3
  64. data/spec/support/vcr.rb +1 -1
  65. data/spec/vcr/Spree_Order/_cancel_avalara/error/should_raise_exception_if_preference_is_enabled.yml +191 -0
  66. data/spec/vcr/Spree_Order/_cancel_avalara/error/should_receive_ResultCode_of_Error.yml +191 -0
  67. data/spec/vcr/{SolidusAvataxCertified_Address/_validate/fails_when_information_is_incorrect.yml → Spree_Order/_validate_ship_address/validation_failed/raise_exceptions_if_raise_exceptions_preference_is_enabled.yml} +8 -8
  68. data/spec/vcr/Spree_Order/_validate_ship_address/validation_failed/should_return_false.yml +54 -0
  69. data/spec/vcr/Spree_Payment/_avalara_finalize/should_receive_avalara_finalize.yml +205 -0
  70. data/spec/vcr/TaxSvc/_cancel_tax/respond_with_success.yml +121 -0
  71. data/spec/vcr/TaxSvc/_cancel_tax/should_raise_error.yml +58 -0
  72. data/spec/vcr/TaxSvc/_get_tax/fails/fails_when_no_lines_are_given.yml +60 -0
  73. data/spec/vcr/TaxSvc/_get_tax/fails/fails_when_no_params_are_given.yml +68 -0
  74. data/spec/vcr/TaxSvc/_get_tax/fails/responds_with_error_when_result_code_is_not_a_success.yml +61 -0
  75. data/spec/vcr/TaxSvc/_get_tax/gets_tax_when_all_credentials_are_there.yml +68 -0
  76. data/spec/vcr/TaxSvc/_ping/should_return_estimate.yml +81 -0
  77. data/spec/vcr/address_validation_failure.yml +54 -0
  78. data/spec/vcr/address_validation_success.yml +16 -16
  79. data/spec/vcr/order_capture.yml +21 -21
  80. data/spec/vcr/order_capture_finalize.yml +22 -91
  81. metadata +56 -13
  82. data/GEM_VERSION +0 -1
  83. data/app/models/spree/avalara_preference.rb +0 -72
  84. data/spec/factories/avalara_preference_factory.rb +0 -7
  85. data/spec/models/spree/avalara_preference_spec.rb +0 -173
  86. data/spec/vcr/Spree_Payment/_avalara_finalize/should_update_the_amount_to_be_the_order_total.yml +0 -136
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe TaxSvc, :vcr do
4
+ let(:taxsvc) { TaxSvc.new }
5
+ let(:request_hash) { attributes_for(:request_hash) }
6
+
7
+ describe '#get_tax' do
8
+ subject { taxsvc.get_tax(request_hash) }
9
+
10
+ it 'gets tax when all credentials are there' do
11
+ expect(subject.tax_result['ResultCode']).to eq('Success')
12
+ end
13
+
14
+ context 'fails' do
15
+ it 'fails when no params are given' do
16
+ expect(taxsvc.get_tax({}).tax_result['ResultCode']).to eq('Error')
17
+ end
18
+
19
+ it 'responds with error when result code is not a success' do
20
+ req = attributes_for(:request_hash)
21
+ req[:Lines][0][:TaxCode] = 'sdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf'
22
+ result = taxsvc.get_tax(req).tax_result
23
+
24
+ expect(result['ResultCode']).to eq('Error')
25
+ end
26
+
27
+ it 'fails when no lines are given' do
28
+ result = taxsvc.get_tax(attributes_for(:request_hash, Lines: [])).tax_result
29
+
30
+ expect(result['ResultCode']).to eq('Error')
31
+ end
32
+ end
33
+ end
34
+
35
+ describe '#cancel_tax' do
36
+ it 'should raise error' do
37
+ result = taxsvc.cancel_tax({
38
+ :CompanyCode=> '54321',
39
+ :DocType => 'SalesInvoice',
40
+ :CancelCode => 'DocVoided'
41
+ })
42
+ expect(result.tax_result['ResultCode']).to eq('Error')
43
+ end
44
+
45
+ it 'respond with success' do
46
+ success_res = taxsvc.get_tax(request_hash)
47
+ result = taxsvc.cancel_tax({
48
+ :CompanyCode=> '54321',
49
+ :DocType => 'SalesInvoice',
50
+ :DocCode => request_hash[:DocCode],
51
+ :CancelCode => 'DocVoided'
52
+ })
53
+
54
+ expect(result.tax_result['ResultCode']).to eq('Success')
55
+ end
56
+ end
57
+
58
+ describe '#ping' do
59
+ it 'should return estimate' do
60
+ result = taxsvc.ping
61
+ expect(result['ResultCode']).to eq('Success')
62
+ end
63
+ end
64
+ end
65
+
data/spec/spec_helper.rb CHANGED
@@ -23,6 +23,7 @@ require 'database_cleaner'
23
23
  require 'ffaker'
24
24
  require 'shoulda/matchers'
25
25
  require 'capybara-screenshot/rspec'
26
+ require 'webmock/rspec'
26
27
 
27
28
  require 'spree/testing_support/preferences'
28
29
  require 'spree/testing_support/authorization_helpers'
@@ -65,12 +66,12 @@ RSpec.configure do |config|
65
66
  end
66
67
 
67
68
  config.before :suite do
68
- DatabaseCleaner.strategy = :transaction
69
+ DatabaseCleaner.strategy = :truncation
69
70
  DatabaseCleaner.clean_with :truncation
70
71
  end
71
72
 
72
73
  config.before :each do
73
- DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
74
+ DatabaseCleaner.strategy = :truncation
74
75
  DatabaseCleaner.start
75
76
  MyConfigPreferences.set_preferences
76
77
  end
@@ -1,8 +1,6 @@
1
1
  class MyConfigPreferences
2
2
  def self.set_preferences
3
3
  SolidusAvataxCertified::PreferenceSeeder.seed!(false)
4
- Spree::AvalaraPreference.origin_address.update_attributes(value: "{\"Line1\":\"915 S Jackson St\",\"Line2\":\"\",\"City\":\"Montgomery\",\"Region\":\"AL\",\"PostalCode\":\"36104\",\"Zip4\":\"\",\"Country\":\"US\"}")
5
- Spree::AvalaraPreference.log_to_stdout.update_attributes(value: 'false')
6
- Spree::AvalaraPreference.refuse_checkout_address_validation_error.update_attributes(value: 'false')
4
+ Spree::Avatax::Config.origin = "{\"Line1\":\"915 S Jackson St\",\"Line2\":\"\",\"City\":\"Montgomery\",\"Region\":\"AL\",\"PostalCode\":\"36104\",\"Zip4\":\"\",\"Country\":\"US\"}"
7
5
  end
8
6
  end
data/spec/support/vcr.rb CHANGED
@@ -5,5 +5,5 @@ VCR.configure do |config|
5
5
  config.hook_into :webmock
6
6
  config.ignore_localhost = true
7
7
  config.configure_rspec_metadata!
8
- # config.default_cassette_options = { match_requests_on: [:method, :host], record: :new_episodes }
8
+ config.default_cassette_options = { match_requests_on: [:method, :uri], record: :once, allow_playback_repeats: true }
9
9
  end
@@ -0,0 +1,191 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://development.avalara.net/1.0/tax/get
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"DocCode":"R903852449","DocDate":"2017-04-14","Discount":"0.0","Commit":false,"DocType":"SalesOrder","Addresses":[{"AddressCode":"Orig","Line1":"915
9
+ S Jackson St","Line2":"","City":"Montgomery","Region":"AL","PostalCode":"36104","Country":"US"},{"AddressCode":"Dest","Line1":"915
10
+ S Jackson St","Line2":"","City":"Montgomery","Region":"Alabama","Country":"US","PostalCode":"36104"}],"Lines":[{"LineNo":"1-LI","Description":"Product
11
+ #2 - 3722","TaxCode":"PC030000","ItemCode":"SKU-2","Qty":1,"Amount":10.0,"OriginCode":"Orig","DestinationCode":"Dest","CustomerUsageType":null,"Discounted":false,"TaxIncluded":false}],"CustomerCode":1,"CompanyCode":"54321","CustomerUsageType":null,"ExemptionNo":null,"Client":"a0o33000004FH8l","ReferenceCode":"R903852449","DetailLevel":"Tax","CurrencyCode":"USD"}'
12
+ headers:
13
+ Accept:
14
+ - "*/*; q=0.5, application/xml"
15
+ Accept-Encoding:
16
+ - gzip, deflate
17
+ Authorization:
18
+ - Basic MTEwMDExMzA5NjoxRDEzRURBMkRDQ0M3RTRB
19
+ Content-Type:
20
+ - application/json
21
+ Content-Length:
22
+ - '796'
23
+ User-Agent:
24
+ - Ruby
25
+ response:
26
+ status:
27
+ code: 200
28
+ message: OK
29
+ headers:
30
+ Cache-Control:
31
+ - private
32
+ Content-Type:
33
+ - text/json; charset=utf-8
34
+ Content-Encoding:
35
+ - gzip
36
+ Vary:
37
+ - Accept-Encoding
38
+ X-Aspnet-Version:
39
+ - 4.0.30319
40
+ X-Powered-By:
41
+ - ASP.NET
42
+ Date:
43
+ - Fri, 14 Apr 2017 20:49:27 GMT
44
+ Content-Length:
45
+ - '552'
46
+ Set-Cookie:
47
+ - TS017f1821=01a8ddc44ecd11c63512c5253f6b79bbb99765d2ec7f8406fde6ffde475173465fe605e3ea70287341cc3cc613b116428028642059;
48
+ Path=/
49
+ body:
50
+ encoding: ASCII-8BIT
51
+ string: !binary |-
52
+ H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3m
53
+ kuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZk
54
+ AWz2zkrayZ4hgKrIHz9+fB8/In5x8tGrvFmX7Uk1yz96lH70ej2d5k3z0Sj5
55
+ 6Gk1NZ++erhz7+D+3v7+Q/3iadbyF3s7uw+2d/a3d/fxxZtikTdttliFX73Z
56
+ 23m0//DR3sF4d/fe/sH9Bz/Fjas2K48X1XrZovnujv3wadFMzcfu09N3+WLV
57
+ FtUy/PhN9i6blIyMB4I+xSc7Y8FLPzrJyum6JNRn/pfZu+fFMm/oo+8lRA/8
58
+ 8aKivz7a3X5+pi0MIV6e7NzboUc/ziZFWbTX+Kat1zk+fUKYz7L6+nl+mZf4
59
+ 4ng2q5Wi/SH0hwqg/nBeEbr4a2e8s08d82fUSD4yAxga2NO8zYrSDu0EXdWM
60
+ 7lev0eRVfqHYHD/H399Z10Xz5nrFPb5uCaD91FBgZxcfEez3RZOhvMgW3Oz4
61
+ +fGT4y+O8Tm1cp+mr98cvzlN3xz/3h/9kuT7Cf4vTZSKbpr0A4PWU2I8QLtx
62
+ iARLPjpjWu3t3N978JDZmhE08HZ2d3d27+/qSF5WxNal+e7ep7s7PCTFAZ89
63
+ 3L2fvk6/k03fNtUyfS24KGt8US3bi2qRE1q/JBn1cf+yLi64/f/bcTeTEZH+
64
+ X5L8PxrqS65LBAAA
65
+ http_version:
66
+ recorded_at: Fri, 14 Apr 2017 20:49:28 GMT
67
+ - request:
68
+ method: post
69
+ uri: https://development.avalara.net/1.0/tax/get
70
+ body:
71
+ encoding: UTF-8
72
+ string: '{"DocCode":"R903852449","DocDate":"2017-04-14","Discount":"0.0","Commit":false,"DocType":"SalesOrder","Addresses":[{"AddressCode":"Orig","Line1":"915
73
+ S Jackson St","Line2":"","City":"Montgomery","Region":"AL","PostalCode":"36104","Country":"US"},{"AddressCode":"Dest","Line1":"915
74
+ S Jackson St","Line2":"","City":"Montgomery","Region":"Alabama","Country":"US","PostalCode":"36104"},{"AddressCode":"2","Line1":"1600
75
+ Pennsylvania Ave NW","Line2":null,"City":"Washington","PostalCode":"20500","Country":"US"}],"Lines":[{"LineNo":"1-LI","Description":"Product
76
+ #2 - 3722","TaxCode":"PC030000","ItemCode":"SKU-2","Qty":1,"Amount":10.0,"OriginCode":"2","DestinationCode":"Dest","CustomerUsageType":null,"Discounted":false,"TaxIncluded":false},{"LineNo":"1-FR","ItemCode":"Avalara
77
+ Ground","Qty":1,"Amount":5.0,"OriginCode":"2","DestinationCode":"Dest","CustomerUsageType":null,"Description":"Shipping
78
+ Charge","TaxCode":"FR000000","Discounted":false,"TaxIncluded":false}],"CustomerCode":1,"CompanyCode":"54321","CustomerUsageType":null,"ExemptionNo":null,"Client":"a0o33000004FH8l","ReferenceCode":"R903852449","DetailLevel":"Tax","CurrencyCode":"USD"}'
79
+ headers:
80
+ Accept:
81
+ - "*/*; q=0.5, application/xml"
82
+ Accept-Encoding:
83
+ - gzip, deflate
84
+ Authorization:
85
+ - Basic MTEwMDExMzA5NjoxRDEzRURBMkRDQ0M3RTRB
86
+ Content-Type:
87
+ - application/json
88
+ Content-Length:
89
+ - '1143'
90
+ User-Agent:
91
+ - Ruby
92
+ response:
93
+ status:
94
+ code: 200
95
+ message: OK
96
+ headers:
97
+ Cache-Control:
98
+ - private
99
+ Content-Type:
100
+ - text/json; charset=utf-8
101
+ Content-Encoding:
102
+ - gzip
103
+ Vary:
104
+ - Accept-Encoding
105
+ X-Aspnet-Version:
106
+ - 4.0.30319
107
+ X-Powered-By:
108
+ - ASP.NET
109
+ Date:
110
+ - Fri, 14 Apr 2017 20:49:28 GMT
111
+ Content-Length:
112
+ - '660'
113
+ Set-Cookie:
114
+ - TS017f1821=01a8ddc44e4f77e35e21b867bff45bf25181982d6e35f349f233087f00a0c8f6c38f930d062b6fd6454a31e58404ed25fb32b9b8f0;
115
+ Path=/
116
+ body:
117
+ encoding: ASCII-8BIT
118
+ string: !binary |-
119
+ H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3m
120
+ kuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZk
121
+ AWz2zkrayZ4hgKrIHz9+fB8/In5x8tGrvFmX7Uk1yz96lH70ej2d5k3z0Sj5
122
+ 6Gk1NZ++erhz7+D+3v7+Q/3iadbyF3s7uw+2d/a3d/fxxZtikTdttliFX73Z
123
+ 23m0//DR3sH404OdnU8/vf9T3Lhqs/J4Ua2XLZrv3rcfPi2aqfl4x356+i5f
124
+ rNqiWoYfv8neZZOSkfFA0Kf4ZGf8qf/RSVZO1yWhPvO/zN49L5Z5Qx99LyF6
125
+ 4I8XFf310e728zNtYQjx8mTn3g49+nE2KcqivcY3bb3O8ekTwnyW1dfP88u8
126
+ xBfHs1mtFO0PoT9UANXh8AevCF38tTPe2aeO+TNqJB8J1Qm9zsDM50/zNitK
127
+ O7QTdFUzul+9RpNX+YVic/wcf39nXRfNm+sV9/i6JYD2U0OBnV18RLDfF02G
128
+ 8iJbcLPj58dPjr84xufUyn2avn5z/OY0fXP8e3/0S5LvJ78kGRHa/ow8e6Xv
129
+ GHyevaLe6NGPf1ZnhPlr40j39K/uhJjPfxgTckssGYij/C3n4/uJNFEaOrHR
130
+ DwxWT0kRANqNIyRY8tEZk2pv5/7eg4esZhhBA29nd3dn9/6ujuRlRWqmNN/d
131
+ +3R3h1lMccBnD3fvp6/T72TTt021TF8LLsoYX1TL9qJa5ISWMJi+Z+AxeTYg
132
+ /vQEf3cQZ7wClAljffBViDINUz7WrvHZ7qc7O+nLfLlsrsvLbFlk6fFlnr74
133
+ LpoZ1L+bNfNiedESIm4uIsr4lyT/DyxPEyLaBQAA
134
+ http_version:
135
+ recorded_at: Fri, 14 Apr 2017 20:49:28 GMT
136
+ - request:
137
+ method: post
138
+ uri: https://development.avalara.net/1.0/tax/cancel
139
+ body:
140
+ encoding: UTF-8
141
+ string: '{"CompanyCode":"54321","DocType":"SalesInvoice","DocCode":"R903852449","CancelCode":"DocVoided"}'
142
+ headers:
143
+ Accept:
144
+ - "*/*; q=0.5, application/xml"
145
+ Accept-Encoding:
146
+ - gzip, deflate
147
+ Authorization:
148
+ - Basic MTEwMDExMzA5NjoxRDEzRURBMkRDQ0M3RTRB
149
+ Content-Type:
150
+ - application/json
151
+ Content-Length:
152
+ - '96'
153
+ User-Agent:
154
+ - Ruby
155
+ response:
156
+ status:
157
+ code: 200
158
+ message: OK
159
+ headers:
160
+ Cache-Control:
161
+ - private
162
+ Content-Type:
163
+ - text/json; charset=utf-8
164
+ Content-Encoding:
165
+ - gzip
166
+ Vary:
167
+ - Accept-Encoding
168
+ X-Aspnet-Version:
169
+ - 4.0.30319
170
+ X-Powered-By:
171
+ - ASP.NET
172
+ Date:
173
+ - Fri, 14 Apr 2017 20:49:28 GMT
174
+ Content-Length:
175
+ - '308'
176
+ Set-Cookie:
177
+ - TS017f1821=01a8ddc44ec1567e66df96a47c5410ab44732cc5d7c18c0ead70bf82f058d42ae3cbb82bdadb65550b99a28b620b2a378e15dbcb86;
178
+ Path=/
179
+ body:
180
+ encoding: ASCII-8BIT
181
+ string: !binary |-
182
+ H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3m
183
+ kuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZk
184
+ AWz2zkrayZ4hgKrIHz9+fB8/In5x8tFJtpzm5Zvs3au8WZftR49S+vBNnS2b
185
+ bNoW1fJsRh/d37138GDn/qcP9x482D94+HCUfCTNT6pZTt9/dFrXVf0RffxF
186
+ 3jTZRd7Qh99LCNLr9WKR1df050dv5nnaZu/SWTVdL/Jlm06rdTlLl1WbTvL0
187
+ vFovZ2OAeJq3WVECwkevHu7cO7i/t7//EF+8zi/zumgZmO3wdbWup4zD8WVW
188
+ ZnU2pp80nPHrvL4spnkzpj8++iXJ95NfkvyS5P8BUDEmTvEAAAA=
189
+ http_version:
190
+ recorded_at: Fri, 14 Apr 2017 20:49:29 GMT
191
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,191 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://development.avalara.net/1.0/tax/get
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"DocCode":"R335537888","DocDate":"2017-04-14","Discount":"0.0","Commit":false,"DocType":"SalesOrder","Addresses":[{"AddressCode":"Orig","Line1":"915
9
+ S Jackson St","Line2":"","City":"Montgomery","Region":"AL","PostalCode":"36104","Country":"US"},{"AddressCode":"Dest","Line1":"915
10
+ S Jackson St","Line2":"","City":"Montgomery","Region":"Alabama","Country":"US","PostalCode":"36104"}],"Lines":[{"LineNo":"1-LI","Description":"Product
11
+ #1 - 3144","TaxCode":"PC030000","ItemCode":"SKU-1","Qty":1,"Amount":10.0,"OriginCode":"Orig","DestinationCode":"Dest","CustomerUsageType":null,"Discounted":false,"TaxIncluded":false}],"CustomerCode":1,"CompanyCode":"54321","CustomerUsageType":null,"ExemptionNo":null,"Client":"a0o33000004FH8l","ReferenceCode":"R335537888","DetailLevel":"Tax","CurrencyCode":"USD"}'
12
+ headers:
13
+ Accept:
14
+ - "*/*; q=0.5, application/xml"
15
+ Accept-Encoding:
16
+ - gzip, deflate
17
+ Authorization:
18
+ - Basic MTEwMDExMzA5NjoxRDEzRURBMkRDQ0M3RTRB
19
+ Content-Type:
20
+ - application/json
21
+ Content-Length:
22
+ - '796'
23
+ User-Agent:
24
+ - Ruby
25
+ response:
26
+ status:
27
+ code: 200
28
+ message: OK
29
+ headers:
30
+ Cache-Control:
31
+ - private
32
+ Content-Type:
33
+ - text/json; charset=utf-8
34
+ Content-Encoding:
35
+ - gzip
36
+ Vary:
37
+ - Accept-Encoding
38
+ X-Aspnet-Version:
39
+ - 4.0.30319
40
+ X-Powered-By:
41
+ - ASP.NET
42
+ Date:
43
+ - Fri, 14 Apr 2017 20:49:25 GMT
44
+ Content-Length:
45
+ - '561'
46
+ Set-Cookie:
47
+ - TS017f1821=01a8ddc44e6ab91c6d100b0597751481364b1e7aeb9cd37ddee7813d42e93a8a5d0ab068f38223e7dd9dd4b23280dea871a13cd026;
48
+ Path=/
49
+ body:
50
+ encoding: ASCII-8BIT
51
+ string: !binary |-
52
+ H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3m
53
+ kuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZk
54
+ AWz2zkrayZ4hgKrIHz9+fB8/In5x8tGrvFmX7Uk1yz96lH70ej2d5k3z0Sj5
55
+ 6Gk1NZ++unfv/v17Dw4ODvSLp1nLX+zt7D7Y3tnf3t3HF2+KRd602WIVfvVm
56
+ b+fR/sNHe5+Od/buPzx4+PCnuHHVZuXxolovWzTf3bEfPi2aqfnYfXr6Ll+s
57
+ 2qJahh+/yd5lk5KR8UDQp/hkZyx46UcnWTldl4T6zP8ye/e8WOYNffS9hOiB
58
+ P15U9NdHu9vPz7SFIcTLk517O/Tox9mkKIv2Gt+09TrHp08I81lWXz/PL/MS
59
+ XxzPZrVStD+E/lAB1B/OK0IXf+2Md/apY/6MGslHZgBDA3uat1lR2qGdoKua
60
+ 0f3qNZq8yi8Um+Pn+Ps767po3lyvuMfXLQG0nxoK7OziI4L9vmgylBfZgpsd
61
+ Pz9+cvzFMT6nVu7T9PWb4zen6Zvj3/ujX5J8P8H/pYlS0U2TfkB/fvRw9376
62
+ Ov1ONn3bVMv0dQuo+rXB+inxJT4+0dn6olq2F9UiJ2Lg0y5dXlbExqV5+d6n
63
+ uzs8hC65CC/56Izpvrdzf+/Bw4f4hgdr3t/Z3d3Zvb8LqvySZPTeuH9ZFxf4
64
+ +OcedzMZEen/Jcn/A+mRXN1LBAAA
65
+ http_version:
66
+ recorded_at: Fri, 14 Apr 2017 20:49:26 GMT
67
+ - request:
68
+ method: post
69
+ uri: https://development.avalara.net/1.0/tax/get
70
+ body:
71
+ encoding: UTF-8
72
+ string: '{"DocCode":"R335537888","DocDate":"2017-04-14","Discount":"0.0","Commit":false,"DocType":"SalesOrder","Addresses":[{"AddressCode":"Orig","Line1":"915
73
+ S Jackson St","Line2":"","City":"Montgomery","Region":"AL","PostalCode":"36104","Country":"US"},{"AddressCode":"Dest","Line1":"915
74
+ S Jackson St","Line2":"","City":"Montgomery","Region":"Alabama","Country":"US","PostalCode":"36104"},{"AddressCode":"2","Line1":"1600
75
+ Pennsylvania Ave NW","Line2":null,"City":"Washington","PostalCode":"20500","Country":"US"}],"Lines":[{"LineNo":"1-LI","Description":"Product
76
+ #1 - 3144","TaxCode":"PC030000","ItemCode":"SKU-1","Qty":1,"Amount":10.0,"OriginCode":"2","DestinationCode":"Dest","CustomerUsageType":null,"Discounted":false,"TaxIncluded":false},{"LineNo":"1-FR","ItemCode":"Avalara
77
+ Ground","Qty":1,"Amount":5.0,"OriginCode":"2","DestinationCode":"Dest","CustomerUsageType":null,"Description":"Shipping
78
+ Charge","TaxCode":"FR000000","Discounted":false,"TaxIncluded":false}],"CustomerCode":1,"CompanyCode":"54321","CustomerUsageType":null,"ExemptionNo":null,"Client":"a0o33000004FH8l","ReferenceCode":"R335537888","DetailLevel":"Tax","CurrencyCode":"USD"}'
79
+ headers:
80
+ Accept:
81
+ - "*/*; q=0.5, application/xml"
82
+ Accept-Encoding:
83
+ - gzip, deflate
84
+ Authorization:
85
+ - Basic MTEwMDExMzA5NjoxRDEzRURBMkRDQ0M3RTRB
86
+ Content-Type:
87
+ - application/json
88
+ Content-Length:
89
+ - '1143'
90
+ User-Agent:
91
+ - Ruby
92
+ response:
93
+ status:
94
+ code: 200
95
+ message: OK
96
+ headers:
97
+ Cache-Control:
98
+ - private
99
+ Content-Type:
100
+ - text/json; charset=utf-8
101
+ Content-Encoding:
102
+ - gzip
103
+ Vary:
104
+ - Accept-Encoding
105
+ X-Aspnet-Version:
106
+ - 4.0.30319
107
+ X-Powered-By:
108
+ - ASP.NET
109
+ Date:
110
+ - Fri, 14 Apr 2017 20:49:26 GMT
111
+ Content-Length:
112
+ - '661'
113
+ Set-Cookie:
114
+ - TS017f1821=01a8ddc44e87590c0a6fcf73dc30672773ce61a2f7798ba92d21e397c093aa73153619dc6cc9574c8034ca0095bf1b5019251422db;
115
+ Path=/
116
+ body:
117
+ encoding: ASCII-8BIT
118
+ string: !binary |-
119
+ H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3m
120
+ kuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZk
121
+ AWz2zkrayZ4hgKrIHz9+fB8/In5x8tGrvFmX7Uk1yz96lH70ej2d5k3z0Sj5
122
+ 6Gk1NZ++unfv/v17Dw4ODvSLp1nLX+zt7D7Y3tnf3t3HF2+KRd602WIVfvVm
123
+ b+fR/sNHe5+OD+7vP7x38OlPceOqzcrjRbVetmi+e99++LRopubjHfvp6bt8
124
+ sWqLahl+/CZ7l01KRsYDQZ/ik53xp/5HJ1k5XZeE+sz/Mnv3vFjmDX30vYTo
125
+ gT9eVPTXR7vbz8+0hSHEy5Odezv06MfZpCiL9hrftPU6x6dPCPNZVl8/zy/z
126
+ El8cz2a1UrQ/hP5QAVSHwx+8InTx1854Z5865s+okXwkVCf0OgMznz/N26wo
127
+ 7dBO0FXN6H71Gk1e5ReKzfFz/P2ddV00b65X3OPrlgDaTw0FdnbxEcF+XzQZ
128
+ yotswc2Onx8/Of7iGJ9TK/dp+vrN8ZvT9M3x7/3RL0m+n/ySZERo+zPy7JW+
129
+ Y/B59op6o0c//lmdEeavjSPd07+6E2I+/2FMyC2xZCCO8recj+8n0kRp6MRG
130
+ PzBYPSVFAGg3jpBgyUdnTKq9nft7Dx4+xDeMoIG3s7u7s3t/V0fysiI1U5rv
131
+ 7n26u8Mspjjgs4e799PX6Xey6dumWqavBRdljC+qZXtRLXJCSxhM3zPwmDwb
132
+ EH96gr87iDNeAcqEsT74KkSZhikfa9f4bPfTnZ30Zb5cNtflZbYssvT4Mk9f
133
+ fBfNDOrfzZp5sbxoCRE3FxFl/EuS/weGvbwR2gUAAA==
134
+ http_version:
135
+ recorded_at: Fri, 14 Apr 2017 20:49:26 GMT
136
+ - request:
137
+ method: post
138
+ uri: https://development.avalara.net/1.0/tax/cancel
139
+ body:
140
+ encoding: UTF-8
141
+ string: '{"CompanyCode":"54321","DocType":"SalesInvoice","DocCode":"R335537888","CancelCode":"DocVoided"}'
142
+ headers:
143
+ Accept:
144
+ - "*/*; q=0.5, application/xml"
145
+ Accept-Encoding:
146
+ - gzip, deflate
147
+ Authorization:
148
+ - Basic MTEwMDExMzA5NjoxRDEzRURBMkRDQ0M3RTRB
149
+ Content-Type:
150
+ - application/json
151
+ Content-Length:
152
+ - '96'
153
+ User-Agent:
154
+ - Ruby
155
+ response:
156
+ status:
157
+ code: 200
158
+ message: OK
159
+ headers:
160
+ Cache-Control:
161
+ - private
162
+ Content-Type:
163
+ - text/json; charset=utf-8
164
+ Content-Encoding:
165
+ - gzip
166
+ Vary:
167
+ - Accept-Encoding
168
+ X-Aspnet-Version:
169
+ - 4.0.30319
170
+ X-Powered-By:
171
+ - ASP.NET
172
+ Date:
173
+ - Fri, 14 Apr 2017 20:49:27 GMT
174
+ Content-Length:
175
+ - '308'
176
+ Set-Cookie:
177
+ - TS017f1821=01a8ddc44e82514f122baac32eb61484ea7a06035079c83a58298de7ed71df0b307649e542537b90929ac633cd8feb646c834640ad;
178
+ Path=/
179
+ body:
180
+ encoding: ASCII-8BIT
181
+ string: !binary |-
182
+ H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3m
183
+ kuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZk
184
+ AWz2zkrayZ4hgKrIHz9+fB8/In5x8tFJtpzm5Zvs3au8WZftR49S+vBNnS2b
185
+ bNoW1fJsRh/d37138GDn/qcP9j/dv/fpvXuj5CNpflLNcvr+o9O6ruqP6OMv
186
+ 8qbJLvKGPvxeQpBerxeLrL6mPz96M8/TNnuXzqrpepEv23RarctZuqzadJKn
187
+ 59V6ORsDxNO8zYoSED56de/e/fv3HhwcHOCL1/llXhctA7Mdvq7W9ZRxOL7M
188
+ yqzOxvSThjN+ndeXxTRvxvTHR78k+X7yS5Jfkvw/lc+l6/EAAAA=
189
+ http_version:
190
+ recorded_at: Fri, 14 Apr 2017 20:49:27 GMT
191
+ recorded_with: VCR 3.0.3
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://development.avalara.net/1.0/address/validate?City=&Country=US&Line1=220%20Paul%20W%20Bryant%20Dr&Line2=&PostalCode=36104&Region=AL
5
+ uri: https://development.avalara.net/1.0/address/validate?City=&Country=US&Line1=&Line2=&PostalCode=&Region=AL
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -29,11 +29,11 @@ http_interactions:
29
29
  X-Powered-By:
30
30
  - ASP.NET
31
31
  Date:
32
- - Thu, 23 Mar 2017 18:10:54 GMT
32
+ - Fri, 14 Apr 2017 20:40:26 GMT
33
33
  Content-Length:
34
- - '373'
34
+ - '251'
35
35
  Set-Cookie:
36
- - TS017f1821=01a8ddc44ecc54844194119d45cac1e4482250d17bb22af5a5fcd94b66cce4d353c22d13ac7d1f0b18626bcc9bcde3701b81b09560;
36
+ - TS017f1821=01a8ddc44e9331d6d0163abc04a753de405afb0a37dcad1bb111284bfacc4f05d54e8d577b9eaa0c916be805967f0690193935b264;
37
37
  Path=/
38
38
  body:
39
39
  encoding: UTF-8
@@ -42,13 +42,13 @@ http_interactions:
42
42
  "ResultCode": "Error",
43
43
  "Messages": [
44
44
  {
45
- "Summary": "An exact street name match could not be found",
46
- "Details": "An exact street name match could not be found and phonetically matching the street name resulted in either no matches or matches to more than one street name.",
47
- "RefersTo": "Address.Line1",
45
+ "Summary": "Insufficient address information",
46
+ "Details": "You must specify at least Line\/ZIP, or Line\/City\/State",
47
+ "RefersTo": "Line1",
48
48
  "Severity": "Error",
49
49
  "Source": "Avalara.AvaTax.Services.Address"}
50
50
  ]
51
51
  }
52
52
  http_version:
53
- recorded_at: Thu, 23 Mar 2017 18:10:56 GMT
53
+ recorded_at: Fri, 14 Apr 2017 20:40:27 GMT
54
54
  recorded_with: VCR 3.0.3
@@ -0,0 +1,54 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://development.avalara.net/1.0/address/validate?City=&Country=US&Line1=&Line2=&PostalCode=&Region=AL
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Basic MTEwMDExMzA5NjoxRDEzRURBMkRDQ0M3RTRB
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ User-Agent:
17
+ - Ruby
18
+ response:
19
+ status:
20
+ code: 500
21
+ message: Internal Server Error
22
+ headers:
23
+ Cache-Control:
24
+ - private
25
+ Content-Type:
26
+ - text/json; charset=utf-8
27
+ X-Aspnet-Version:
28
+ - 4.0.30319
29
+ X-Powered-By:
30
+ - ASP.NET
31
+ Date:
32
+ - Fri, 14 Apr 2017 20:40:25 GMT
33
+ Content-Length:
34
+ - '251'
35
+ Set-Cookie:
36
+ - TS017f1821=01a8ddc44e370591d8a4edb7a808af933256f2f63b419e17a951143509a62c2deb1bd82ed27ab503b104c3642ee0c4794ff5ecc47c;
37
+ Path=/
38
+ body:
39
+ encoding: UTF-8
40
+ string: |
41
+ {
42
+ "ResultCode": "Error",
43
+ "Messages": [
44
+ {
45
+ "Summary": "Insufficient address information",
46
+ "Details": "You must specify at least Line\/ZIP, or Line\/City\/State",
47
+ "RefersTo": "Line1",
48
+ "Severity": "Error",
49
+ "Source": "Avalara.AvaTax.Services.Address"}
50
+ ]
51
+ }
52
+ http_version:
53
+ recorded_at: Fri, 14 Apr 2017 20:40:26 GMT
54
+ recorded_with: VCR 3.0.3