tax_cloud 0.4.0 → 0.5.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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +30 -0
  3. data/.rubocop.yml +1 -0
  4. data/CHANGELOG.md +85 -0
  5. data/Gemfile +0 -1
  6. data/LICENSE.md +21 -0
  7. data/README.md +200 -0
  8. data/Rakefile +0 -10
  9. data/lib/tax_cloud/errors/tax_cloud_error.rb +1 -1
  10. data/lib/tax_cloud/responses/authorized.rb +1 -1
  11. data/lib/tax_cloud/responses/authorized_with_capture.rb +1 -1
  12. data/lib/tax_cloud/responses/captured.rb +1 -1
  13. data/lib/tax_cloud/responses/cart_item.rb +1 -1
  14. data/lib/tax_cloud/responses/lookup.rb +1 -1
  15. data/lib/tax_cloud/responses/ping.rb +1 -1
  16. data/lib/tax_cloud/responses/returned.rb +1 -1
  17. data/lib/tax_cloud/responses/tax_code_groups.rb +1 -1
  18. data/lib/tax_cloud/responses/tax_codes.rb +1 -1
  19. data/lib/tax_cloud/responses/tax_codes_by_group.rb +1 -1
  20. data/lib/tax_cloud/responses/verify_address.rb +1 -1
  21. data/lib/tax_cloud/version.rb +1 -1
  22. data/lib/tax_cloud.rb +1 -1
  23. data/tax_cloud.gemspec +1 -0
  24. data/test/cassettes/authorized.yml +6 -6
  25. data/test/cassettes/authorized_with_capture.yml +6 -6
  26. data/test/cassettes/authorized_with_localized_time.yml +6 -6
  27. data/test/cassettes/captured.yml +7 -7
  28. data/test/cassettes/get_tic_groups.yml +5 -5
  29. data/test/cassettes/get_tics.yml +5 -5
  30. data/test/cassettes/get_tics_by_group.yml +5 -5
  31. data/test/cassettes/invalid_soap_call.yml +5 -5
  32. data/test/cassettes/lookup.yml +5 -5
  33. data/test/cassettes/lookup_ny.yml +5 -5
  34. data/test/cassettes/ping.yml +5 -5
  35. data/test/cassettes/ping_with_invalid_credentials.yml +5 -5
  36. data/test/cassettes/ping_with_invalid_response.yml +5 -5
  37. data/test/cassettes/returned.yml +7 -7
  38. data/test/cassettes/verify_bad_address.yml +5 -5
  39. data/test/cassettes/verify_good_address.yml +5 -5
  40. data/test/test_address.rb +4 -4
  41. metadata +21 -7
  42. data/.travis.yml +0 -6
  43. data/CHANGELOG.rdoc +0 -53
  44. data/LICENSE.rdoc +0 -22
  45. data/README.rdoc +0 -144
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2460bb8644d05b7169cd48c66cf45044c83d85b3bd9a4294f8a89b4313890774
4
- data.tar.gz: f2e119009a8f5e45f379ed3a0b39d7417897504e502b21bf8e32b03dc02d5843
3
+ metadata.gz: 55a0579c5212968283b84a2e6a87921e8d741d182e4f23337d480435c26dbec6
4
+ data.tar.gz: 7cb858801bc88041e2b402962c5dc05d91afb6b52dc3fe793c4a943014b7d1bc
5
5
  SHA512:
