module AvaTax
class Client
module CertExpressInvites
# Create a CertExpress invitation
#
# Creates an invitation for a customer to self-report certificates using the CertExpress website.
#
# This invitation is delivered by your choice of method, or you can present a hyperlink to the user
# directly in your connector. Your customer will be redirected to https://app.certexpress.com/ where
# they can follow a step-by-step guide to enter information about their exemption certificates. The
# certificates entered will be recorded and automatically linked to their customer record.
#
# The [CertExpress website](https://app.certexpress.com/home) is available for customers to use at any time.
# Using CertExpress with this API will ensure that your certificates are automatically linked correctly into
# your company so that they can be used for tax exemptions.
#
# Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
# Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
# certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
# storage for this company, call `RequestCertificateSetup`.
#
# ### Security Policies
#
# * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin.
# * This API depends on the following active services
*Required* (all): AvaTaxPro.
# @param companyId [Integer] The unique ID number of the company that will record certificates
# @param customerCode [String] The number of the customer where the request is sent to
# @param model [CreateCertExpressInvitationModel[]] the requests to send out to customers
# @return [CertExpressInvitationStatusModel[]]
def create_cert_express_invitation(companyId, customerCode, model) path = "/api/v2/companies/#{companyId}/customers/#{customerCode}/certexpressinvites"
post(path, model) end
# Retrieve a single CertExpress invitation
#
# Retrieve an existing CertExpress invitation sent to a customer.
#
# A CertExpression invitation allows a customer to follow a helpful step-by-step guide to provide information
# about their certificates. This step by step guide allows the customer to complete and upload the full
# certificate in a convenient, friendly web browser experience. When the customer completes their certificates,
# they will automatically be recorded to your company and linked to the customer record.
#
# The [CertExpress website](https://app.certexpress.com/home) is available for customers to use at any time.
# Using CertExpress with this API will ensure that your certificates are automatically linked correctly into
# your company so that they can be used for tax exemptions.
#
# Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
# Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
# certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
# storage for this company, call `RequestCertificateSetup`.
#
# ### Security Policies
#
# * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
# * This API depends on the following active services
*Required* (all): AvaTaxPro.
# @param companyId [Integer] The unique ID number of the company that issued this invitation
# @param customerCode [String] The number of the customer where the request is sent to
# @param id [Integer] The unique ID number of this CertExpress invitation
# @param include [String] OPTIONAL: A comma separated list of special fetch options. No options are defined at this time.
# @return [Object]
def get_cert_express_invitation(companyId, customerCode, id, options={}) path = "/api/v2/companies/#{companyId}/customers/#{customerCode}/certexpressinvites/#{id}"
get(path, options) end
# List CertExpress invitations
#
# Retrieve CertExpress invitations sent by this company.
#
# A CertExpression invitation allows a customer to follow a helpful step-by-step guide to provide information
# about their certificates. This step by step guide allows the customer to complete and upload the full
# certificate in a convenient, friendly web browser experience. When the customer completes their certificates,
# they will automatically be recorded to your company and linked to the customer record.
#
# The [CertExpress website](https://app.certexpress.com/home) is available for customers to use at any time.
# Using CertExpress with this API will ensure that your certificates are automatically linked correctly into
# your company so that they can be used for tax exemptions.
#
# Using exemption certificates endpoints requires setup of an auditable document storage for each company that will use certificates.
# Companies that do not have this storage system set up will receive the error `CertCaptureNotConfiguredError` when they call exemption
# certificate related APIs. To check if this company is set up, call `GetCertificateSetup`. To request setup of the auditable document
# storage for this company, call `RequestCertificateSetup`.
#
# ### Security Policies
#
# * This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
# * This API depends on the following active services
*Required* (all): AvaTaxPro.
# @param companyId [Integer] The unique ID number of the company that issued this invitation
# @param include [String] OPTIONAL: A comma separated list of special fetch options. No options are defined at this time.
# @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/).
*Not filterable:* companyId, customer, coverLetter, exposureZones, exemptReasons, requestLink
# @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.
# @param skip [Integer] If nonzero, skip this number of results before returning data. Used with `$top` to provide pagination for large datasets.
# @param orderBy [String] A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`.
# @return [FetchResult]
def list_cert_express_invitations(companyId, options={}) path = "/api/v2/companies/#{companyId}/certexpressinvites"
get(path, options) end
end
end
end