Exemption Certificates

Part 1. Why should you care about exemption certificates?

This is a question we are frequently asked. The answer: because retailers often have customers who are exempt from paying taxes —i.e., customers who purchase goods for resale, purchases made by schools or churches, or purchases for agricultural use.

If your online store does not support exemption certificates, you may want to ask a different question: How many sales to exempt entities are you loosing to your competitors?

Part 2. Tax exempt status must be claimed by the purchaser

TaxCloud applies sales tax to every transaction, unless a tax exemption is identified.

Frequently, a class of products may be exempt from sales tax in the customer’s jurisdiction, which TaxCloud automatically recognizes.

Alternatively, the item may ordinarily be taxable, however the customer may be an exempt entity (like a church, school, or government), or the customer may be purchasing for an exempt use (such as a purchase for resale, or agricultural purposes).

This is where TaxCloud's ExemptionCertificates management capabilities shine. In order for one of your customers to qualify as an exempt entity or for an exempt use, specific information must be collected to substantiate that customer's claimed exemption.

TaxCloud can manage all of your customer's Exemption Certificates just as easily as we can manage all of your sales tax reporting and remittance obligations.

Part 3. How is our approach to Exemption Certificates better?

For most retailers, collecting and managing sales tax exemption certificates is cumbersome and costly, as well as risky. This is because retailers are expected to evaluate the reasonableness of the claimed exemption.

Historically, this exepectation was based upon the context that local retailers used to know their regular customers, sometimes even on a first name basis. This is generally not the case with online sales.

Fortunately, our agreement with the various states offers an important accomodation: Given that there is no way to know for certain if a claimed exemption is reasonable or valid from thousands of miles away, so long as the purchaser provides all of the elements required in our Exemption Certificate form and we have the purchaser's address details, the purchaser will be held liable for the validity of their claimed exemption, and not the retailer.

Part 4. Types of Exemption Certificates

TaxCloud supports Single-use and Blanket Exemption Certificates.

Single Use Exemption Certificates

Single Use exemption certificates are only valid for a single purchase.

Blanket Exemption Certificates

Once a blanket exemption certificates is created and saved in TaxCloud, it can be relied upon for multiple transactions indefinitely.

Exemption Certificate Identifiers

TaxCloud assigns each issued certificate a GUID type CertificateID. This CertificateID is the only parameter needed for any subsequent Lookup to qualify for exempt treatment. You can keep this exemption certificate ID for future use, or you can rely upon our GetExemptionCertificates API to retrieve a list of previously saved Exemption Certificates for your particular CustomerID.

Part 5. Exemption Certificate Parameters

A valid exemption certificate requires 17 distinct parameters, some are free-form text, while others have prescribed options.

5.1 AddExemptionCertificate API

The base parameters for the AddExemptionCertificate API are:

Parameter Description
apiLoginID Your TaxCloud API ID uniquely identifies which website associated with your TaxCloud account is making this request. Find your API ID(s) in the TaxCloud Websites Area.
apiKey Your TaxCloud API KEY is a securely generated password issued for each API ID (apiLoginID).
customerID The unique identifier for the customer entity saving the Exemption Certificate. This should be your system's internal identifier (usually an integer or UUID/GUID). This value should not be a value (such as an email address) that could be used to personally identify your customer.
exemptCert A complex object describing the claimed exemption, as detailed below.

5.2 exemptCert : Detail

The Detail parameter object provides TaxCloud with all of the details necessary to substantiate the claimed exemption. All Parameters are required.

Parameter Description
CreatedDate Typically today's date (the date this Exemption Certificate is to be valid from)
SinglePurchase Boolean - false for re-usable Blanket certificate
SinglePurchaseOrderNumber Required for SinglePurchase certificates
PurchaserFirstName Your customer's first name.
PurchaserLastName Your customer's last name.
PurchaserTitle Your customer's corporate title (e.g., Purchasing Manager)
PurchaserAddress1 Entity business street address.
PurchaserAddress2 Entity business suite address (e.g., 3rd Floor).
PurchaserCity Entity city.
PurchaserState Entity state (two-character abbreviation only)
PurchaserZip Entity Postal Code.
ExemptStates Array of ExemptState objects (see 5.2.1 below).
PurchaseTaxID PurchaserTaxID object (see 5.2.2 below).
PurchaserExemptionReason One of the prescribed values listed below (see 5.2.3 below).
PurchaserExemptionValue Free-form text if required by chosen PurchaserExemptionReason.
PurchaserBusinessType One of the prescribed values listed below (see 5.2.3 below).
PurchaserBusinessTypeOtherValue Free-form text if required by chosen PurchaserBusinessType.

5.2.1 ExemptState object