6
- metadata.gz: ab1f5b780aa0a1e6bc8b8f3345c15d9ea93bb9ce822805fb1a842d2c7fb42a4fc1cb17eb84206dc818af9131e498315abf17f360fb9e1a777e48083bae6607f6
7
- data.tar.gz: 3eeb12ff2d77868a321fafbc81d52f7cd2abcd7ae8dd24f1ca8800b72db8a47b58e1ceb5f33bd5f0535e87b98f20954dd169e7cf58bc8e19ff00b8ebf141c84c
6
+ metadata.gz: efc17316081884f02aebf3d1064e81df78515e5b8ee9355c224d8be53ef7529833648295c692ab332d35018092c940b2c21d2356450fa67761db7cd563b472ca
7
+ data.tar.gz: b256cb07f74161ad04c869c258e75549fbed0920c2ce3a030e60a126518df9d32111df50afaba455b69682a31fc64f8cf30960b0c9e6c660da64f4b3c72fc994
@@ -0,0 +1,30 @@
1
+ # Reference https://github.com/actions/starter-workflows/blob/main/ci/ruby.yml
2
+ name: test
3
+ on: [push, pull_request]
4
+ jobs:
5
+ lint:
6
+ name: RuboCop
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v3
10
+ - name: Set up Ruby
11
+ uses: ruby/setup-ruby@v1
12
+ with:
13
+ ruby-version: 2.7
14
+ bundler-cache: true
15
+ - name: Run RuboCop
16
+ run: bundle exec rubocop
17
+ test:
18
+ runs-on: ubuntu-latest
19
+ strategy:
20
+ matrix:
21
+ ruby-version: ['2.6', '2.7']
22
+ name: test (${{ matrix.ruby-version }})
23
+ steps:
24
+ - uses: actions/checkout@v3
25
+ - uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ${{ matrix.ruby-version }}
28
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
29
+ - run: bundle exec rake test
30
+
data/.rubocop.yml CHANGED
@@ -5,6 +5,7 @@ AllCops:
5
5
  NewCops: enable
6
6
  Exclude:
