corgibytes-tax_cloud 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +17 -0
  2. data/.circleci/config.yml +81 -0
  3. data/.circleci/setup-rubygems.sh +9 -0
  4. data/.gitignore +67 -0
  5. data/.rubocop.yml +6 -0
  6. data/.rubocop_todo.yml +66 -0
  7. data/.travis.yml +7 -0
  8. data/CHANGELOG.rdoc +48 -0
  9. data/CONTRIBUTORS.txt +23 -0
  10. data/Dockerfile +9 -0
  11. data/Gemfile +22 -0
  12. data/LICENSE +23 -0
  13. data/README.md +190 -0
  14. data/Rakefile +29 -0
  15. data/docker-compose.yml +10 -0
  16. data/examples/.env.example +2 -0
  17. data/examples/lookup_example.rb +139 -0
  18. data/lib/config/locales/en.yml +34 -0
  19. data/lib/hash.rb +8 -0
  20. data/lib/savon_soap_xml.rb +32 -0
  21. data/lib/tasks/tax_cloud.rake +18 -0
  22. data/lib/tasks/tax_code_groups.rake +37 -0
  23. data/lib/tasks/tax_codes.rake +43 -0
  24. data/lib/tax_cloud.rb +70 -0
  25. data/lib/tax_cloud/address.rb +50 -0
  26. data/lib/tax_cloud/cart_item.rb +26 -0
  27. data/lib/tax_cloud/client.rb +60 -0
  28. data/lib/tax_cloud/configuration.rb +28 -0
  29. data/lib/tax_cloud/errors.rb +6 -0
  30. data/lib/tax_cloud/errors/api_error.rb +17 -0
  31. data/lib/tax_cloud/errors/missing_config_error.rb +13 -0
  32. data/lib/tax_cloud/errors/missing_config_option_error.rb +19 -0
  33. data/lib/tax_cloud/errors/soap_error.rb +30 -0
  34. data/lib/tax_cloud/errors/tax_cloud_error.rb +83 -0
  35. data/lib/tax_cloud/errors/unexpected_soap_response_error.rb +19 -0
  36. data/lib/tax_cloud/record.rb +14 -0
  37. data/lib/tax_cloud/responses.rb +13 -0
  38. data/lib/tax_cloud/responses/authorized.rb +10 -0
  39. data/lib/tax_cloud/responses/authorized_with_capture.rb +10 -0
  40. data/lib/tax_cloud/responses/base.rb +82 -0
  41. data/lib/tax_cloud/responses/captured.rb +10 -0
  42. data/lib/tax_cloud/responses/cart_item.rb +23 -0
  43. data/lib/tax_cloud/responses/generic.rb +31 -0
  44. data/lib/tax_cloud/responses/lookup.rb +38 -0
  45. data/lib/tax_cloud/responses/ping.rb +10 -0
  46. data/lib/tax_cloud/responses/returned.rb +10 -0
  47. data/lib/tax_cloud/responses/tax_code_groups.rb +30 -0
  48. data/lib/tax_cloud/responses/tax_codes.rb +30 -0
  49. data/lib/tax_cloud/responses/tax_codes_by_group.rb +30 -0
  50. data/lib/tax_cloud/responses/verify_address.rb +26 -0
  51. data/lib/tax_cloud/tax_code.rb +11 -0
  52. data/lib/tax_cloud/tax_code_constants.rb +560 -0
  53. data/lib/tax_cloud/tax_code_group.rb +28 -0
  54. data/lib/tax_cloud/tax_code_group_constants.rb +31 -0
  55. data/lib/tax_cloud/tax_code_groups.rb +25 -0
  56. data/lib/tax_cloud/tax_codes.rb +25 -0
  57. data/lib/tax_cloud/transaction.rb +118 -0
  58. data/lib/tax_cloud/version.rb +4 -0
  59. data/tax_cloud.gemspec +23 -0
  60. data/test/cassettes/authorized.yml +826 -0
  61. data/test/cassettes/authorized_with_capture.yml +826 -0
  62. data/test/cassettes/authorized_with_localized_time.yml +826 -0
  63. data/test/cassettes/captured.yml +872 -0
  64. data/test/cassettes/get_tic_groups.yml +783 -0
  65. data/test/cassettes/get_tics.yml +1079 -0
  66. data/test/cassettes/get_tics_by_group.yml +776 -0
  67. data/test/cassettes/invalid_soap_call.yml +778 -0
  68. data/test/cassettes/lookup.yml +780 -0
  69. data/test/cassettes/lookup_ny.yml +780 -0
  70. data/test/cassettes/ping.yml +776 -0
  71. data/test/cassettes/ping_with_invalid_credentials.yml +774 -0
  72. data/test/cassettes/ping_with_invalid_response.yml +774 -0
  73. data/test/cassettes/returned.yml +872 -0
  74. data/test/cassettes/verify_bad_address.yml +772 -0
  75. data/test/cassettes/verify_good_address.yml +772 -0
  76. data/test/helper.rb +17 -0
  77. data/test/test_address.rb +54 -0
  78. data/test/test_cart_item.rb +15 -0
  79. data/test/test_client.rb +27 -0
  80. data/test/test_configuration_optional_keys.rb +42 -0
  81. data/test/test_configuration_required_keys.rb +31 -0
  82. data/test/test_lookup_response.rb +20 -0
  83. data/test/test_setup.rb +17 -0
  84. data/test/test_soap.rb +11 -0
  85. data/test/test_tax_code_groups.rb +29 -0
  86. data/test/test_tax_codes.rb +17 -0
  87. data/test/test_transaction.rb +78 -0
  88. data/test/test_transaction_ny.rb +25 -0
  89. data/test/vcr_setup.rb +9 -0
  90. metadata +174 -0
