trip.restored
An archived trip was restored.
Needs: trips:read on the subscription's key · Subject: trip
Envelope
{
"id": "evt_…",
"type": "trip.restored",
"timestamp": "2027-05-01T09:00:00Z",
"subject": {
"object": "trip",
"id": "<id>",
"tripId": "<tripId>"
},
"changed": [],
"data": {}
}
data
data is the trip exactly as Get a trip returns it, read at delivery time with the subscription key's permissions.
| Field | Type | Required | Description |
|---|---|---|---|
object |
"trip" | yes | |
id |
uuid | yes | |
code |
string | yes | |
title |
string | yes | |
startDate |
string | null | yes | |
endDate |
string | null | yes | |
publication |
"draft" | "published" | yes | |
commercialState |
"nueva" | "propuesta_enviada" | "aceptada" | "reserva_provisional" | "reservada" | "rechazada" | "cancelada" | yes | |
travelers |
integer | yes | |
ownerId |
uuid | null | yes | |
design |
object | null | yes | |
design.version |
1 | yes | |
design.originCity |
string | yes | |
design.stops |
object[] | yes | max 60 items |
design.stops[].id |
string | yes | |
design.stops[].city |
string | yes | |
design.stops[].nights |
integer | yes | 0–365 |
design.stops[].transferBefore |
object | null | yes | |
design.stops[].escala |
boolean | default false | |
design.stops[].place |
object | default {"placeId":"","lat":null,"lng":null,"formattedAddress":""} | |
design.returnCity |
string | null | yes | |
design.returnTransfer |
object | null | yes | |
design.returnTransfer.id |
string | yes | |
design.returnTransfer.departDate |
string | null | yes | |
design.returnTransfer.arriveDate |
string | null | yes | |
design.returnTransfer.days |
integer | 0–30, default 0 | |
design.returnTransfer.departTime |
string | default "" | |
design.returnTransfer.arriveTime |
string | default "" | |
design.returnTransfer.flight |
object | default {"flightNo":"","airline":"","fromAirport":"","toAirport":"","source":"","fetchedAt":"","scheduleValidFor":""} | |
design.originPlace |
object | default {"placeId":"","lat":null,"lng":null,"formattedAddress":""} | |
design.originPlace.placeId |
string | default "" | |
design.originPlace.lat |
number | null | default null | |
design.originPlace.lng |
number | null | default null | |
design.originPlace.formattedAddress |
string | default "" | |
design.returnPlace |
object | default {"placeId":"","lat":null,"lng":null,"formattedAddress":""} | |
design.returnPlace.placeId |
string | default "" | |
design.returnPlace.lat |
number | null | default null | |
design.returnPlace.lng |
number | null | default null | |
design.returnPlace.formattedAddress |
string | default "" | |
presentation |
object | yes | |
presentation.logoUrl |
uri | null | ||
presentation.brandColor |
string | null | ||
presentation.fontFamily |
"inter" | "montserrat" | "poppins" | "lora" | "playfair" | "source-sans" | null | ||
presentation.headerMedia |
object | null | ||
presentation.headerMedia.type |
"image" | "video" | yes | |
presentation.headerMedia.url |
uri | yes | |
profile |
object | yes | |
profile.pace |
"relajado" | "equilibrado" | "intenso" | null | default null | |
profile.profiles |
"primera_vez" | "repetidor" | "familia_ninos" | "pareja" | "grupo" | "senior" | "movilidad_reducida" | "cultural" | "gastronomico" | "naturaleza" | "fotografia" | "otaku" | "compras" | "presupuesto_ajustado" | "premium"[] | default [] | |
profile.mobility |
"normal" | "reducida" | default "normal" | |
profile.avoid |
string[] | default [] | |
profile.notes |
string | default "" | |
coverImageUrl |
string | null | yes | |
coverage |
object | null | yes | |
coverage.state |
"sin_cobros" | "pago_parcial" | "pagado" | yes | |
coverage.percent |
integer | yes | |
coverage.overpaid |
boolean | yes | |
metadata |
object | yes | |
appUrl |
string | null | yes | |
publicUrl |
string | null | yes | |
createdAt |
string | yes | |
updatedAt |
string | yes |
Verify the signature before trusting the body: Webhooks guide.