7
7
  - vendor/**
8
+ - vendor/bundle/**/*
8
9
  - bin/**
9
10
 
10
11
  Style/NumericLiteralPrefix:
data/CHANGELOG.md ADDED
@@ -0,0 +1,85 @@
1
+ ### 0.5.0 (7/21/2023)
2
+
3
+ * Update README, CHANGELOG, and LICENSE from RDoc to Markdown -
4
+ @brchristian.
5
+ * Migrate from Travis CI to GitHub Actions -
6
+ @rchekaluk.
7
+ * Update WSDL endpoint URL as recommended by TaxCloud to
8
+ https://api.taxcloud.com/1.0/?wsdl - @mrmarcondes.
9
+
10
+
11
+ ### 0.4.0 (12/7/2020)
12
+
13
+ * Add `open_timeout` and `read_timeout` options into configuration -
14
+ @ka8725.
15
+ * Switch to using BigDecimal for `tax_amount` to avoid floating point
16
+ arithmetic errors - @paulhenrich.
17
+ * Require ruby 2.6.0+
18
+ * Upgrade to rubocop latest
19
+ * Add `TargetRubyVersion: 2.6` to rubocop config (based on
20
+ https://www.ruby-lang.org/en/downloads/branches/ oldest "normal
21
+ maintenance" version)
22
+ * Add `required_ruby_version` to gemspec
23
+ * addresses rubocop violations
24
+
25
+ * Update WSDL endpoint URL as recommended by TaxCloud to
26
+ https://asmx.taxcloud.com/1.0/?wsdl - @brchristian.
27
+
28
+
29
+ ### 0.3.0 (1/9/2014)
30
+
31
+ * #19: Support Savon 2 - @drewtempelmeyer.
32
+ * Implemented Rubocop, Ruby style linter - @dblock.
33
+ * Ruby 1.8.7 and 1.9.2 are no longer supported - @dblock.
34
+
35
+
36
+ ### 0.2.2 (4/29/2013)
37
+
38
+ * Relaxed thirdparty gem dependency versions - @mperham.
39
+
40
+
41
+ ### 0.2.1 (3/3/2013)
42
+
43
+ * Fixed date formatting in API requests with localized applications -
44
+ @soulcutter.
45
+
46
+
47
+ ### 0.2.0 (11/26/2012)
48
+
49
+ * The gem is now licensed under the MIT license - @dblock.
50
+ * Raise specialized configuration and SOAP errors - @dblock.
51
+ * Added `TaxCloud::Client.ping` - @dblock.
52
+ * Returning a verified `TaxCloud::Address` from `TaxCloud::Address.verify` -
53
+ @dblock.
54
+ * Added `TaxCloud::Address.zip` that returns a 9-digit address zip code,
55
+ when available - @dblock.
56
+ * Returning a `TaxCloud::Responses::Lookup` from
57
+ `TaxCloud::Transaction.lookup` - @dblock.
58
+ * Returning transaction state, ie. `"OK"` from all other TaxCloud
59
+ transactions. Exceptions are raised on error - @dblock.
60
+ * Added support for tax codes and tax code groups lookup with
61
+ `TaxCloud::TaxCodes` and `TaxCloud::TaxCode::Groups` - @dblock.
62
+
63
+
64
+ ### 0.1.5 (5/9/2012)
65
+
66
+ * Fixed compatibility with Ruby 1.8.7 and 1.9.3, removed super from
67
+ constructors for classes which inherit from `Object` - @gfmurphy.
68
+
69
+
70
+ ### 0.1.4 (10/20/2011)
71
+
72
+ * Upgraded rdoc - @drewtempelmeyer.
73
+ * Fixed `.gemspec` dependency declaration for savon - @drewtempelmeyer.
74
+
75
+
76
+ ### 0.1.3 (9/19/2011)
77
+
78
+ * Added support for the "returned" request - @danielmorrison.
79
+ * Refactoreted tests to use vcr and webmock - @danielmorrison.
80
+
81
+
82
+ ### 0.1.0 (8/23/2011)
83
+
84
+ * Initial public release - @drewtempelmeyer.
85
+
data/Gemfile CHANGED
@@ -16,5 +16,4 @@ end
16
16
 
17
17
  group :development, :test do
18
18
  gem 'rake', '~>12.2.1'
19
- gem 'rdoc'
20
19
  end
data/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2011-2020 Drew Tempelmeyer & Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,200 @@
1
+ # TaxCloud
2
+
3
+ [![Build Status](https://github.com/txcrb/tax_cloud/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/txcrb/tax_cloud/actions)
4
+
5
+ [TaxCloud](http://www.taxcloud.com) is a free service to calculate sales tax
6
+ and generate tax reports. The `tax_cloud` gem allows you to easily integrate
7
+ with TaxCloud's API.
8
+
9
+ ### Getting Started
10
+ Create a [TaxCloud](http://www.taxcloud.com) merchant account at
11
+ http://www.taxcloud.net. Add a website to your account under
12
+ [Locations](https://taxcloud.net/account/locations). This will generate an API
13
+ ID and API Key that you will need to use the service.
14
+
15
+ [TaxCloud](http://www.taxcloud.com) also offers an optional address
16
+ verification API. To use it, you need a USPS (United States Postal Service)
17
+ Address API Username. To obtain your USPS Username:
18
+ 1. Go through the Web Tools API Portal registration process at
19
+ https://registration.shippingapis.com/
20
+ 2. Once you have registered for your account, you will receive an email with
21
+ your USPS username and password.
22
+ 3. Enter your USPS username in your TaxCloud initializer (see below).
23
+
24
+
25
+ ### Setup
26
+ Add the gem to your Gemfile.
27
+
28
+ ```ruby
29
+ gem 'tax_cloud'
30
+ ```
31
+
32
+ Configure your environment. For example, create an initializer in Rails in
33
+ `config/initializers/tax_cloud.rb`.
34
+
35
+ ```ruby
36
+ TaxCloud.configure do |config|
37
+ config.api_login_id = 'your_tax_cloud_api_login_id'
38
+ config.api_key = 'your_tax_cloud_api_key'
39
+ config.usps_username = 'your_usps_username' # optional
40
+ config.open_timeout = 1 # optional
41
+ config.read_timeout = 1 # optional
42
+ end
43
+ ```
44
+
45
+ The `open_timeout` and `read_timeout` options are used to specify waiting time
46
+ for the TaxCloud web service response in seconds. Default values:
47
+ `open_timeout = 2` and `read_timeout = 2`.
48
+
49
+ ### Using TaxCloud
50
+ Define the destination and origin addresses using `TaxCloud::Address`.
51
+
52
+ ```ruby
53
+ origin = TaxCloud::Address.new(
54
+ address1: '162 East Avenue',
55
+ address2: 'Third Floor',
56
+ city: 'Norwalk',
57
+ state: 'CT',
58
+ zip5: '06851'
59
+ )
60
+ destination = TaxCloud::Address.new(
61
+ address1: '3121 West Government Way',
62
+ address2: 'Suite 2B',
63
+ city: 'Seattle',
64
+ state: 'WA',
65
+ zip5: '98199'
66
+ )
67
+ ```
68
+
69
+ Create your Transaction and set up your cart items
70
+
71
+ ```ruby
72
+ transaction = TaxCloud::Transaction.new(
73
+ customer_id: '1',
74
+ cart_id: '1',
75
+ origin: origin,
76
+ destination: destination
77
+ )
78
+ transaction.cart_items << TaxCloud::CartItem.new(
79
+ index: 0,
80
+ item_id: 'SKU-100',
81
+ tic: TaxCloud::TaxCodes::GENERAL,
82
+ price: 10.00,
83
+ quantity: 1
84
+ )
85
+ lookup = transaction.lookup # this will return a TaxCloud::Responses::Lookup instance
86
+ lookup.tax_amount # total tax amount
87
+ lookup.cart_items.each do |cart_item|
88
+ cart_item.tax_amount # tax for a single item
89
+ end
90
+ ```
91
+
92
+ After you've authorized and captured the transaction via your merchant
93
+ account, you should do the same with TaxCloud for maintaining accurate tax
94
+ information.
95
+
96
+ ```ruby
97
+ transaction.order_id = 100
98
+ transaction.authorized_with_capture # returns "OK" or raises an error
99
+ ```
100
+
101
+ Later, you may need to mark some cart items as returned. TaxCloud will ignore
102
+ any cart items that you don't include.
103
+
104
+ ```ruby
105
+ transaction.order_id = 100
106
+ transaction.cart_items << TaxCloud::CartItem.new(
107
+ index: 0,
108
+ item_id: 'SKU-100',
109
+ tic: TaxCloud::TaxCodes::GENERAL,
110
+ price: 10.00,
111
+ quantity: 1
112
+ )
113
+ transaction.returned # returns "OK" or raises an error
114
+ ```
115
+
116
+ ### Verifying Addresses
117
+
118
+ [TaxCloud](http://www.taxcloud.com) optionally integrates with the USPS
119
+ Address API. An address can be verified, which can also yield a 9-digit zip
120
+ code that helps determine a more accurate tax rate.
121
+
122
+ ```ruby
123
+ address = TaxCloud::Address.new({
124
+ address1: '888 6th Ave',
125
+ city: 'New York',
126
+ state: 'New York',
127
+ zip5: '10001'
128
+ })
129
+
130
+ verified_address = address.verify
131
+ verified_address.zip5 # 10001
132
+ verified_address.zip4 # 3502
133
+ verified_address.zip # 10001-3502
134
+ ```
135
+
136
+ ### Tax Codes
137
+ [TaxCloud](http://www.taxcloud.com) maintains a list of all Taxability
138
+ Information Codes or TICs, which can be found at https://taxcloud.net/tic.
139
+
140
+ You can obtain all tax codes as well as lookup a tax code by ID.
141
+
142
+ ```ruby
143
+ TaxCloud::TaxCodes.all # a hash of all codes
144
+ tax_code = TaxCloud::TaxCodes[TaxCloud::TaxCodes::DIRECT_MAIL_RELATED]
145
+ tax_code.ticid # 11000 or TaxCloud::TaxCodes::DIRECT_MAIL_RELATED
146
+ tax_code.description # "Direct-mail related"
147
+ ```
148
+
149
+ Tax codes are organized in groups.
150
+
151
+ ```ruby
152
+ TaxCloud::TaxCode::Groups.all # a hash of all groups
153
+ tax_code_group = TaxCloud::TaxCode::Groups[TaxCloud::TaxCode::Groups::SCHOOL_RELATED_PRODUCTS]
154
+ tax_code_group.group_id # 3 or TaxCloud::TaxCode::Groups::SCHOOL_RELATED_PRODUCTS
155
+ tax_code_group.description # School Related Products
156
+ tax_code_group.tax_codes # a hash of all codes in this group
157
+ ```
158
+
159
+ Tax code constants are defined in `tax_code_constants.rb` and tax code group
160
+ constants in `tax_code_group_constants.rb`. These files can be generated by
161
+ running the following rake tasks.
162
+
163
+ ```
164
+ TAXCLOUD_API_LOGIN_ID=... TAXCLOUD_API_KEY=... TAXCLOUD_USPS_USERNAME=... tax_cloud:tax_codes
165
+ TAXCLOUD_API_LOGIN_ID=... TAXCLOUD_API_KEY=... TAXCLOUD_USPS_USERNAME=... tax_cloud:tax_code_groups
166
+ ```
167
+
168
+ ### Tax States
169
+ TaxCloud manages a list of states in which you can calculate sales tax. The
170
+ default setup will only have SSUTA (Streamlined Sales and Use Tax Agreement)
171
+ states enabled. All other states will return $0 for tax values. To enable
172
+ other states, go to https://taxcloud.com/go/states-management/. You can find
173
+ more information about SSUTA
174
+ [here](http://www.streamlinedsalestax.org/index.php?page=About-Us).
175
+
176
+ ### Running Tests
177
+ * VCR and WebMock are used to replay requests and avoid hitting the API each
178
+ time. To refresh the mocks, simply delete the `test/cassettes` directory.
179
+ * Run tests.
180
+ rake test
181
+
182
+ * If you need to record new requests against TaxCloud, set your keys first.
183
+ TAXCLOUD_API_LOGIN_ID=... TAXCLOUD_API_KEY=... TAXCLOUD_USPS_USERNAME=... rake test
184
+
185
+ The mocks will filter out your configuration details.
186
+
187
+
188
+ ### Bugs, fixes, etc
189
+ * Fork.
190
+ * Write test(s).
191
+ * Fix.
192
+ * Commit.
193
+ * Submit pull request.
194
+
195
+
196
+ ### License
197
+
198
+ Copyright Drew Tempelmeyer and contributors, 2011-2020.
199
+
200
+ This gem is licensed under the MIT license.
data/Rakefile CHANGED
@@ -2,24 +2,14 @@
2
2
 
3
3
  require 'bundler/gem_tasks'
4
4
  require 'rake/testtask'
5
- require 'rdoc/task'
6
5
  require 'vcr'
7
6
 
8
- README = 'README.rdoc'
9
-
10
7
  Rake::TestTask.new(:test) do |test|
11
8
  test.libs << 'lib' << 'test'
12
9
  test.pattern = 'test/test_*.rb'
13
10
  test.verbose = false
14
11
  end
15
12
 
16
- RDoc::Task.new do |rd|
17
- rd.main = README
18
- rd.rdoc_files.include(README, 'CHANGELOG.rdoc', 'LICENSE.rdoc', 'lib/**/*.rb')
19
- rd.rdoc_dir = 'doc'
20
- rd.title = 'tax_cloud'
21
- end
22
-
23
13
  load 'lib/tasks/tax_cloud.rake'
