Error Semantics

Common classes

  • 400: invalid payload, missing required business fields
  • 401/403: authorization/ownership mismatch
  • 402: payment required for paid mutation
  • 404: resource not found
  • 409: state conflict (invalid transition)

Always parse error JSON and branch by code + message.