Authenticate to the Avalara REST API using account credentials passed as Basic auth on each request
Create a transaction by POSTing to the CreateTransaction endpoint with company code, transaction type, customer code, addresses, and line items including amount and tax codes
Set the commit flag to false on creation to keep the transaction in a temporary state for review
Commit the transaction by calling the CommitTransaction endpoint with the company code and transaction code, transitioning it to a permanent state that affects tax liability
To reverse a committed transaction, call the VoidTransaction endpoint with the appropriate void reason code
Retrieve the transaction details including calculated tax by line and jurisdiction using the GetTransactionByCode endpoint
Known gotchas
Uncommitted transactions are automatically purged by Avalara after a defined period; integrations that delay the commit step may lose the transaction and need to re-create it
The transaction code must be unique per company; reusing an existing transaction code returns the existing transaction rather than creating a new one, which can silently corrupt the intended record
Voiding a transaction does not delete it from Avalara's records; it creates an offsetting entry, so the original and void both appear in tax liability reports
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp