import Conductor from 'conductor-node';
const conductor = new Conductor({
apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted
});
const salesTaxCodes = await conductor.qbd.salesTaxCodes.list({
conductorEndUserId: 'end_usr_1234567abcdefg',
});
console.log(salesTaxCodes.data);import os
from conductor import Conductor
conductor = Conductor(
api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted
)
sales_tax_codes = conductor.qbd.sales_tax_codes.list(
conductor_end_user_id="end_usr_1234567abcdefg",
)
print(sales_tax_codes.data)curl --request GET \
--url https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes \
--header 'Authorization: Bearer <token>' \
--header 'Conductor-End-User-Id: <conductor-end-user-id>'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Conductor-End-User-Id: <conductor-end-user-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Conductor-End-User-Id", "<conductor-end-user-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes")
.header("Conductor-End-User-Id", "<conductor-end-user-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Conductor-End-User-Id"] = '<conductor-end-user-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"objectType": "list",
"url": "/v1/quickbooks-desktop/sales-tax-codes",
"data": [
{
"id": "80000001-1234567890",
"objectType": "qbd_sales_tax_code",
"createdAt": "2025-01-01T12:34:56.000Z",
"updatedAt": "2025-02-01T12:34:56.000Z",
"revisionNumber": "1721172183",
"name": "Tax",
"isActive": true,
"isTaxable": true,
"description": "Standard tax rate for California",
"salesTaxItem": {
"id": "80000001-1234567890",
"fullName": "State Sales Tax"
}
}
]
}List all sales-tax codes
Returns a list of sales-tax codes.
NOTE: QuickBooks Desktop does not support pagination for sales-tax codes; hence, there is no cursor parameter. Users typically have few sales-tax codes.
import Conductor from 'conductor-node';
const conductor = new Conductor({
apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted
});
const salesTaxCodes = await conductor.qbd.salesTaxCodes.list({
conductorEndUserId: 'end_usr_1234567abcdefg',
});
console.log(salesTaxCodes.data);import os
from conductor import Conductor
conductor = Conductor(
api_key=os.environ.get("CONDUCTOR_SECRET_KEY"), # This is the default and can be omitted
)
sales_tax_codes = conductor.qbd.sales_tax_codes.list(
conductor_end_user_id="end_usr_1234567abcdefg",
)
print(sales_tax_codes.data)curl --request GET \
--url https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes \
--header 'Authorization: Bearer <token>' \
--header 'Conductor-End-User-Id: <conductor-end-user-id>'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Conductor-End-User-Id: <conductor-end-user-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Conductor-End-User-Id", "<conductor-end-user-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes")
.header("Conductor-End-User-Id", "<conductor-end-user-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.conductor.is/v1/quickbooks-desktop/sales-tax-codes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Conductor-End-User-Id"] = '<conductor-end-user-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"objectType": "list",
"url": "/v1/quickbooks-desktop/sales-tax-codes",
"data": [
{
"id": "80000001-1234567890",
"objectType": "qbd_sales_tax_code",
"createdAt": "2025-01-01T12:34:56.000Z",
"updatedAt": "2025-02-01T12:34:56.000Z",
"revisionNumber": "1721172183",
"name": "Tax",
"isActive": true,
"isTaxable": true,
"description": "Standard tax rate for California",
"salesTaxItem": {
"id": "80000001-1234567890",
"fullName": "State Sales Tax"
}
}
]
}Authorizations
Your Conductor secret key using Bearer auth (e.g., "Authorization: Bearer {{YOUR_SECRET_KEY}}").
Headers
The ID of the End-User to receive this request.
"end_usr_1234567abcdefg"
Query Parameters
Filter for specific sales-tax codes by their QuickBooks-assigned unique identifier(s).
IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.
NOTE: If any of the values you specify in this parameter are not found, the request will return an error.
["80000001-1234567890"]
Filter for specific sales-tax codes by their name(s), case-insensitive. Like id, name is a unique identifier for a sales-tax code.
IMPORTANT: If you include this parameter, QuickBooks will ignore all other query parameters for this request.
NOTE: If any of the values you specify in this parameter are not found, the request will return an error.
["Tax"]
The maximum number of objects to return.
IMPORTANT: QuickBooks Desktop does not support cursor-based pagination for sales-tax codes. This parameter will limit the response size, but you cannot fetch subsequent results using a cursor. For pagination, use the name-range parameters instead (e.g., nameFrom=A&nameTo=B).
When this parameter is omitted, the endpoint returns all sales-tax codes without limit, unlike paginated endpoints which default to 150 records. This is acceptable because sales-tax codes typically have low record counts.
x >= 110
Filter for sales-tax codes that are active, inactive, or both.
active, all, inactive "active"
Filter for sales-tax codes updated on or after this date/time. Accepts the following ISO 8601 formats:
- date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the start of the specified day in the local timezone of the end-user's computer (e.g.,
2025-01-01→2025-01-01T00:00:00). - datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
- datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
"2025-01-01T12:34:56.000Z"
Filter for sales-tax codes updated on or before this date/time. Accepts the following ISO 8601 formats:
- date-only (YYYY-MM-DD) - QuickBooks Desktop interprets the date as the end of the specified day in the local timezone of the end-user's computer (e.g.,
2025-01-01→2025-01-01T23:59:59). - datetime without timezone (YYYY-MM-DDTHH:mm:ss) - QuickBooks Desktop interprets the timestamp in the local timezone of the end-user's computer.
- datetime with timezone (YYYY-MM-DDTHH:mm:ss±HH:mm) - QuickBooks Desktop interprets the timestamp using the specified timezone.
"2025-02-01T12:34:56.000Z"
Filter for sales-tax codes whose name contains this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameStartsWith or nameEndsWith.
"ABC"
Filter for sales-tax codes whose name starts with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameEndsWith.
"ABC"
Filter for sales-tax codes whose name ends with this substring, case-insensitive.
NOTE: If you use this parameter, you cannot also use nameContains or nameStartsWith.
"ABC"
Filter for sales-tax codes whose name is alphabetically greater than or equal to this value.
"A"
Filter for sales-tax codes whose name is alphabetically less than or equal to this value.
"Z"
Response
Returns a list of sales-tax codes.
The type of object. This value is always "list".
"list""list"
The endpoint URL where this list can be accessed.
"/v1/quickbooks-desktop/sales-tax-codes"
The array of sales-tax codes.
Show child attributes
Show child attributes

