Errors

Errors

One shape, always:

{
  "error": {
    "code": "invalid_field",
    "message": "City is required",
    "field": "loss_city"
  }
}

code is for your code, message is for a human reading a log, and field appears when one field is at fault.

Status codes

StatusMeaningWhat to do
200Fine
201Created
401Key missing, invalid, expired, or not an organisation keyCheck the header; issue a new key
403The key lacks the scope for this callAdd the scope, or use another key
404No such request or home for your organisationCheck the reference
405Wrong method for that path
413The file is too largeSend under 10 MB
429Over the rate limitWait for Retry-After seconds
409The call does not fit the current statee.g. setting dates before adding the home
422A field is missing or wrongFix the named field
400The body could not be read, or the write was refused
500Our faultRetry; if it persists, tell us the time and reference

Codes you will meet

codeMeaning
missing_keyNo Authorization or x-api-key header
invalid_keyNot a valid organisation key
forbiddenThe key does not carry the scope this call needs
invalid_fieldNamed field missing or invalid
invalid_jsonThe body was not JSON
not_foundNo such request or home for your organisation
not_on_requestThat home is not on the request yet
budget_not_approvedApprove the home’s budget before sending or placing it
could_not_createThe request could not be written
could_not_placeThe home could not be placed
could_not_set_datesThe dates could not be set
stay_too_shortThe dates span under 30 days
dates_unavailableSomething already holds part of that range
already_signedThe lease is fully signed — cancel rather than re-date
already_paidMoney has settled on that placement — refund before cancelling
nothing_to_refundNo settled payment on that home
refund_pendingA refund request is already with the landlord
no_such_adjusterThat address is not an adjuster on Havnly
no_billing_accountYour organisation is not linked to a carrier billing account
could_not_readA read was refused — the message says why
unsupported_typeThat file type is not accepted
file_too_largeOver the 10 MB limit for a document
not_yoursThat document was not uploaded through your integration
no_coordinatorNobody is assigned to source for this request yet
idempotency_key_reusedThat key was already used for a different body
request_in_progressThe first call with that key is still running
idempotency_key_too_longKeys are at most 255 characters
rate_limitedOver the per-minute limit — see Retry-After
no_endpointNowhere to replay that event to
sandbox_onlyThat call is only available to sandbox keys
unknown_eventNot an event we send — check the spelling
could_not_replayThe replay could not be queued
server_errorOur fault

Retrying

500 and network failures are worth retrying with backoff. 4xx will not change on a retry — fix the call.

Always send external_id on POST /claims. A retry then returns the request you already created instead of opening a second one for the same household.