Auto-Map Tax Rates
POST/api/ledger/connections/:connectionId/tax-rate-mappings/auto-map
Suggest a provider tax code for every tax rate that does not have a valid one yet.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Authentication: Requires Bearer token.
Saves nothing. The response returns the unchanged mapping rows plus a proposals array to review; apply the ones you accept with POST .../tax-rate-mappings/apply.
Proposal fields:
confidence(number) - 0 to 1.reason(string) -exact_name(identical names),rate(the only provider code at that percentage),rate_and_name(several codes share the percentage, resolved by the closest name), orname_similarity.is_certain(boolean) - true only forexact_nameandrate. An ambiguous percentage is never certain, because two codes at the same rate can mean opposite things (tax on income vs tax on purchases).
Rates that are already mapped are left alone. Returns 404 when the connection id does not name the configured accounting connection.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.