List passenger trips
curl --request GET \
--url https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/tripsimport requests
url = "https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "6711b4c0d8e1a30012b7c9f2",
"realmId": "f495ff0c-ab54-4f99-8e92-ca8682e4de9b",
"organizationId": "c4bd3f21-dfbd-44e8-8055-68ba15bed410",
"customFields": {
"cost-center": "CC-1020"
},
"vertical": "AIR",
"state": "RESERVED",
"status": "RESERVED",
"passengers": [
{
"id": "6710a3f2c9e77b0012a4d5e1",
"lead": true,
"name": "Mariana Costa",
"gender": "FEMALE",
"birthDate": "1990-04-17",
"userId": "e3553bc1-5e20-4e17-b22a-a796fda0aa99"
}
],
"createdBy": "e3553bc1-5e20-4e17-b22a-a796fda0aa99",
"reservationExpiresAt": "2026-10-02T13:45:12.000Z",
"issuedAt": "2023-11-07T05:31:56Z",
"originalAmount": 95000,
"discountAmount": 3010,
"feeAmount": 0,
"totalAmount": 91990,
"currency": "986",
"productSnapshot": {
"journeys": [
{
"id": "jour_V1StGXR8Z5jdHi6BmyT2k",
"direction": "DEPARTURE",
"origin": {
"iata": "GRU",
"name": "São Paulo/Guarulhos International Airport",
"shortAddress": "Guarulhos, SP, Brazil",
"locality": "Guarulhos",
"administrativeArea": "SP",
"phoneNumbers": [
"551133334444"
]
},
"destination": {
"iata": "SDU",
"name": "Rio de Janeiro/Santos Dumont Airport",
"shortAddress": "Rio de Janeiro, RJ, Brazil",
"locality": "Rio de Janeiro",
"administrativeArea": "RJ",
"phoneNumbers": [
"552133339999"
]
},
"departureDate": "2026-11-02T08:30:00",
"arrivalDate": "2026-11-02T09:35:00",
"duration": "01:05",
"segments": [
{
"airline": {
"code": "LA",
"name": "LATAM Airlines",
"logo": "https://cdn.example.com/airlines/LA.png"
},
"operation": {
"code": "LA",
"name": "LATAM Airlines",
"logo": "https://cdn.example.com/airlines/LA.png"
},
"origin": {
"iata": "GRU",
"name": "São Paulo/Guarulhos International Airport",
"shortAddress": "Guarulhos, SP, Brazil",
"locality": "Guarulhos",
"administrativeArea": "SP",
"phoneNumbers": [
"551133334444"
]
},
"destination": {
"iata": "SDU",
"name": "Rio de Janeiro/Santos Dumont Airport",
"shortAddress": "Rio de Janeiro, RJ, Brazil",
"locality": "Rio de Janeiro",
"administrativeArea": "RJ",
"phoneNumbers": [
"552133339999"
]
},
"flightNumber": "3101",
"departureDate": "2026-11-02T08:30:00",
"arrivalDate": "2026-11-02T09:35:00",
"flightType": "REGULAR",
"duration": "01:05",
"equipment": "32Q",
"cabin": "ECONOMY",
"class": "Y",
"fareBasis": "YOW",
"flightInfo": null
}
]
}
],
"tickets": [
{
"fareDescription": "GRU to SDU, LATAM Airlines, Economy",
"ticketNumber": null,
"fares": [
{
"journeyId": "jour_V1StGXR8Z5jdHi6BmyT2k",
"currency": "BRL",
"originalAmount": 95000,
"discountAmount": 3010,
"feeAmount": 0,
"amount": 91990,
"cancellationPolicies": {
"refundable": true,
"immediateFine": false,
"penalties": [
{
"from": "2026-10-25",
"currency": "BRL",
"fineAmount": 15000
}
]
},
"changePolicies": {
"canChange": true,
"immediateFine": false,
"penalties": [
{
"from": "2026-10-25",
"currency": "BRL",
"fineAmount": 8000
}
]
}
}
],
"segments": [
{
"flightNumber": "3101",
"cabin": "ECONOMY",
"class": "Y",
"fareBasis": "YOW",
"baggages": [
{
"quantity": 1,
"weight": 23,
"type": "CHECKED"
}
]
}
],
"passengerId": "6710a3f2c9e77b0012a4d5e1"
}
],
"locators": [
{
"type": "PNR",
"code": "ABC123"
}
],
"flightInfoUpdatedAt": null
},
"cancellation": {
"quoteId": "<string>",
"cancelType": "CREDIT",
"originalAmount": 123,
"remainingAmount": 123,
"fineAmount": 123,
"currency": "<string>",
"status": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"confirmedAt": "2023-11-07T05:31:56Z",
"confirmedBy": "<string>"
},
"createdAt": "2026-10-01T13:45:12.000Z",
"updatedAt": "2026-10-01T13:46:03.000Z"
}
],
"next": "eyJjIjoiMjAyNi0xMC0wMVQxMzo0NToxMi4wMDBaIiwiaSI6IjY3MTFiNGMwZDhlMWEzMDAxMmI3YzlmMiJ9"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "TRAVEL_ADMIN_OR_SELF_REQUIRED",
"origin": "TRAVEL",
"message": "Organization admin or the passenger themself required"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "PASSENGER_NOT_FOUND",
"origin": "TRAVEL",
"message": "Passenger not found"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "BAD_REQUEST",
"origin": "TRAVEL",
"message": "Bad Request: Your request is invalid or incomplete. Please make sure you are requesting with the right fields.",
"fields": [
{
"field": "vertical",
"message": "Invalid option: expected one of \"AIR\"|\"HOTEL\"|\"BUS\"|\"VEHICLE\"",
"code": "VERTICAL_ONE_OF"
}
]
}List passenger trips
Lists the trips a passenger travels on, newest first.
GET
/
realms
/
{realmId}
/
organizations
/
{organizationId}
/
passengers
/
{passengerId}
/
trips
List passenger trips
curl --request GET \
--url https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/tripsimport requests
url = "https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.travel.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/passengers/{passengerId}/trips")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "6711b4c0d8e1a30012b7c9f2",
"realmId": "f495ff0c-ab54-4f99-8e92-ca8682e4de9b",
"organizationId": "c4bd3f21-dfbd-44e8-8055-68ba15bed410",
"customFields": {
"cost-center": "CC-1020"
},
"vertical": "AIR",
"state": "RESERVED",
"status": "RESERVED",
"passengers": [
{
"id": "6710a3f2c9e77b0012a4d5e1",
"lead": true,
"name": "Mariana Costa",
"gender": "FEMALE",
"birthDate": "1990-04-17",
"userId": "e3553bc1-5e20-4e17-b22a-a796fda0aa99"
}
],
"createdBy": "e3553bc1-5e20-4e17-b22a-a796fda0aa99",
"reservationExpiresAt": "2026-10-02T13:45:12.000Z",
"issuedAt": "2023-11-07T05:31:56Z",
"originalAmount": 95000,
"discountAmount": 3010,
"feeAmount": 0,
"totalAmount": 91990,
"currency": "986",
"productSnapshot": {
"journeys": [
{
"id": "jour_V1StGXR8Z5jdHi6BmyT2k",
"direction": "DEPARTURE",
"origin": {
"iata": "GRU",
"name": "São Paulo/Guarulhos International Airport",
"shortAddress": "Guarulhos, SP, Brazil",
"locality": "Guarulhos",
"administrativeArea": "SP",
"phoneNumbers": [
"551133334444"
]
},
"destination": {
"iata": "SDU",
"name": "Rio de Janeiro/Santos Dumont Airport",
"shortAddress": "Rio de Janeiro, RJ, Brazil",
"locality": "Rio de Janeiro",
"administrativeArea": "RJ",
"phoneNumbers": [
"552133339999"
]
},
"departureDate": "2026-11-02T08:30:00",
"arrivalDate": "2026-11-02T09:35:00",
"duration": "01:05",
"segments": [
{
"airline": {
"code": "LA",
"name": "LATAM Airlines",
"logo": "https://cdn.example.com/airlines/LA.png"
},
"operation": {
"code": "LA",
"name": "LATAM Airlines",
"logo": "https://cdn.example.com/airlines/LA.png"
},
"origin": {
"iata": "GRU",
"name": "São Paulo/Guarulhos International Airport",
"shortAddress": "Guarulhos, SP, Brazil",
"locality": "Guarulhos",
"administrativeArea": "SP",
"phoneNumbers": [
"551133334444"
]
},
"destination": {
"iata": "SDU",
"name": "Rio de Janeiro/Santos Dumont Airport",
"shortAddress": "Rio de Janeiro, RJ, Brazil",
"locality": "Rio de Janeiro",
"administrativeArea": "RJ",
"phoneNumbers": [
"552133339999"
]
},
"flightNumber": "3101",
"departureDate": "2026-11-02T08:30:00",
"arrivalDate": "2026-11-02T09:35:00",
"flightType": "REGULAR",
"duration": "01:05",
"equipment": "32Q",
"cabin": "ECONOMY",
"class": "Y",
"fareBasis": "YOW",
"flightInfo": null
}
]
}
],
"tickets": [
{
"fareDescription": "GRU to SDU, LATAM Airlines, Economy",
"ticketNumber": null,
"fares": [
{
"journeyId": "jour_V1StGXR8Z5jdHi6BmyT2k",
"currency": "BRL",
"originalAmount": 95000,
"discountAmount": 3010,
"feeAmount": 0,
"amount": 91990,
"cancellationPolicies": {
"refundable": true,
"immediateFine": false,
"penalties": [
{
"from": "2026-10-25",
"currency": "BRL",
"fineAmount": 15000
}
]
},
"changePolicies": {
"canChange": true,
"immediateFine": false,
"penalties": [
{
"from": "2026-10-25",
"currency": "BRL",
"fineAmount": 8000
}
]
}
}
],
"segments": [
{
"flightNumber": "3101",
"cabin": "ECONOMY",
"class": "Y",
"fareBasis": "YOW",
"baggages": [
{
"quantity": 1,
"weight": 23,
"type": "CHECKED"
}
]
}
],
"passengerId": "6710a3f2c9e77b0012a4d5e1"
}
],
"locators": [
{
"type": "PNR",
"code": "ABC123"
}
],
"flightInfoUpdatedAt": null
},
"cancellation": {
"quoteId": "<string>",
"cancelType": "CREDIT",
"originalAmount": 123,
"remainingAmount": 123,
"fineAmount": 123,
"currency": "<string>",
"status": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"confirmedAt": "2023-11-07T05:31:56Z",
"confirmedBy": "<string>"
},
"createdAt": "2026-10-01T13:45:12.000Z",
"updatedAt": "2026-10-01T13:46:03.000Z"
}
],
"next": "eyJjIjoiMjAyNi0xMC0wMVQxMzo0NToxMi4wMDBaIiwiaSI6IjY3MTFiNGMwZDhlMWEzMDAxMmI3YzlmMiJ9"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "TRAVEL_ADMIN_OR_SELF_REQUIRED",
"origin": "TRAVEL",
"message": "Organization admin or the passenger themself required"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "PASSENGER_NOT_FOUND",
"origin": "TRAVEL",
"message": "Passenger not found"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "BAD_REQUEST",
"origin": "TRAVEL",
"message": "Bad Request: Your request is invalid or incomplete. Please make sure you are requesting with the right fields.",
"fields": [
{
"field": "vertical",
"message": "Invalid option: expected one of \"AIR\"|\"HOTEL\"|\"BUS\"|\"VEHICLE\"",
"code": "VERTICAL_ONE_OF"
}
]
}A trip is listed when the passenger travels on it. An organization admin can list any passenger’s trips; a user can list their own — those of the passenger linked to them. A passenger who is not a user can only be listed by an admin. Filter by creation date, requester and the type, state or status of the trip. Paginated — see Pagination.
Path Parameters
ID of your realm.
Format: UUID
ID of the organization the passenger belongs to.
Format: UUID
ID of the passenger whose trips you want to list (24 hexadecimal characters).
Pattern:
^[0-9a-fA-F]{24}$Query Parameters
Only trips created on or after this day (YYYY-MM-DD, UTC).
Pattern:
^\d{4}-\d{2}-\d{2}$Only trips created on or before this day (YYYY-MM-DD, UTC), the whole day included.
Pattern:
^\d{4}-\d{2}-\d{2}$Only trips of this type.
Available options:
AIR, HOTEL, BUS, VEHICLE Only trips in this state.
Available options:
PENDING, RESERVED, ISSUED, CANCELED Only trips in this status.
Available options:
PROCESSING_RESERVATION, RESERVATION_FAILED, RESERVED, PROCESSING_ISSUE, ISSUED, PROCESSING_CANCELLATION, CANCELED, AWAITING_MANUAL_CANCELLATION, CANCELLATION_FAILED, FAILED, FAILED_BY_INCONSISTENT_DATA, FAILED_BY_UNAVAILABLE_RESOURCE, FAILED_BY_BUDGET_EXCEEDED, EXPIRED, BLOCKED, UNKNOWN, ISSUANCE_FAILED Only trips created by this user (createdBy).
Maximum string length:
100Cursor returned as next by the previous page. Omit for the first page.
Page size.
Required range:
1 <= x <= 100