FinzBooksDevelopers

Errors

Stable string codes you can branch on. HTTP status carries the severity; code carries the contract.

Error envelope

{
  "code": "validation.invalid_value",
  "message": "place_of_supply must be a valid GST state code.",
  "field": "place_of_supply",
  "details": { "received": "INKA" }
}

Errors are flat — no nested error wrapper. Branch on code, show message to humans, use field + details for form validation.

Auth errors

CodeHTTPMeaning
auth.missing_token401No Authorization header.
auth.invalid_token401Token unknown or malformed.
auth.revoked_token401Token was explicitly revoked.
auth.expired_token401Token past its expires_at.
auth.insufficient_scope403Token lacks the required scope.
auth.org_mismatch403?organization_id disagrees with single-org token.
auth.missing_organization_id400Multi-org token needs ?organization_id.
auth.no_membership403User has no active membership in that org.

Validation errors

CodeHTTPMeaning
validation.required_field400A required field is missing.
validation.invalid_value400Wrong type or out of range.
validation.failed422Body or query parameters failed schema.

Resource errors

CodeHTTPMeaning
not_found.resource404Resource doesn't exist in this org.
conflict.duplicate409Anti-duplicate guard rejected the create.
rate_limit.exceeded429Per-token rate limit hit. Retry-After header set.