bymundi API

Update a traveler

PATCH/v1/travelers/{travelerId}

Changes a passenger's fields — an absent field is unchanged, null clears it — and/or moves it (position). The resulting passenger is validated as the drawer does. Send expectedUpdatedAt (the updatedAt you read) to refuse with 409 if someone changed it since. Staff may correct any field in any state. On a reservada trip a new email gets the app-access email. Undo with POST /changes/{changeId}/revert within 30 days, while nobody has edited the passenger since. An access email the write queued is not recalled.

Permissions: travelers:write · Kind: write · Cost: 1 unit · MCP tool update_traveler

Undoable: the response carries Bymundi-Change-Id; revert it with POST /v1/changes/{changeId}/revert.

Path parameters

Field Type Required Description
travelerId uuid yes

Body

Field Type Required Description
position integer 0 = first on the booking. Past the end = last. 0–39
expectedUpdatedAt datetime Refuse (409) unless the passenger still carries this updatedAt.
title "mr" | "mrs" | "ms" | "mstr" | "miss" | null Form of address; the app derives one from sex and age when empty.
firstName string | null
lastName1 string | null Surname(s) as on the passport — the app asks for both surnames here.
lastName2 string | null A second surname stored separately (older passengers); usually null.
birthDate string | null
sex "m" | "f" | null
nationality string | null
docType "dni" | "nie" | "passport" | "other" | null
docNumber string | null
docExpiry string | null
docCountry string | null The country that issued the document.
email email | null
phone string | null
address object | null
address.line1 string | null yes
address.line2 string | null yes
address.postalCode string | null yes
address.city string | null yes
address.region string | null yes
address.country string | null yes
taxId string | null

Response 200

Field Type Required Description
object "traveler" yes
id uuid yes
tripId uuid yes
position integer yes
title "mr" | "mrs" | "ms" | "mstr" | "miss" | null yes
firstName string | null yes
lastName1 string | null yes
lastName2 string | null yes
birthDate string | null yes
sex "m" | "f" | null yes
nationality string | null yes
docType "dni" | "nie" | "passport" | "other" | null yes
docNumber string | null yes
docExpiry string | null yes
docCountry string | null yes
email string | null yes
phone string | null yes
address object | null yes
address.line1 string | null yes
address.line2 string | null yes
address.postalCode string | null yes
address.city string | null yes
address.region string | null yes
address.country string | null yes
taxId string | null yes
paxType "adult" | "child" | "infant" | "unknown" yes
missing string[] yes
access "invited" | "queued" | "failed" | "no_email" | "not_yet" | null yes
source string yes
consentAt string | null yes
docsPurgedAt string | null yes
createdAt string yes
updatedAt string yes

Errors

Errors are problem details. Besides the refusals described above, any call like this one can return: