Changelog
Changes to the API, its documentation, and the rate data behind it.
Newest first.
Sefro has not made a breaking API change. Every endpoint documented since launch
still answers the same way. Breaking changes, if they ever become necessary, ship
under a new version prefix rather than altering
/v1 — see
Versioning.
September 17, 2026
Rate data
- DataRates now refresh daily instead of weekly.
The full fetch runs every day at 09:00 UTC, after midnight in every US time zone.
Previously it ran only on Sundays, so a rate taking effect on a quarter boundary
could be up to several days late. October 1 changes now apply on October 1.
- FixAlaska: ZIPs not covered by the
Alaska Remote Seller Sales Tax Commission were being given the statewide local
average of 1.82%. Anchorage and Fairbanks levy no sales tax and now correctly
return 0%, marked
estimated. Municipalities with a real local tax,
such as Juneau and Kenai, are unchanged and remain authoritative.
- FixNevada: the statewide 6.85% base
was being folded into the county component, so component breakdowns did not reflect
how Nevada levies the tax, and counties absent from the source file could publish a
combined rate below the state minimum. Components are now split correctly and no
row can fall below its state's base rate. Combined totals for covered ZIPs were
already correct and did not change.
- DataStatewide base rows restored.
GET /rates?state=XX and GET /rates/states now cover all
51 jurisdictions. Nevada had been missing.
API
- APIErrors are no longer metered.
Requests rejected for a client error, and any request that fails on our side, are
refunded to your monthly quota. Only requests we actually serve count. Quota 429s
are the one exception.
- APIZIP+4 accepted.
/rates and /calculate now take either a 5-digit ZIP or
ZIP+4, using the first five digits. A malformed ZIP returns a clear 400 instead of
a misleading "no rate found".
- APICounty lookups work.
?state=CA&county=Los+Angeles previously returned 404 in nearly
every state. It now resolves to the county-level rate and reports which ZIP row
answered.
- FixUnknown product categories are rejected.
A misspelled
category on a line item used to fall through to being
taxed at the full rate. It now returns 400 listing the valid categories.
Documentation
- DocsNew quickstart covering the
path from a fresh key to a recorded sale, with examples in curl, Python and
Node.js. See Quickstart.
- DocsNew Keys & security section
explaining why API keys must stay server-side and why browser calls are blocked by
design. See Keys & security.
- DocsTransactions, Reports and Usage are now
documented. These endpoints already existed but were missing from the
reference.
- DocsVersioning guidance: pin new
integrations to the
/v1 prefix.
- FixThe
/rates example response had
components that did not sum to its stated total, and labelled an estimated source
as authoritative. Replaced with real API output, plus a table explaining what
rate_type, effective_date, updated_at and
all_jurisdictions actually mean.
- DocsRate-limit and request-id response headers are
now documented, along with the base URL
api.sefro.app, which had been
shown inconsistently.
September 6, 2026
- FixIncorrect statewide rates on state guide
pages. Nevada, Alabama, Idaho and New Mexico published wrong base rates,
derived from an unreliable column rather than an authoritative table. Corrected,
with a validation guard so a missing or zero base can no longer be published.
- APIAccount page added for usage,
billing management and self-serve API-key re-issue.
- APITrial entitlement enforced at the
advertised 10,000 requests, tracked separately from the plan quota it converts to.
- DocsPricing, quotas and plan figures aligned across
the site, documentation and checkout.
September 1, 2026
- API
GET /usage — check
your own consumption, remaining allowance, overage and reset date.
- APISelf-serve key re-issue. Replace a
lost or exposed key without contacting support; the old key stops working
immediately.
← Back to documentation