tax_cloud 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. data/.travis.yml +9 -0
  2. data/CHANGELOG.rdoc +28 -0
  3. data/CONTRIBUTORS.txt +20 -0
  4. data/Gemfile +1 -1
  5. data/LICENSE.rdoc +22 -0
  6. data/README.rdoc +112 -28
  7. data/Rakefile +10 -2
  8. data/lib/config/locales/en.yml +34 -0
  9. data/lib/hash.rb +8 -6
  10. data/lib/savon_soap_xml.rb +33 -0
  11. data/lib/tasks/tax_cloud.rake +20 -0
  12. data/lib/tasks/tax_code_groups.rake +39 -0
  13. data/lib/tasks/tax_codes.rake +45 -0
  14. data/lib/tax_cloud.rb +43 -16
  15. data/lib/tax_cloud/address.rb +30 -17
  16. data/lib/tax_cloud/cart_item.rb +13 -19
  17. data/lib/tax_cloud/client.rb +48 -0
  18. data/lib/tax_cloud/configuration.rb +17 -2
  19. data/lib/tax_cloud/errors.rb +6 -0
  20. data/lib/tax_cloud/errors/api_error.rb +18 -0
  21. data/lib/tax_cloud/errors/missing_config_error.rb +13 -0
  22. data/lib/tax_cloud/errors/missing_config_option_error.rb +19 -0
  23. data/lib/tax_cloud/errors/soap_error.rb +33 -0
  24. data/lib/tax_cloud/errors/tax_cloud_error.rb +86 -0
  25. data/lib/tax_cloud/errors/unexpected_soap_response_error.rb +23 -0
  26. data/lib/tax_cloud/record.rb +14 -0
  27. data/lib/tax_cloud/responses.rb +13 -0
  28. data/lib/tax_cloud/responses/authorized.rb +10 -0
  29. data/lib/tax_cloud/responses/authorized_with_capture.rb +10 -0
  30. data/lib/tax_cloud/responses/base.rb +88 -0
  31. data/lib/tax_cloud/responses/captured.rb +11 -0
  32. data/lib/tax_cloud/responses/cart_item.rb +24 -0
  33. data/lib/tax_cloud/responses/generic.rb +35 -0
  34. data/lib/tax_cloud/responses/lookup.rb +41 -0
  35. data/lib/tax_cloud/responses/ping.rb +10 -0
  36. data/lib/tax_cloud/responses/returned.rb +10 -0
  37. data/lib/tax_cloud/responses/tax_code_groups.rb +33 -0
  38. data/lib/tax_cloud/responses/tax_codes.rb +33 -0
  39. data/lib/tax_cloud/responses/tax_codes_by_group.rb +33 -0
  40. data/lib/tax_cloud/responses/verify_address.rb +29 -0
  41. data/lib/tax_cloud/tax_code.rb +11 -0
  42. data/lib/tax_cloud/tax_code_constants.rb +562 -0
  43. data/lib/tax_cloud/tax_code_group.rb +30 -0
  44. data/lib/tax_cloud/tax_code_group_constants.rb +31 -0
  45. data/lib/tax_cloud/tax_code_groups.rb +28 -0
  46. data/lib/tax_cloud/tax_codes.rb +24 -47
  47. data/lib/tax_cloud/transaction.rb +39 -34
  48. data/lib/tax_cloud/version.rb +3 -3
  49. data/tax_cloud.gemspec +7 -5
  50. data/test/cassettes/authorized.yml +70 -45
  51. data/test/cassettes/authorized_with_capture.yml +70 -45
  52. data/test/cassettes/captured.yml +101 -67
  53. data/test/cassettes/get_tic_groups.yml +656 -0
  54. data/test/cassettes/get_tics.yml +952 -0
  55. data/test/cassettes/get_tics_by_group.yml +49 -0
  56. data/test/cassettes/invalid_soap_call.yml +651 -0
  57. data/test/cassettes/lookup.yml +644 -25
  58. data/test/cassettes/lookup_ny.yml +651 -0
  59. data/test/cassettes/ping.yml +647 -0
  60. data/test/cassettes/ping_with_invalid_credentials.yml +647 -0
  61. data/test/cassettes/ping_with_invalid_response.yml +647 -0
  62. data/test/cassettes/returned.yml +101 -67
  63. data/test/cassettes/verify_bad_address.yml +578 -976
  64. data/test/cassettes/verify_good_address.yml +36 -23
  65. data/test/helper.rb +4 -19
  66. data/test/test_address.rb +25 -7
  67. data/test/test_client.rb +29 -0
  68. data/test/test_configuration.rb +33 -0
  69. data/test/test_setup.rb +18 -0
  70. data/test/test_soap.rb +13 -0
  71. data/test/test_tax_code_groups.rb +31 -0
  72. data/test/test_tax_codes.rb +19 -0
  73. data/test/test_transaction.rb +22 -11
  74. data/test/test_transaction_ny.rb +27 -0
  75. data/test/vcr_setup.rb +9 -0
  76. metadata +134 -24
  77. data/lib/savon_xml_override.rb +0 -30
