V9 - QuickBooks automated sales tax: Handling tax-exempt customers in SOS
SOS Inventory accounts that sync with QuickBooks Online and use its automated sales tax feature can manage the status of non-taxable (as well as taxable) customers within SOS.
SOS Inventory enables the Taxable field of the customer Edit page (Quick add > Sales > Customers) by default. If you uncheck the Taxable box, a new field appears: Tax exempt reason.
If a customer is tax-exempt, selecting the Tax exempt reason is required. As is true for any tax-exempt customer in SOS Inventory (even those who do not use QuickBooks’ automated sales tax), the checkboxes in the Tax column on sales transactions are grayed out. SOS will not add any sales tax, regardless of what is selected in the Tax code or entered in the Tax % fields.
Specifying the reason for a customer's tax exemption also applies to customer bulk edits/imports and API POSTs/PUTs. In these cases, you must provide a TaxExemptReasonId code, which maps to a recognized tax exemption reason in QuickBooks Online.
Refer to the chart in the section below, Tax exempt reason field options and TaxExemptReasonId codes.
Tax exempt reason field options and TaxExemptReasonId codes
The Reason Description column in the chart below shows the options available for the Tax Exempt Reason field in the Customer definition.
The chart’s ID column shows their corresponding number codes—the TaxExemptReasonID, which must be used for customer bulk edits/imports and API POSTs and PUTs. If you are performing a customer bulk edit/import or use API, also review the section Designating tax exempt reasons in customer bulk edits/imports and API for additional important information.
ID | Reason description |
---|---|
1 | Federal government |
2 | State government |
3 |
Local government |
4 |
Tribal government |
5 | Charitable organization |
6 | Religious organization |
7 | Educational organization |
8 | Hospital |
9 | Resale |
10 | Direct pay permit |
11 | Multiple points of use |
12 | Direct mail |
13 | Agricultural production |
14 | Industrial production / manufacturing |
15 | Foreign diplomat |
99 | Other |
Designating tax-exempt reasons in customer bulk edits/imports and API
Customer bulk edits. If FALSE is entered in the Taxable field for a customer, you must specify the reason by entering a number code in the TaxExemptReasonId column of your spreadsheet.
- Enter the appropriate ID number in the TaxExemptReasonId column. Do not enter the description.
- Through March 31, 2026, if no TaxExemptReasonId is provided for a non-taxable customer, SOS Inventory will automatically default the reason to 99 (Other). Starting on April 1, 2026, all imports with non-taxable customers that do not include a TaxExemptReasonId will fail. This field is considered mandatory.
API POSTs/PUTs. Whenever you POST or PUT a customer with Taxable = false, you must also provide a valid TaxExemptReasonId.
- Important: TaxExemptReasonId must be passed as a string containing a numeric value (e.g., "4" or "99"), not as an integer.
- Through March 31, 2026, if no TaxExemptReasonId is provided for a non-taxable customer, SOS Inventory will automatically default the reason to "99" (Other). Starting on April 1, 2026, all POSTs and PUTs for non-taxable customers without a TaxExemptReasonId will be rejected with a 400 Bad Request error.
Changing a customer’s tax status
If a customer’s tax status changes, you can make that change to the customer definition in SOS Inventory (either individually or via a bulk edit) or make the update in QuickBooks Online. The change(s) made in one application will sync to the other.