@@ -0,0 +1,10 @@
1
+ module TaxCloud #:nodoc:
2
+ module Responses #:nodoc:
3
+ # Response to a TaxCloud Captured API call.
4
+ #
5
+ # See https://api.taxcloud.net/1.0/TaxCloud.asmx?op=Captured.
6
+ class Captured < Generic
7
+ response_key :captured
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,23 @@
1
+ require 'bigdecimal'
2
+
3
+ module TaxCloud #:nodoc:
4
+ module Responses #:nodoc:
5
+ # A single item in the response to a TaxCloud Lookup API call.
6
+ #
7
+ # See https://api.taxcloud.net/1.0/TaxCloud.asmx?op=Lookup.
8
+ class CartItem
9
+ # The index of the cart item.
10
+ attr_accessor :cart_item_index
11
+
12
+ # Tax amount for this cart item.
13
+ attr_accessor :tax_amount
14
+
15
+ # === Parameters
16
+ # [savon_response] SOAP response.
17
+ def initialize(savon_response)
18
+ self.cart_item_index = savon_response[:cart_item_index].to_i
19
+ self.tax_amount = BigDecimal.new(savon_response[:tax_amount])
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,31 @@
1
+ module TaxCloud #:nodoc:
2
+ module Responses #:nodoc:
3
+ # A generic response to a TaxCloud API call.
4
+ class Generic < Base
5
+ # Response key.
6
+ class_attribute :key
7
+
8
+ class << self
9
+ # Set the response key.
10
+ # === Parameters
11
+ # [key] Response key.
12
+ def response_key(key)
13
+ self.key = key
14
+ response_type "#{key}_response/#{key}_result/response_type"
15
+ error_message "#{key}_response/#{key}_result/messages/response_message/message"
16
+ end
17
+
18
+ # Parse a TaxCloud response.
19
+ #
20
+ # === Parameters
21
+ # [savon_response] SOAP response.
22
+ #
23
+ # Usually returns "OK" or raises an error.
24
+ def parse(savon_response)
25
+ response = new(savon_response)
26
+ response.raw["#{key}_response".to_sym]["#{key}_result".to_sym][:response_type]
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,38 @@
1
+ module TaxCloud #:nodoc:
2
+ module Responses #:nodoc:
3
+ # Response to a TaxCloud Lookup API call.
4
+ #
5
+ # See https://api.taxcloud.net/1.0/TaxCloud.asmx?op=Lookup.
6
+ class Lookup < Base
7
+ # Cart ID.
8
+ attr_accessor :cart_id
9
+
10
+ # Cart items.
11
+ attr_accessor :cart_items
12
+
13
+ response_type 'lookup_response/lookup_result/response_type'
14
+ error_message 'lookup_response/lookup_result/messages/response_message/message'
15
+
16
+ # === Parameters
17
+ # [savon_response] SOAP response.
18
+ def initialize(savon_response)
19
+ super savon_response
20
+ self.cart_id = match('lookup_response/lookup_result/cart_id')
21
+ # there can be on response or an array of responses
22
+ cart_item_responses = match('lookup_response/lookup_result/cart_items_response/cart_item_response')
23
+ self.cart_items = if cart_item_responses.is_a?(Array)
24
+ cart_item_responses.map do |cart_item_response|
25
+ TaxCloud::Responses::CartItem.new(cart_item_response)
26
+ end
27
+ else
28
+ [TaxCloud::Responses::CartItem.new(cart_item_responses)]
29
+ end
30
+ end
31
+
32
+ # Total tax amount in this cart.
33
+ def tax_amount
34
+ cart_items.reduce(0) { |a, e| a + e.tax_amount }
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,10 @@
1
+ module TaxCloud #:nodoc:
2
+ module Responses #:nodoc:
3
+ # Response to a TaxCloud Ping API call.
4
+ #
5
+ # See https://api.taxcloud.net/1.0/TaxCloud.asmx?op=Ping.
6
+ class Ping < Generic
7
+ response_key :ping
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module TaxCloud #:nodoc:
2
+ module Responses #:nodoc:
3
+ # Response to a TaxCloud Returned API call.
4
+ #
5
+ # See https://api.taxcloud.net/1.0/TaxCloud.asmx?op=Returned.
6
+ class Returned < Generic
7
+ response_key :returned
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,30 @@
1
+ module TaxCloud #:nodoc:
2
+ module Responses #:nodoc:
3
+ # Response to a TaxCloud getTICGroups API call.
4
+ #
5
+ # https://api.taxcloud.net/1.0/TaxCloud.asmx?op=GetTICGroups
6
+ class TaxCodeGroups < Base
7
+ response_type 'get_tic_groups_response/get_tic_groups_result/response_type'
8
+ error_message 'get_tic_groups_response/get_tic_groups_result/messages/response_message/message'
9
+
10
+ class << self
11
+ # Parse a TaxCloud response.
12
+ #
13
+ # === Parameters
14
+ # [savon_response] SOAP response.
15
+ #
16
+ # Returns an array of Tax Code Groups.
17
+ def parse(savon_response)
18
+ response = new(savon_response)
19
+ tax_code_groups = response.match('get_tic_groups_response/get_tic_groups_result/tic_groups/tic_group')
20
+ tax_code_groups.map do |tax_code_group|
21
+ TaxCloud::TaxCodeGroup.new(
22
+ group_id: tax_code_group[:group_id].to_i,
23
+ description: tax_code_group[:description].strip
24
+ )
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ module TaxCloud #:nodoc:
2
+ module Responses #:nodoc:
3
+ # Response to a TaxCloud getTICs API call.
4
+ #
5
+ # See https://api.taxcloud.net/1.0/TaxCloud.asmx?op=GetTICs.
6
+ class TaxCodes < Base
7
+ response_type 'get_ti_cs_response/get_ti_cs_result/response_type'
8
+ error_message 'get_ti_cs_response/get_ti_cs_result/messages/response_message/message'
9
+
10
+ class << self
11
+ # Parse a TaxCloud response.
12
+ #
13
+ # === Parameters
14
+ # [savon_response] SOAP response.
15
+ #
16
+ # Returns an array of tax codes.
17
+ def parse(savon_response)
18
+ response = new(savon_response)
19
+ tax_codes = response.match('get_ti_cs_response/get_ti_cs_result/ti_cs/tic')
20
+ tax_codes.map do |tax_code|
21
+ TaxCloud::TaxCode.new(
22
+ ticid: tax_code[:ticid].to_i,
23
+ description: tax_code[:description].strip
24
+ )
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ module TaxCloud #:nodoc:
2
+ module Responses #:nodoc:
3
+ # Response to a TaxCloud getTICsByGroup API call.
4
+ #
5
+ # See https://api.taxcloud.net/1.0/TaxCloud.asmx?op=GetTICsByGroup.
6
+ class TaxCodesByGroup < Base
7
+ response_type 'get_ti_cs_by_group_response/get_ti_cs_by_group_result/response_type'
8
+ error_message 'get_ti_cs_by_group_response/get_ti_cs_by_group_result/messages/response_message/message'
9
+
10
+ class << self
11
+ # Parse a TaxCloud response.
12
+ #
13
+ # === Parameters
14
+ # [savon_response] SOAP response.
15
+ #
16
+ # Returns an array of tax codes.
17
+ def parse(savon_response)
18
+ response = new(savon_response)
19
+ tax_codes = response.match('get_ti_cs_by_group_response/get_ti_cs_by_group_result/ti_cs/tic')
20
+ tax_codes.map do |tax_code|
21
+ TaxCloud::TaxCode.new(
22
+ ticid: tax_code[:ticid].to_i,
23
+ description: tax_code[:description]
24
+ )
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,26 @@
1
+ module TaxCloud #:nodoc:
2
+ module Responses #:nodoc:
3
+ # Response to a TaxCloud VerifyAddress API call.
4
+ #
5
+ # See https://api.taxcloud.net/1.0/TaxCloud.asmx?op=VerifyAddress.
6
+ class VerifyAddress < Base
7
+ error_number 'verify_address_response/verify_address_result/err_number'
8
+ error_message 'verify_address_response/verify_address_result/err_description'
9
+
10
+ class << self
11
+ # Parse a TaxCloud response.
12
+ #
13
+ # === Parameters
14
+ # [savon_response] SOAP response.
15
+ #
16
+ # Returns a verified TaxCloud::Address.
17
+ def parse(savon_response)
18
+ response = new(savon_response)
19
+ result = response.match('verify_address_response/verify_address_result')
20
+ result.delete(:err_number)
21
+ TaxCloud::Address.new result
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,11 @@
1
+ module TaxCloud #:nodoc:
2
+ # A TIC (Taxability Information Code), otherwise known as a Tax Code.
3
+ #
4
+ # See https://taxcloud.net/tic.
5
+ class TaxCode < Record
6
+ # Tax code ID.
7
+ attr_accessor :ticid
8
+ # Tax code description.
9
+ attr_accessor :description
10
+ end
11
+ end
@@ -0,0 +1,560 @@
1
+ module TaxCloud
2
+ # Tax Codes.
3
+ class TaxCodes
4
+ # Administrative
5
+
6
+ # Administrative: Gift Card/Certificate
7
+ GIFT_CARD_CERTIFICATE = 10_005
8
+ # Administrative: Charges by the seller for any services necessary to complete the sale other than delivery and installation
9
+ CHARGES_BY_THE_SELLER_FOR_ANY_SERVICES_NECESSARY_TO_COMPLETE_THE_SALE_OTHER_THAN_DELIVERY_AND_INSTALLATION = 10_010
10
+ # Administrative: Installation charges
11
+ INSTALLATION_CHARGES = 10_040
12
+ # Administrative: Value of trade-in
13
+ VALUE_OF_TRADE_IN = 10_060
14
+ # Administrative: Telecommunication nonrecurring charges
15
+ TELECOMMUNICATION_NONRECURRING_CHARGES = 10_070
16
+ # Administrative: Handling, crating, packing, preparation for mailing or delivery, and similar charges
17
+ HANDLING_CRATING_PACKING_PREPARATION_FOR_MAILING_OR_DELIVERY_AND_SIMILAR_CHARGES = 11_000
18
+ # Administrative: Transportation, shipping, postage, and similar charges
19
+ TRANSPORTATION_SHIPPING_POSTAGE_AND_SIMILAR_CHARGES = 11_010
20
+ # Administrative: Handling, crating, packing, preparation for mailing or delivery, and similar charges for direct mail
21
+ HANDLING_CRATING_PACKING_PREPARATION_FOR_MAILING_OR_DELIVERY_AND_SIMILAR_CHARGES_FOR_DIRECT_MAIL = 11_020
22
+ # Administrative: Transportation, shipping, and similar charges for direct mail
23
+ TRANSPORTATION_SHIPPING_AND_SIMILAR_CHARGES_FOR_DIRECT_MAIL = 11_021
24
+ # Administrative: Postage for direct mail
25
+ POSTAGE_FOR_DIRECT_MAIL = 11_022
26
+ # Administrative: Postage/Delivery
27
+ POSTAGE_DELIVERY = 11_099
28
+ # Administrative: Direct-mail related
29
+ DIRECT_MAIL_RELATED = 11_100
30
+
31
+ # Clothing and Related Products
32
+
33
+ # Clothing and Related Products: Clothing
34
+ CLOTHING = 20_010
35
+ # Clothing and Related Products: Essential clothing priced below a state specific threshold
36
+ ESSENTIAL_CLOTHING_PRICED_BELOW_A_STATE_SPECIFIC_THRESHOLD = 20_015
37
+ # Clothing and Related Products: Clothing accessories or equipment
38
+ CLOTHING_ACCESSORIES_OR_EQUIPMENT = 20_020
39
+ # Clothing and Related Products: Protective equipment
40
+ PROTECTIVE_EQUIPMENT = 20_030
41
+ # Clothing and Related Products: Sport or recreational equipment
42
+ SPORT_OR_RECREATIONAL_EQUIPMENT = 20_040
43
+ # Clothing and Related Products: Fur clothing
44
+ FUR_CLOTHING = 20_050
45
+
46
+ # School Related Products
47
+
48
+ # School Related Products: School art supply
49
+ SCHOOL_ART_SUPPLY = 20_080
50
+ # School Related Products: School instructional material
51
+ SCHOOL_INSTRUCTIONAL_MATERIAL = 20_090
52
+ # School Related Products: School computer supply
53
+ SCHOOL_COMPUTER_SUPPLY = 20_100
54
+
55
+ # Computer Related Products
56
+
57
+ # Computer Related Products: Non-prewritten (custom) computer software
58
+ NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE = 30_015
59
+ # Computer Related Products: Non-prewritten (custom) computer software delivered electronically
60
+ NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE_DELIVERED_ELECTRONICALLY = 30_025
61
+ # Computer Related Products: Non-prewritten (custom) computer software delivered via load and leave Mandatory computer software maintenance contracts
62
+ NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE_DELIVERED_VIA_LOAD_AND_LEAVE_MANDATORY_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS = 30_035
63
+ # Computer Related Products: Prewritten computer software
64
+ PREWRITTEN_COMPUTER_SOFTWARE = 30_040
65
+ # Computer Related Products: Prewritten computer software delivered electronically
66
+ PREWRITTEN_COMPUTER_SOFTWARE_DELIVERED_ELECTRONICALLY = 30_050
67
+ # Computer Related Products: Prewritten computer software delivered via load and leave
68
+ PREWRITTEN_COMPUTER_SOFTWARE_DELIVERED_VIA_LOAD_AND_LEAVE = 30_060
69
+ # Computer Related Products: Remote Access
70
+ REMOTE_ACCESS = 30_070
71
+ # Computer Related Products: Computer
72
+ COMPUTER = 30_100
73
+ # Computer Related Products: Mandatory computer software maintenance contracts with respect to prewritten computer software
74
+ MANDATORY_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE = 30_200
75
+ # Computer Related Products: Mandatory computer software maintenance contracts with respect to prewritten computer software which is delivered electronically
76
+ MANDATORY_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE_WHICH_IS_DELIVERED_ELECTRONICALLY = 30_210
77
+ # Computer Related Products: Mandatory computer software maintenance contracts with respect to prewritten computer software which is delivered via load and leave
78
+ MANDATORY_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE_WHICH_IS_DELIVERED_VIA_LOAD_AND_LEAVE = 30_220
79
+ # Computer Related Products: Mandatory computer software maintenance contracts with respect to non-prewritten (custom) computer software
80
+ MANDATORY_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE = 30_230
81
+ # Computer Related Products: Mandatory computer software maintenance contracts with respect to non-prewritten (custom) software which is delivered electronically
82
+ MANDATORY_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_SOFTWARE_WHICH_IS_DELIVERED_ELECTRONICALLY = 30_240
83
+ # Computer Related Products: Mandatory computer software maintenance contracts with respect to non-prewritten (custom) software which is delivered via load and leave
84
+ MANDATORY_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_SOFTWARE_WHICH_IS_DELIVERED_VIA_LOAD_AND_LEAVE = 30_250
85
+ # Computer Related Products: Optional computer software maintenance contracts with respect to prewritten computer software that only provide updates or upgrades with respect to the software
86
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE_THAT_ONLY_PROVIDE_UPDATES_OR_UPGRADES_WITH_RESPECT_TO_THE_SOFTWARE = 30_300
87
+ # Computer Related Products: Optional computer software maintenance contracts with respect to prewritten computer software that only provide updates or upgrades delivered electronically with respect to the software
88
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE_THAT_ONLY_PROVIDE_UPDATES_OR_UPGRADES_DELIVERED_ELECTRONICALLY_WITH_RESPECT_TO_THE_SOFTWARE = 30_310
89
+ # Computer Related Products: Optional computer software maintenance contracts with respect to prewritten computer software that only provide updates or upgrades delivered via load and leave with respect to the software
90
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE_THAT_ONLY_PROVIDE_UPDATES_OR_UPGRADES_DELIVERED_VIA_LOAD_AND_LEAVE_WITH_RESPECT_TO_THE_SOFTWARE = 30_320
91
+ # Computer Related Products: Optional computer software maintenance contracts with respect to non-prewritten (custom) computer software that only provide updates or upgrades with respect to the software
92
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE_THAT_ONLY_PROVIDE_UPDATES_OR_UPGRADES_WITH_RESPECT_TO_THE_SOFTWARE = 30_330
93
+ # Computer Related Products: Optional computer software maintenance contracts with respect to non-prewritten (custom) computer software that only provide updates or upgrades delivered electronically with respect to the software
94
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE_THAT_ONLY_PROVIDE_UPDATES_OR_UPGRADES_DELIVERED_ELECTRONICALLY_WITH_RESPECT_TO_THE_SOFTWARE = 30_340
95
+ # Computer Related Products: Optional computer software maintenance contracts with respect to non-prewritten (custom) computer software that only provide updates or upgrades delivered via load and leave with respect to the software
96
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE_THAT_ONLY_PROVIDE_UPDATES_OR_UPGRADES_DELIVERED_VIA_LOAD_AND_LEAVE_WITH_RESPECT_TO_THE_SOFTWARE = 30_350
97
+ # Computer Related Products: Optional computer software maintenance contracts with respect to non-prewritten (custom) computer software that only provide support services to the software
98
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE_THAT_ONLY_PROVIDE_SUPPORT_SERVICES_TO_THE_SOFTWARE = 30_360
99
+ # Computer Related Products: Optional computer software maintenance contracts with respect to non-prewritten (custom) computer software that provide updates or upgrades and support services to the softwareAppendix E
100
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE_THAT_PROVIDE_UPDATES_OR_UPGRADES_AND_SUPPORT_SERVICES_TO_THE_SOFTWAREAPPENDIX_E = 30_370
101
+ # Computer Related Products: Optional computer software maintenance contracts with respect to non-prewritten (custom) computer software that provide updates or upgrades delivered electronically and support services to the software
102
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE_THAT_PROVIDE_UPDATES_OR_UPGRADES_DELIVERED_ELECTRONICALLY_AND_SUPPORT_SERVICES_TO_THE_SOFTWARE = 30_380
103
+ # Computer Related Products: Optional computer software maintenance contracts with respect to non-prewritten (custom) computer software provide updates or upgrades delivered via load and leave and support services to the software
104
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_NON_PREWRITTEN_CUSTOM_COMPUTER_SOFTWARE_PROVIDE_UPDATES_OR_UPGRADES_DELIVERED_VIA_LOAD_AND_LEAVE_AND_SUPPORT_SERVICES_TO_THE_SOFTWARE = 30_390
105
+ # Computer Related Products: Optional computer software maintenance contracts with respect to prewritten computer software that provide updates or upgrades and support services to the software
106
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE_THAT_PROVIDE_UPDATES_OR_UPGRADES_AND_SUPPORT_SERVICES_TO_THE_SOFTWARE = 30_400
107
+ # Computer Related Products: Optional computer software maintenance contracts with respect to prewritten computer software that provide updates and upgrades delivered electronically and support services to the software
108
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE_THAT_PROVIDE_UPDATES_AND_UPGRADES_DELIVERED_ELECTRONICALLY_AND_SUPPORT_SERVICES_TO_THE_SOFTWARE = 30_410
109
+ # Computer Related Products: Optional computer software maintenance contracts with respect to prewritten computer software that provide updates and upgrades delivered via load and leave and support services to the software
110
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE_THAT_PROVIDE_UPDATES_AND_UPGRADES_DELIVERED_VIA_LOAD_AND_LEAVE_AND_SUPPORT_SERVICES_TO_THE_SOFTWARE = 30_420
111
+ # Computer Related Products: Optional computer software maintenance contracts with respect to prewritten computer software that only provide support services to the software
112
+ OPTIONAL_COMPUTER_SOFTWARE_MAINTENANCE_CONTRACTS_WITH_RESPECT_TO_PREWRITTEN_COMPUTER_SOFTWARE_THAT_ONLY_PROVIDE_SUPPORT_SERVICES_TO_THE_SOFTWARE = 30_430
113
+
114
+ # Digital Products
115
+
116
+ # Digital Products: Products Transferred Electronically
117
+ PRODUCTS_TRANSFERRED_ELECTRONICALLY = 31_000
118
+ # Digital Products: Audio-Visual Works
119
+ AUDIO_VISUAL_WORKS = 31_035
120
+ # Digital Products: Digital Audio Visual Works (with rights for permanent use)
121
+ DIGITAL_AUDIO_VISUAL_WORKS_WITH_RIGHTS_FOR_PERMANENT_USE = 31_040
122
+ # Digital Products: Digital Audio Visual Works (with rights of less than permanent use)
123
+ DIGITAL_AUDIO_VISUAL_WORKS_WITH_RIGHTS_OF_LESS_THAN_PERMANENT_USE = 31_050
124
+ # Digital Products: Digital Audio Visual Works (with rights conditioned on continued payments)
125
+ DIGITAL_AUDIO_VISUAL_WORKS_WITH_RIGHTS_CONDITIONED_ON_CONTINUED_PAYMENTS = 31_060
126
+ # Digital Products: Digital Audio Visual Works sold to users other than the end user
127
+ DIGITAL_AUDIO_VISUAL_WORKS_SOLD_TO_USERS_OTHER_THAN_THE_END_USER = 31_065
128
+ # Digital Products: Audio Works
129
+ AUDIO_WORKS = 31_069
130
+ # Digital Products: Digital Audio Works (with rights for permanent use)
131
+ DIGITAL_AUDIO_WORKS_WITH_RIGHTS_FOR_PERMANENT_USE = 31_070
132
+ # Digital Products: Digital Audio Works (with rights of less than permanent use)
133
+ DIGITAL_AUDIO_WORKS_WITH_RIGHTS_OF_LESS_THAN_PERMANENT_USE = 31_080
134
+ # Digital Products: Digital Audio Works (with rights conditioned on continued payments)
135
+ DIGITAL_AUDIO_WORKS_WITH_RIGHTS_CONDITIONED_ON_CONTINUED_PAYMENTS = 31_090
136
+ # Digital Products: Digital Audio Works sold to users other than the end user
137
+ DIGITAL_AUDIO_WORKS_SOLD_TO_USERS_OTHER_THAN_THE_END_USER = 31_095
138
+ # Digital Products: Digital Books
139
+ DIGITAL_BOOKS = 31_099
140
+ # Digital Products: Digital Books (with rights for permanent use)
141
+ DIGITAL_BOOKS_WITH_RIGHTS_FOR_PERMANENT_USE = 31_100
142
+ # Digital Products: Digital Books (with rights of less than permanent use)
143
+ DIGITAL_BOOKS_WITH_RIGHTS_OF_LESS_THAN_PERMANENT_USE = 31_110
144
+ # Digital Products: Digital Books (with rights conditioned on continued payments)
145
+ DIGITAL_BOOKS_WITH_RIGHTS_CONDITIONED_ON_CONTINUED_PAYMENTS = 31_120
146
+ # Digital Products: Digital Books sold to users other than the end user
147
+ DIGITAL_BOOKS_SOLD_TO_USERS_OTHER_THAN_THE_END_USER = 31_125
148
+
149
+ # Food and Food Products
150
+
151
+ # Food and Food Products: Candy
152
+ CANDY = 40_010
153
+ # Food and Food Products: Dietary Supplements
154
+ DIETARY_SUPPLEMENTS = 40_020
155
+ # Food and Food Products: Food and food ingredients excluding alcoholic beverages and tobacco
156
+ FOOD_AND_FOOD_INGREDIENTS_EXCLUDING_ALCOHOLIC_BEVERAGES_AND_TOBACCO = 40_030
157
+ # Food and Food Products: Food sold through vending machines
158
+ FOOD_SOLD_THROUGH_VENDING_MACHINES = 40_040
159
+ # Food and Food Products: Soft Drinks
160
+ SOFT_DRINKS = 40_050
161
+ # Food and Food Products: Bottled Water
162
+ BOTTLED_WATER = 40_060
163
+
164
+ # Prepared Food
165
+
166
+ # Prepared Food: Prepared Food
167
+ PREPARED_FOOD = 41_000
168
+ # Prepared Food: Food sold without eating utensils provided by the seller whose primary NAICS classification is manufacturing in sector 311, except subsector 3118 (bakeries)
169
+ FOOD_SOLD_WITHOUT_EATING_UTENSILS_PROVIDED_BY_THE_SELLER_WHOSE_PRIMARY_NAICS_CLASSIFICATION_IS_MANUFACTURING_IN_SECTOR_311_EXCEPT_SUBSECTOR_3118_BAKERIES = 41_010
170
+ # Prepared Food: Food sold without eating utensils provided by the seller in an unheated state by weight or volume as a single item
171
+ FOOD_SOLD_WITHOUT_EATING_UTENSILS_PROVIDED_BY_THE_SELLER_IN_AN_UNHEATED_STATE_BY_WEIGHT_OR_VOLUME_AS_A_SINGLE_ITEM = 41_020
172
+ # Prepared Food: Bakery items sold without eating utensils provided by the seller, including bread, rolls, buns, biscuits, bagels, croissants, pastries, donuts, Danish, cakes, tortes, pies, tarts, muffins, bars, cookies, tortillas
173
+ BAKERY_ITEMS_SOLD_WITHOUT_EATING_UTENSILS_PROVIDED_BY_THE_SELLER_INCLUDING_BREAD_ROLLS_BUNS_BISCUITS_BAGELS_CROISSANTS_PASTRIES_DONUTS_DANISH_CAKES_TORTES_PIES_TARTS_MUFFINS_BARS_COOKIES_TORTILLAS = 41_030
174
+
175
+ # Drugs
176
+
177
+ # Drugs: Drugs/Pharmaceuticals
178
+ DRUGS_PHARMACEUTICALS = 51_000
179
+ # Drugs: Human use
180
+ HUMAN_USE = 51_001
181
+ # Drugs: Animal/Veterinary use
182
+ ANIMAL_VETERINARY_USE = 51_002
183
+ # Drugs: Drugs for human use without a prescription
184
+ DRUGS_FOR_HUMAN_USE_WITHOUT_A_PRESCRIPTION = 51_010
185
+ # Drugs: Drugs for human use with a prescription
186
+ DRUGS_FOR_HUMAN_USE_WITH_A_PRESCRIPTION = 51_020
187
+ # Drugs: Drugs for animal use without a prescription
188
+ DRUGS_FOR_ANIMAL_USE_WITHOUT_A_PRESCRIPTION = 51_030
189
+ # Drugs: Drugs for animal use with a prescription
190
+ DRUGS_FOR_ANIMAL_USE_WITH_A_PRESCRIPTION = 51_040
191
+ # Drugs: Insulin for human use without a prescription
192
+ INSULIN_FOR_HUMAN_USE_WITHOUT_A_PRESCRIPTION = 51_050
193
+ # Drugs: Insulin
194
+ INSULIN = 51_055
195
+ # Drugs: Insulin for human use with a prescription
196
+ INSULIN_FOR_HUMAN_USE_WITH_A_PRESCRIPTION = 51_060
197
+ # Drugs: Insulin for animal use without a prescription
198
+ INSULIN_FOR_ANIMAL_USE_WITHOUT_A_PRESCRIPTION = 51_070
199
+ # Drugs: Insulin
200
+ INSULIN_1 = 51_075
201
+ # Drugs: Insulin for animal use with a prescription
202
+ INSULIN_FOR_ANIMAL_USE_WITH_A_PRESCRIPTION = 51_080
203
+ # Drugs: Medical oxygen for human use without a prescription
204
+ MEDICAL_OXYGEN_FOR_HUMAN_USE_WITHOUT_A_PRESCRIPTION = 51_090
205
+ # Drugs: Oxygen
206
+ OXYGEN = 51_095
207
+ # Drugs: Medical oxygen for human use with a prescription
208
+ MEDICAL_OXYGEN_FOR_HUMAN_USE_WITH_A_PRESCRIPTION = 51_100
209
+ # Drugs: Medical oxygen for animal use without a prescription
210
+ MEDICAL_OXYGEN_FOR_ANIMAL_USE_WITHOUT_A_PRESCRIPTION = 51_110
211
+ # Drugs: Oxygen
212
+ OXYGEN_1 = 51_115
213
+ # Drugs: Medical oxygen for animal use with a prescription
214
+ MEDICAL_OXYGEN_FOR_ANIMAL_USE_WITH_A_PRESCRIPTION = 51_120
215
+ # Drugs: Over-the-counter drugs for human use without a prescription
216
+ OVER_THE_COUNTER_DRUGS_FOR_HUMAN_USE_WITHOUT_A_PRESCRIPTION = 51_130
217
+ # Drugs: Over-the-counter
218
+ OVER_THE_COUNTER = 51_135
219
+ # Drugs: Over-the-counter drugs for human use with a prescription
220
+ OVER_THE_COUNTER_DRUGS_FOR_HUMAN_USE_WITH_A_PRESCRIPTION = 51_140
221
+ # Drugs: Over-the-counter drugs for animal use without a prescription
222
+ OVER_THE_COUNTER_DRUGS_FOR_ANIMAL_USE_WITHOUT_A_PRESCRIPTION = 51_150
223
+ # Drugs: Over-the-counter
224
+ OVER_THE_COUNTER_1 = 51_155
225
+ # Drugs: Over-the-counter drugs for animal use with a prescription
226
+ OVER_THE_COUNTER_DRUGS_FOR_ANIMAL_USE_WITH_A_PRESCRIPTION = 51_160
227
+ # Drugs: Grooming and hygiene products for human use
228
+ GROOMING_AND_HYGIENE_PRODUCTS_FOR_HUMAN_USE = 51_170
229
+ # Drugs: Grooming and hygiene products for animal use
230
+ GROOMING_AND_HYGIENE_PRODUCTS_FOR_ANIMAL_USE = 51_180
231
+ # Drugs: Drugs for human use to hospitals
232
+ DRUGS_FOR_HUMAN_USE_TO_HOSPITALS = 51_190
233
+ # Drugs: Drugs for human use to other medical facilities
234
+ DRUGS_FOR_HUMAN_USE_TO_OTHER_MEDICAL_FACILITIES = 51_195
235
+ # Drugs: Prescription drugs for human use to hospitals
236
+ PRESCRIPTION_DRUGS_FOR_HUMAN_USE_TO_HOSPITALS = 51_200
237
+ # Drugs: Prescription drugs for human use to other medical facilities
238
+ PRESCRIPTION_DRUGS_FOR_HUMAN_USE_TO_OTHER_MEDICAL_FACILITIES = 51_205
239
+ # Drugs: Drugs for animal use to veterinary hospitals and other animal medical facilities
240
+ DRUGS_FOR_ANIMAL_USE_TO_VETERINARY_HOSPITALS_AND_OTHER_ANIMAL_MEDICAL_FACILITIES = 51_210
241
+ # Drugs: Prescription drugs for animal use to hospitals and other animal medical facilities
242
+ PRESCRIPTION_DRUGS_FOR_ANIMAL_USE_TO_HOSPITALS_AND_OTHER_ANIMAL_MEDICAL_FACILITIES = 51_220
243
+ # Drugs: Free samples of drugs for human use
244
+ FREE_SAMPLES_OF_DRUGS_FOR_HUMAN_USE = 51_240
245
+ # Drugs: Free Samples
246
+ FREE_SAMPLES = 51_245
247
+ # Drugs: Free samples of prescription drugs for human use
248
+ FREE_SAMPLES_OF_PRESCRIPTION_DRUGS_FOR_HUMAN_USE = 51_250
249
+ # Drugs: Free samples of drugs for animal use
250
+ FREE_SAMPLES_OF_DRUGS_FOR_ANIMAL_USE = 51_260
251
+ # Drugs: Free Samples
252
+ FREE_SAMPLES_1 = 51_265
253
+ # Drugs: Free samples of prescription drugs for animal use
254
+ FREE_SAMPLES_OF_PRESCRIPTION_DRUGS_FOR_ANIMAL_USE = 51_270
255
+
256
+ # Durable Medical Equipment
257
+
258
+ # Durable Medical Equipment: Durable medical equipment
259
+ DURABLE_MEDICAL_EQUIPMENT = 52_000
260
+ # Durable Medical Equipment: for Commercial/Industrial/Civic use
261
+ FOR_COMMERCIAL_INDUSTRIAL_CIVIC_USE = 52_005
262
+ # Durable Medical Equipment: Durable medical equipment without a prescription
263
+ DURABLE_MEDICAL_EQUIPMENT_WITHOUT_A_PRESCRIPTION = 52_010
264
+ # Durable Medical Equipment: Durable medical equipment with a prescription
265
+ DURABLE_MEDICAL_EQUIPMENT_WITH_A_PRESCRIPTION = 52_020
266
+ # Durable Medical Equipment: Durable medical equipment with a prescription paid for by Medicare
267
+ DURABLE_MEDICAL_EQUIPMENT_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 52_030
268
+ # Durable Medical Equipment: Durable medical equipment with a prescription reimbursed by Medicare
269
+ DURABLE_MEDICAL_EQUIPMENT_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 52_040
270
+ # Durable Medical Equipment: Durable medical equipment with a prescription paid for by MedicaidAppendix E
271
+ DURABLE_MEDICAL_EQUIPMENT_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAIDAPPENDIX_E = 52_050
272
+ # Durable Medical Equipment: Durable medical equipment with a prescription reimbursed by Medicaid
273
+ DURABLE_MEDICAL_EQUIPMENT_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 52_060
274
+ # Durable Medical Equipment: for home use
275
+ FOR_HOME_USE = 52_065
276
+ # Durable Medical Equipment: Durable medical equipment for home use without a prescription
277
+ DURABLE_MEDICAL_EQUIPMENT_FOR_HOME_USE_WITHOUT_A_PRESCRIPTION = 52_070
278
+ # Durable Medical Equipment: Durable medical equipment for home use with a prescription
279
+ DURABLE_MEDICAL_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION = 52_080
280
+ # Durable Medical Equipment: Durable medical equipment for home use with a prescription paid for by Medicare
281
+ DURABLE_MEDICAL_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 52_090
282
+ # Durable Medical Equipment: Durable medical equipment for home use with a prescription reimbursed by Medicare
283
+ DURABLE_MEDICAL_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 52_100
284
+ # Durable Medical Equipment: Durable medical equipment for home use with a prescription paid for by Medicaid
285
+ DURABLE_MEDICAL_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 52_110
286
+ # Durable Medical Equipment: Durable medical equipment for home use with a prescription reimbursed by Medicaid
287
+ DURABLE_MEDICAL_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 52_120
288
+ # Durable Medical Equipment: Oxygen delivery equipment
289
+ OXYGEN_DELIVERY_EQUIPMENT = 52_125
290
+ # Durable Medical Equipment: for Commercial/Industrial/Civic use
291
+ FOR_COMMERCIAL_INDUSTRIAL_CIVIC_USE_1 = 52_128
292
+ # Durable Medical Equipment: Oxygen delivery equipment without a prescription
293
+ OXYGEN_DELIVERY_EQUIPMENT_WITHOUT_A_PRESCRIPTION = 52_130
294
+ # Durable Medical Equipment: Oxygen delivery equipment with a prescription
295
+ OXYGEN_DELIVERY_EQUIPMENT_WITH_A_PRESCRIPTION = 52_140
296
+ # Durable Medical Equipment: Oxygen delivery equipment with a prescription paid for by Medicare
297
+ OXYGEN_DELIVERY_EQUIPMENT_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 52_150
298
+ # Durable Medical Equipment: Oxygen delivery equipment with a prescription reimbursed by Medicare
299
+ OXYGEN_DELIVERY_EQUIPMENT_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 52_160
300
+ # Durable Medical Equipment: Oxygen delivery equipment with a prescription paid for by Medicaid
301
+ OXYGEN_DELIVERY_EQUIPMENT_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 52_170
302
+ # Durable Medical Equipment: Oxygen delivery equipment with a prescription reimbursed by Medicaid
303
+ OXYGEN_DELIVERY_EQUIPMENT_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 52_180
304
+ # Durable Medical Equipment: for home use
305
+ FOR_HOME_USE_1 = 52_185
306
+ # Durable Medical Equipment: Oxygen delivery equipment for home use without a prescription
307
+ OXYGEN_DELIVERY_EQUIPMENT_FOR_HOME_USE_WITHOUT_A_PRESCRIPTION = 52_190
308
+ # Durable Medical Equipment: Oxygen delivery equipment for home use with a prescription
309
+ OXYGEN_DELIVERY_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION = 52_200
310
+ # Durable Medical Equipment: Oxygen delivery equipment with a prescription for home use paid for by Medicare
311
+ OXYGEN_DELIVERY_EQUIPMENT_WITH_A_PRESCRIPTION_FOR_HOME_USE_PAID_FOR_BY_MEDICARE = 52_210
312
+ # Durable Medical Equipment: Oxygen delivery equipment with a prescription for home use reimbursed by Medicare
313
+ OXYGEN_DELIVERY_EQUIPMENT_WITH_A_PRESCRIPTION_FOR_HOME_USE_REIMBURSED_BY_MEDICARE = 52_220
314
+ # Durable Medical Equipment: Oxygen delivery equipment with a prescription for home use paid for by Medicaid
315
+ OXYGEN_DELIVERY_EQUIPMENT_WITH_A_PRESCRIPTION_FOR_HOME_USE_PAID_FOR_BY_MEDICAID = 52_230
316
+ # Durable Medical Equipment: Oxygen delivery equipment with a prescription for home use reimbursed by Medicaid
317
+ OXYGEN_DELIVERY_EQUIPMENT_WITH_A_PRESCRIPTION_FOR_HOME_USE_REIMBURSED_BY_MEDICAID = 52_240
318
+ # Durable Medical Equipment: Kidney dialysis equipment
319
+ KIDNEY_DIALYSIS_EQUIPMENT = 52_245
320
+ # Durable Medical Equipment: for Commercial/Industrial/Civic use
321
+ FOR_COMMERCIAL_INDUSTRIAL_CIVIC_USE_2 = 52_248
322
+ # Durable Medical Equipment: Kidney dialysis equipment without a prescription
323
+ KIDNEY_DIALYSIS_EQUIPMENT_WITHOUT_A_PRESCRIPTION = 52_250
324
+ # Durable Medical Equipment: Kidney dialysis equipment with a prescription
325
+ KIDNEY_DIALYSIS_EQUIPMENT_WITH_A_PRESCRIPTION = 52_260
326
+ # Durable Medical Equipment: Kidney dialysis equipment with a prescription paid for by Medicare
327
+ KIDNEY_DIALYSIS_EQUIPMENT_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 52_270
328
+ # Durable Medical Equipment: Kidney dialysis equipment with a prescription reimbursed by Medicare
329
+ KIDNEY_DIALYSIS_EQUIPMENT_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 52_280
330
+ # Durable Medical Equipment: Kidney dialysis equipment with a prescription paid for by Medicaid
331
+ KIDNEY_DIALYSIS_EQUIPMENT_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 52_290
332
+ # Durable Medical Equipment: Kidney dialysis equipment with a prescription reimbursed by Medicaid
333
+ KIDNEY_DIALYSIS_EQUIPMENT_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 52_300
334
+ # Durable Medical Equipment: for home use
335
+ FOR_HOME_USE_2 = 52_305
336
+ # Durable Medical Equipment: Kidney dialysis equipment for home use without a prescription
337
+ KIDNEY_DIALYSIS_EQUIPMENT_FOR_HOME_USE_WITHOUT_A_PRESCRIPTION = 52_310
338
+ # Durable Medical Equipment: Kidney dialysis equipment for home use with a prescription
339
+ KIDNEY_DIALYSIS_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION = 52_320
340
+ # Durable Medical Equipment: Kidney dialysis equipment for home use with a prescription paid for by Medicare
341
+ KIDNEY_DIALYSIS_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 52_330
342
+ # Durable Medical Equipment: Kidney dialysis equipment for home use with a prescription reimbursed by Medicare
343
+ KIDNEY_DIALYSIS_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 52_340
344
+ # Durable Medical Equipment: Kidney dialysis equipment for home use with a prescription paid for by Medicaid
345
+ KIDNEY_DIALYSIS_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 52_350
346
+ # Durable Medical Equipment: Kidney dialysis equipment for home use with a prescription reimbursed by Medicaid
347
+ KIDNEY_DIALYSIS_EQUIPMENT_FOR_HOME_USE_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 52_360
348
+ # Durable Medical Equipment: Enteral feeding systems
349
+ ENTERAL_FEEDING_SYSTEMS = 52_365
350
+ # Durable Medical Equipment: for Commercial/Industrial/Civic use
351
+ FOR_COMMERCIAL_INDUSTRIAL_CIVIC_USE_3 = 52_368
352
+ # Durable Medical Equipment: Enteral feeding systems without a prescription
353
+ ENTERAL_FEEDING_SYSTEMS_WITHOUT_A_PRESCRIPTION = 52_370
354
+ # Durable Medical Equipment: Enteral feeding systems with a prescription
355
+ ENTERAL_FEEDING_SYSTEMS_WITH_A_PRESCRIPTION = 52_380
356
+ # Durable Medical Equipment: Enteral feeding systems with a prescription paid for by Medicare
357
+ ENTERAL_FEEDING_SYSTEMS_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 52_390
358
+ # Durable Medical Equipment: Enteral feeding systems with a prescription reimbursed by Medicare
359
+ ENTERAL_FEEDING_SYSTEMS_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 52_400
360
+ # Durable Medical Equipment: Enteral feeding systems with a prescription paid for by Medicaid
361
+ ENTERAL_FEEDING_SYSTEMS_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 52_410
362
+ # Durable Medical Equipment: Enteral feeding systems with a prescription reimbursed by Medicaid
363
+ ENTERAL_FEEDING_SYSTEMS_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 52_420
364
+ # Durable Medical Equipment: for home use
365
+ FOR_HOME_USE_3 = 52_425
366
+ # Durable Medical Equipment: Enteral feeding systems for home use without a prescription
367
+ ENTERAL_FEEDING_SYSTEMS_FOR_HOME_USE_WITHOUT_A_PRESCRIPTION = 52_430
368
+ # Durable Medical Equipment: Enteral feeding systems for home use with a prescription
369
+ ENTERAL_FEEDING_SYSTEMS_FOR_HOME_USE_WITH_A_PRESCRIPTION = 52_440
370
+ # Durable Medical Equipment: Enteral feeding systems for home use with a prescription paid for by Medicare
371
+ ENTERAL_FEEDING_SYSTEMS_FOR_HOME_USE_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 52_450
372
+ # Durable Medical Equipment: Enteral feeding systems for home use with a prescription reimbursed by Medicare
373
+ ENTERAL_FEEDING_SYSTEMS_FOR_HOME_USE_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 52_460
374
+ # Durable Medical Equipment: Enteral feeding systems for home use with a prescription paid for by Medicaid
375
+ ENTERAL_FEEDING_SYSTEMS_FOR_HOME_USE_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 52_470
376
+ # Durable Medical Equipment: Enteral feeding systems for home use with a prescription reimbursed by Medicaid
377
+ ENTERAL_FEEDING_SYSTEMS_FOR_HOME_USE_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 52_480
378
+ # Durable Medical Equipment: Repair and replacement parts for durable medical equipment which are for single patient use
379
+ REPAIR_AND_REPLACEMENT_PARTS_FOR_DURABLE_MEDICAL_EQUIPMENT_WHICH_ARE_FOR_SINGLE_PATIENT_USE = 52_490
380
+
381
+ # Mobilty Enhancing Equipment
382
+
383
+ # Mobilty Enhancing Equipment: Mobility enhancing equipment
384
+ MOBILITY_ENHANCING_EQUIPMENT = 53_000
385
+ # Mobilty Enhancing Equipment: Mobility enhancing equipment without a prescription
386
+ MOBILITY_ENHANCING_EQUIPMENT_WITHOUT_A_PRESCRIPTION = 53_010
387
+ # Mobilty Enhancing Equipment: Mobility enhancing equipment with a prescriptionAppendix E
388
+ MOBILITY_ENHANCING_EQUIPMENT_WITH_A_PRESCRIPTIONAPPENDIX_E = 53_020
389
+ # Mobilty Enhancing Equipment: Mobility enhancing equipment with a prescription paid for by Medicare
390
+ MOBILITY_ENHANCING_EQUIPMENT_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 53_030
391
+ # Mobilty Enhancing Equipment: Mobility enhancing equipment with a prescription reimbursed by Medicare
392
+ MOBILITY_ENHANCING_EQUIPMENT_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 53_040
393
+ # Mobilty Enhancing Equipment: Mobility enhancing equipment with a prescription paid for by Medicaid
394
+ MOBILITY_ENHANCING_EQUIPMENT_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 53_050
395
+ # Mobilty Enhancing Equipment: Mobility enhancing equipment with a prescription reimbursed by Medicaid
396
+ MOBILITY_ENHANCING_EQUIPMENT_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 53_060
397
+
398
+ # Prosthetic Devices
399
+
400
+ # Prosthetic Devices: Prosthetic devices
401
+ PROSTHETIC_DEVICES = 54_000
402
+ # Prosthetic Devices: Prosthetic devices without a prescription
403
+ PROSTHETIC_DEVICES_WITHOUT_A_PRESCRIPTION = 54_010
404
+ # Prosthetic Devices: Prosthetic devices with a prescription
405
+ PROSTHETIC_DEVICES_WITH_A_PRESCRIPTION = 54_020
406
+ # Prosthetic Devices: Prosthetic devices paid with a prescription for by Medicare
407
+ PROSTHETIC_DEVICES_PAID_WITH_A_PRESCRIPTION_FOR_BY_MEDICARE = 54_030
408
+ # Prosthetic Devices: Prosthetic devices with a prescription reimbursed by Medicare
409
+ PROSTHETIC_DEVICES_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 54_040
410
+ # Prosthetic Devices: Prosthetic devices with a prescription paid for by Medicaid
411
+ PROSTHETIC_DEVICES_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 54_050
412
+ # Prosthetic Devices: Prosthetic devices with a prescription reimbursed by Medicaid
413
+ PROSTHETIC_DEVICES_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 54_060
414
+ # Prosthetic Devices: Corrective eyeglasses
415
+ CORRECTIVE_EYEGLASSES = 54_065
416
+ # Prosthetic Devices: Corrective eyeglasses without a prescription
417
+ CORRECTIVE_EYEGLASSES_WITHOUT_A_PRESCRIPTION = 54_070
418
+ # Prosthetic Devices: Corrective eyeglasses with a prescription
419
+ CORRECTIVE_EYEGLASSES_WITH_A_PRESCRIPTION = 54_080
420
+ # Prosthetic Devices: Corrective eyeglasses with a prescription paid for by Medicare
421
+ CORRECTIVE_EYEGLASSES_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 54_090
422
+ # Prosthetic Devices: Corrective eyeglasses with a prescription reimbursed by Medicare
423
+ CORRECTIVE_EYEGLASSES_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 54_100
424
+ # Prosthetic Devices: Corrective eyeglasses with a prescription paid for by Medicaid
425
+ CORRECTIVE_EYEGLASSES_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 54_110
426
+ # Prosthetic Devices: Corrective eyeglasses with a prescription reimbursed by Medicaid
427
+ CORRECTIVE_EYEGLASSES_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 54_120
428
+ # Prosthetic Devices: Contact lenses
429
+ CONTACT_LENSES = 54_125
430
+ # Prosthetic Devices: Contact lenses without a prescription
431
+ CONTACT_LENSES_WITHOUT_A_PRESCRIPTION = 54_130
432
+ # Prosthetic Devices: Contact lenses with a prescription
433
+ CONTACT_LENSES_WITH_A_PRESCRIPTION = 54_140
434
+ # Prosthetic Devices: Contact lenses with a prescription paid for by Medicare
435
+ CONTACT_LENSES_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 54_150
436
+ # Prosthetic Devices: Contact lenses with a prescription reimbursed by Medicare
437
+ CONTACT_LENSES_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 54_160
438
+ # Prosthetic Devices: Contact lenses with a prescription paid for by Medicaid
439
+ CONTACT_LENSES_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 54_170
440
+ # Prosthetic Devices: Contact lenses with a prescription reimbursed by Medicaid
441
+ CONTACT_LENSES_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 54_180
442
+ # Prosthetic Devices: Hearing aids
443
+ HEARING_AIDS = 54_185
444
+ # Prosthetic Devices: Hearing aids without a prescription
445
+ HEARING_AIDS_WITHOUT_A_PRESCRIPTION = 54_190
446
+ # Prosthetic Devices: Hearing aids with a prescription
447
+ HEARING_AIDS_WITH_A_PRESCRIPTION = 54_200
448
+ # Prosthetic Devices: Hearing aids with a prescription paid for by Medicare
449
+ HEARING_AIDS_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 54_210
450
+ # Prosthetic Devices: Hearing aids with a prescription reimbursed by Medicare
451
+ HEARING_AIDS_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 54_220
452
+ # Prosthetic Devices: Hearing aids with a prescription paid for by Medicaid
453
+ HEARING_AIDS_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 54_230
454
+ # Prosthetic Devices: Hearing aids with a prescription reimbursed by Medicaid
455
+ HEARING_AIDS_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 54_240
456
+ # Prosthetic Devices: Dental prosthesis
457
+ DENTAL_PROSTHESIS = 54_245
458
+ # Prosthetic Devices: Dental prosthesis without a prescription
459
+ DENTAL_PROSTHESIS_WITHOUT_A_PRESCRIPTION = 54_250
460
+ # Prosthetic Devices: Dental prosthesis with a prescription
461
+ DENTAL_PROSTHESIS_WITH_A_PRESCRIPTION = 54_260
462
+ # Prosthetic Devices: Dental prosthesis with a prescription paid for by Medicare
463
+ DENTAL_PROSTHESIS_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICARE = 54_270
464
+ # Prosthetic Devices: Dental prosthesis with a prescription reimbursed by Medicare
465
+ DENTAL_PROSTHESIS_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICARE = 54_280
466
+ # Prosthetic Devices: Dental prosthesis with a prescription paid for by Medicaid
467
+ DENTAL_PROSTHESIS_WITH_A_PRESCRIPTION_PAID_FOR_BY_MEDICAID = 54_290
468
+ # Prosthetic Devices: Dental prosthesis with a prescription reimbursed by Medicaid
469
+ DENTAL_PROSTHESIS_WITH_A_PRESCRIPTION_REIMBURSED_BY_MEDICAID = 54_300
470
+
471
+ # Telecommunications
472
+
473
+ # Telecommunications: Ancillary Services
474
+ ANCILLARY_SERVICES = 60_010
475
+ # Telecommunications: Conference bridging service
476
+ CONFERENCE_BRIDGING_SERVICE = 60_020
477
+ # Telecommunications: Detailed telecommunications billing service
478
+ DETAILED_TELECOMMUNICATIONS_BILLING_SERVICE = 60_030
479
+ # Telecommunications: Directory assistance
480
+ DIRECTORY_ASSISTANCE = 60_040
481
+ # Telecommunications: Vertical service
482
+ VERTICAL_SERVICE = 60_050
483
+ # Telecommunications: Voice mail service
484
+ VOICE_MAIL_SERVICE = 60_060
485
+ # Telecommunications: Intrastate Telecommunications Service
486
+ INTRASTATE_TELECOMMUNICATIONS_SERVICE = 61_000
487
+ # Telecommunications: Interstate Telecommunications ServiceAppendix E
488
+ INTERSTATE_TELECOMMUNICATIONS_SERVICEAPPENDIX_E = 61_010
489
+ # Telecommunications: International Telecommunications Service
490
+ INTERNATIONAL_TELECOMMUNICATIONS_SERVICE = 61_020
491
+ # Telecommunications: International 800 service
492
+ INTERNATIONAL_800_SERVICE = 61_030
493
+ # Telecommunications: International 900 service
494
+ INTERNATIONAL_900_SERVICE = 61_040
495
+ # Telecommunications: International fixed wireless service
496
+ INTERNATIONAL_FIXED_WIRELESS_SERVICE = 61_050
497
+ # Telecommunications: International mobile wireless service
498
+ INTERNATIONAL_MOBILE_WIRELESS_SERVICE = 61_060
499
+ # Telecommunications: International paging service
500
+ INTERNATIONAL_PAGING_SERVICE = 61_070
501
+ # Telecommunications: International prepaid calling service
502
+ INTERNATIONAL_PREPAID_CALLING_SERVICE = 61_080
503
+ # Telecommunications: International prepaid wireless calling service
504
+ INTERNATIONAL_PREPAID_WIRELESS_CALLING_SERVICE = 61_090
505
+ # Telecommunications: International private communications service
506
+ INTERNATIONAL_PRIVATE_COMMUNICATIONS_SERVICE = 61_100
507
+ # Telecommunications: International value-added non-voice data service
508
+ INTERNATIONAL_VALUE_ADDED_NON_VOICE_DATA_SERVICE = 61_110
509
+ # Telecommunications: International residential telecommunications service
510
+ INTERNATIONAL_RESIDENTIAL_TELECOMMUNICATIONS_SERVICE = 61_120
511
+ # Telecommunications: Interstate 800 service
512
+ INTERSTATE_800_SERVICE = 61_130
513
+ # Telecommunications: Interstate 900 service
514
+ INTERSTATE_900_SERVICE = 61_140
515
+ # Telecommunications: Interstate fixed wireless service
516
+ INTERSTATE_FIXED_WIRELESS_SERVICE = 61_150
517
+ # Telecommunications: Interstate mobile wireless service
518
+ INTERSTATE_MOBILE_WIRELESS_SERVICE = 61_160
519
+ # Telecommunications: Interstate paging service
520
+ INTERSTATE_PAGING_SERVICE = 61_170
521
+ # Telecommunications: Interstate prepaid calling service
522
+ INTERSTATE_PREPAID_CALLING_SERVICE = 61_180
523
+ # Telecommunications: Interstate prepaid wireless calling service
524
+ INTERSTATE_PREPAID_WIRELESS_CALLING_SERVICE = 61_190
525
+ # Telecommunications: Interstate private communications service
526
+ INTERSTATE_PRIVATE_COMMUNICATIONS_SERVICE = 61_200
527
+ # Telecommunications: Interstate value-added non-voice data service
528
+ INTERSTATE_VALUE_ADDED_NON_VOICE_DATA_SERVICE = 61_210
529
+ # Telecommunications: Interstate residential telecommunications service
530
+ INTERSTATE_RESIDENTIAL_TELECOMMUNICATIONS_SERVICE = 61_220
531
+ # Telecommunications: Intrastate 800 service
532
+ INTRASTATE_800_SERVICE = 61_230
533
+ # Telecommunications: Intrastate 900 service
534
+ INTRASTATE_900_SERVICE = 61_240
535
+ # Telecommunications: Intrastate fixed wireless service
536
+ INTRASTATE_FIXED_WIRELESS_SERVICE = 61_250
537
+ # Telecommunications: Intrastate mobile wireless service
538
+ INTRASTATE_MOBILE_WIRELESS_SERVICE = 61_260
539
+ # Telecommunications: Intrastate paging service
540
+ INTRASTATE_PAGING_SERVICE = 61_270
541
+ # Telecommunications: Intrastate prepaid calling service
542
+ INTRASTATE_PREPAID_CALLING_SERVICE = 61_280
543
+ # Telecommunications: Intrastate prepaid wireless calling service
544
+ INTRASTATE_PREPAID_WIRELESS_CALLING_SERVICE = 61_290
545
+ # Telecommunications: Intrastate private communications service
546
+ INTRASTATE_PRIVATE_COMMUNICATIONS_SERVICE = 61_300
547
+ # Telecommunications: Intrastate value-added non-voice data service
548
+ INTRASTATE_VALUE_ADDED_NON_VOICE_DATA_SERVICE = 61_310
549
+ # Telecommunications: Intrastate residential telecommunications service
550
+ INTRASTATE_RESIDENTIAL_TELECOMMUNICATIONS_SERVICE = 61_320
551
+ # Telecommunications: Paging service
552
+ PAGING_SERVICE = 61_325
553
+ # Telecommunications: Coin-operated telephone service
554
+ COIN_OPERATED_TELEPHONE_SERVICE = 61_330
555
+ # Telecommunications: Pay telephone service
556
+ PAY_TELEPHONE_SERVICE = 61_340
557
+ # Telecommunications: Local Service as defined by state
558
+ LOCAL_SERVICE_AS_DEFINED_BY_STATE = 61_350
559
+ end
560
+ end