Sales Tax | Tax Engine
Bring your own rates. Keep your own books.
If you already run Avalara or TaxJar, the rate call stays there. They maintain thousands of jurisdictions and do it well, and replacing that is not an upgrade. What we add is the layer around it: the result posted back against the invoice, the customer, the certificate and the period, so the evidence lives with the transaction rather than in a second system.
What the system does
Capability, input, output.
| Capability | Input | Output |
|---|---|---|
| Rate call | The sourced jurisdiction and item category | Sent to your engine, with the returned rate applied to the line |
| Result stored | The engine's response | Held against the invoice line, so the rate used is a fact rather than a re-lookup |
| Exemption pass-through | A customer with a valid certificate | The exemption asserted on the call, so the engine is not asked the wrong question |
| Failure handling | The engine unreachable | The invoice is held rather than raised at zero tax, with the reason on the record |
| Reconciliation | Engine-side reports against your books | Differences surfaced before filing, not discovered in a state notice |
| No engine configured | Rates maintained by you or your advisor | The same records and returns, with rate determination done outside the system |
-
Rate call
- Input
- The sourced jurisdiction and item category
- Output
- Sent to your engine, with the returned rate applied to the line
-
Result stored
- Input
- The engine's response
- Output
- Held against the invoice line, so the rate used is a fact rather than a re-lookup
-
Exemption pass-through
- Input
- A customer with a valid certificate
- Output
- The exemption asserted on the call, so the engine is not asked the wrong question
-
Failure handling
- Input
- The engine unreachable
- Output
- The invoice is held rather than raised at zero tax, with the reason on the record
-
Reconciliation
- Input
- Engine-side reports against your books
- Output
- Differences surfaced before filing, not discovered in a state notice
-
No engine configured
- Input
- Rates maintained by you or your advisor
- Output
- The same records and returns, with rate determination done outside the system
Integration FAQ
What buyers ask.
Are you trying to replace Avalara?
No. Rate determination across thousands of jurisdictions is a genuinely hard problem and the established engines solve it. The problems we solve sit either side of that call: the certificate that makes a sale exempt, the use tax on a bill nobody charged you for, the evidence pack when a state opens an audit, and the fact that all of it should live on the same record as your books.
What if we do not have a tax engine?
Everything on these pages still works. Nexus tracking, certificates, use tax accrual, the calendar and the returns come from your books, not from a rate engine. Rate determination is then yours or your advisor's, and the rate applied is still recorded on the line.
Why store the rate rather than look it up again?
Because rates change and a re-lookup answers today's question about last year's invoice. The rate that matters in an audit is the one that was actually charged on the date of the sale, so that is what is kept on the line.
What happens if the engine is down mid-invoice?
The invoice is held rather than issued at zero tax. Issuing untaxed and correcting later means chasing a customer for tax you should have charged, which is a worse outcome than a short delay, so the default is to stop.
Our engine and our books disagree. Which wins?
Neither silently. Differences between engine-side reporting and your ledger are surfaced before a return is drafted, because that gap is usually a real problem: an address that sourced differently, an exemption applied on one side only, or a credit that never reached the engine.
More in Sales Tax Compliance
Related features
Connect your tax engine and your books.
Connect your books, free. The rate call stays where it is, and the result lands on the invoice, the customer and the period.