24
14
  load 'lib/tasks/tax_codes.rake'
25
15
  load 'lib/tasks/tax_code_groups.rake'
@@ -44,7 +44,7 @@ module TaxCloud #:nodoc:
44
44
  #
45
45
  # Returns a localized error message string.
46
46
  def translate(key, options)
47
- ::I18n.translate("#{BASE_KEY}.#{key}", { locale: :en }.merge(options)).strip
47
+ ::I18n.translate("#{BASE_KEY}.#{key}", **{ locale: :en }.merge(options)).strip
48
48
  end
49
49
 
50
50
  # Create the problem.
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud Authorized API call.
6
6
  #
7
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=Authorized.
7
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=Authorized.
8
8
  class Authorized < Generic
9
9
  response_key :authorized
10
10
  end
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud AuthorizedWithCapture API call.
6
6
  #
7
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=AuthorizedWithCapture.
7
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=AuthorizedWithCapture.
8
8
  class AuthorizedWithCapture < Generic
9
9
  response_key :authorized_with_capture
10
10
  end
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud Captured API call.
6
6
  #
7
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=Captured.
7
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=Captured.
8
8
  class Captured < Generic
9
9
  response_key :captured
10
10
  end
@@ -6,7 +6,7 @@ module TaxCloud #:nodoc:
6
6
  module Responses #:nodoc:
