avatax 19.12.0 → 20.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +5 -5
  2. data/avatax.gemspec +0 -1
  3. data/lib/avatax/client/accounts.rb +269 -193
  4. data/lib/avatax/client/addresses.rb +60 -60
  5. data/lib/avatax/client/advancedrules.rb +81 -162
  6. data/lib/avatax/client/avafileforms.rb +93 -93
  7. data/lib/avatax/client/batches.rb +247 -188
  8. data/lib/avatax/client/certexpressinvites.rb +106 -106
  9. data/lib/avatax/client/certificates.rb +469 -469
  10. data/lib/avatax/client/companies.rb +400 -398
  11. data/lib/avatax/client/compliance.rb +18 -18
  12. data/lib/avatax/client/contacts.rb +124 -124
  13. data/lib/avatax/client/customers.rb +415 -415
  14. data/lib/avatax/client/datasources.rb +117 -117
  15. data/lib/avatax/client/definitions.rb +1039 -1007
  16. data/lib/avatax/client/distancethresholds.rb +140 -140
  17. data/lib/avatax/client/filingcalendars.rb +23 -508
  18. data/lib/avatax/client/filings.rb +29 -29
  19. data/lib/avatax/client/firmclientlinkages.rb +150 -150
  20. data/lib/avatax/client/free.rb +109 -109
  21. data/lib/avatax/client/fundingrequests.rb +58 -58
  22. data/lib/avatax/client/items.rb +480 -480
  23. data/lib/avatax/client/jurisdictionoverrides.rb +136 -136
  24. data/lib/avatax/client/locations.rb +163 -160
  25. data/lib/avatax/client/multidocument.rb +420 -340
  26. data/lib/avatax/client/nexus.rb +240 -225
  27. data/lib/avatax/client/notifications.rb +84 -84
  28. data/lib/avatax/client/provisioning.rb +55 -55
  29. data/lib/avatax/client/registrar.rb +228 -228
  30. data/lib/avatax/client/reports.rb +109 -109
  31. data/lib/avatax/client/settings.rb +174 -174
  32. data/lib/avatax/client/subscriptions.rb +71 -71
  33. data/lib/avatax/client/taxcodes.rb +138 -138
  34. data/lib/avatax/client/taxcontent.rb +142 -142
  35. data/lib/avatax/client/taxrules.rb +188 -188
  36. data/lib/avatax/client/transactions.rb +899 -854
  37. data/lib/avatax/client/upcs.rb +129 -129
  38. data/lib/avatax/client/users.rb +207 -207
  39. data/lib/avatax/client/utilities.rb +70 -70
  40. data/lib/avatax/connection.rb +3 -3
  41. data/lib/avatax/request.rb +2 -0
  42. data/lib/avatax/version.rb +1 -1
  43. metadata +4 -25
