curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"address": {
"address_line_1": "100 Market St",
"address_city": "San Francisco",
"address_province": "CA",
"address_postal_code": "94105",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["marketplace_provider"]
}'
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"type": "CONSUMER",
"ip": {
"value": "217.217.113.167",
"resolution": "strict"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["marketplace_provider"]
}'
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"type": "CONSUMER",
"address": {
"address_line_1": "9500 Civic Center Drive",
"address_city": "Thornton",
"address_province": "CO",
"address_postal_code": "80229",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "mer_1781234567890",
"type": "BUSINESS"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"reference_line_item_id": "goods",
"product_category": "GENERAL_MERCHANDISE",
"amount": 10000,
"quantity": 1
}
]
},
"roles": ["marketplace_provider"],
"fee_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"reference_line_item_id": "fee",
"product_category": "SAAS_GENERAL",
"amount": 1000,
"quantity": 1
}
]
}
}'
# Returns destination-based rates regardless of the caller's own nexus.
# Use this when you (the payment processor) need to surface the rates the
# merchant would owe, without your own registration footprint gating the response.
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"address": {
"address_line_1": "100 Market St",
"address_city": "San Francisco",
"address_province": "CA",
"address_postal_code": "94105",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "forced",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["payment_processor"]
}'
# customer.id applies the customer's exemptions (global tax-exempt flag or
# exemption certificates on file) to the order. default_customer_type prices
# the order as a CONSUMER if the ID has not been created in Numeral yet.
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"id": "my-buyer-456",
"address": {
"address_line_1": "100 Market St",
"address_city": "San Francisco",
"address_province": "CA",
"address_postal_code": "94105",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["marketplace_provider"],
"default_customer_type": "CONSUMER"
}'
{
"id": "calc_platform_123456789",
"object": "tax.calculation",
"testmode": true,
"customer_currency_code": "USD",
"line_items": [
{
"product": {
"product_tax_code": "GENERAL_MERCHANDISE"
},
"tax_jurisdictions": [
{
"tax_rate": 0.0875,
"rate_type": "SALES TAX",
"jurisdiction_name": "California",
"tax_authority_name": "California State",
"tax_authority_type": "STATE",
"tax_type": "SALES",
"fee_amount": 0,
"note": ""
}
],
"quantity": 3,
"tax_amount": 656,
"amount_excluding_tax": 7500,
"amount_including_tax": 8156
}
],
"totals": {
"order": {
"tax_amount": 656,
"amount_excluding_tax": 7500,
"amount_including_tax": 8156,
"effective_tax_rate": 0.087467
}
},
"merchant": {
"id": "merch_abc123",
"reference_merchant_id": "my-seller-123"
},
"roles": ["marketplace_provider"],
"expires_at": 1735690200
}
{
"testmode": true,
"id": "plat_calc_1793039301789",
"object": "tax.platform_calculation",
"customer_currency_code": "USD",
"customer": {
"type": "CONSUMER"
},
"merchant": {
"merchant_id": "mer_1781234567890"
},
"roles": ["marketplace_provider"],
"line_items": [
{
"line_item_id": "li_1793039301701",
"product": {
"reference_line_item_id": "goods",
"reference_product_id": "default-general-merchandise",
"reference_product_name": "Default GENERAL_MERCHANDISE Product",
"product_tax_code": "GENERAL_MERCHANDISE"
},
"tax_jurisdictions": [
{
"tax_rate": 0.029,
"tax_due_decimal": 290,
"fee_amount": 0,
"rate_type": "GENERAL STATE SALES TAX",
"tax_authority_name": "Colorado",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.0075,
"tax_due_decimal": 75,
"fee_amount": 0,
"rate_type": "GENERAL COUNTY LOCAL SALES TAX",
"tax_authority_name": "Adams",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.0375,
"tax_due_decimal": 375,
"fee_amount": 0,
"rate_type": "GENERAL CITY LOCAL SALES TAX",
"tax_authority_name": "Thornton",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.01,
"tax_due_decimal": 100,
"fee_amount": 0,
"rate_type": "GENERAL DISTRICT LOCAL SALES TAX",
"tax_authority_name": "Colorado Regional Transportation District",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.001,
"tax_due_decimal": 10,
"fee_amount": 0,
"rate_type": "GENERAL DISTRICT LOCAL SALES TAX",
"tax_authority_name": "Colorado Scientific and Cultural Facilities District",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
}
],
"tax_amount": 850,
"amount_excluding_tax": 10000,
"amount_including_tax": 10850,
"quantity": 1
}
],
"fee_line_items": [
{
"line_item_id": "li_1793039301702",
"product": {
"reference_line_item_id": "fee",
"reference_product_id": "default-saas-general",
"reference_product_name": "Default SAAS_GENERAL Product",
"product_tax_code": "SAAS_GENERAL"
},
"tax_jurisdictions": [
{
"tax_rate": 0,
"tax_due_decimal": 0,
"fee_amount": 0,
"rate_type": "EXEMPT STATE SALES TAX",
"tax_authority_name": "California",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0,
"tax_due_decimal": 0,
"fee_amount": 0,
"rate_type": "EXEMPT COUNTY LOCAL SALES TAX",
"tax_authority_name": "Sacramento",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0,
"tax_due_decimal": 0,
"fee_amount": 0,
"rate_type": "EXEMPT CITY LOCAL SALES TAX",
"tax_authority_name": "Sacramento",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
}
],
"tax_amount": 0,
"amount_excluding_tax": 1000,
"amount_including_tax": 1000,
"quantity": 1
}
],
"totals": {
"order": {
"tax_amount": 850,
"amount_excluding_tax": 10000,
"amount_including_tax": 10850,
"currency": "USD",
"effective_tax_rate": 0.085
},
"fees": {
"tax_amount": 0,
"amount_excluding_tax": 1000,
"amount_including_tax": 1000,
"currency": "USD",
"effective_tax_rate": 0
}
},
"location_source": "address",
"resolution_precision": "STREET",
"address_used": {
"address_line_1": "9500 Civic Center Drive",
"address_city": "Thornton",
"address_province": "CO",
"address_postal_code": "80229",
"address_country": "US"
}
}
{
"error": {
"error_code": "merchant_not_found",
"error_message": "Merchant not found or belongs to different testmode"
}
}
{
"code": 404,
"type": "CUSTOMER_NOT_FOUND",
"message": "Unable to find customer with ID: my-buyer-456 in test environment."
}
Platform Calculations
Calculate taxes for marketplace and platform transactions
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"address": {
"address_line_1": "100 Market St",
"address_city": "San Francisco",
"address_province": "CA",
"address_postal_code": "94105",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["marketplace_provider"]
}'
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"type": "CONSUMER",
"ip": {
"value": "217.217.113.167",
"resolution": "strict"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["marketplace_provider"]
}'
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"type": "CONSUMER",
"address": {
"address_line_1": "9500 Civic Center Drive",
"address_city": "Thornton",
"address_province": "CO",
"address_postal_code": "80229",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "mer_1781234567890",
"type": "BUSINESS"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"reference_line_item_id": "goods",
"product_category": "GENERAL_MERCHANDISE",
"amount": 10000,
"quantity": 1
}
]
},
"roles": ["marketplace_provider"],
"fee_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"reference_line_item_id": "fee",
"product_category": "SAAS_GENERAL",
"amount": 1000,
"quantity": 1
}
]
}
}'
# Returns destination-based rates regardless of the caller's own nexus.
# Use this when you (the payment processor) need to surface the rates the
# merchant would owe, without your own registration footprint gating the response.
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"address": {
"address_line_1": "100 Market St",
"address_city": "San Francisco",
"address_province": "CA",
"address_postal_code": "94105",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "forced",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["payment_processor"]
}'
# customer.id applies the customer's exemptions (global tax-exempt flag or
# exemption certificates on file) to the order. default_customer_type prices
# the order as a CONSUMER if the ID has not been created in Numeral yet.
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"id": "my-buyer-456",
"address": {
"address_line_1": "100 Market St",
"address_city": "San Francisco",
"address_province": "CA",
"address_postal_code": "94105",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["marketplace_provider"],
"default_customer_type": "CONSUMER"
}'
{
"id": "calc_platform_123456789",
"object": "tax.calculation",
"testmode": true,
"customer_currency_code": "USD",
"line_items": [
{
"product": {
"product_tax_code": "GENERAL_MERCHANDISE"
},
"tax_jurisdictions": [
{
"tax_rate": 0.0875,
"rate_type": "SALES TAX",
"jurisdiction_name": "California",
"tax_authority_name": "California State",
"tax_authority_type": "STATE",
"tax_type": "SALES",
"fee_amount": 0,
"note": ""
}
],
"quantity": 3,
"tax_amount": 656,
"amount_excluding_tax": 7500,
"amount_including_tax": 8156
}
],
"totals": {
"order": {
"tax_amount": 656,
"amount_excluding_tax": 7500,
"amount_including_tax": 8156,
"effective_tax_rate": 0.087467
}
},
"merchant": {
"id": "merch_abc123",
"reference_merchant_id": "my-seller-123"
},
"roles": ["marketplace_provider"],
"expires_at": 1735690200
}
{
"testmode": true,
"id": "plat_calc_1793039301789",
"object": "tax.platform_calculation",
"customer_currency_code": "USD",
"customer": {
"type": "CONSUMER"
},
"merchant": {
"merchant_id": "mer_1781234567890"
},
"roles": ["marketplace_provider"],
"line_items": [
{
"line_item_id": "li_1793039301701",
"product": {
"reference_line_item_id": "goods",
"reference_product_id": "default-general-merchandise",
"reference_product_name": "Default GENERAL_MERCHANDISE Product",
"product_tax_code": "GENERAL_MERCHANDISE"
},
"tax_jurisdictions": [
{
"tax_rate": 0.029,
"tax_due_decimal": 290,
"fee_amount": 0,
"rate_type": "GENERAL STATE SALES TAX",
"tax_authority_name": "Colorado",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.0075,
"tax_due_decimal": 75,
"fee_amount": 0,
"rate_type": "GENERAL COUNTY LOCAL SALES TAX",
"tax_authority_name": "Adams",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.0375,
"tax_due_decimal": 375,
"fee_amount": 0,
"rate_type": "GENERAL CITY LOCAL SALES TAX",
"tax_authority_name": "Thornton",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.01,
"tax_due_decimal": 100,
"fee_amount": 0,
"rate_type": "GENERAL DISTRICT LOCAL SALES TAX",
"tax_authority_name": "Colorado Regional Transportation District",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.001,
"tax_due_decimal": 10,
"fee_amount": 0,
"rate_type": "GENERAL DISTRICT LOCAL SALES TAX",
"tax_authority_name": "Colorado Scientific and Cultural Facilities District",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
}
],
"tax_amount": 850,
"amount_excluding_tax": 10000,
"amount_including_tax": 10850,
"quantity": 1
}
],
"fee_line_items": [
{
"line_item_id": "li_1793039301702",
"product": {
"reference_line_item_id": "fee",
"reference_product_id": "default-saas-general",
"reference_product_name": "Default SAAS_GENERAL Product",
"product_tax_code": "SAAS_GENERAL"
},
"tax_jurisdictions": [
{
"tax_rate": 0,
"tax_due_decimal": 0,
"fee_amount": 0,
"rate_type": "EXEMPT STATE SALES TAX",
"tax_authority_name": "California",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0,
"tax_due_decimal": 0,
"fee_amount": 0,
"rate_type": "EXEMPT COUNTY LOCAL SALES TAX",
"tax_authority_name": "Sacramento",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0,
"tax_due_decimal": 0,
"fee_amount": 0,
"rate_type": "EXEMPT CITY LOCAL SALES TAX",
"tax_authority_name": "Sacramento",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
}
],
"tax_amount": 0,
"amount_excluding_tax": 1000,
"amount_including_tax": 1000,
"quantity": 1
}
],
"totals": {
"order": {
"tax_amount": 850,
"amount_excluding_tax": 10000,
"amount_including_tax": 10850,
"currency": "USD",
"effective_tax_rate": 0.085
},
"fees": {
"tax_amount": 0,
"amount_excluding_tax": 1000,
"amount_including_tax": 1000,
"currency": "USD",
"effective_tax_rate": 0
}
},
"location_source": "address",
"resolution_precision": "STREET",
"address_used": {
"address_line_1": "9500 Civic Center Drive",
"address_city": "Thornton",
"address_province": "CO",
"address_postal_code": "80229",
"address_country": "US"
}
}
{
"error": {
"error_code": "merchant_not_found",
"error_message": "Merchant not found or belongs to different testmode"
}
}
{
"code": 404,
"type": "CUSTOMER_NOT_FOUND",
"message": "Unable to find customer with ID: my-buyer-456 in test environment."
}
- Every
tax_jurisdictionsrow inline_itemsandfee_line_itemshas anotethat says why it came out the way it did. totals.order.effective_tax_rate, andtotals.fees.effective_tax_ratewhenfee_detailsis sent. Each is that bucket’stax_amount / amount_excluding_tax. There’s no combined order-plus-fees rate.
Headers
2026-11-01. Overrides your account’s default version for this request.Request Body
Show Customer Properties
Show Customer Properties
cust_xxx ID or your own reference ID of a customer created in Numeral. When provided, the customer’s exemption status is applied to the order: a globally tax-exempt customer returns zero tax, and exemption certificates on file for the customer are applied for the destination jurisdiction. Not applied to fee_details, whose buyer is the merchant.If no customer matches, the request returns 404 customer_not_found unless default_customer_type is set.CONSUMER or BUSINESS.address_type (shipping or billing). At least one of address or ip must be provided.address or ip must be provided.Show Order Details Properties
Show Order Details Properties
USD, EUR).auto, disabled, or forced. Required from API version 2025-05-12+.auto- Return real rates only in jurisdictions where you have an active tax registration. Returns 0 elsewhere.disabled- Always return 0 tax rates regardless of registration status.forced- Return real destination-based rates regardless of your own nexus/registration status. Useful for payment processors that need to surface the rates a merchant would owe without their own collection configuration gating the response. Only valid whenrolesis exactly["payment_processor"]. Customer-level rules (exemptions, reverse-charge, B2B logic) still apply.
automatic_tax must be auto or forced — disabled is rejected because US addresses must always compute tax.marketplace_provider- You operate a marketplace connecting buyers and sellerspayment_processor- You process payments for the transactionmerchant_of_record- You are the legal seller of record
order_details, except automatic_tax only accepts auto or disabled — fees represent the platform’s own tax event toward the merchant and must honor the platform’s own nexus configuration.CONSUMER or BUSINESS. Used when customer.id is provided but no matching customer exists in Numeral: the order is priced with this customer type instead of failing with customer_not_found. Lets you always pass a customer ID without first ensuring the customer has been created. If the customer is found, its exemptions apply as normal.Line Item Properties
amount: 2500amount × quantity.GENERAL_MERCHANDISE, SAAS_GENERAL).Response
tax.calculation.fee_details provided).Show Totals Properties
Show Totals Properties
tax_amount, amount_excluding_tax, amount_including_tax, currency, and effective_tax_rate (new in 2026-11-01: tax_amount / amount_excluding_tax as a decimal fraction, up to 6 decimal places, including flat fees; 0 when nothing is taxed).order (only present when fee_details provided).Enhanced Response Fields
Platform calculations include additional tax jurisdiction details:STATE, COUNTY, CITY, or DISTRICT.SALES, USE, VAT, or GST.IP Resolution Response Fields
"address" or "ip" — indicates which input was used for tax determination.STREET, POSTAL_PLUS, POSTAL, PROVINCE, COUNTRY, or APPROXIMATED.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. The per-jurisdiction tax_due_decimal field shows how much each jurisdiction actually contributed.curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"address": {
"address_line_1": "100 Market St",
"address_city": "San Francisco",
"address_province": "CA",
"address_postal_code": "94105",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["marketplace_provider"]
}'
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"type": "CONSUMER",
"ip": {
"value": "217.217.113.167",
"resolution": "strict"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["marketplace_provider"]
}'
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"type": "CONSUMER",
"address": {
"address_line_1": "9500 Civic Center Drive",
"address_city": "Thornton",
"address_province": "CO",
"address_postal_code": "80229",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "mer_1781234567890",
"type": "BUSINESS"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"reference_line_item_id": "goods",
"product_category": "GENERAL_MERCHANDISE",
"amount": 10000,
"quantity": 1
}
]
},
"roles": ["marketplace_provider"],
"fee_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"reference_line_item_id": "fee",
"product_category": "SAAS_GENERAL",
"amount": 1000,
"quantity": 1
}
]
}
}'
# Returns destination-based rates regardless of the caller's own nexus.
# Use this when you (the payment processor) need to surface the rates the
# merchant would owe, without your own registration footprint gating the response.
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"address": {
"address_line_1": "100 Market St",
"address_city": "San Francisco",
"address_province": "CA",
"address_postal_code": "94105",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "forced",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["payment_processor"]
}'
# customer.id applies the customer's exemptions (global tax-exempt flag or
# exemption certificates on file) to the order. default_customer_type prices
# the order as a CONSUMER if the ID has not been created in Numeral yet.
curl -X POST https://api.numeralhq.com/tax/platform/calculations \
-H "Authorization: Bearer sk_test_xxx" \
-H "X-API-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"customer": {
"id": "my-buyer-456",
"address": {
"address_line_1": "100 Market St",
"address_city": "San Francisco",
"address_province": "CA",
"address_postal_code": "94105",
"address_country": "US"
}
},
"merchant": {
"merchant_id": "my-seller-123"
},
"order_details": {
"customer_currency_code": "USD",
"tax_included_in_amount": false,
"automatic_tax": "auto",
"line_items": [
{
"amount": 2500,
"quantity": 3,
"product_category": "GENERAL_MERCHANDISE"
}
]
},
"roles": ["marketplace_provider"],
"default_customer_type": "CONSUMER"
}'
{
"id": "calc_platform_123456789",
"object": "tax.calculation",
"testmode": true,
"customer_currency_code": "USD",
"line_items": [
{
"product": {
"product_tax_code": "GENERAL_MERCHANDISE"
},
"tax_jurisdictions": [
{
"tax_rate": 0.0875,
"rate_type": "SALES TAX",
"jurisdiction_name": "California",
"tax_authority_name": "California State",
"tax_authority_type": "STATE",
"tax_type": "SALES",
"fee_amount": 0,
"note": ""
}
],
"quantity": 3,
"tax_amount": 656,
"amount_excluding_tax": 7500,
"amount_including_tax": 8156
}
],
"totals": {
"order": {
"tax_amount": 656,
"amount_excluding_tax": 7500,
"amount_including_tax": 8156,
"effective_tax_rate": 0.087467
}
},
"merchant": {
"id": "merch_abc123",
"reference_merchant_id": "my-seller-123"
},
"roles": ["marketplace_provider"],
"expires_at": 1735690200
}
{
"testmode": true,
"id": "plat_calc_1793039301789",
"object": "tax.platform_calculation",
"customer_currency_code": "USD",
"customer": {
"type": "CONSUMER"
},
"merchant": {
"merchant_id": "mer_1781234567890"
},
"roles": ["marketplace_provider"],
"line_items": [
{
"line_item_id": "li_1793039301701",
"product": {
"reference_line_item_id": "goods",
"reference_product_id": "default-general-merchandise",
"reference_product_name": "Default GENERAL_MERCHANDISE Product",
"product_tax_code": "GENERAL_MERCHANDISE"
},
"tax_jurisdictions": [
{
"tax_rate": 0.029,
"tax_due_decimal": 290,
"fee_amount": 0,
"rate_type": "GENERAL STATE SALES TAX",
"tax_authority_name": "Colorado",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.0075,
"tax_due_decimal": 75,
"fee_amount": 0,
"rate_type": "GENERAL COUNTY LOCAL SALES TAX",
"tax_authority_name": "Adams",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.0375,
"tax_due_decimal": 375,
"fee_amount": 0,
"rate_type": "GENERAL CITY LOCAL SALES TAX",
"tax_authority_name": "Thornton",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.01,
"tax_due_decimal": 100,
"fee_amount": 0,
"rate_type": "GENERAL DISTRICT LOCAL SALES TAX",
"tax_authority_name": "Colorado Regional Transportation District",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0.001,
"tax_due_decimal": 10,
"fee_amount": 0,
"rate_type": "GENERAL DISTRICT LOCAL SALES TAX",
"tax_authority_name": "Colorado Scientific and Cultural Facilities District",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
}
],
"tax_amount": 850,
"amount_excluding_tax": 10000,
"amount_including_tax": 10850,
"quantity": 1
}
],
"fee_line_items": [
{
"line_item_id": "li_1793039301702",
"product": {
"reference_line_item_id": "fee",
"reference_product_id": "default-saas-general",
"reference_product_name": "Default SAAS_GENERAL Product",
"product_tax_code": "SAAS_GENERAL"
},
"tax_jurisdictions": [
{
"tax_rate": 0,
"tax_due_decimal": 0,
"fee_amount": 0,
"rate_type": "EXEMPT STATE SALES TAX",
"tax_authority_name": "California",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0,
"tax_due_decimal": 0,
"fee_amount": 0,
"rate_type": "EXEMPT COUNTY LOCAL SALES TAX",
"tax_authority_name": "Sacramento",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
},
{
"tax_rate": 0,
"tax_due_decimal": 0,
"fee_amount": 0,
"rate_type": "EXEMPT CITY LOCAL SALES TAX",
"tax_authority_name": "Sacramento",
"tax_authority_type": "",
"tax_type": "SALES",
"note": ""
}
],
"tax_amount": 0,
"amount_excluding_tax": 1000,
"amount_including_tax": 1000,
"quantity": 1
}
],
"totals": {
"order": {
"tax_amount": 850,
"amount_excluding_tax": 10000,
"amount_including_tax": 10850,
"currency": "USD",
"effective_tax_rate": 0.085
},
"fees": {
"tax_amount": 0,
"amount_excluding_tax": 1000,
"amount_including_tax": 1000,
"currency": "USD",
"effective_tax_rate": 0
}
},
"location_source": "address",
"resolution_precision": "STREET",
"address_used": {
"address_line_1": "9500 Civic Center Drive",
"address_city": "Thornton",
"address_province": "CO",
"address_postal_code": "80229",
"address_country": "US"
}
}
{
"error": {
"error_code": "merchant_not_found",
"error_message": "Merchant not found or belongs to different testmode"
}
}
{
"code": 404,
"type": "CUSTOMER_NOT_FOUND",
"message": "Unable to find customer with ID: my-buyer-456 in test environment."
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
API version. Must be 2026-11-01 for platform calculations.
2026-11-01 Body
Request body for platform/marketplace tax calculations
Customer details. At least one of address or ip must be provided.
Show child attributes
Show child attributes
The merchant (seller) involved in this platform transaction
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Your role(s) in this transaction
marketplace_provider, payment_processor, merchant_of_record ["marketplace_provider"]
Optional: Details for platform fees to be taxed separately
Show child attributes
Show child attributes
Optional top-level field. The time the transaction occurred, as a Unix timestamp in seconds. Used to determine which tax rates and rules apply at the time of the transaction (for example, during sales tax holidays). If omitted, the calculation uses the current time. Available in API version 2026-03-01 and later.
1772323200
Optional fallback customer type used when customer.id is provided but no matching customer exists in Numeral. Lets platforms always pass a customer ID without first ensuring the customer has been created. When the lookup misses, this value is used as the customer type for the order instead of failing with customer_not_found. If a matching customer is found, the customer's exemptions apply as normal.
CONSUMER, BUSINESS "CONSUMER"
Response
Platform calculation response
"calc_platform_123456789"
"tax.calculation"
Show child attributes
Show child attributes
Tax calculations for platform fees (only present when fee_details provided)
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Which input was used for tax determination.
address, ip "address"
The precision level of the resolved location.
STREET, POSTAL_PLUS, POSTAL, PROVINCE, COUNTRY, APPROXIMATED "POSTAL"
The address actually used for tax calculation, populated even for IP-based requests.
Show child attributes
Show child attributes