7
7
  # A single item in the response to a TaxCloud Lookup API call.
8
8
  #
9
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=Lookup.
9
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=Lookup.
10
10
  class CartItem
11
11
  # The index of the cart item.
12
12
  attr_accessor :cart_item_index
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud Lookup API call.
6
6
  #
7
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=Lookup.
7
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=Lookup.
8
8
  class Lookup < Base
9
9
  # Cart ID.
10
10
  attr_accessor :cart_id
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud Ping API call.
6
6
  #
7
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=Ping.
7
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=Ping.
8
8
  class Ping < Generic
9
9
  response_key :ping
10
10
  end
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud Returned API call.
6
6
  #
7
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=Returned.
7
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=Returned.
8
8
  class Returned < Generic
9
9
  response_key :returned
10
10
  end
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud getTICGroups API call.
6
6
  #
7
- # https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=GetTICGroups
7
+ # https://api.taxcloud.com/1.0/TaxCloud.asmx?op=GetTICGroups
8
8
  class TaxCodeGroups < Base
9
9
  response_type 'get_tic_groups_response/get_tic_groups_result/response_type'
10
10
  error_message 'get_tic_groups_response/get_tic_groups_result/messages/response_message/message'
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud getTICs API call.
6
6
  #
7
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=GetTICs.
7
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=GetTICs.
8
8
  class TaxCodes < Base
