Journey Preparation
Journey preparation gives managed EBT operations the backend identifiers and display data they need.
The partner app owns the passenger journey experience; the SDK provides the BagID API calls and model
mapping needed before TRANSFER.
Supported paths
| Path | SDK APIs | Status |
|---|---|---|
|
|
Supported today and recommended when the partner flow uses DCS baggage creation. |
|
|
Important planned integration path for partners that already hold passenger and flight data. Current builds expose the model shape but return |
|
|
Important planned integration path for partner-issued baggage tags. Current builds expose the request shape but the API returns |
BCBP journey load
Use BCBP when the host app has barcode scan data and BagID should resolve the journey through the backend.
val journey = BagIdSdk.loadJourney(
LoadJourneyRequest.Bcbp(
scanData = "M1DOE/JOHN E...",
airline = "WF",
),
).getOrThrow()
The returned Journey contains journeyId, passengers, flights, baggage records, and baggage slots.
The host app should present this data and let the user choose the baggage flow.
Create baggage through DCS
Use createBaggageTag after journey load when BagID/DCS should generate or submit the baggage tag.
val updatedJourney = BagIdSdk.createBaggageTag(
CreateBaggageTagRequest(
journeyId = journey.journeyId,
passengerList = selectedPassengers,
lpn = null,
slotNumber = selectedSlotIndex,
),
).getOrThrow()
Use the returned Journey.baggage or populated baggageSlots to build managed TRANSFER payloads.
At minimum, TRANSFER needs baggageId, journeyId, and either a journey snapshot or a
displayTicket.
Airline-supplied journey payload
LoadJourneyRequest.AirlinePayload represents the path where the partner app already has passenger,
flight, and optional baggage input. It is part of the intended non-BCBP journey preparation surface.
val request = LoadJourneyRequest.AirlinePayload(
passengers = listOf(
AirlinePassenger(
passenger = Passenger(
surname = "DOE",
givenName = "JOHN",
),
pnr = "ABC123",
surname = "DOE",
flights = listOf(
FlightInfo(
flightNumber = "WF123",
departureAirport = "BGO",
destinationAirport = "OSL",
departureAt = "2026-06-30T10:00:00Z",
),
),
baggage = null,
),
),
)
Current SDK builds return UnsupportedOperationException for LoadJourneyRequest.AirlinePayload.
Treat this as a partner onboarding topic until BagID announces support for your target SDK/backend
combination.
Airline-issued baggage
createAirlineBaggage is reserved for baggage rows supplied by the partner instead of created through
DCS.
val request = CreateAirlineBaggageRequest(
journeyId = journey.journeyId,
baggageTagNumber = "0701913714",
airline = "WF",
destinationAirport = "OSL",
)
Current SDK builds return UnsupportedOperationException for createAirlineBaggage. Keep this path
visible in integration planning, but do not build production flows on it until BagID announces support
for your environment.
Payload handoff to managed operations
After journey preparation, managed BLE operations use JSON payloads. For transfer:
{
"schemaVersion": 1,
"data": {
"baggageId": 12345,
"journeyId": 67890,
"journey": {
"journeyId": 67890,
"passengers": [],
"flights": [],
"baggage": []
}
}
}
See Managed BLE Operations — TRANSFER data fields for the canonical payload contract.