@@ -0,0 +1,647 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.taxcloud.net/1.0/?wsdl
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Cache-Control:
20
+ - private, max-age=0
21
+ Content-Type:
22
+ - text/xml; charset=utf-8
23
+ Server:
24
+ - Microsoft-IIS/7.0
25
+ X-Aspnet-Version:
26
+ - 4.0.30319
27
+ X-Powered-By:
28
+ - TaxCloud
29
+ Date:
30
+ - Sat, 24 Nov 2012 13:47:55 GMT
31
+ Content-Length:
32
+ - '44040'
33
+ body:
34
+ encoding: US-ASCII
35
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<wsdl:definitions xmlns:s=\"http://www.w3.org/2001/XMLSchema\"
36
+ xmlns:soap12=\"http://schemas.xmlsoap.org/wsdl/soap12/\" xmlns:mime=\"http://schemas.xmlsoap.org/wsdl/mime/\"
37
+ xmlns:tns=\"http://taxcloud.net\" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\"
38
+ xmlns:tm=\"http://microsoft.com/wsdl/mime/textMatching/\" xmlns:http=\"http://schemas.xmlsoap.org/wsdl/http/\"
39
+ xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" targetNamespace=\"http://taxcloud.net\"
40
+ xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\">\r\n <wsdl:documentation
41
+ xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\">TaxCloud Web Service</wsdl:documentation>\r\n
42
+ \ <wsdl:types>\r\n <s:schema elementFormDefault=\"qualified\" targetNamespace=\"http://taxcloud.net\">\r\n
43
+ \ <s:element name=\"VerifyAddress\">\r\n <s:complexType>\r\n <s:sequence>\r\n
44
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"uspsUserID\"
45
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
46
+ name=\"address1\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
47
+ maxOccurs=\"1\" name=\"address2\" type=\"s:string\" />\r\n <s:element
48
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"city\" type=\"s:string\" />\r\n <s:element
49
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"state\" type=\"s:string\" />\r\n <s:element
50
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"zip5\" type=\"s:string\" />\r\n <s:element
51
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"zip4\" type=\"s:string\" />\r\n </s:sequence>\r\n
52
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"VerifyAddressResponse\">\r\n
53
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
54
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"VerifyAddressResult\" type=\"tns:VerifiedAddress\"
55
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
56
+ \ <s:complexType name=\"VerifiedAddress\">\r\n <s:complexContent
57
+ mixed=\"false\">\r\n <s:extension base=\"tns:Address\">\r\n <s:sequence>\r\n
58
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"ErrNumber\"
59
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
60
+ name=\"ErrDescription\" type=\"s:string\" />\r\n </s:sequence>\r\n
61
+ \ </s:extension>\r\n </s:complexContent>\r\n </s:complexType>\r\n
62
+ \ <s:complexType name=\"Address\">\r\n <s:sequence>\r\n <s:element
63
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"Address1\" type=\"s:string\" />\r\n
64
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"Address2\" type=\"s:string\"
65
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"City\" type=\"s:string\"
66
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"State\"
67
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
68
+ name=\"Zip5\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
69
+ maxOccurs=\"1\" name=\"Zip4\" type=\"s:string\" />\r\n </s:sequence>\r\n
70
+ \ </s:complexType>\r\n <s:element name=\"LookupForDate\">\r\n <s:complexType>\r\n
71
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
72
+ name=\"apiLoginID\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
73
+ maxOccurs=\"1\" name=\"apiKey\" type=\"s:string\" />\r\n <s:element
74
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"customerID\" type=\"s:string\" />\r\n
75
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"cartID\" type=\"s:string\"
76
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"cartItems\"
77
+ type=\"tns:ArrayOfCartItem\" />\r\n <s:element minOccurs=\"0\"
78
+ maxOccurs=\"1\" name=\"origin\" type=\"tns:Address\" />\r\n <s:element
79
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"destination\" type=\"tns:Address\"
80
+ />\r\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"deliveredBySeller\"
81
+ type=\"s:boolean\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
82
+ name=\"exemptCert\" type=\"tns:ExemptionCertificate\" />\r\n <s:element
83
+ minOccurs=\"1\" maxOccurs=\"1\" name=\"useDate\" type=\"s:dateTime\" />\r\n
84
+ \ </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
85
+ \ <s:complexType name=\"ArrayOfCartItem\">\r\n <s:sequence>\r\n
86
+ \ <s:element minOccurs=\"0\" maxOccurs=\"unbounded\" name=\"CartItem\"
87
+ nillable=\"true\" type=\"tns:CartItem\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
88
+ \ <s:complexType name=\"CartItem\">\r\n <s:sequence>\r\n <s:element
89
+ minOccurs=\"1\" maxOccurs=\"1\" name=\"Index\" type=\"s:int\" />\r\n <s:element
90
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"ItemID\" type=\"s:string\" />\r\n <s:element
91
+ minOccurs=\"1\" maxOccurs=\"1\" name=\"TIC\" nillable=\"true\" type=\"s:int\"
92
+ />\r\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"Price\"
93
+ type=\"s:double\" />\r\n <s:element minOccurs=\"1\" maxOccurs=\"1\"
94
+ name=\"Qty\" type=\"s:float\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
95
+ \ <s:complexType name=\"ExemptionCertificate\">\r\n <s:sequence>\r\n
96
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"CertificateID\"
97
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
98
+ name=\"Detail\" type=\"tns:ExemptionCertificateDetail\" />\r\n </s:sequence>\r\n
99
+ \ </s:complexType>\r\n <s:complexType name=\"ExemptionCertificateDetail\">\r\n
100
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
101
+ name=\"ExemptStates\" type=\"tns:ArrayOfExemptState\" />\r\n <s:element
102
+ minOccurs=\"1\" maxOccurs=\"1\" name=\"SinglePurchase\" type=\"s:boolean\"
103
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"SinglePurchaseOrderNumber\"
104
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
105
+ name=\"PurchaserFirstName\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
106
+ maxOccurs=\"1\" name=\"PurchaserLastName\" type=\"s:string\" />\r\n <s:element
107
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"PurchaserTitle\" type=\"s:string\"
108
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"PurchaserAddress1\"
109
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
110
+ name=\"PurchaserAddress2\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
111
+ maxOccurs=\"1\" name=\"PurchaserCity\" type=\"s:string\" />\r\n <s:element
112
+ minOccurs=\"1\" maxOccurs=\"1\" name=\"PurchaserState\" type=\"tns:State\"
113
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"PurchaserZip\"
114
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
115
+ name=\"PurchaserTaxID\" type=\"tns:TaxID\" />\r\n <s:element minOccurs=\"1\"
116
+ maxOccurs=\"1\" name=\"PurchaserBusinessType\" type=\"tns:BusinessType\" />\r\n
117
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"PurchaserBusinessTypeOtherValue\"
118
+ type=\"s:string\" />\r\n <s:element minOccurs=\"1\" maxOccurs=\"1\"
119
+ name=\"PurchaserExemptionReason\" type=\"tns:ExemptionReason\" />\r\n <s:element
120
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"PurchaserExemptionReasonValue\" type=\"s:string\"
121
+ />\r\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"CreatedDate\"
122
+ type=\"s:dateTime\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
123
+ \ <s:complexType name=\"ArrayOfExemptState\">\r\n <s:sequence>\r\n
124
+ \ <s:element minOccurs=\"0\" maxOccurs=\"unbounded\" name=\"ExemptState\"
125
+ nillable=\"true\" type=\"tns:ExemptState\" />\r\n </s:sequence>\r\n
126
+ \ </s:complexType>\r\n <s:complexType name=\"ExemptState\">\r\n <s:sequence>\r\n
127
+ \ <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"StateAbbr\" type=\"tns:State\"
128
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"ReasonForExemption\"
129
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
130
+ name=\"IdentificationNumber\" type=\"s:string\" />\r\n </s:sequence>\r\n
131
+ \ </s:complexType>\r\n <s:simpleType name=\"State\">\r\n <s:restriction
132
+ base=\"s:string\">\r\n <s:enumeration value=\"AL\" />\r\n <s:enumeration
133
+ value=\"AK\" />\r\n <s:enumeration value=\"AZ\" />\r\n <s:enumeration
134
+ value=\"AR\" />\r\n <s:enumeration value=\"CA\" />\r\n <s:enumeration
135
+ value=\"CO\" />\r\n <s:enumeration value=\"CT\" />\r\n <s:enumeration
136
+ value=\"DE\" />\r\n <s:enumeration value=\"DC\" />\r\n <s:enumeration
137
+ value=\"FL\" />\r\n <s:enumeration value=\"GA\" />\r\n <s:enumeration
138
+ value=\"HI\" />\r\n <s:enumeration value=\"ID\" />\r\n <s:enumeration
139
+ value=\"IL\" />\r\n <s:enumeration value=\"IN\" />\r\n <s:enumeration
140
+ value=\"IA\" />\r\n <s:enumeration value=\"KS\" />\r\n <s:enumeration
141
+ value=\"KY\" />\r\n <s:enumeration value=\"LA\" />\r\n <s:enumeration
142
+ value=\"ME\" />\r\n <s:enumeration value=\"MD\" />\r\n <s:enumeration
143
+ value=\"MA\" />\r\n <s:enumeration value=\"MI\" />\r\n <s:enumeration
144
+ value=\"MN\" />\r\n <s:enumeration value=\"MS\" />\r\n <s:enumeration
145
+ value=\"MO\" />\r\n <s:enumeration value=\"MT\" />\r\n <s:enumeration
146
+ value=\"NE\" />\r\n <s:enumeration value=\"NV\" />\r\n <s:enumeration
147
+ value=\"NH\" />\r\n <s:enumeration value=\"NJ\" />\r\n <s:enumeration
148
+ value=\"NM\" />\r\n <s:enumeration value=\"NY\" />\r\n <s:enumeration
149
+ value=\"NC\" />\r\n <s:enumeration value=\"ND\" />\r\n <s:enumeration
150
+ value=\"OH\" />\r\n <s:enumeration value=\"OK\" />\r\n <s:enumeration
151
+ value=\"OR\" />\r\n <s:enumeration value=\"PA\" />\r\n <s:enumeration
152
+ value=\"RI\" />\r\n <s:enumeration value=\"SC\" />\r\n <s:enumeration
153
+ value=\"SD\" />\r\n <s:enumeration value=\"TN\" />\r\n <s:enumeration
154
+ value=\"TX\" />\r\n <s:enumeration value=\"UT\" />\r\n <s:enumeration
155
+ value=\"VT\" />\r\n <s:enumeration value=\"VA\" />\r\n <s:enumeration
156
+ value=\"WA\" />\r\n <s:enumeration value=\"WV\" />\r\n <s:enumeration
157
+ value=\"WI\" />\r\n <s:enumeration value=\"WY\" />\r\n </s:restriction>\r\n
158
+ \ </s:simpleType>\r\n <s:complexType name=\"TaxID\">\r\n <s:sequence>\r\n
159
+ \ <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"TaxType\" type=\"tns:TaxIDType\"
160
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"IDNumber\"
161
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
162
+ name=\"StateOfIssue\" type=\"s:string\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
163
+ \ <s:simpleType name=\"TaxIDType\">\r\n <s:restriction base=\"s:string\">\r\n
164
+ \ <s:enumeration value=\"SSN\" />\r\n <s:enumeration value=\"FEIN\"
165
+ />\r\n <s:enumeration value=\"StateIssued\" />\r\n <s:enumeration
166
+ value=\"ForeignDiplomat\" />\r\n </s:restriction>\r\n </s:simpleType>\r\n
167
+ \ <s:simpleType name=\"BusinessType\">\r\n <s:restriction base=\"s:string\">\r\n
168
+ \ <s:enumeration value=\"AccommodationAndFoodServices\" />\r\n <s:enumeration
169
+ value=\"Agricultural_Forestry_Fishing_Hunting\" />\r\n <s:enumeration
170
+ value=\"Construction\" />\r\n <s:enumeration value=\"FinanceAndInsurance\"
171
+ />\r\n <s:enumeration value=\"Information_PublishingAndCommunications\"
172
+ />\r\n <s:enumeration value=\"Manufacturing\" />\r\n <s:enumeration
173
+ value=\"Mining\" />\r\n <s:enumeration value=\"RealEstate\" />\r\n
174
+ \ <s:enumeration value=\"RentalAndLeasing\" />\r\n <s:enumeration
175
+ value=\"RetailTrade\" />\r\n <s:enumeration value=\"TransportationAndWarehousing\"
176
+ />\r\n <s:enumeration value=\"Utilities\" />\r\n <s:enumeration
177
+ value=\"WholesaleTrade\" />\r\n <s:enumeration value=\"BusinessServices\"
178
+ />\r\n <s:enumeration value=\"ProfessionalServices\" />\r\n <s:enumeration
179
+ value=\"EducationAndHealthCareServices\" />\r\n <s:enumeration value=\"NonprofitOrganization\"
180
+ />\r\n <s:enumeration value=\"Government\" />\r\n <s:enumeration
181
+ value=\"NotABusiness\" />\r\n <s:enumeration value=\"Other\" />\r\n
182
+ \ </s:restriction>\r\n </s:simpleType>\r\n <s:simpleType name=\"ExemptionReason\">\r\n
183
+ \ <s:restriction base=\"s:string\">\r\n <s:enumeration value=\"FederalGovernmentDepartment\"
184
+ />\r\n <s:enumeration value=\"StateOrLocalGovernmentName\" />\r\n
185
+ \ <s:enumeration value=\"TribalGovernmentName\" />\r\n <s:enumeration
186
+ value=\"ForeignDiplomat\" />\r\n <s:enumeration value=\"CharitableOrganization\"
187
+ />\r\n <s:enumeration value=\"ReligiousOrEducationalOrganization\"
188
+ />\r\n <s:enumeration value=\"Resale\" />\r\n <s:enumeration
189
+ value=\"AgriculturalProduction\" />\r\n <s:enumeration value=\"IndustrialProductionOrManufacturing\"
190
+ />\r\n <s:enumeration value=\"DirectPayPermit\" />\r\n <s:enumeration
191
+ value=\"DirectMail\" />\r\n <s:enumeration value=\"Other\" />\r\n
192
+ \ </s:restriction>\r\n </s:simpleType>\r\n <s:element name=\"LookupForDateResponse\">\r\n
193
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
194
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"LookupForDateResult\" type=\"tns:LookupRsp\"
195
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
196
+ \ <s:complexType name=\"LookupRsp\">\r\n <s:complexContent mixed=\"false\">\r\n
197
+ \ <s:extension base=\"tns:ResponseBase\">\r\n <s:sequence>\r\n
198
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"CartID\" type=\"s:string\"
199
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"CartItemsResponse\"
200
+ type=\"tns:ArrayOfCartItemResponse\" />\r\n </s:sequence>\r\n </s:extension>\r\n
201
+ \ </s:complexContent>\r\n </s:complexType>\r\n <s:complexType
202
+ name=\"ResponseBase\">\r\n <s:sequence>\r\n <s:element minOccurs=\"1\"
203
+ maxOccurs=\"1\" name=\"ResponseType\" type=\"tns:MessageType\" />\r\n <s:element
204
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"Messages\" type=\"tns:ArrayOfResponseMessage\"
205
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n <s:simpleType
206
+ name=\"MessageType\">\r\n <s:restriction base=\"s:string\">\r\n <s:enumeration
207
+ value=\"Error\" />\r\n <s:enumeration value=\"Warning\" />\r\n <s:enumeration
208
+ value=\"Informational\" />\r\n <s:enumeration value=\"OK\" />\r\n
209
+ \ </s:restriction>\r\n </s:simpleType>\r\n <s:complexType
210
+ name=\"ArrayOfResponseMessage\">\r\n <s:sequence>\r\n <s:element
211
+ minOccurs=\"0\" maxOccurs=\"unbounded\" name=\"ResponseMessage\" nillable=\"true\"
212
+ type=\"tns:ResponseMessage\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
213
+ \ <s:complexType name=\"ResponseMessage\">\r\n <s:sequence>\r\n
214
+ \ <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"ResponseType\"
215
+ type=\"tns:MessageType\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
216
+ name=\"Message\" type=\"s:string\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
217
+ \ <s:complexType name=\"ArrayOfCartItemResponse\">\r\n <s:sequence>\r\n
218
+ \ <s:element minOccurs=\"0\" maxOccurs=\"unbounded\" name=\"CartItemResponse\"
219
+ nillable=\"true\" type=\"tns:CartItemResponse\" />\r\n </s:sequence>\r\n
220
+ \ </s:complexType>\r\n <s:complexType name=\"CartItemResponse\">\r\n
221
+ \ <s:sequence>\r\n <s:element minOccurs=\"1\" maxOccurs=\"1\"
222
+ name=\"CartItemIndex\" type=\"s:int\" />\r\n <s:element minOccurs=\"1\"
223
+ maxOccurs=\"1\" name=\"TaxAmount\" type=\"s:float\" />\r\n </s:sequence>\r\n
224
+ \ </s:complexType>\r\n <s:element name=\"Lookup\">\r\n <s:complexType>\r\n
225
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
226
+ name=\"apiLoginID\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
227
+ maxOccurs=\"1\" name=\"apiKey\" type=\"s:string\" />\r\n <s:element
228
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"customerID\" type=\"s:string\" />\r\n
229
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"cartID\" type=\"s:string\"
230
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"cartItems\"
231
+ type=\"tns:ArrayOfCartItem\" />\r\n <s:element minOccurs=\"0\"
232
+ maxOccurs=\"1\" name=\"origin\" type=\"tns:Address\" />\r\n <s:element
233
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"destination\" type=\"tns:Address\"
234
+ />\r\n <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"deliveredBySeller\"
235
+ type=\"s:boolean\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
236
+ name=\"exemptCert\" type=\"tns:ExemptionCertificate\" />\r\n </s:sequence>\r\n
237
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"LookupResponse\">\r\n
238
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
239
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"LookupResult\" type=\"tns:LookupRsp\"
240
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
241
+ \ <s:element name=\"Authorized\">\r\n <s:complexType>\r\n <s:sequence>\r\n
242
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"apiLoginID\"
243
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
244
+ name=\"apiKey\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
245
+ maxOccurs=\"1\" name=\"customerID\" type=\"s:string\" />\r\n <s:element
246
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"cartID\" type=\"s:string\" />\r\n <s:element
247
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"orderID\" type=\"s:string\" />\r\n
248
+ \ <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"dateAuthorized\"
249
+ type=\"s:dateTime\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
250
+ \ </s:element>\r\n <s:element name=\"AuthorizedResponse\">\r\n <s:complexType>\r\n
251
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
252
+ name=\"AuthorizedResult\" type=\"tns:AuthorizedRsp\" />\r\n </s:sequence>\r\n
253
+ \ </s:complexType>\r\n </s:element>\r\n <s:complexType name=\"AuthorizedRsp\">\r\n
254
+ \ <s:complexContent mixed=\"false\">\r\n <s:extension base=\"tns:ResponseBase\"
255
+ />\r\n </s:complexContent>\r\n </s:complexType>\r\n <s:element
256
+ name=\"AuthorizedWithCapture\">\r\n <s:complexType>\r\n <s:sequence>\r\n
257
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"apiLoginID\"
258
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
259
+ name=\"apiKey\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
260
+ maxOccurs=\"1\" name=\"customerID\" type=\"s:string\" />\r\n <s:element
261
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"cartID\" type=\"s:string\" />\r\n <s:element
262
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"orderID\" type=\"s:string\" />\r\n
263
+ \ <s:element minOccurs=\"1\" maxOccurs=\"1\" name=\"dateAuthorized\"
264
+ type=\"s:dateTime\" />\r\n <s:element minOccurs=\"1\" maxOccurs=\"1\"
265
+ name=\"dateCaptured\" type=\"s:dateTime\" />\r\n </s:sequence>\r\n
266
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"AuthorizedWithCaptureResponse\">\r\n
267
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
268
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"AuthorizedWithCaptureResult\" type=\"tns:AuthorizedRsp\"
269
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
270
+ \ <s:element name=\"Captured\">\r\n <s:complexType>\r\n <s:sequence>\r\n
271
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"apiLoginID\"
272
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
273
+ name=\"apiKey\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
274
+ maxOccurs=\"1\" name=\"orderID\" type=\"s:string\" />\r\n </s:sequence>\r\n
275
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"CapturedResponse\">\r\n
276
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
277
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"CapturedResult\" type=\"tns:CapturedRsp\"
278
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
279
+ \ <s:complexType name=\"CapturedRsp\">\r\n <s:complexContent mixed=\"false\">\r\n
280
+ \ <s:extension base=\"tns:ResponseBase\" />\r\n </s:complexContent>\r\n
281
+ \ </s:complexType>\r\n <s:element name=\"Returned\">\r\n <s:complexType>\r\n
282
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
283
+ name=\"apiLoginID\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
284
+ maxOccurs=\"1\" name=\"apiKey\" type=\"s:string\" />\r\n <s:element
285
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"orderID\" type=\"s:string\" />\r\n
286
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"cartItems\"
287
+ type=\"tns:ArrayOfCartItem\" />\r\n <s:element minOccurs=\"1\"
288
+ maxOccurs=\"1\" name=\"returnedDate\" type=\"s:dateTime\" />\r\n </s:sequence>\r\n
289
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"ReturnedResponse\">\r\n
290
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
291
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"ReturnedResult\" type=\"tns:ReturnedRsp\"
292
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
293
+ \ <s:complexType name=\"ReturnedRsp\">\r\n <s:complexContent mixed=\"false\">\r\n
294
+ \ <s:extension base=\"tns:ResponseBase\" />\r\n </s:complexContent>\r\n
295
+ \ </s:complexType>\r\n <s:element name=\"GetTICGroups\">\r\n <s:complexType>\r\n
296
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
297
+ name=\"apiLoginID\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
298
+ maxOccurs=\"1\" name=\"apiKey\" type=\"s:string\" />\r\n </s:sequence>\r\n
299
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"GetTICGroupsResponse\">\r\n
300
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
301
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"GetTICGroupsResult\" type=\"tns:GetTICGroupsRsp\"
302
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
303
+ \ <s:complexType name=\"GetTICGroupsRsp\">\r\n <s:complexContent
304
+ mixed=\"false\">\r\n <s:extension base=\"tns:ResponseBase\">\r\n
305
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
306
+ name=\"TICGroups\" type=\"tns:ArrayOfTICGroup\" />\r\n </s:sequence>\r\n
307
+ \ </s:extension>\r\n </s:complexContent>\r\n </s:complexType>\r\n
308
+ \ <s:complexType name=\"ArrayOfTICGroup\">\r\n <s:sequence>\r\n
309
+ \ <s:element minOccurs=\"0\" maxOccurs=\"unbounded\" name=\"TICGroup\"
310
+ nillable=\"true\" type=\"tns:TICGroup\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
311
+ \ <s:complexType name=\"TICGroup\">\r\n <s:sequence>\r\n <s:element
312
+ minOccurs=\"1\" maxOccurs=\"1\" name=\"GroupID\" type=\"s:int\" />\r\n <s:element
313
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"Description\" type=\"s:string\" />\r\n
314
+ \ </s:sequence>\r\n </s:complexType>\r\n <s:element name=\"GetTICs\">\r\n
315
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
316
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"apiLoginID\" type=\"s:string\" />\r\n
317
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"apiKey\" type=\"s:string\"
318
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
319
+ \ <s:element name=\"GetTICsResponse\">\r\n <s:complexType>\r\n
320
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
321
+ name=\"GetTICsResult\" type=\"tns:GetTICsRsp\" />\r\n </s:sequence>\r\n
322
+ \ </s:complexType>\r\n </s:element>\r\n <s:complexType name=\"GetTICsRsp\">\r\n
323
+ \ <s:complexContent mixed=\"false\">\r\n <s:extension base=\"tns:ResponseBase\">\r\n
324
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
325
+ name=\"TICs\" type=\"tns:ArrayOfTIC\" />\r\n </s:sequence>\r\n
326
+ \ </s:extension>\r\n </s:complexContent>\r\n </s:complexType>\r\n
327
+ \ <s:complexType name=\"ArrayOfTIC\">\r\n <s:sequence>\r\n <s:element
328
+ minOccurs=\"0\" maxOccurs=\"unbounded\" name=\"TIC\" nillable=\"true\" type=\"tns:TIC\"
329
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n <s:complexType
330
+ name=\"TIC\">\r\n <s:sequence>\r\n <s:element minOccurs=\"1\"
331
+ maxOccurs=\"1\" name=\"TICID\" type=\"s:int\" />\r\n <s:element minOccurs=\"0\"
332
+ maxOccurs=\"1\" name=\"Description\" type=\"s:string\" />\r\n </s:sequence>\r\n
333
+ \ </s:complexType>\r\n <s:element name=\"GetTICsByGroup\">\r\n <s:complexType>\r\n
334
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
335
+ name=\"apiLoginID\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
336
+ maxOccurs=\"1\" name=\"apiKey\" type=\"s:string\" />\r\n <s:element
337
+ minOccurs=\"1\" maxOccurs=\"1\" name=\"ticGroup\" type=\"s:int\" />\r\n </s:sequence>\r\n
338
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"GetTICsByGroupResponse\">\r\n
339
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
340
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"GetTICsByGroupResult\" type=\"tns:GetTICsRsp\"
341
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
342
+ \ <s:element name=\"AddExemptCertificate\">\r\n <s:complexType>\r\n
343
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
344
+ name=\"apiLoginID\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
345
+ maxOccurs=\"1\" name=\"apiKey\" type=\"s:string\" />\r\n <s:element
346
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"customerID\" type=\"s:string\" />\r\n
347
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"exemptCert\"
348
+ type=\"tns:ExemptionCertificate\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
349
+ \ </s:element>\r\n <s:element name=\"AddExemptCertificateResponse\">\r\n
350
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
351
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"AddExemptCertificateResult\" type=\"tns:AddCertificateRsp\"
352
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
353
+ \ <s:complexType name=\"AddCertificateRsp\">\r\n <s:complexContent
354
+ mixed=\"false\">\r\n <s:extension base=\"tns:ResponseBase\">\r\n
355
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
356
+ name=\"CertificateID\" type=\"s:string\" />\r\n </s:sequence>\r\n
357
+ \ </s:extension>\r\n </s:complexContent>\r\n </s:complexType>\r\n
358
+ \ <s:element name=\"DeleteExemptCertificate\">\r\n <s:complexType>\r\n
359
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
360
+ name=\"apiLoginID\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
361
+ maxOccurs=\"1\" name=\"apiKey\" type=\"s:string\" />\r\n <s:element
362
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"certificateID\" type=\"s:string\" />\r\n
363
+ \ </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
364
+ \ <s:element name=\"DeleteExemptCertificateResponse\">\r\n <s:complexType>\r\n
365
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
366
+ name=\"DeleteExemptCertificateResult\" type=\"tns:DeleteCertificateRsp\" />\r\n
367
+ \ </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
368
+ \ <s:complexType name=\"DeleteCertificateRsp\">\r\n <s:complexContent
369
+ mixed=\"false\">\r\n <s:extension base=\"tns:ResponseBase\" />\r\n
370
+ \ </s:complexContent>\r\n </s:complexType>\r\n <s:element
371
+ name=\"GetExemptCertificates\">\r\n <s:complexType>\r\n <s:sequence>\r\n
372
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"apiLoginID\"
373
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
374
+ name=\"apiKey\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
375
+ maxOccurs=\"1\" name=\"customerID\" type=\"s:string\" />\r\n </s:sequence>\r\n
376
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"GetExemptCertificatesResponse\">\r\n
377
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
378
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"GetExemptCertificatesResult\" type=\"tns:GetCertificatesRsp\"
379
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
380
+ \ <s:complexType name=\"GetCertificatesRsp\">\r\n <s:complexContent
381
+ mixed=\"false\">\r\n <s:extension base=\"tns:ResponseBase\">\r\n
382
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
383
+ name=\"ExemptCertificates\" type=\"tns:ArrayOfExemptionCertificate\" />\r\n
384
+ \ </s:sequence>\r\n </s:extension>\r\n </s:complexContent>\r\n
385
+ \ </s:complexType>\r\n <s:complexType name=\"ArrayOfExemptionCertificate\">\r\n
386
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"unbounded\"
387
+ name=\"ExemptionCertificate\" nillable=\"true\" type=\"tns:ExemptionCertificate\"
388
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n <s:element
389
+ name=\"Ping\">\r\n <s:complexType>\r\n <s:sequence>\r\n <s:element
390
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"apiLoginID\" type=\"s:string\" />\r\n
391
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"apiKey\" type=\"s:string\"
392
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
393
+ \ <s:element name=\"PingResponse\">\r\n <s:complexType>\r\n <s:sequence>\r\n
394
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"PingResult\"
395
+ type=\"tns:PingRsp\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
396
+ \ </s:element>\r\n <s:complexType name=\"PingRsp\">\r\n <s:complexContent
397
+ mixed=\"false\">\r\n <s:extension base=\"tns:ResponseBase\" />\r\n
398
+ \ </s:complexContent>\r\n </s:complexType>\r\n </s:schema>\r\n
399
+ \ </wsdl:types>\r\n <wsdl:message name=\"VerifyAddressSoapIn\">\r\n <wsdl:part
400
+ name=\"parameters\" element=\"tns:VerifyAddress\" />\r\n </wsdl:message>\r\n
401
+ \ <wsdl:message name=\"VerifyAddressSoapOut\">\r\n <wsdl:part name=\"parameters\"
402
+ element=\"tns:VerifyAddressResponse\" />\r\n </wsdl:message>\r\n <wsdl:message
403
+ name=\"LookupForDateSoapIn\">\r\n <wsdl:part name=\"parameters\" element=\"tns:LookupForDate\"
404
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"LookupForDateSoapOut\">\r\n
405
+ \ <wsdl:part name=\"parameters\" element=\"tns:LookupForDateResponse\" />\r\n
406
+ \ </wsdl:message>\r\n <wsdl:message name=\"LookupSoapIn\">\r\n <wsdl:part
407
+ name=\"parameters\" element=\"tns:Lookup\" />\r\n </wsdl:message>\r\n <wsdl:message
408
+ name=\"LookupSoapOut\">\r\n <wsdl:part name=\"parameters\" element=\"tns:LookupResponse\"
409
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"AuthorizedSoapIn\">\r\n
410
+ \ <wsdl:part name=\"parameters\" element=\"tns:Authorized\" />\r\n </wsdl:message>\r\n
411
+ \ <wsdl:message name=\"AuthorizedSoapOut\">\r\n <wsdl:part name=\"parameters\"
412
+ element=\"tns:AuthorizedResponse\" />\r\n </wsdl:message>\r\n <wsdl:message
413
+ name=\"AuthorizedWithCaptureSoapIn\">\r\n <wsdl:part name=\"parameters\"
414
+ element=\"tns:AuthorizedWithCapture\" />\r\n </wsdl:message>\r\n <wsdl:message
415
+ name=\"AuthorizedWithCaptureSoapOut\">\r\n <wsdl:part name=\"parameters\"
416
+ element=\"tns:AuthorizedWithCaptureResponse\" />\r\n </wsdl:message>\r\n
417
+ \ <wsdl:message name=\"CapturedSoapIn\">\r\n <wsdl:part name=\"parameters\"
418
+ element=\"tns:Captured\" />\r\n </wsdl:message>\r\n <wsdl:message name=\"CapturedSoapOut\">\r\n
419
+ \ <wsdl:part name=\"parameters\" element=\"tns:CapturedResponse\" />\r\n
420
+ \ </wsdl:message>\r\n <wsdl:message name=\"ReturnedSoapIn\">\r\n <wsdl:part
421
+ name=\"parameters\" element=\"tns:Returned\" />\r\n </wsdl:message>\r\n <wsdl:message
422
+ name=\"ReturnedSoapOut\">\r\n <wsdl:part name=\"parameters\" element=\"tns:ReturnedResponse\"
423
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"GetTICGroupsSoapIn\">\r\n
424
+ \ <wsdl:part name=\"parameters\" element=\"tns:GetTICGroups\" />\r\n </wsdl:message>\r\n
425
+ \ <wsdl:message name=\"GetTICGroupsSoapOut\">\r\n <wsdl:part name=\"parameters\"
426
+ element=\"tns:GetTICGroupsResponse\" />\r\n </wsdl:message>\r\n <wsdl:message
427
+ name=\"GetTICsSoapIn\">\r\n <wsdl:part name=\"parameters\" element=\"tns:GetTICs\"
428
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"GetTICsSoapOut\">\r\n <wsdl:part
429
+ name=\"parameters\" element=\"tns:GetTICsResponse\" />\r\n </wsdl:message>\r\n
430
+ \ <wsdl:message name=\"GetTICsByGroupSoapIn\">\r\n <wsdl:part name=\"parameters\"
431
+ element=\"tns:GetTICsByGroup\" />\r\n </wsdl:message>\r\n <wsdl:message
432
+ name=\"GetTICsByGroupSoapOut\">\r\n <wsdl:part name=\"parameters\" element=\"tns:GetTICsByGroupResponse\"
433
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"AddExemptCertificateSoapIn\">\r\n
434
+ \ <wsdl:part name=\"parameters\" element=\"tns:AddExemptCertificate\" />\r\n
435
+ \ </wsdl:message>\r\n <wsdl:message name=\"AddExemptCertificateSoapOut\">\r\n
436
+ \ <wsdl:part name=\"parameters\" element=\"tns:AddExemptCertificateResponse\"
437
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"DeleteExemptCertificateSoapIn\">\r\n
438
+ \ <wsdl:part name=\"parameters\" element=\"tns:DeleteExemptCertificate\"
439
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"DeleteExemptCertificateSoapOut\">\r\n
440
+ \ <wsdl:part name=\"parameters\" element=\"tns:DeleteExemptCertificateResponse\"
441
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"GetExemptCertificatesSoapIn\">\r\n
442
+ \ <wsdl:part name=\"parameters\" element=\"tns:GetExemptCertificates\" />\r\n
443
+ \ </wsdl:message>\r\n <wsdl:message name=\"GetExemptCertificatesSoapOut\">\r\n
444
+ \ <wsdl:part name=\"parameters\" element=\"tns:GetExemptCertificatesResponse\"
445
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"PingSoapIn\">\r\n <wsdl:part
446
+ name=\"parameters\" element=\"tns:Ping\" />\r\n </wsdl:message>\r\n <wsdl:message
447
+ name=\"PingSoapOut\">\r\n <wsdl:part name=\"parameters\" element=\"tns:PingResponse\"
448
+ />\r\n </wsdl:message>\r\n <wsdl:portType name=\"TaxCloudSoap\">\r\n <wsdl:operation
449
+ name=\"VerifyAddress\">\r\n <wsdl:input message=\"tns:VerifyAddressSoapIn\"
450
+ />\r\n <wsdl:output message=\"tns:VerifyAddressSoapOut\" />\r\n </wsdl:operation>\r\n
451
+ \ <wsdl:operation name=\"LookupForDate\">\r\n <wsdl:input message=\"tns:LookupForDateSoapIn\"
452
+ />\r\n <wsdl:output message=\"tns:LookupForDateSoapOut\" />\r\n </wsdl:operation>\r\n
453
+ \ <wsdl:operation name=\"Lookup\">\r\n <wsdl:input message=\"tns:LookupSoapIn\"
454
+ />\r\n <wsdl:output message=\"tns:LookupSoapOut\" />\r\n </wsdl:operation>\r\n
455
+ \ <wsdl:operation name=\"Authorized\">\r\n <wsdl:input message=\"tns:AuthorizedSoapIn\"
456
+ />\r\n <wsdl:output message=\"tns:AuthorizedSoapOut\" />\r\n </wsdl:operation>\r\n
457
+ \ <wsdl:operation name=\"AuthorizedWithCapture\">\r\n <wsdl:input message=\"tns:AuthorizedWithCaptureSoapIn\"
458
+ />\r\n <wsdl:output message=\"tns:AuthorizedWithCaptureSoapOut\" />\r\n
459
+ \ </wsdl:operation>\r\n <wsdl:operation name=\"Captured\">\r\n <wsdl:input
460
+ message=\"tns:CapturedSoapIn\" />\r\n <wsdl:output message=\"tns:CapturedSoapOut\"
461
+ />\r\n </wsdl:operation>\r\n <wsdl:operation name=\"Returned\">\r\n
462
+ \ <wsdl:input message=\"tns:ReturnedSoapIn\" />\r\n <wsdl:output
463
+ message=\"tns:ReturnedSoapOut\" />\r\n </wsdl:operation>\r\n <wsdl:operation
464
+ name=\"GetTICGroups\">\r\n <wsdl:input message=\"tns:GetTICGroupsSoapIn\"
465
+ />\r\n <wsdl:output message=\"tns:GetTICGroupsSoapOut\" />\r\n </wsdl:operation>\r\n
466
+ \ <wsdl:operation name=\"GetTICs\">\r\n <wsdl:input message=\"tns:GetTICsSoapIn\"
467
+ />\r\n <wsdl:output message=\"tns:GetTICsSoapOut\" />\r\n </wsdl:operation>\r\n
468
+ \ <wsdl:operation name=\"GetTICsByGroup\">\r\n <wsdl:input message=\"tns:GetTICsByGroupSoapIn\"
469
+ />\r\n <wsdl:output message=\"tns:GetTICsByGroupSoapOut\" />\r\n </wsdl:operation>\r\n
470
+ \ <wsdl:operation name=\"AddExemptCertificate\">\r\n <wsdl:input message=\"tns:AddExemptCertificateSoapIn\"
471
+ />\r\n <wsdl:output message=\"tns:AddExemptCertificateSoapOut\" />\r\n
472
+ \ </wsdl:operation>\r\n <wsdl:operation name=\"DeleteExemptCertificate\">\r\n
473
+ \ <wsdl:input message=\"tns:DeleteExemptCertificateSoapIn\" />\r\n <wsdl:output
474
+ message=\"tns:DeleteExemptCertificateSoapOut\" />\r\n </wsdl:operation>\r\n
475
+ \ <wsdl:operation name=\"GetExemptCertificates\">\r\n <wsdl:input message=\"tns:GetExemptCertificatesSoapIn\"
476
+ />\r\n <wsdl:output message=\"tns:GetExemptCertificatesSoapOut\" />\r\n
477
+ \ </wsdl:operation>\r\n <wsdl:operation name=\"Ping\">\r\n <wsdl:input
478
+ message=\"tns:PingSoapIn\" />\r\n <wsdl:output message=\"tns:PingSoapOut\"
479
+ />\r\n </wsdl:operation>\r\n </wsdl:portType>\r\n <wsdl:binding name=\"TaxCloudSoap\"
480
+ type=\"tns:TaxCloudSoap\">\r\n <soap:binding transport=\"http://schemas.xmlsoap.org/soap/http\"
481
+ />\r\n <wsdl:operation name=\"VerifyAddress\">\r\n <soap:operation
482
+ soapAction=\"http://taxcloud.net/VerifyAddress\" style=\"document\" />\r\n
483
+ \ <wsdl:input>\r\n <soap:body use=\"literal\" />\r\n </wsdl:input>\r\n
484
+ \ <wsdl:output>\r\n <soap:body use=\"literal\" />\r\n </wsdl:output>\r\n
485
+ \ </wsdl:operation>\r\n <wsdl:operation name=\"LookupForDate\">\r\n <soap:operation
486
+ soapAction=\"http://taxcloud.net/LookupForDate\" style=\"document\" />\r\n
487
+ \ <wsdl:input>\r\n <soap:body use=\"literal\" />\r\n </wsdl:input>\r\n
488
+ \ <wsdl:output>\r\n <soap:body use=\"literal\" />\r\n </wsdl:output>\r\n
489
+ \ </wsdl:operation>\r\n <wsdl:operation name=\"Lookup\">\r\n <soap:operation
490
+ soapAction=\"http://taxcloud.net/Lookup\" style=\"document\" />\r\n <wsdl:input>\r\n
491
+ \ <soap:body use=\"literal\" />\r\n </wsdl:input>\r\n <wsdl:output>\r\n
492
+ \ <soap:body use=\"literal\" />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n
493
+ \ <wsdl:operation name=\"Authorized\">\r\n <soap:operation soapAction=\"http://taxcloud.net/Authorized\"
494
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
495
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
496
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
497
+ name=\"AuthorizedWithCapture\">\r\n <soap:operation soapAction=\"http://taxcloud.net/AuthorizedWithCapture\"
498
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
499
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
500
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
501
+ name=\"Captured\">\r\n <soap:operation soapAction=\"http://taxcloud.net/Captured\"
502
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
503
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
504
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
505
+ name=\"Returned\">\r\n <soap:operation soapAction=\"http://taxcloud.net/Returned\"
506
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
507
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
508
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
509
+ name=\"GetTICGroups\">\r\n <soap:operation soapAction=\"http://taxcloud.net/GetTICGroups\"
510
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
511
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
512
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
513
+ name=\"GetTICs\">\r\n <soap:operation soapAction=\"http://taxcloud.net/GetTICs\"
514
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
515
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
516
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
517
+ name=\"GetTICsByGroup\">\r\n <soap:operation soapAction=\"http://taxcloud.net/GetTICsByGroup\"
518
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
519
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
520
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
521
+ name=\"AddExemptCertificate\">\r\n <soap:operation soapAction=\"http://taxcloud.net/AddExemptCertificate\"
522
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
523
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
524
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
525
+ name=\"DeleteExemptCertificate\">\r\n <soap:operation soapAction=\"http://taxcloud.net/DeleteExemptCertificate\"
526
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
527
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
528
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
529
+ name=\"GetExemptCertificates\">\r\n <soap:operation soapAction=\"http://taxcloud.net/GetExemptCertificates\"
530
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
531
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
532
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
533
+ name=\"Ping\">\r\n <soap:operation soapAction=\"http://taxcloud.net/Ping\"
534
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
535
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
536
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n </wsdl:binding>\r\n
537
+ \ <wsdl:binding name=\"TaxCloudSoap12\" type=\"tns:TaxCloudSoap\">\r\n <soap12:binding
538
+ transport=\"http://schemas.xmlsoap.org/soap/http\" />\r\n <wsdl:operation
539
+ name=\"VerifyAddress\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/VerifyAddress\"
540
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
541
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
542
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
543
+ name=\"LookupForDate\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/LookupForDate\"
544
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
545
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
546
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
547
+ name=\"Lookup\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/Lookup\"
548
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
549
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
550
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
551
+ name=\"Authorized\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/Authorized\"
552
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
553
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
554
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
555
+ name=\"AuthorizedWithCapture\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/AuthorizedWithCapture\"
556
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
557
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
558
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
559
+ name=\"Captured\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/Captured\"
560
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
561
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
562
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
563
+ name=\"Returned\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/Returned\"
564
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
565
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
566
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
567
+ name=\"GetTICGroups\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/GetTICGroups\"
568
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
569
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
570
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
571
+ name=\"GetTICs\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/GetTICs\"
572
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
573
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
574
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
575
+ name=\"GetTICsByGroup\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/GetTICsByGroup\"
576
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
577
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
578
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
579
+ name=\"AddExemptCertificate\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/AddExemptCertificate\"
580
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
581
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
582
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
583
+ name=\"DeleteExemptCertificate\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/DeleteExemptCertificate\"
584
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
585
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
586
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
587
+ name=\"GetExemptCertificates\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/GetExemptCertificates\"
588
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
589
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
590
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
591
+ name=\"Ping\">\r\n <soap12:operation soapAction=\"http://taxcloud.net/Ping\"
592
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
593
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
594
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n </wsdl:binding>\r\n
595
+ \ <wsdl:service name=\"TaxCloud\">\r\n <wsdl:documentation xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\">TaxCloud
596
+ Web Service</wsdl:documentation>\r\n <wsdl:port name=\"TaxCloudSoap\" binding=\"tns:TaxCloudSoap\">\r\n
597
+ \ <soap:address location=\"https://api.taxcloud.net/1.0/TaxCloud.asmx\"
598
+ />\r\n </wsdl:port>\r\n <wsdl:port name=\"TaxCloudSoap12\" binding=\"tns:TaxCloudSoap12\">\r\n
599
+ \ <soap12:address location=\"https://api.taxcloud.net/1.0/TaxCloud.asmx\"
600
+ />\r\n </wsdl:port>\r\n </wsdl:service>\r\n</wsdl:definitions>"
601
+ http_version:
602
+ recorded_at: Sat, 24 Nov 2012 13:48:50 GMT
603
+ - request:
604
+ method: post
605
+ uri: https://api.taxcloud.net/1.0/TaxCloud.asmx
606
+ body:
607
+ encoding: US-ASCII
608
+ string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
609
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://taxcloud.net"
610
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://taxcloud.net"><env:Body><ins0:Ping><ins0:apiLoginID>api-login-id</ins0:apiLoginID><ins0:apiKey>api-key</ins0:apiKey></ins0:Ping></env:Body></env:Envelope>
611
+ headers:
612
+ Soapaction:
613
+ - ! '"http://taxcloud.net/Ping"'
614
+ Content-Type:
615
+ - text/xml;charset=UTF-8
616
+ Accept:
617
+ - ! '*/*'
618
+ User-Agent:
619
+ - Ruby
620
+ response:
621
+ status:
622
+ code: 200
623
+ message: OK
624
+ headers:
625
+ Cache-Control:
626
+ - private, max-age=0
627
+ Content-Type:
628
+ - text/xml; charset=utf-8
629
+ Server:
630
+ - Microsoft-IIS/7.0
631
+ X-Aspnet-Version:
632
+ - 4.0.30319
633
+ X-Powered-By:
634
+ - TaxCloud
635
+ Date:
636
+ - Sat, 24 Nov 2012 13:47:57 GMT
637
+ Content-Length:
638
+ - '503'
639
+ body:
640
+ encoding: US-ASCII
641
+ string: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
642
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><PingResponse
643
+ xmlns="http://taxcloud.net"><PingResult><ResponseType>Error</ResponseType><Messages><ResponseMessage><ResponseType>Error</ResponseType><Message>Invalid
644
+ apiLoginID and/or apiKey</Message></ResponseMessage></Messages></PingResult></PingResponse></soap:Body></soap:Envelope>
645
+ http_version:
646
+ recorded_at: Sat, 24 Nov 2012 13:48:51 GMT
647
+ recorded_with: VCR 2.3.0