9
9
  response_type 'get_ti_cs_response/get_ti_cs_result/response_type'
10
10
  error_message 'get_ti_cs_response/get_ti_cs_result/messages/response_message/message'
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud getTICsByGroup API call.
6
6
  #
7
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=GetTICsByGroup.
7
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=GetTICsByGroup.
8
8
  class TaxCodesByGroup < Base
9
9
  response_type 'get_ti_cs_by_group_response/get_ti_cs_by_group_result/response_type'
10
10
  error_message 'get_ti_cs_by_group_response/get_ti_cs_by_group_result/messages/response_message/message'
@@ -4,7 +4,7 @@ module TaxCloud #:nodoc:
4
4
  module Responses #:nodoc:
5
5
  # Response to a TaxCloud VerifyAddress API call.
6
6
  #
7
- # See https://asmx.taxcloud.com/1.0/TaxCloud.asmx?op=VerifyAddress.
7
+ # See https://api.taxcloud.com/1.0/TaxCloud.asmx?op=VerifyAddress.
8
8
  class VerifyAddress < Base
9
9
  error_number 'verify_address_response/verify_address_result/err_number'
10
10
  error_message 'verify_address_response/verify_address_result/err_description'
@@ -2,5 +2,5 @@
2
2
 
3
3
  module TaxCloud #:nodoc:
4
4
  # The version of the <tt>tax_cloud</tt> gem.
5
- VERSION = '0.4.0'
5
+ VERSION = '0.5.0'
6
6
  end