Parameter Description
StateAbbr Two-character State Abbreviation (i.e., WA, NY, AL, etc.)
ReasonForExemption One of the prescribed values listed below (see 5.2.3 below).
IdentificationNumber State-issued taxpayer (or exempt entity) identification number

5.2.2 PurchaserTaxID object

Parameter Description
TaxType SSN, FEIN, StateIssued, or ForeignDiplomat
IDNumber Officially-issued identifier for the tax exempt entity.
StateOfIssue Issuing government abbreviation—Two-characters for state-issued, three characters for country-issued.

5.2.3 PurchaserExemptionReason options

Must be one of the following values (bold indicates PurchaserExemptionReasonValue must also be provided):

PurchaserExemptionReason
FederalGovernmentDepartment StateOrLocalGovernmentName TribalGovernmentName
ForeignDiplomat CharitableOrganization ReligiousOrEducationalOrganization
Resale AgriculturalProduction IndustrialProductionOrManufacturing
DirectPayPermit DirectMail Other
PurchaserExemptionReasonValue
PurchaserExemptionReasonValue Free-form text if required by chosen PurchaserExemptionReason.

5.2.4 PurchaserBusinessType (Exempt Entity Type) options

Must be one of the following values (bold indicates PurchaserExemptionReasonValue must also be provided):

PurchaserBusinessType
AccommodationAndFoodServices Agricultural_Forestry_Fishing_Hunting Construction
FinanceAndInsurance Information_PublishingAndCommunications Manufacturing
Mining RealEstate RentalAndLeasing
RetailTrade TransportationAndWarehousing Utilities
WholesaleTrade BusinessServices ProfessionalServices
EducationAndHealthCareServices NonprofitOrganization Government
NotABusiness Other
PurchaserBusinessTypeOtherValue
PurchaserBusinessTypeOtherValue Free-form text if required by chosen PurchaserBusinessType.

Part 6. Putting it all together

Now that you are an expert on all the parameters, and you have your parameters assembled, your HTTP POST to https://api.taxcloud.com/1.0/TaxCloud/AddExemptCertificate is ready to go!

Here is a sample request:

{
    "apiLoginID":"XXXXXXXX",
    "apiKey":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "customerID":"YourUniqueCustomer",
    "exemptCert": {
        "Detail": {
            "CertificateID":"",
            "CreatedDate": "09/28/2015",
            "SinglePurchase": "false",
            "SinglePurchaseOrderNumber": "",
            "PurchaserFirstName": "I Love",
            "PurchaserLastName": "TaxCloud",
            "PurchaserTitle": "Dr.",
            "PurchaserAddress1": "162 First Avenue",
            "PurchaserAddress2": "Third Floor",
            "PurchaserCity": "Norwalk",
            "PurchaserState": "CT",
            "PurchaserZip": "06851",
            "ExemptStates": [
                {
                        "StateAbbr": "WA",
                        "ReasonForExemption": "AgriculturalProduction",
                        "IdentificationNumber": "XXXXXXXXXX"
                },
                {
                        "StateAbbr": "AL",
                        "ReasonForExemption": "Resale",
                        "IdentificationNumber": "YYYYYYYYYY"
                },
                {
                        "StateAbbr": "AR",
                        "ReasonForExemption": "DirectPayPermit",
                        "IdentificationNumber": "ZZZZZZZZZZ"
                }
            ],
            "PurchaserTaxID":{
                "TaxType": "FEIN",
                "IDNumber": "XXXXXXXXXX",
                "StateOfIssue": "USA"
            },
            "PurchaserExemptionReason": "AgriculturalProduction",
            "PurchaserExemptionValue":"",
            "PurchaserBusinessType": "Agricultural_Forestry_Fishing_Hunting",
            "PurchaserBusinessTypeOtherValue":""
        }
    }
}

Part 7. The Response

If successful, TaxCloud will respond ResponseType: 3 (Succcess) along with your newly issued exemption CertificateID, like this:

{
    "CertificateID": "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY",
    "ResponseType": 3,
    "Messages": []
}

Part 8. What's Next?

Once an Exemption Certificate has been accepted by TaxCloud, you will get a CertificateID back in the response — this must be passed in to subsequent Lookup API calls for the claimed exemption to be applied to that transaction.

IMPORTANT: If the exemption certificate is incomplete or has invalid information, tax will be applied to the transaction (a warning should be returned in the API response).

TaxCloud inspects the exemptCert parameter for every Lookup API call. If your customer has already provided an exemption certificate (identified by exemptCert parameter), then he or she does not need to resubmit the complete form.

We have a GetExemptionCertificates API so you can display previously saved Exemption Certificates so that he or she can select one to apply to their current transaction.