Migrate from AvaTax

ITMS accepts familiar sales and use tax concepts while making environment, tenant scope, transaction history, and calculation authority explicit. Use this guide to plan an evaluation without assuming that similarly named operations have identical persistence semantics.

Connection and environment

AvaTaxITMS
Separate sandbox and production hostsOne host; each key has an immutable sandbox or production environment
Basic authenticationBearer or X-API-Key authentication with itms_test_ and itms_live_ prefixes
X-Avalara-ClientX-ITMS-Client: app-name/version
Company/location selected in URL or modelOrganization and optional location derive from the key and cannot be overridden

Operation mapping

AvaTax operationITMS operationBehavior
ResolveAddressPOST /api/v1/addresses/resolveStandalone normalization and precision metadata
CreateTransaction for an order or quotePOST /api/v1/tax/calculateStateless; never persisted
CreateTransaction with commit=falsePOST /api/v1/transactions with a saved order typeSaved until commit or cancel
CreateTransaction / commit invoicePOST /api/v1/transactionsSend Idempotency-Key for safe retries
CreateOrAdjustTransactionPOST /api/v1/transactions/create-or-adjustIdentical payload replays; changed payload creates immutable revision lineage
Get/List transactionsGET /api/v1/transactions/{code} and GET /api/v1/transactionsKey scope and environment enforced
VoidTransactionPOST /api/v1/transactions/{code}/voidIdempotent where lifecycle permits
RefundTransactionPOST /api/v1/transactions/{code}/refundFull, partial, percentage, and tax-only modes
AdjustTransactionPOST /api/v1/transactions/{code}/adjustAtomic immutable reversal and replacement
Consumer/vendor use taxPOST /api/v1/tax/use/calculateReconciles expected tax against vendor-paid tax
CreateTransactionBatchPOST /api/v1/batches/calculationsUp to 500 deterministic calculations; poll by batch ID
Create or adjust item/customerPUT /api/v1/items/{item_code} and /customers/{customer_code}Scoped durable integration identity

Field compatibility

Common spellings such as date, customerCode, addresses.shipTo, itemCode, taxCode, taxIncluded, customerUsageType, and AvaTax document-type names are accepted where documented. ITMS native responses use snake_case.

  • exemptionNo must match an active certificate assigned to the scoped customer; an arbitrary value never suppresses tax.
  • customerUsageType is retained as classification context but does not create exemption evidence.
  • Item mappings establish product identity; use product_identity_policy=require_known to fail closed.
  • Specialized sourcing addresses require an explicit sourcing_basis; ITMS does not guess the legal sourcing decision.

Nexus, accuracy, and retries

  • Configured nexus is the default. A state without configured nexus returns zero tax with an explicit suppression reason.
  • nexus_mode=reference is stateless-only and cannot be committed.
  • Use accuracy_policy=deterministic_only and minimum_address_precision for fail-closed evaluation.
  • Send a unique Idempotency-Key on every write and reuse it only for an identical canonical payload.
  • Honor Retry-After; retry 429, 502, 503, and 504 with bounded exponential backoff and jitter.
  • After a timeout, reconcile by document code before generating a new document code.

Evaluation checklist

  1. Create a least-privilege location-scoped sandbox key; use an organization key only for organization-wide administration.
  2. Read /api/v1/config and /api/v1/coverage/states, then resolve representative addresses.
  3. Upsert representative item and customer mappings before comparing product, exemption, discount, shipping, and marketplace cases.
  4. Exercise no-nexus, strict identity, minimum precision, validation, rate-limit, timeout, and idempotent-retry cases.
  5. Save and commit an order, then test void, adjustment, partial refund, percentage refund, and tax-only credit.
  6. Verify sibling location and environment isolation and retain request IDs with the evaluation record.

Continue with the endpoint reference and transaction lifecycle for operation-level behavior.