@@ -1,470 +1,470 @@
1
- module AvaTax
2
- class Client
3
- module Certificates
4
-
5
-
6
- # Create certificates for this company
7
- #
8
- # Record one or more certificates document for this company.
9
- #
10
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
11
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
12
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
13
- # log onto the administrative website for the product you purchased.
14
- #
15
- # When you create a certificate, it will be processed by Avalara and will become available for use in
16
- # calculating tax exemptions when processing is complete. For a certificate to be used in calculating exemptions,
17
- # it must have the following:
18
- #
19
- # * A list of exposure zones indicating where the certificate is valid
20
- # * A link to the customer that is allowed to use this certificate
21
- # * Your tax transaction must contain the correct customer code
22
- #
23
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
24
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
25
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
26
- # storage for this company, call `RequestCertificateSetup`.
27
- #
28
- # If the users specified in the certificates do not exist, the API will create the user and link them to the certificate
29
- #
30
- # ### Security Policies
31
- #
32
- # * This API requires one of the following user roles: AccountAdmin, CompanyAdmin, CSPTester, ProStoresOperator, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
33
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
34
- # @param companyId [Integer] The ID number of the company recording this certificate
35
- # @param preValidatedExemptionReason [Boolean] If set to true, the certificate will bypass the human verification process.
36
- # @param model [CertificateModel[]] Certificates to be created
37
- # @return [CertificateModel[]]
38
- def create_certificates(companyId, model, options={})
39
- path = "/api/v2/companies/#{companyId}/certificates"
40
- post(path, model, options)
41
- end
42
-
43
-
44
- # Revoke and delete a certificate
45
- #
46
- # Revoke the certificate identified by this URL, then delete it.
47
- #
48
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
49
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
50
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
51
- # log onto the administrative website for the product you purchased.
52
- #
53
- # Revoked certificates can no longer be used.
54
- #
55
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
56
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
57
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
58
- # storage for this company, call `RequestCertificateSetup`.
59
- #
60
- # ### Security Policies
61
- #
62
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
63
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
64
- # @param companyId [Integer] The unique ID number of the company that recorded this certificate
65
- # @param id [Integer] The unique ID number of this certificate
66
- # @return [ErrorDetail[]]
67
- def delete_certificate(companyId, id)
68
- path = "/api/v2/companies/#{companyId}/certificates/#{id}"
69
- delete(path)
70
- end
71
-
72
-
73
- # Download an image for this certificate
74
- #
75
- # Download an image or PDF file for this certificate.
76
- #
77
- # This API can be used to download either a single-page preview of the certificate or a full PDF document.
78
- # To retrieve a preview image, set the `$type` parameter to `Jpeg` and the `$page` parameter to `1`.
79
- #
80
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
81
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
82
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
83
- # log onto the administrative website for the product you purchased.
84
- #
85
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
86
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
87
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
88
- # storage for this company, call `RequestCertificateSetup`.
89
- #
90
- # ### Security Policies
91
- #
92
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
93
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
94
- # @param companyId [Integer] The unique ID number of the company that recorded this certificate
95
- # @param id [Integer] The unique ID number of this certificate
96
- # @param page [Integer] If you choose `$type`=`Jpeg`, you must specify which page number to retrieve.
97
- # @param type [String] The data format in which to retrieve the certificate image (See CertificatePreviewType::* for a list of allowable values)
98
- # @return [Object]
99
- def download_certificate_image(companyId, id, options={})
100
- path = "/api/v2/companies/#{companyId}/certificates/#{id}/attachment"
101
- get(path, options)
102
- end
103
-
104
-
105
- # Retrieve a single certificate
106
- #
107
- # Get the current certificate identified by this URL.
108
- #
109
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
110
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
111
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
112
- # log onto the administrative website for the product you purchased.
113
- #
114
- # You can use the `$include` parameter to fetch the following additional objects for expansion:
115
- #
116
- # * customers - Retrieves the list of customers linked to the certificate.
117
- # * po_numbers - Retrieves all PO numbers tied to the certificate.
118
- # * attributes - Retrieves all attributes applied to the certificate.
119
- #
120
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
121
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
122
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
123
- # storage for this company, call `RequestCertificateSetup`.
124
- #
125
- # ### Security Policies
126
- #
127
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
128
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
129
- # @param companyId [Integer] The ID number of the company that recorded this certificate
130
- # @param id [Integer] The unique ID number of this certificate
131
- # @param include [String] OPTIONAL: A comma separated list of special fetch options. You can specify one or more of the following: * customers - Retrieves the list of customers linked to the certificate. * po_numbers - Retrieves all PO numbers tied to the certificate. * attributes - Retrieves all attributes applied to the certificate.
132
- # @return [Object]
133
- def get_certificate(companyId, id, options={})
134
- path = "/api/v2/companies/#{companyId}/certificates/#{id}"
135
- get(path, options)
136
- end
137
-
138
-
139
- # Check a company's exemption certificate status.
140
- #
141
- # Checks whether this company is configured to use exemption certificates in AvaTax.
142
- #
143
- # Exemption certificates are tracked through a different auditable data store than the one that
144
- # holds AvaTax transactions. To use the AvaTax exemption certificate document store, please call
145
- # `GetCertificateSetup` to see if your company is configured to use the exemption certificate
146
- # document store. To request setup, please call `RequestCertificateSetup` and your company will
147
- # be configured with data storage in the auditable certificate system.
148
- #
149
- # ### Security Policies
150
- #
151
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
152
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
153
- # @param companyId [Integer] The company ID to check
154
- # @return [Object]
155
- def get_certificate_setup(companyId)
156
- path = "/api/v2/companies/#{companyId}/certificates/setup"
157
- get(path)
158
- end
159
-
160
-
161
- # Link attributes to a certificate
162
- #
163
- # Link one or many attributes to a certificate.
164
- #
165
- # A certificate may have multiple attributes that control its behavior. You may link or unlink attributes to a
166
- # certificate at any time. The full list of defined attributes may be found using `ListCertificateAttributes`.
167
- #
168
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
169
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
170
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
171
- # log onto the administrative website for the product you purchased.
172
- #
173
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
174
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
175
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
176
- # storage for this company, call `RequestCertificateSetup`.
177
- #
178
- # ### Security Policies
179
- #
180
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
181
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
182
- # @param companyId [Integer] The unique ID number of the company that recorded this certificate
183
- # @param id [Integer] The unique ID number of this certificate
184
- # @param model [CertificateAttributeModel[]] The list of attributes to link to this certificate.
185
- # @return [FetchResult]
186
- def link_attributes_to_certificate(companyId, id, model)
187
- path = "/api/v2/companies/#{companyId}/certificates/#{id}/attributes/link"
188
- post(path, model)
189
- end
190
-
191
-
192
- # Link customers to a certificate
193
- #
194
- # Link one or more customers to an existing certificate.
195
- #
196
- # Customers and certificates must be linked before a customer can make use of a certificate to obtain
197
- # a tax exemption in AvaTax. Since some certificates may cover more than one business entity, a certificate
198
- # can be connected to multiple customer records using the `LinkCustomersToCertificate` API.
199
- #
200
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
201
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
202
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
203
- # log onto the administrative website for the product you purchased.
204
- #
205
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
206
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
207
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
208
- # storage for this company, call `RequestCertificateSetup`.
209
- #
210
- # ### Security Policies
211
- #
212
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
213
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
214
- # @param companyId [Integer] The unique ID number of the company that recorded this certificate
215
- # @param id [Integer] The unique ID number of this certificate
216
- # @param model [Object] The list of customers needed be added to the Certificate for exemption
217
- # @return [FetchResult]
218
- def link_customers_to_certificate(companyId, id, model)
219
- path = "/api/v2/companies/#{companyId}/certificates/#{id}/customers/link"
220
- post(path, model)
221
- end
222
-
223
-
224
- # List all attributes applied to this certificate
225
- #
226
- # Retrieve the list of attributes that are linked to this certificate.
227
- #
228
- # A certificate may have multiple attributes that control its behavior. You may link or unlink attributes to a
229
- # certificate at any time. The full list of defined attributes may be found using [ListCertificateAttributes](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListCertificateAttributes/) API.
230
- #
231
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
232
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
233
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
234
- # log onto the administrative website for the product you purchased.
235
- #
236
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
237
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
238
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
239
- # storage for this company, call `RequestCertificateSetup`.
240
- #
241
- # ### Security Policies
242
- #
243
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
244
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
245
- # @param companyId [Integer] The unique ID number of the company that recorded this certificate
246
- # @param id [Integer] The unique ID number of this certificate
247
- # @return [FetchResult]
248
- def list_attributes_for_certificate(companyId, id)
249
- path = "/api/v2/companies/#{companyId}/certificates/#{id}/attributes"
250
- get(path)
251
- end
252
-
253
-
254
- # List customers linked to this certificate
255
- #
256
- # List all customers linked to this certificate.
257
- #
258
- # Customers must be linked to a certificate in order to make use of its tax exemption features. You
259
- # can link or unlink customers to a certificate at any time.
260
- #
261
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
262
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
263
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
264
- # log onto the administrative website for the product you purchased.
265
- #
266
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
267
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
268
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
269
- # storage for this company, call `RequestCertificateSetup`.
270
- #
271
- # ### Security Policies
272
- #
273
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
274
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
275
- # @param companyId [Integer] The unique ID number of the company that recorded this certificate
276
- # @param id [Integer] The unique ID number of this certificate
277
- # @param include [String] OPTIONAL: A comma separated list of special fetch options. No options are currently available when fetching customers.
278
- # @return [FetchResult]
279
- def list_customers_for_certificate(companyId, id, options={})
280
- path = "/api/v2/companies/#{companyId}/certificates/#{id}/customers"
281
- get(path, options)
282
- end
283
-
284
-
285
- # List all certificates for a company
286
- #
287
- # List all certificates recorded by a company
288
- #
289
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
290
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
291
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
292
- # log onto the administrative website for the product you purchased.
293
- #
294
- # You can use the `$include` parameter to fetch the following additional objects for expansion:
295
- #
296
- # * customers - Retrieves the list of customers linked to the certificate.
297
- # * po_numbers - Retrieves all PO numbers tied to the certificate.
298
- # * attributes - Retrieves all attributes applied to the certificate.
299
- #
300
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
301
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
302
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
303
- # storage for this company, call `RequestCertificateSetup`.
304
- #
305
- # ### Security Policies
306
- #
307
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
308
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
309
- # @param companyId [Integer] The ID number of the company to search
310
- # @param include [String] OPTIONAL: A comma separated list of special fetch options. You can specify one or more of the following: * customers - Retrieves the list of customers linked to the certificate. * po_numbers - Retrieves all PO numbers tied to the certificate. * attributes - Retrieves all attributes applied to the certificate.
311
- # @param filter [String] A filter statement to identify specific records to retrieve. For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).<br />*Not filterable:* exemptionNumber, status, ecmsId, ecmsStatus, pdf, pages
312
- # @param top [Integer] If nonzero, return no more than this number of results. Used with `$skip` to provide pagination for large datasets. Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records.
313
- # @param skip [Integer] If nonzero, skip this number of results before returning data. Used with `$top` to provide pagination for large datasets.
314
- # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
315
- # @return [FetchResult]
316
- def query_certificates(companyId, options={})
317
- path = "/api/v2/companies/#{companyId}/certificates"
318
- get(path, options)
319
- end
320
-
321
-
322
- # Request setup of exemption certificates for this company.
323
- #
324
- # Requests the setup of exemption certificates for this company.
325
- #
326
- # Exemption certificates are tracked through a different auditable data store than the one that
327
- # holds AvaTax transactions. To use the AvaTax exemption certificate document store, please call
328
- # `GetCertificateSetup` to see if your company is configured to use the exemption certificate
329
- # document store. To request setup, please call `RequestCertificateSetup` and your company will
330
- # be configured with data storage in the auditable certificate system.
331
- #
332
- # This API will return the current status of exemption certificate setup for this company.
333
- #
334
- # ### Security Policies
335
- #
336
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
337
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
338
- # @param companyId [Integer]
339
- # @return [Object]
340
- def request_certificate_setup(companyId)
341
- path = "/api/v2/companies/#{companyId}/certificates/setup"
342
- post(path)
343
- end
344
-
345
-
346
- # Unlink attributes from a certificate
347
- #
348
- # Unlink one or many attributes from a certificate.
349
- #
350
- # A certificate may have multiple attributes that control its behavior. You may link or unlink attributes to a
351
- # certificate at any time. The full list of defined attributes may be found using `ListCertificateAttributes`.
352
- #
353
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
354
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
355
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
356
- # log onto the administrative website for the product you purchased.
357
- #
358
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
359
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
360
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
361
- # storage for this company, call `RequestCertificateSetup`.
362
- #
363
- # ### Security Policies
364
- #
365
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
366
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
367
- # @param companyId [Integer] The unique ID number of the company that recorded this certificate
368
- # @param id [Integer] The unique ID number of this certificate
369
- # @param model [CertificateAttributeModel[]] The list of attributes to unlink from this certificate.
370
- # @return [FetchResult]
371
- def unlink_attributes_from_certificate(companyId, id, model)
372
- path = "/api/v2/companies/#{companyId}/certificates/#{id}/attributes/unlink"
373
- post(path, model)
374
- end
375
-
376
-
377
- # Unlink customers from a certificate
378
- #
379
- # Unlinks one or more customers from a certificate.
380
- #
381
- # Unlinking a certificate from a customer will prevent the certificate from being used to generate
382
- # tax exemptions for the customer in the future. If any previous transactions for this customer had
383
- # used this linked certificate, those transactions will be unchanged and will still have a link to the
384
- # exemption certificate in question.
385
- #
386
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
387
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
388
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
389
- # log onto the administrative website for the product you purchased.
390
- #
391
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
392
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
393
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
394
- # storage for this company, call `RequestCertificateSetup`.
395
- #
396
- # ### Security Policies
397
- #
398
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
399
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
400
- # @param companyId [Integer] The unique ID number of the company that recorded this certificate
401
- # @param id [Integer] The unique ID number of this certificate
402
- # @param model [Object] The list of customers to unlink from this certificate
403
- # @return [FetchResult]
404
- def unlink_customers_from_certificate(companyId, id, model)
405
- path = "/api/v2/companies/#{companyId}/certificates/#{id}/customers/unlink"
406
- post(path, model)
407
- end
408
-
409
-
410
- # Update a single certificate
411
- #
412
- # Replace the certificate identified by this URL with a new one.
413
- #
414
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
415
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
416
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
417
- # log onto the administrative website for the product you purchased.
418
- #
419
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
420
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
421
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
422
- # storage for this company, call `RequestCertificateSetup`.
423
- #
424
- # ### Security Policies
425
- #
426
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
427
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
428
- # @param companyId [Integer] The ID number of the company that recorded this certificate
429
- # @param id [Integer] The unique ID number of this certificate
430
- # @param model [Object] The new certificate object that will replace the existing one
431
- # @return [Object]
432
- def update_certificate(companyId, id, model)
433
- path = "/api/v2/companies/#{companyId}/certificates/#{id}"
434
- put(path, model)
435
- end
436
-
437
-
438
- # Upload an image or PDF attachment for this certificate
439
- #
440
- # Upload an image or PDF attachment for this certificate.
441
- #
442
- # Image attachments can be of the format `PDF`, `JPEG`, `TIFF`, or `PNG`. To upload a multi-page image, please
443
- # use the `PDF` data type.
444
- #
445
- # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
446
- # can contain information about a customer's eligibility for exemption from sales or use taxes based on
447
- # criteria you specify when you store the certificate. To view or manage your certificates directly, please
448
- # log onto the administrative website for the product you purchased.
449
- #
450
- # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
451
- # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
452
- # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
453
- # storage for this company, call `RequestCertificateSetup`.
454
- #
455
- # ### Security Policies
456
- #
457
- # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
458
- # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
459
- # @param companyId [Integer] The unique ID number of the company that recorded this certificate
460
- # @param id [Integer] The unique ID number of this certificate
461
- # @param file [Object] The exemption certificate file you wanted to upload. Accepted formats are: PDF, JPEG, TIFF, PNG.
462
- # @return [String]
463
- def upload_certificate_image(companyId, id)
464
- path = "/api/v2/companies/#{companyId}/certificates/#{id}/attachment"
465
- post(path)
466
- end
467
-
468
- end
469
- end
1
+ module AvaTax
2
+ class Client
3
+ module Certificates
4
+
5
+
6
+ # Create certificates for this company
7
+ #
8
+ # Record one or more certificates document for this company.
9
+ #
10
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
11
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
12
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
13
+ # log onto the administrative website for the product you purchased.
14
+ #
15
+ # When you create a certificate, it will be processed by Avalara and will become available for use in
16
+ # calculating tax exemptions when processing is complete. For a certificate to be used in calculating exemptions,
17
+ # it must have the following:
18
+ #
19
+ # * An exposure zone indicating where the certificate is valid
20
+ # * A link to the customer that is allowed to use this certificate
21
+ # * Your tax transaction must contain the correct customer code
22
+ #
23
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
24
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
25
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
26
+ # storage for this company, call `RequestCertificateSetup`.
27
+ #
28
+ # If the users specified in the certificates do not exist, the API will create the user and link them to the certificate
29
+ #
30
+ # ### Security Policies
31
+ #
32
+ # * This API requires one of the following user roles: AccountAdmin, CompanyAdmin, CSPTester, ProStoresOperator, Registrar, SiteAdmin, SSTAdmin, SystemAdmin, TechnicalSupportAdmin.
33
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
34
+ # @param companyId [Integer] The ID number of the company recording this certificate
35
+ # @param preValidatedExemptionReason [Boolean] If set to true, the certificate will bypass the human verification process.
36
+ # @param model [CertificateModel[]] Certificates to be created
37
+ # @return [CertificateModel[]]
38
+ def create_certificates(companyId, model, options={})
39
+ path = "/api/v2/companies/#{companyId}/certificates"
40
+ post(path, model, options)
41
+ end
42
+
43
+
44
+ # Revoke and delete a certificate
45
+ #
46
+ # Revoke the certificate identified by this URL, then delete it.
47
+ #
48
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
49
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
50
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
51
+ # log onto the administrative website for the product you purchased.
52
+ #
53
+ # Revoked certificates can no longer be used.
54
+ #
55
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
56
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
57
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
58
+ # storage for this company, call `RequestCertificateSetup`.
59
+ #
60
+ # ### Security Policies
61
+ #
62
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
63
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
64
+ # @param companyId [Integer] The unique ID number of the company that recorded this certificate
65
+ # @param id [Integer] The unique ID number of this certificate
66
+ # @return [ErrorDetail[]]
67
+ def delete_certificate(companyId, id)
68
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}"
69
+ delete(path)
70
+ end
71
+
72
+
73
+ # Download an image for this certificate
74
+ #
75
+ # Download an image or PDF file for this certificate.
76
+ #
77
+ # This API can be used to download either a single-page preview of the certificate or a full PDF document.
78
+ # To retrieve a preview image, set the `$type` parameter to `Jpeg` and the `$page` parameter to `1`.
79
+ #
80
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
81
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
82
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
83
+ # log onto the administrative website for the product you purchased.
84
+ #
85
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
86
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
87
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
88
+ # storage for this company, call `RequestCertificateSetup`.
89
+ #
90
+ # ### Security Policies
91
+ #
92
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
93
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
94
+ # @param companyId [Integer] The unique ID number of the company that recorded this certificate
95
+ # @param id [Integer] The unique ID number of this certificate
96
+ # @param page [Integer] If you choose `$type`=`Jpeg`, you must specify which page number to retrieve.
97
+ # @param type [String] The data format in which to retrieve the certificate image (See CertificatePreviewType::* for a list of allowable values)
98
+ # @return [Object]
99
+ def download_certificate_image(companyId, id, options={})
100
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}/attachment"
101
+ get(path, options)
102
+ end
103
+
104
+
105
+ # Retrieve a single certificate
106
+ #
107
+ # Get the current certificate identified by this URL.
108
+ #
109
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
110
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
111
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
112
+ # log onto the administrative website for the product you purchased.
113
+ #
114
+ # You can use the `$include` parameter to fetch the following additional objects for expansion:
115
+ #
116
+ # * customers - Retrieves the list of customers linked to the certificate.
117
+ # * po_numbers - Retrieves all PO numbers tied to the certificate.
118
+ # * attributes - Retrieves all attributes applied to the certificate.
119
+ #
120
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
121
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
122
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
123
+ # storage for this company, call `RequestCertificateSetup`.
124
+ #
125
+ # ### Security Policies
126
+ #
127
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
128
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
129
+ # @param companyId [Integer] The ID number of the company that recorded this certificate
130
+ # @param id [Integer] The unique ID number of this certificate
131
+ # @param include [String] OPTIONAL: A comma separated list of special fetch options. You can specify one or more of the following: * customers - Retrieves the list of customers linked to the certificate. * po_numbers - Retrieves all PO numbers tied to the certificate. * attributes - Retrieves all attributes applied to the certificate.
132
+ # @return [Object]
133
+ def get_certificate(companyId, id, options={})
134
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}"
135
+ get(path, options)
136
+ end
137
+
138
+
139
+ # Check a company's exemption certificate status.
140
+ #
141
+ # Checks whether this company is configured to use exemption certificates in AvaTax.
142
+ #
143
+ # Exemption certificates are tracked through a different auditable data store than the one that
144
+ # holds AvaTax transactions. To use the AvaTax exemption certificate document store, please call
145
+ # `GetCertificateSetup` to see if your company is configured to use the exemption certificate
146
+ # document store. To request setup, please call `RequestCertificateSetup` and your company will
147
+ # be configured with data storage in the auditable certificate system.
148
+ #
149
+ # ### Security Policies
150
+ #
151
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
152
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
153
+ # @param companyId [Integer] The company ID to check
154
+ # @return [Object]
155
+ def get_certificate_setup(companyId)
156
+ path = "/api/v2/companies/#{companyId}/certificates/setup"
157
+ get(path)
158
+ end
159
+
160
+
161
+ # Link attributes to a certificate
162
+ #
163
+ # Link one or many attributes to a certificate.
164
+ #
165
+ # A certificate may have multiple attributes that control its behavior. You may link or unlink attributes to a
166
+ # certificate at any time. The full list of defined attributes may be found using `ListCertificateAttributes`.
167
+ #
168
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
169
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
170
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
171
+ # log onto the administrative website for the product you purchased.
172
+ #
173
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
174
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
175
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
176
+ # storage for this company, call `RequestCertificateSetup`.
177
+ #
178
+ # ### Security Policies
179
+ #
180
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
181
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
182
+ # @param companyId [Integer] The unique ID number of the company that recorded this certificate
183
+ # @param id [Integer] The unique ID number of this certificate
184
+ # @param model [CertificateAttributeModel[]] The list of attributes to link to this certificate.
185
+ # @return [FetchResult]
186
+ def link_attributes_to_certificate(companyId, id, model)
187
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}/attributes/link"
188
+ post(path, model)
189
+ end
190
+
191
+
192
+ # Link customers to a certificate
193
+ #
194
+ # Link one or more customers to an existing certificate.
195
+ #
196
+ # Customers and certificates must be linked before a customer can make use of a certificate to obtain
197
+ # a tax exemption in AvaTax. Since some certificates may cover more than one business entity, a certificate
198
+ # can be connected to multiple customer records using the `LinkCustomersToCertificate` API.
199
+ #
200
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
201
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
202
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
203
+ # log onto the administrative website for the product you purchased.
204
+ #
205
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
206
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
207
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
208
+ # storage for this company, call `RequestCertificateSetup`.
209
+ #
210
+ # ### Security Policies
211
+ #
212
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
213
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
214
+ # @param companyId [Integer] The unique ID number of the company that recorded this certificate
215
+ # @param id [Integer] The unique ID number of this certificate
216
+ # @param model [Object] The list of customers needed be added to the Certificate for exemption
217
+ # @return [FetchResult]
218
+ def link_customers_to_certificate(companyId, id, model)
219
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}/customers/link"
220
+ post(path, model)
221
+ end
222
+
223
+
224
+ # List all attributes applied to this certificate
225
+ #
226
+ # Retrieve the list of attributes that are linked to this certificate.
227
+ #
228
+ # A certificate may have multiple attributes that control its behavior. You may link or unlink attributes to a
229
+ # certificate at any time. The full list of defined attributes may be found using [ListCertificateAttributes](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListCertificateAttributes/) API.
230
+ #
231
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
232
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
233
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
234
+ # log onto the administrative website for the product you purchased.
235
+ #
236
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
237
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
238
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
239
+ # storage for this company, call `RequestCertificateSetup`.
240
+ #
241
+ # ### Security Policies
242
+ #
243
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
244
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
245
+ # @param companyId [Integer] The unique ID number of the company that recorded this certificate
246
+ # @param id [Integer] The unique ID number of this certificate
247
+ # @return [FetchResult]
248
+ def list_attributes_for_certificate(companyId, id)
249
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}/attributes"
250
+ get(path)
251
+ end
252
+
253
+
254
+ # List customers linked to this certificate
255
+ #
256
+ # List all customers linked to this certificate.
257
+ #
258
+ # Customers must be linked to a certificate in order to make use of its tax exemption features. You
259
+ # can link or unlink customers to a certificate at any time.
260
+ #
261
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
262
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
263
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
264
+ # log onto the administrative website for the product you purchased.
265
+ #
266
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
267
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
268
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
269
+ # storage for this company, call `RequestCertificateSetup`.
270
+ #
271
+ # ### Security Policies
272
+ #
273
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
274
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
275
+ # @param companyId [Integer] The unique ID number of the company that recorded this certificate
276
+ # @param id [Integer] The unique ID number of this certificate
277
+ # @param include [String] OPTIONAL: A comma separated list of special fetch options. No options are currently available when fetching customers.
278
+ # @return [FetchResult]
279
+ def list_customers_for_certificate(companyId, id, options={})
280
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}/customers"
281
+ get(path, options)
282
+ end
283
+
284
+
285
+ # List all certificates for a company
286
+ #
287
+ # List all certificates recorded by a company
288
+ #
289
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
290
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
291
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
292
+ # log onto the administrative website for the product you purchased.
293
+ #
294
+ # You can use the `$include` parameter to fetch the following additional objects for expansion:
295
+ #
296
+ # * customers - Retrieves the list of customers linked to the certificate.
297
+ # * po_numbers - Retrieves all PO numbers tied to the certificate.
298
+ # * attributes - Retrieves all attributes applied to the certificate.
299
+ #
300
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
301
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
302
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
303
+ # storage for this company, call `RequestCertificateSetup`.
304
+ #
305
+ # ### Security Policies
306
+ #
307
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
308
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
309
+ # @param companyId [Integer] The ID number of the company to search
310
+ # @param include [String] OPTIONAL: A comma separated list of special fetch options. You can specify one or more of the following: * customers - Retrieves the list of customers linked to the certificate. * po_numbers - Retrieves all PO numbers tied to the certificate. * attributes - Retrieves all attributes applied to the certificate.
311
+ # @param filter [String] A filter statement to identify specific records to retrieve. For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).<br />*Not filterable:* exemptionNumber, status, ecmsId, ecmsStatus, pdf, pages
312
+ # @param top [Integer] If nonzero, return no more than this number of results. Used with `$skip` to provide pagination for large datasets. Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records.
313
+ # @param skip [Integer] If nonzero, skip this number of results before returning data. Used with `$top` to provide pagination for large datasets.
314
+ # @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
315
+ # @return [FetchResult]
316
+ def query_certificates(companyId, options={})
317
+ path = "/api/v2/companies/#{companyId}/certificates"
318
+ get(path, options)
319
+ end
320
+
321
+
322
+ # Request setup of exemption certificates for this company.
323
+ #
324
+ # Requests the setup of exemption certificates for this company.
325
+ #
326
+ # Exemption certificates are tracked through a different auditable data store than the one that
327
+ # holds AvaTax transactions. To use the AvaTax exemption certificate document store, please call
328
+ # `GetCertificateSetup` to see if your company is configured to use the exemption certificate
329
+ # document store. To request setup, please call `RequestCertificateSetup` and your company will
330
+ # be configured with data storage in the auditable certificate system.
331
+ #
332
+ # This API will return the current status of exemption certificate setup for this company.
333
+ #
334
+ # ### Security Policies
335
+ #
336
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
337
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
338
+ # @param companyId [Integer]
339
+ # @return [Object]
340
+ def request_certificate_setup(companyId)
341
+ path = "/api/v2/companies/#{companyId}/certificates/setup"
342
+ post(path)
343
+ end
344
+
345
+
346
+ # Unlink attributes from a certificate
347
+ #
348
+ # Unlink one or many attributes from a certificate.
349
+ #
350
+ # A certificate may have multiple attributes that control its behavior. You may link or unlink attributes to a
351
+ # certificate at any time. The full list of defined attributes may be found using `ListCertificateAttributes`.
352
+ #
353
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
354
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
355
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
356
+ # log onto the administrative website for the product you purchased.
357
+ #
358
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
359
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
360
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
361
+ # storage for this company, call `RequestCertificateSetup`.
362
+ #
363
+ # ### Security Policies
364
+ #
365
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
366
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
367
+ # @param companyId [Integer] The unique ID number of the company that recorded this certificate
368
+ # @param id [Integer] The unique ID number of this certificate
369
+ # @param model [CertificateAttributeModel[]] The list of attributes to unlink from this certificate.
370
+ # @return [FetchResult]
371
+ def unlink_attributes_from_certificate(companyId, id, model)
372
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}/attributes/unlink"
373
+ post(path, model)
374
+ end
375
+
376
+
377
+ # Unlink customers from a certificate
378
+ #
379
+ # Unlinks one or more customers from a certificate.
380
+ #
381
+ # Unlinking a certificate from a customer will prevent the certificate from being used to generate
382
+ # tax exemptions for the customer in the future. If any previous transactions for this customer had
383
+ # used this linked certificate, those transactions will be unchanged and will still have a link to the
384
+ # exemption certificate in question.
385
+ #
386
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
387
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
388
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
389
+ # log onto the administrative website for the product you purchased.
390
+ #
391
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
392
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
393
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
394
+ # storage for this company, call `RequestCertificateSetup`.
395
+ #
396
+ # ### Security Policies
397
+ #
398
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
399
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
400
+ # @param companyId [Integer] The unique ID number of the company that recorded this certificate
401
+ # @param id [Integer] The unique ID number of this certificate
402
+ # @param model [Object] The list of customers to unlink from this certificate
403
+ # @return [FetchResult]
404
+ def unlink_customers_from_certificate(companyId, id, model)
405
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}/customers/unlink"
406
+ post(path, model)
407
+ end
408
+
409
+
410
+ # Update a single certificate
411
+ #
412
+ # Replace the certificate identified by this URL with a new one.
413
+ #
414
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
415
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
416
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
417
+ # log onto the administrative website for the product you purchased.
418
+ #
419
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
420
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
421
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
422
+ # storage for this company, call `RequestCertificateSetup`.
423
+ #
424
+ # ### Security Policies
425
+ #
426
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
427
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
428
+ # @param companyId [Integer] The ID number of the company that recorded this certificate
429
+ # @param id [Integer] The unique ID number of this certificate
430
+ # @param model [Object] The new certificate object that will replace the existing one
431
+ # @return [Object]
432
+ def update_certificate(companyId, id, model)
433
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}"
434
+ put(path, model)
435
+ end
436
+
437
+
438
+ # Upload an image or PDF attachment for this certificate
439
+ #
440
+ # Upload an image or PDF attachment for this certificate.
441
+ #
442
+ # Image attachments can be of the format `PDF`, `JPEG`, `TIFF`, or `PNG`. To upload a multi-page image, please
443
+ # use the `PDF` data type.
444
+ #
445
+ # A certificate is a document stored in either AvaTax Exemptions or CertCapture. The certificate document
446
+ # can contain information about a customer's eligibility for exemption from sales or use taxes based on
447
+ # criteria you specify when you store the certificate. To view or manage your certificates directly, please
448
+ # log onto the administrative website for the product you purchased.
449
+ #
450
+ # Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
451
+ # Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
452
+ # certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
453
+ # storage for this company, call `RequestCertificateSetup`.
454
+ #
455
+ # ### Security Policies
456
+ #
457
+ # * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
458
+ # * This API depends on the following active services<br />*Required* (all): AvaTaxPro.
459
+ # @param companyId [Integer] The unique ID number of the company that recorded this certificate
460
+ # @param id [Integer] The unique ID number of this certificate
461
+ # @param file [Object] The exemption certificate file you wanted to upload. Accepted formats are: PDF, JPEG, TIFF, PNG.
462
+ # @return [String]
463
+ def upload_certificate_image(companyId, id)
464
+ path = "/api/v2/companies/#{companyId}/certificates/#{id}/attachment"
465
+ post(path)
466
+ end
467
+
468
+ end
469
+ end
470
470
  end