GET
/
v1
/
bookings
/
{bookingId}
Get booking by id (internal)
curl --request GET \
  --url https://api.hofj.com/v1/bookings/{bookingId} \
  --header 'Authorization: Bearer <token>' \
  --header 'X-End-User-Authorization: <x-end-user-authorization>'
{
  "data": {
    "id": "<string>",
    "distributionChannel": "<string>",
    "productId": "<string>",
    "locale": "<string>",
    "reservationCode": "<string>",
    "firstName": "<string>",
    "lastName": "<string>",
    "email": "jsmith@example.com",
    "startDate": "<string>",
    "status": "pending",
    "currency": "<string>",
    "totalPrice": 123,
    "affiliateId": "<string>",
    "phone": "<string>",
    "address": "<string>",
    "fiscalCode": "<string>",
    "endDate": "<string>",
    "notes": "<string>",
    "itinerary": {}
  },
  "meta": {
    "now": 123
  }
}

Authorizations

Authorization
string
header
default:dev-internal-api-key
required

Use Authorization: Bearer <access_token> from POST /v1/oauth/token, or Authorization: Bearer <api_key>. Dev-only example key (do not use in production): see repository README.

Headers

X-End-User-Authorization
string
required

End-user Bearer token issued by the brand site (Cognito access token). Forwarded as Authorization to the upstream call. Required because the operation is user-scoped on the brand site.

Path Parameters

bookingId
string
required

Query Parameters

brand
string

Distribution channel brand: matches channel name or domainUrl (e.g. Weebora, weebora.com, booking.hofj.com, terrarossa.com). The resolved domain is BOTH the upstream host AND the tenant routing value. If omitted, CONTENT_DEFAULT_CHANNEL_DOMAIN must be set server-side.

locale
enum<string>

Locale for the brand site (it, en, es, fr). Injected as /{locale}/api/... on the upstream call. Defaults to CONTENT_DEFAULT_LOCALE.

Available options:
it,
en,
es,
fr

Response

Booking

data
object
required

The booking

meta
object