BagID SDK
The BagID SDK lets partner applications to integrate with electronic baggage tag operations from Android and iOS. SDK is also capable of providing DCS capabilities to the partner app such as baggage tag generation. The SDK owns permissions, discovery, tag security, backend authorization, tag communication, and analytics reporting.
The SDK is built to be vendor-neutral and transport-agnostic. At its core, an electronic baggage tag offers a set of high-level operations — write a ticket, blank the display, read the battery, read the firmware — described independently of how the tag is reached or who made it.
Bluetooth Low Energy (BLE) support is a specialization of that core that adds a device lifecycle (scan, connect, disconnect), and BagID tags over BLE are the default — and currently only — implementation of it. In practice, you select the type of device you hold and the SDK offers the matching set of operations. See Tag Operations & Device Types for the full model.
Built with Kotlin Multiplatform, the SDK exposes the same product contract on Android and iOS.
Authentication model
BagID does not ask partner apps to create a separate BagID login experience. The partner app remains the authority for the user session: it authenticates the passenger or agent in its own identity system, then gives the SDK a short-lived federated token that BagID can trust.
Federated authentication is the primary authentication method provided by the SDK. During
initialize(), the SDK exchanges the partner-issued token for a BagID API session and obtains the
client certificate required for EBT operations. Full-screen managed operations receive a fresh
federated token at launch so the same trust model applies inside the SDK-managed UI.
Core workflow: Transfer tag information
Writing a baggage tag to an EBT is the primary integration path. Every transfer needs journey and baggage identifiers in the payload.
-
Configure the SDK with API endpoint,
sourceAppKey, and a federated token provider. -
Initialize so the SDK authenticates and prepares for next steps.
-
Prepare transfer payload data — typically
loadJourneyandcreateBaggageTag, or airline-supplied journey flows agreed during onboarding. See Journey Preparation. -
Launch a managed workflow to transfer the tag information into the EBT. (
TRANSFER) -
Handle results in the partner UI.
Other managed workflows provided
Operations such as CLEAR, READ_BATTERY, READ_FIRMWARE, SEND_NAMETAG, HIDE_TICKET, and
RESTORE_TICKET follow a shorter path. They do not require journey load or baggage creation.
-
Configure and initialize as for transfer.
-
Launch the managed workflow with the payload fields required for that operation.
-
Handle results in the partner UI.
See Managed BLE Operations for operation-specific payload and result contracts.
Partner app responsibilities
Your app owns:
-
User authentication and federated token issuance.
-
Configuration of SDK.
-
Journey and baggage user experience.
-
Managed operation launch with correct data formats.
-
Result handling and user-facing success/failure messages.
The SDK owns:
-
BagID API calls and session handling.
-
Secure communication and integrity of data.
-
Permission handling.
-
EBT discovery, connect/reconnect, tag security, authorization, transfer, clear, and unlock orchestration.
-
A shared result contract across Android and iOS.
Capabilities
- Journey and baggage operations
-
-
Load journeys from BCBP barcodes or airline-supplied payloads
-
Create baggage tags via DCS
-
- Core tag operations (vendor-neutral)
-
-
Write a ticket to the display, blank the display, read battery, read firmware
-
Described transport-agnostically; BLE is one specialization (see Tag Operations & Device Types)
-
Design principles
- Minimal partner app burden
-
Business-level operations and a managed full-screen path keep integrators off low-level BLE and custody details.
- Silent setup and auth
-
The partner app provides a token provider.
initialize()performs federated login and obtains a client certificate for that session. - SDK-provided UI
-
Full-screen managed flows ship in the SDK (
ManagedBleFlowActivityon Android,BagIdSDKUIon iOS). - Single-session oriented
-
Connect to one EBT at a time through the façade. Scan, select (
notifyDiscoveredModel), connect, operate. - Cross-platform contract
-
Operation names, payload JSON, and result JSON are identical on Android and iOS so partner QA can test one contract.
Main documentation
-
Installation — add the SDK to Android and iOS apps.
-
Quickstart — shortest path from configure to first managed
TRANSFER. -
Journey Preparation — BCBP, DCS baggage creation, airline payloads, and planned airline baggage APIs.
-
Managed BLE Operations — operation names, payloads, result JSON, custody behavior, and platform launchers.
-
Partner Integration — onboarding, credentials, environments, UAT, and device identity.
Advanced material
Most partner apps do not need low-level BLE APIs. Custom scan/connect flows, raw display commands, GATT generations, and vendor-specific primitives are documented under Protocol & internals.
Use the advanced material when building vendor tooling, diagnostics, or a custom BLE experience with BagID guidance.