data/lib/tax_cloud.rb CHANGED
@@ -29,7 +29,7 @@ I18n.load_path << File.join(File.dirname(__FILE__), 'config', 'locales', 'en.yml
29
29
  # For information on configuring and using the TaxCloud API, look at the <tt>README</tt> file.
30
30
  module TaxCloud
31
31
  # WSDL location for TaxCloud API.
32
- WSDL_URL = 'https://asmx.taxcloud.com/1.0/?wsdl'
32
+ WSDL_URL = 'https://api.taxcloud.com/1.0/?wsdl'
33
33
 
34
34
  # TaxCloud API version.
35
35
  API_VERSION = '1.0'
data/tax_cloud.gemspec CHANGED
@@ -22,5 +22,6 @@ Gem::Specification.new do |s|
22
22
 
23
23
  s.add_runtime_dependency 'activesupport', '>= 3.0'
24
24
  s.add_runtime_dependency 'i18n'
25
+ s.add_runtime_dependency 'net-smtp'
25
26
  s.add_runtime_dependency 'savon', '>= 2.0'
26
27
  end
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://asmx.taxcloud.com/1.0/?wsdl
5
+ uri: https://api.taxcloud.com/1.0/?wsdl
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -719,17 +719,17 @@ http_interactions:
719
719
  part=\"Body\" />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n </wsdl:binding>\r\n
720
720
  \ <wsdl:service name=\"TaxCloud\">\r\n <wsdl:documentation xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\">TaxCloud
721
721
  Web Service</wsdl:documentation>\r\n <wsdl:port name=\"TaxCloudSoap\" binding=\"tns:TaxCloudSoap\">\r\n
722
- \ <soap:address location=\"https://asmx.taxcloud.com/1.0/TaxCloud.asmx\"
722
+ \ <soap:address location=\"https://api.taxcloud.com/1.0/TaxCloud.asmx\"
723
723
  />\r\n </wsdl:port>\r\n <wsdl:port name=\"TaxCloudSoap12\" binding=\"tns:TaxCloudSoap12\">\r\n
724
- \ <soap12:address location=\"https://asmx.taxcloud.com/1.0/TaxCloud.asmx\"
724
+ \ <soap12:address location=\"https://api.taxcloud.com/1.0/TaxCloud.asmx\"
725
725
  />\r\n </wsdl:port>\r\n <wsdl:port name=\"TaxCloudHttpPost\" binding=\"tns:TaxCloudHttpPost\">\r\n
726
- \ <http:address location=\"https://asmx.taxcloud.com/1.0/TaxCloud.asmx\"
726
+ \ <http:address location=\"https://api.taxcloud.com/1.0/TaxCloud.asmx\"
727
727
  />\r\n </wsdl:port>\r\n </wsdl:service>\r\n</wsdl:definitions>"
728
728
  http_version:
729
729
  recorded_at: Thu, 09 Jan 2014 16:03:39 GMT
730
730
  - request:
731
731
  method: post
732
- uri: https://asmx.taxcloud.com/1.0/TaxCloud.asmx
732
+ uri: https://api.taxcloud.com/1.0/TaxCloud.asmx
733
733
  body:
734
734
  encoding: US-ASCII
735
735
  string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
@@ -779,7 +779,7 @@ http_interactions:
779
779
  recorded_at: Fri, 01 Mar 2013 22:58:17 GMT
780
780
  - request:
781
781
  method: post
782
- uri: https://asmx.taxcloud.com/1.0/TaxCloud.asmx
782
+ uri: https://api.taxcloud.com/1.0/TaxCloud.asmx
783
783
  body:
784
784
  encoding: US-ASCII
785
785
  string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://asmx.taxcloud.com/1.0/?wsdl
5
+ uri: https://api.taxcloud.com/1.0/?wsdl
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -719,17 +719,17 @@ http_interactions:
719
719
  part=\"Body\" />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n </wsdl:binding>\r\n
720
720
  \ <wsdl:service name=\"TaxCloud\">\r\n <wsdl:documentation xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\">TaxCloud
721
721
  Web Service</wsdl:documentation>\r\n <wsdl:port name=\"TaxCloudSoap\" binding=\"tns:TaxCloudSoap\">\r\n
722
- \ <soap:address location=\"https://asmx.taxcloud.com/1.0/TaxCloud.asmx\"
722
+ \ <soap:address location=\"https://api.taxcloud.com/1.0/TaxCloud.asmx\"
723
723
  />\r\n </wsdl:port>\r\n <wsdl:port name=\"TaxCloudSoap12\" binding=\"tns:TaxCloudSoap12\">\r\n
724
- \ <soap12:address location=\"https://asmx.taxcloud.com/1.0/TaxCloud.asmx\"
724
+ \ <soap12:address location=\"https://api.taxcloud.com/1.0/TaxCloud.asmx\"
725
725
  />\r\n </wsdl:port>\r\n <wsdl:port name=\"TaxCloudHttpPost\" binding=\"tns:TaxCloudHttpPost\">\r\n
726
- \ <http:address location=\"https://asmx.taxcloud.com/1.0/TaxCloud.asmx\"
726
+ \ <http:address location=\"https://api.taxcloud.com/1.0/TaxCloud.asmx\"
727
727
  />\r\n </wsdl:port>\r\n </wsdl:service>\r\n</wsdl:definitions>"
728
728
  http_version:
729
729
  recorded_at: Thu, 09 Jan 2014 16:03:39 GMT
730
730
  - request:
731
731
  method: post
732
- uri: https://asmx.taxcloud.com/1.0/TaxCloud.asmx
732
+ uri: https://api.taxcloud.com/1.0/TaxCloud.asmx
733
733
  body:
734
734
  encoding: US-ASCII
735
735
  string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
@@ -779,7 +779,7 @@ http_interactions:
779
779
  recorded_at: Fri, 01 Mar 2013 22:58:18 GMT
780
780
  - request:
781
781
  method: post
782
- uri: https://asmx.taxcloud.com/1.0/TaxCloud.asmx
782
+ uri: https://api.taxcloud.com/1.0/TaxCloud.asmx
783
783
  body:
784
784
  encoding: US-ASCII
785
785
  string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://asmx.taxcloud.com/1.0/?wsdl
5
+ uri: https://api.taxcloud.com/1.0/?wsdl
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -719,17 +719,17 @@ http_interactions:
719
719
  part=\"Body\" />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n </wsdl:binding>\r\n
720
720
  \ <wsdl:service name=\"TaxCloud\">\r\n <wsdl:documentation xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\">TaxCloud
721
721
  Web Service</wsdl:documentation>\r\n <wsdl:port name=\"TaxCloudSoap\" binding=\"tns:TaxCloudSoap\">\r\n
722
- \ <soap:address location=\"https://asmx.taxcloud.com/1.0/TaxCloud.asmx\"
722
+ \ <soap:address location=\"https://api.taxcloud.com/1.0/TaxCloud.asmx\"
723
723
  />\r\n </wsdl:port>\r\n <wsdl:port name=\"TaxCloudSoap12\" binding=\"tns:TaxCloudSoap12\">\r\n
724
- \ <soap12:address location=\"https://asmx.taxcloud.com/1.0/TaxCloud.asmx\"
724
+ \ <soap12:address location=\"https://api.taxcloud.com/1.0/TaxCloud.asmx\"
725
725
  />\r\n </wsdl:port>\r\n <wsdl:port name=\"TaxCloudHttpPost\" binding=\"tns:TaxCloudHttpPost\">\r\n
726
- \ <http:address location=\"https://asmx.taxcloud.com/1.0/TaxCloud.asmx\"
726
+ \ <http:address location=\"https://api.taxcloud.com/1.0/TaxCloud.asmx\"
727
727
  />\r\n </wsdl:port>\r\n </wsdl:service>\r\n</wsdl:definitions>"
728
728
  http_version:
729
729
  recorded_at: Thu, 09 Jan 2014 16:03:39 GMT
730
730
  - request:
731
731
  method: post
732
- uri: https://asmx.taxcloud.com/1.0/TaxCloud.asmx
732
+ uri: https://api.taxcloud.com/1.0/TaxCloud.asmx
733
733
  body:
734
734
  encoding: US-ASCII
735
735
  string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
@@ -779,7 +779,7 @@ http_interactions:
779
779
  recorded_at: Sat, 02 Mar 2013 04:12:51 GMT
780
780
  - request:
781
781
  method: post
782
- uri: https://asmx.taxcloud.com/1.0/TaxCloud.asmx
782
+ uri: https://api.taxcloud.com/1.0/TaxCloud.asmx
783
783
  body:
784
784
  encoding: US-ASCII
785
785
  string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"