KintsugiKintsugi

Estimate tax on a transaction

POST/tax-estimations

Estimate the tax due on a transaction without recording it. Nothing is stored and the estimate is not retrievable afterwards, so send the same request again to price it again.

The estimate is computed for exactly one organization: send an Organization-Id, Connection-Id or Entity-Id selector, which a credential owning more than one organization must do.

Each line names either an externalProductId you have already created or a productCategory and productSubcategory pair, which is priced without creating a product. An externalProductId is unique only within a connection, so when the same id exists in more than one of your connections, send a Connection-Id to price against that connection's product; without one an ambiguous id returns 400. Addresses are validated as part of the estimate: an address that cannot be validated returns 400, one in a country Kintsugi does not cover returns 422, and an address-validation outage returns 503.

Tax is only due where an active registration covers the destination, so hasActiveRegistration false comes back with every amount at zero. Set simulateActiveRegistration to see what the transaction would be taxed at if you were registered there.

Authorization

Api-KeystringRequired

Your secret API key. Include it with every request.

Headers

Api-Versiondate

Release date, as YYYY-MM-DD. Defaults to 2026-07-21.

Organization-Idstring

Target organization id (Organization-Id selector).

Connection-Idstring

Target connection id; resolves to its organization.

Entity-Idstring

Platform entity id; resolves to a connection's organization.

Entity-Sourcestring

Optional source to disambiguate an Entity-Id.

Body

externalIdstringRequired

Your identifier for the transaction. Echoed on the response.

datestringRequired

When the transaction takes place. Rates in force on this date are the ones applied.

currencystringRequired

Currency of every amount on the request, ISO 4217. An unrecognized code returns 400.

simulateActiveRegistrationboolean

Set true to price the transaction as though you were registered in the destination jurisdiction. Use it to preview what registering would cost your buyers; leave it false to see what you owe today.

customerTaxEstimateCustomer

The buyer. null when you have no buyer to attribute the transaction to, in which case no customer-level exemption applies.

addressesTaxEstimateAddressCreate[]Required

Addresses on the transaction. Supply at least a SHIP_TO or BILL_TO; an address that cannot be validated returns 400.

transactionItemsTaxEstimateItemCreate[]Required

The lines to estimate tax for. At least one, and their amounts must sum to between -9999999999.99 and 9999999999.99.

Response

organizationIdstringRequired

Organization the estimate was computed for. Send it as Organization-Id to target the same organization again.

externalIdstringRequired

Your identifier for the transaction, as supplied.

datestringRequired

Date the transaction was priced against.

currencystringRequired

Currency of every amount below, ISO 4217.

hasActiveRegistrationbooleanRequired

Whether an active registration covers the destination jurisdiction. When false, no tax is due and every amount below is zero.

taxableAmountstringRequired

Total across all lines that tax was charged on.

totalTaxAmountstringRequired

Total tax due on the transaction.

taxRatestringRequired

Combined effective rate across the transaction, as a fraction of the taxable amount.

addressesTaxEstimateAddress[]Required

The addresses as validated, with the status of each.

transactionItemsTaxEstimateItem[]Required

Each line with the tax due on it.

200

Successful Response

400

The request was invalid.

401

Authentication failed or was missing.

403

The credential is not permitted for this request.

404

The requested resource was not found.

409

The request conflicts with existing state.

422

The request failed validation.

503

A service this request depends on was unavailable. Retry the request.

cURL
POST /tax-estimations
-H "Api-Key: ***"
-H "Api-Version: 2026-07-21"
{
"externalId": "txn-1001",
"date": "2026-07-28T12:00:00Z",
"currency": "USD",
"simulateActiveRegistration": false,
"customer": {
"externalId": "cust-1001",
"name": "Acme Corp",
"companyName": "Acme Corp",
"email": "jane.doe@example.com",
"phone": "+1 415 555 0100",
"street1": "123 Main St",
"street2": "Suite 400",
"city": "San Francisco",
"county": "San Francisco County",
"state": "CA",
"postalCode": "94107",
"country": "US"
},
"addresses": [
{
"type": "BILL_TO",
"phone": "+1 415 555 0100",
"street1": "123 Main St",
"street2": "Suite 400",
"city": "Austin",
"county": "San Francisco County",
"state": "TX",
"postalCode": "78701",
"country": "US",
"fullAddress": "123 Main St, San Francisco, CA 94107, US",
"isUnincorporated": false
}
],
"transactionItems": [
{
"externalId": "item-1",
"date": "2026-07-21T15:30:00Z",
"description": "Annual software subscription",
"externalProductId": "sku-1001",
"productCategory": "Physical",
"productSubcategory": "General Clothing",
"productName": "Widget",
"productDescription": "Annual software subscription",
"quantity": "2",
"amount": "100.00",
"exempt": false
}
]
}
Response
{
"organizationId": "orgn_2mNpQr7Ls8f3k",
"externalId": "txn-1001",
"date": "2026-07-28T12:00:00Z",
"currency": "USD",
"hasActiveRegistration": false,
"taxableAmount": "10.00",
"totalTaxAmount": "10.00",
"taxRate": "0.082500000",
"addresses": [
{
"type": "BILL_TO",
"status": "UNVERIFIED",
"phone": "+1 415 555 0100",
"street1": "123 Main St",
"street2": "Suite 400",
"city": "Austin",
"county": "San Francisco County",
"state": "TX",
"postalCode": "78701",
"country": "US",
"fullAddress": "123 Main St, San Francisco, CA 94107, US",
"isUnincorporated": false
}
],
"transactionItems": [
{
"externalId": "item-1",
"date": "2026-07-21T15:30:00Z",
"description": "Annual software subscription",
"externalProductId": "sku-1001",
"productName": "Widget",
"productDescription": "Annual software subscription",
"productCode": "PHYS_GENERAL_CLOTHING",
"productCategory": "Physical",
"productSubcategory": "General Clothing",
"quantity": "2",
"amount": "100.00",
"taxableAmount": "10.00",
"taxAmount": "10.00",
"taxRate": "0.082500000",
"exempt": false,
"exemptReason": "PRODUCT",
"taxItems": [
{
"name": "State Tax",
"rate": "0.082500000",
"amount": "8.25",
"exempt": false,
"exemptReason": "NO_RULE_FOUND"
}
]
}
]
}
Estimate tax on a transaction (2026-07-21) | Kintsugi API Reference