curl --request POST \
--url https://api.numeralhq.com/tax/calculations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-API-Version: <x-api-version>' \
--data '
{
"customer": {
"address": {
"address_line_1": "4 Privet Drive",
"address_city": "Little Whinging",
"address_province": "CA",
"address_postal_code": "90210",
"address_country": "US",
"address_type": "shipping"
}
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"line_items": [
{
"reference_product_id": "wand_elder_12",
"amount": 10000,
"quantity": 1
}
]
}
}
'{
"testmode": true,
"id": "calc_1783369478354d32be1ac-066b-49b1-a952-3e45e640c49c",
"object": "tax.calculation",
"customer_currency_code": "USD",
"line_items": [
{
"line_item_id": "li_1783369478353396a9168-1972-4798-80cb-536d96c0cc5a",
"product": {
"reference_line_item_id": "",
"reference_product_id": "wand_elder_12",
"reference_product_name": "Elder Wand",
"product_tax_code": "GENERAL_MERCHANDISE"
},
"tax_jurisdictions": [
{
"tax_rate": 0.0725,
"rate_type": "general state sales tax",
"jurisdiction_name": "California",
"fee_amount": 0,
"note": "RATE_FRAC"
},
{
"tax_rate": 0.025,
"rate_type": "general county local sales tax",
"jurisdiction_name": "Los Angeles",
"fee_amount": 0,
"note": "RATE_FRAC"
}
],
"tax_amount": 975,
"amount_excluding_tax": 10000,
"amount_including_tax": 10975,
"quantity": 1
}
],
"total_tax_amount": 975,
"tax_included_in_amount": false,
"total_amount_excluding_tax": 10000,
"total_amount_including_tax": 10975,
"expires_at": 1783455878
}Create Calculations
Get tax information for a given product and address
curl --request POST \
--url https://api.numeralhq.com/tax/calculations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-API-Version: <x-api-version>' \
--data '
{
"customer": {
"address": {
"address_line_1": "4 Privet Drive",
"address_city": "Little Whinging",
"address_province": "CA",
"address_postal_code": "90210",
"address_country": "US",
"address_type": "shipping"
}
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"line_items": [
{
"reference_product_id": "wand_elder_12",
"amount": 10000,
"quantity": 1
}
]
}
}
'{
"testmode": true,
"id": "calc_1783369478354d32be1ac-066b-49b1-a952-3e45e640c49c",
"object": "tax.calculation",
"customer_currency_code": "USD",
"line_items": [
{
"line_item_id": "li_1783369478353396a9168-1972-4798-80cb-536d96c0cc5a",
"product": {
"reference_line_item_id": "",
"reference_product_id": "wand_elder_12",
"reference_product_name": "Elder Wand",
"product_tax_code": "GENERAL_MERCHANDISE"
},
"tax_jurisdictions": [
{
"tax_rate": 0.0725,
"rate_type": "general state sales tax",
"jurisdiction_name": "California",
"fee_amount": 0,
"note": "RATE_FRAC"
},
{
"tax_rate": 0.025,
"rate_type": "general county local sales tax",
"jurisdiction_name": "Los Angeles",
"fee_amount": 0,
"note": "RATE_FRAC"
}
],
"tax_amount": 975,
"amount_excluding_tax": 10000,
"amount_including_tax": 10975,
"quantity": 1
}
],
"total_tax_amount": 975,
"tax_included_in_amount": false,
"total_amount_excluding_tax": 10000,
"total_amount_including_tax": 10975,
"expires_at": 1783455878
}amount is the total for the line (not per-unit) in the currency’s smallest unit — quantity is record-keeping only and does not affect the taxable base. Per-unit pricing starts in 2026-01-01.tax_rate values. Each tax_rate in tax_jurisdictions is the statutory rate for that jurisdiction, and in some jurisdictions a rate applies to only part of the line item amount. Tennessee’s single article rules are the common example: local rates apply only to the first $1,600 of an item, and the 2.75% state single article rate applies only to the portion between $1,600 and $3,200. For a $10,000 item the returned rates sum to 12.25%, but the tax due is $788, an effective rate of 7.88%.Always charge the returned tax_amount (or total_tax_amount). If you need an effective rate, compute tax_amount / amount_excluding_tax from the response rather than adding up tax_rate values. Jurisdictions whose rate applies to only part of the amount carry a note value other than RATE_FRAC, such as PROGRESSIVE_RATE.cURL Header Example
Always set an API version — passX-API-Version explicitly (recommended), or configure a default version on your account. Requests with neither fall back to 2024-09-01:
curl --request POST \
--url https://api.numeralhq.com/tax/calculations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-API-Version: 2024-09-01' \
--data '{ ... }'
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The API version for this request. Always set a version: pass this header explicitly (recommended), or configure a default API version on your account and omit the header. Accounts with no configured version fall back to 2024-09-01, but an account default set to a newer version takes precedence over that fallback.
2024-09-01 Body
Customer details. Address is required. Optionally accepts a customer ID for order tracking and exemptions.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Optional, but relevant for tax collection in certain jurisdictions. The address that a product is shipped from.
Show child attributes
Show child attributes
You can store arbitrary keys and values in the metadata. At most 50 keys; each key at most 255 characters; each value must be a string of at most 255 characters (non-string values are rejected).
Show child attributes
Show child attributes
Response
Calculate response
The ID of the calculation. You will use this to create a transaction.
"calc_1783369478354d32be1ac-066b-49b1-a952-3e45e640c49c"
The type of object: tax.calculation.
"tax.calculation"
The ISO-4217 currency code of the transaction.
"USD"
Show child attributes
Show child attributes
false
Total tax to charge on this calculation, in the currency's smallest unit (rounded to an integer).
140
Total sale charge excluding tax, in the currency's smallest unit (rounded to an integer).
2000
Total sale charge plus tax, in the currency's smallest unit (rounded to an integer). What you should charge your customer.
2140
Unix timestamp in seconds at which the quoted tax rates expire — 24 hours after the calculation is created.
1714787673
True if using a production API key. False if using a test API key.
false
You can store arbitrary keys and values in the metadata. At most 50 keys; each key at most 255 characters; each value must be a string of at most 255 characters (non-string values are rejected).
Show child attributes
Show child attributes