Hermeseus

Errors

The travel API uses two error shapes. The flight, hotel, and common endpoints report failures in the response body. The activity endpoints use standard HTTP status codes.

Session API errors

Flight, hotel, common, and authentication endpoints usually return HTTP 200 even when the operation fails. Read the Success field, not the status code. On failure, Success is false and Error holds an id and a message.

{
  "Success": false,
  "Error": {
    "Id": "Err0102005",
    "Message": "Fare has expired or is no longer available. Please search again."
  }
}

Authentication

CodeMeaningFix
Err0101001Missing or invalid session.Create a new session.
Err0101002Session expired.Create a new session.
Err0101003Wrong username or password.Check the credentials for that office.
Err0101004The user cannot access that office.Use an office the user belongs to.
Err0101005The account is not verified.Contact your account manager.
Err0101006The office lacks permission for the endpoint.Ask to enable that permission.

Requests and validation

CodeMeaningFix
Err0106001Bad request. A field is missing or invalid. The message names it.Fix the field named in the message.
Err0106002A required field or one-of pair is missing, for example UniqueId or ClientUniqueId.Send at least one of the required fields.
Err0201001Invalid hotel request.Follow the message.
Err0201003Invalid hotel request, for example not exactly one of CityId or HotelId.Send exactly one of the two.

Fares and search

CodeMeaningFix
Err0102002Invalid FareSourceCode.Use a code from the latest search.
Err0102003The fare is no longer available.Search again and pick a fresh fare.
Err0102004Revalidation is required before booking.Call revalidate first, then book.
Err0102005The fare has expired.Search again.
Err0102010SearchId is required.Send the SearchId from the search response.
Err0102011Search not found or access denied.Re-run the search.

Bookings

CodeMeaningFix
Err0103003Flight booking not found.Check the UniqueId.
Err0103004The booking cannot be cancelled in its current state.For a ticketed booking, use refund instead.
Err0103005The booking is already cancelled.No action needed.
Err0103006The booking is not in the required state for this action.Read the booking status first.
Err0103007This user may not perform the action.Only the booking owner or an admin can do it.
Err0103008The booking was already processed.No action needed.
Err0103009The booking is not in an actionable state.Re-check status, or search again.
Err0103010The inventory source rejected the booking, or it is not refundable.Retry, or search again.
Err0103011The source did not return a booking reference.Retry the request.
Err0103012Wrong booking type for this endpoint.Use the endpoint that matches the booking.
Err0103013The activity booking was already submitted.No action needed.
Err0104002Hotel booking not found.Check the UniqueId.
Err0104003The payment deadline cannot be extended for this booking.The booking is not in an extendable state.

Upstream

CodeMeaningFix
Err0500001An upstream data source is not configured.Contact support.
Err0500002The upstream request failed.Retry.
Err0500003The upstream source returned no data.Retry, or adjust your inputs.
Err0000Generic upstream or gateway failure.Retry. If it persists, contact support.

Activity errors

Activity endpoints under Activity/v2/ use the real HTTP status code and return an error object.

{
  "error": {
    "code": "not_found",
    "message": "Listing was not found or expired, provided UUID: d3bfa3e1-e",
    "http_code": 404
  },
  "timestamp": "2026-10-15T16:43:33.184+08:00"
}
StatusMeaning
200Success. The body holds the resource or list.
400Malformed request or invalid parameters.
401Missing or expired SessionId.
403Your office lacks permission for the operation.
404The resource or UUID does not exist.
422Validation failed, for example an unavailable date.
5xxGateway or inventory source error.

Handle errors well

Two rules cover most cases. On the session API, branch on Success before you read the payload. When a session error appears (Err0101001 or Err0101002), re-authenticate and retry once.

Fares are short lived. If booking returns Err0102003 or Err0102005, the price moved. Search again, revalidate, and show the traveller the new fare before you charge them.