CDTFA Tax Rate API
URL Templates
Use the following URL templates to get tax rate information associated with a specific address or latitude, longitude location.
Get Rate By Address
https://services.maps.cdtfa.ca.gov/api/taxrate/GetRateByAddress?address={address}&city={city}&zip={zip}
Get Rate By Latitude and Longitude
https://services.maps.cdtfa.ca.gov/api/taxrate/GetRateByLngLat?longitude={longitude}&latitude={latitude}
API Parameters
Get Rate By Address
Parameters | Description |
---|---|
address |
Required. Spaces in the address should be separated by '+' symbol. Example: address=450+n+st |
city |
Required. Spaces in the city name should be separated by '+' symbol. Example: city=san+diego |
zip |
Required. 5 digit zip code. |
Get Rate By Latitude and Longitude
Parameters | Description |
---|---|
latitude |
Required. Latitude of a location in decimal degrees (DD) format. |
longitude |
Required. Longitude of a location in decimal degrees (DD) format. |
Examples
The following are examples of a tax rate request by address and latitude, longitude. Use the REST API Request Tool to interact with the API.
taxRateInfo
is a collection of objects that contains tax rate information associated with a location.
Usually this collection will contain a single object, but may contain more than one if the location is near a tax rate area boundary.
geocodeInfo
is an object that contains information regarding the accuracy of the address geocode and buffer radius used when searching for a tax rate area.
Less accurate address geocodes result in a larger search radius, and increase the possibility of multiple tax rate areas being returned.
Searches by latitude and longitude still contain the geocodeInfo
object, but will only contain a single property that specifies the buffer search radius.
Get Rate By Address - Single Result
https://services.maps.cdtfa.ca.gov/api/taxrate/GetRateByAddress?address=450+n+st&city=sacramento&zip=95814
{
"taxRateInfo": [
{
"rate": 0.0875,
"jurisdiction": "SACRAMENTO",
"city": "SACRAMENTO",
"county": "SACRAMENTO",
"tac": "340607050000"
}
],
"geocodeInfo": {
"matchCodes": [
"Good"
],
"formattedAddress": "450 N St, Sacramento, CA 95814",
"confidence": "High",
"calcMethod": "Rooftop",
"bufferDistance": 50
},
"termsOfUse": "https://www.cdtfa.ca.gov/dataportal/policy.htm",
"disclaimer": "https://www.cdtfa.ca.gov/dataportal/disclaimer.htm"
}
}
Get Rate By Address - Multiple Results
https://services.maps.cdtfa.ca.gov/api/taxrate/GetRateByAddress?address=2444+s+alameda+st&city=los+angeles&zip=90058
{
"taxRateInfo": [
{
"rate": 0.1025,
"jurisdiction": "VERNON",
"city": "VERNON",
"county": "LOS ANGELES",
"tac": "190398120000"
},
{
"rate": 0.095,
"jurisdiction": "LOS ANGELES",
"city": "LOS ANGELES",
"county": "LOS ANGELES",
"tac": "190505940000"
}
],
"geocodeInfo": {
"matchCodes": [
"Good"
],
"formattedAddress": "2444 S Alameda St, Los Angeles, CA 90058",
"confidence": "High",
"calcMethod": "Rooftop",
"bufferDistance": 50
},
"termsOfUse": "https://www.cdtfa.ca.gov/dataportal/policy.htm",
"disclaimer": "https://www.cdtfa.ca.gov/dataportal/disclaimer.htm"
}
}
Get Rate By Latitude and Longitude
https://services.maps.cdtfa.ca.gov/api/taxrate/GetRateByLngLat?Longitude=-121.502520&Latitude=38.577650
{
"taxRateInfo": [
{
"rate": 0.0875,
"jurisdiction": "SACRAMENTO",
"city": "SACRAMENTO",
"county": "SACRAMENTO",
"tac": "340607050000"
}
],
"geocodeInfo": {
"bufferDistance": 50
},
"termsOfUse": "https://www.cdtfa.ca.gov/dataportal/policy.htm",
"disclaimer": "https://www.cdtfa.ca.gov/dataportal/disclaimer.htm"
}
}
Response Details
Property | Description |
---|---|
taxRateInfo |
A collection of objects containing tax rate information associated with a location. Multiple objects may be returned if the location is near the boundary of a tax rate area. |
geocodeInfo |
An object containing the Geocode information. |
termsOfUse |
The URL for terms of use. |
disclaimer |
The URL for the disclaimer. |
The taxRateInfo
object provides the following information.
Property | Description |
---|---|
rate |
The tax rate at the location. |
jurisdiction |
The jurisdiction at the location. |
city |
The city at the location. |
county |
The county at the location. |
tac |
The tax area code at the location. |
The geocodeInfo
object provides the following information.
Property | Description |
---|---|
matchCodes |
One or more match code values that represent the geocoding level for each location in the response. |
formattedAddress |
Formatted address. |
confidence |
The level of confidence that the geocoded location result is a match. |
calcMethod |
The method that was used to compute the geocode point. |
bufferDistance |
The search radius used to identify tax rate areas around the geocode location. Distance depends on the geocode confidence and calculation method. |
HTTP Status Codes
The following are possible HTTP status codes. A successful request will return a 200 OK status code. A request with invalid syntax and/or parameters will usually return a 400 Bad Request status code, with error details in the response. See below for examples of 400 Bad Request calls.
HTTP Status Code | Description |
---|---|
200 OK |
The request was successful. |
400 Bad Request |
The request contained an error. See error details in return message. |
403 Forbidden |
The request is for something forbidden. Authorization will not help.> |
404 Not Found |
The requested resource was not found. |
500 Internal Server Error |
Your request could not be completed because there was a problem with the service. |
503 Service Unavailable |
There's a problem with the service right now. Please try again later. |
Error Examples
https://services.maps.cdtfa.ca.gov/api/taxrate/GetRateByAddress?Address=450+N+St&City=Sacramento
{
"errors": [
{
"field":"Zip",
"message":"The Zip field is required."
}
]
}
https://services.maps.cdtfa.ca.gov/api/taxrate/GetRateByAddress?Address=PO+Box+942879&City=Sacramento&Zip=95814
{
"errors": [
{
"field": "Address",
"message": "Invalid value: 'PO Box'"
}
]
}
SOAP Service
The CDTFA Tax Rate API is also available through a SOAP Service. Use the format in the request example below for the body of the request. If no city, state, street address, and zip code is specified, then a latitude and longitude must be specified. Delete all parameters that are not used in the request.
Request Example
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tax="http://services.gis.boe.ca.gov/api/taxrates">
<soapenv:Header />
<soapenv:Body>
<tax:GetRate>
<tax:request>
<tax:City>Sacramento</tax:City>
<tax:State>CA</tax:State>
<tax:StreetAddress>450 N St</tax:StreetAddress>
<tax:ZipCode>95814</tax:ZipCode>
<tax:ZipCodePlusFour></tax:ZipCodePlusFour>
<tax:Latitude></tax:Latitude>
<tax:Longitude></tax:Longitude>
</tax:request>
</tax:GetRate>
</soapenv:Body>
</soapenv:Envelope>
Response Example
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<s:Body>
<GetRateResponse xmlns="http://services.gis.boe.ca.gov/api/taxrates">
<GetRateResult>
<CARateResponses>
<CARateResponse>
<BufferSize>50</BufferSize>
<ResponseDate>2020-12-15T18:36:59.698693+00:00</ResponseDate>
<CARateRequest>
<StreetAddress>450 N St</StreetAddress>
<City>Sacramento</City>
<State>CA</State>
<ZipCode>95814</ZipCode>
<ZipCodePlusFour xsi:nil="true" />
<Longitude xsi:nil="true" />
<Latitude xsi:nil="true" />
</CARateRequest>
<Responses>
<RateInformation>
<Rate>0.0875</Rate>
<Details>
<TAC>340607050000</TAC>
<City xsi:type="xsd:string">SACRAMENTO</City>
<County>SACRAMENTO</County>
<Jurisdiction>SACRAMENTO</Jurisdiction>
<CalcMethod>Rooftop</CalcMethod>
<Confidence>High : Good</Confidence>
</Details>
</RateInformation>
</Responses>
<Errors />
<TermsOfUse>https://www.cdtfa.ca.gov/dataportal/policy.htm</TermsOfUse>
</CARateResponse>
</CARateResponses>
<Disclaimer>https://www.cdtfa.ca.gov/dataportal/disclaimer.htm</Disclaimer>
<AppVersion>1.0.0.0</AppVersion>
</GetRateResult>
</GetRateResponse>
</s:Body>
</s:Envelope>