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.

Diagram
  1. Configure the SDK with API endpoint, sourceAppKey, and a federated token provider.

  2. Initialize so the SDK authenticates and prepares for next steps.

  3. Prepare transfer payload data — typically loadJourney and createBaggageTag, or airline-supplied journey flows agreed during onboarding. See Journey Preparation.

  4. Launch a managed workflow to transfer the tag information into the EBT. (TRANSFER)

  5. 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.

Diagram
  1. Configure and initialize as for transfer.

  2. Launch the managed workflow with the payload fields required for that operation.

  3. 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 (ManagedBleFlowActivity on Android, BagIdSDKUI on 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.