PUT
/
v1
/
itineraries
/
{itineraryId}
/
customer
Update customer data (internal)
curl --request PUT \
  --url https://api.hofj.com/v1/itineraries/{itineraryId}/customer \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "firstName": "<string>",
  "lastName": "<string>",
  "email": "jsmith@example.com",
  "phone": "<string>",
  "address": {
    "street1": "<string>",
    "postalCode": "<string>",
    "city": "<string>",
    "region": "<string>",
    "countryCode": "<string>"
  },
  "taxNumber": "<string>",
  "marketingOptIn": true
}
'
{
  "data": {},
  "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.

Path Parameters

itineraryId
string
required

Identifier of the itinerary (cart) returned by POST /v1/itineraries.

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

Body

application/json
firstName
string
required
lastName
string
required
email
string<email>
required
phone
string
required
address
object
required
taxNumber
string | null
marketingOptIn
boolean | null

Response

Customer updated

data
object
required

No content.

meta
object