> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.bitbybit.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Get shipment tracking

> Return the current tracking state for a shipment, including the carrier's raw tracking payload when available.

- For **KiriminAja** Express shipments, calls `trackOrderExpress` and returns the carrier histories under `providerTracking`.
- For **RideBlitz** shipments with an `awb`, calls `getOrderDetails` and returns the response under `providerTracking`.
- For shipments not yet booked, `providerTracking` is `null` and only the local fields (`shippingStatus`, `awb`, `trackingUrl`, `driver`) are returned.

For near-real-time updates prefer subscribing to webhook events (`shipment.booked`, `shipment.updated`, `shipment.cancelled`).



## OpenAPI

````yaml GET /shipping/shipments/{id}/tracking
openapi: 3.1.0
info:
  title: bitbybit Open API — Shipping
  description: >-
    Programmatic access to bitbybit shipping: store locations, provider
    discovery, coverage lookup, fee quoting, and the full shipment lifecycle
    (create, book, update, cancel, track) across GoSend, KiriminAja, and
    RideBlitz.
  version: 1.0.0
  contact:
    name: bitbybit Support
    url: https://bitbybit.studio
servers:
  - url: https://api.bitbybit.studio/customer/api/open/v1
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Store Locations
    description: >-
      Manage warehouse / pickup origin addresses. Couriers pick up from these
      locations when a shipment is booked.
  - name: Providers
    description: Discover connected carriers and the services each carrier offers.
  - name: Coverage
    description: >-
      Look up the courier-specific province / city / district / sub-district
      dictionaries needed to populate addresses and quote fees.
  - name: Fee Calculation
    description: Quote shipping fees across carriers using one unified request shape.
  - name: Shipments
    description: >-
      Create, update, cancel, and track shipments. A shipment is always attached
      to an Order.
paths:
  /shipping/shipments/{id}/tracking:
    get:
      tags:
        - Shipments
      summary: Get shipment tracking
      description: >-
        Return the current tracking state for a shipment, including the
        carrier's raw tracking payload when available.


        - For **KiriminAja** Express shipments, calls `trackOrderExpress` and
        returns the carrier histories under `providerTracking`.

        - For **RideBlitz** shipments with an `awb`, calls `getOrderDetails` and
        returns the response under `providerTracking`.

        - For shipments not yet booked, `providerTracking` is `null` and only
        the local fields (`shippingStatus`, `awb`, `trackingUrl`, `driver`) are
        returned.


        For near-real-time updates prefer subscribing to webhook events
        (`shipment.booked`, `shipment.updated`, `shipment.cancelled`).
      operationId: getShipmentTracking
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Tracking payload.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ShipmentTracking'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    ShipmentTracking:
      type: object
      properties:
        shipmentId:
          type: string
        provider:
          $ref: '#/components/schemas/ShippingProvider'
        shippingStatus:
          anyOf:
            - $ref: '#/components/schemas/ShippingStatus'
            - type: 'null'
        awb:
          type: string
          nullable: true
        orderNo:
          type: string
          nullable: true
        trackingUrl:
          type: string
          nullable: true
        driver:
          anyOf:
            - type: object
              properties:
                name:
                  type: string
                  nullable: true
                phone:
                  type: string
                  nullable: true
                photo:
                  type: string
                  nullable: true
                licensePlate:
                  type: string
                  nullable: true
            - type: 'null'
        eventTimestamp:
          type: string
          nullable: true
        providerTracking:
          description: >-
            Raw provider tracking payload. Shape varies by provider; `null` when
            not yet booked.
          anyOf:
            - type: object
              additionalProperties: true
            - type: 'null'
    ShippingProvider:
      type: string
      enum:
        - gosend
        - kirimin_aja
        - ride_blitz
        - jne
        - custom
      description: >-
        Provider/courier code. `gosend`, `kirimin_aja`, and `ride_blitz` are
        externally integrated; `jne` is a passthrough placeholder; `custom` is
        for merchant-defined methods.
    ShippingStatus:
      type: string
      enum:
        - confirmed
        - allocated
        - out_for_pickup
        - picked
        - out_for_delivery
        - on_hold
        - cancelled
        - delivered
        - rejected
        - no_driver
        - awaiting
        - on_the_way_to_pickup
        - delivering
        - delivery_completed
        - canceled
        - processed_packages
        - shipped_packages
        - canceled_packages
        - finished_packages
        - returned_packages
        - return_finished_packages
        - created
        - midmile_pickup_done
        - midmile_pickup_failed
        - arrived_blitz_hub
        - allocation_failure
        - pickup_started
        - pickup_done
        - pickup_failed
        - pickup_failure
        - dropoff_started
        - dropoff_done
        - dropoff_failed
        - delivery_failure
        - cancelled_by_blitz
        - cancelled_by_business
        - returned_to_business
      description: >-
        Unified shipping status. Some values are provider-specific (e.g.
        `cancelled_by_blitz` is RideBlitz, `midmile_pickup_done` is KiriminAja
        Express).
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: >-
                Machine-readable code, e.g. `VALIDATION_ERROR`, `NOT_FOUND`,
                `INTEGRATION_NOT_CONNECTED`, `PROVIDER_ERROR`, `BOOKING_FAILED`.
            message:
              type: string
              description: Human-readable error message.
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UNAUTHORIZED
              message: Invalid API key
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: NOT_FOUND
              message: Shipment not found
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key for authentication. Create one in Settings > Developer. The key
        must have the `BITCRM` product scope and an `orders` resource scope;
        required action depends on the endpoint (`READ`, `WRITE`, or `DELETE`).

````