Oracle Transportation Management Business Object Resources REST API

Oracle Transportation Management Business Object Resources REST API enables programmatic access to in-system data and integrations with shipment orders, carriers, lanes, rates, and transportation plans in Oracle Fusion Cloud Transportation and Global Trade Management.

OpenAPI Specification

oracle-otm-business-objects-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Oracle Transportation Management Business Object Resources REST API
  description: >-
    Oracle Transportation Management (OTM) Business Object Resources REST API
    provides programmatic access to shipment orders, carriers, lanes, rates,
    transportation plans, and logistics data in Oracle Fusion Cloud Transportation
    and Global Trade Management.
  version: 26b.0.0
  contact:
    name: Oracle Support
    url: https://support.oracle.com
  license:
    name: Oracle Technology Network License
    url: https://www.oracle.com/legal/terms/
servers:
  - url: https://{host}/GC3/glog.integration.servlet.WMServlet/otm/rest/v1
    description: OTM REST API endpoint
    variables:
      host:
        default: otm.example.com

security:
  - oauth2: []

tags:
  - name: Carriers
    description: Carrier master data
  - name: Locations
    description: Location master data

  - name: Rates
    description: Rate records and freight costs
  - name: ShipmentOrders
    description: Shipment order management
paths:
  /shipment-orders:
    get:
      operationId: listShipmentOrders
      summary: List shipment orders
      description: Returns shipment orders (orders to move) with status, routing, and carrier assignments.
      tags:
        - ShipmentOrders
      parameters:
        - name: status
          in: query
          description: Filter by order status
          schema:
            type: string
            enum: [I, OB, PL, DP, IT, DL, CL]
        - name: startDate
          in: query
          description: Early pickup date filter (ISO 8601)
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          schema:
            type: string
            format: date-time
        - name: sourceLocationGid
          in: query
          description: Filter by origin location GID
          schema:
            type: string
        - name: destLocationGid
          in: query
          description: Filter by destination location GID
          schema:
            type: string
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
            maximum: 1000
      responses:
        '200':
          description: Shipment order list
          content:
            application/json:
              schema:
                type: object
                properties:
                  shipmentOrders:
                    type: array
                    items:
                      $ref: '#/components/schemas/ShipmentOrder'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createShipmentOrder
      summary: Create a shipment order
      description: Creates a new shipment order (order to move) in OTM.
      tags:
        - ShipmentOrders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShipmentOrderCreate'
      responses:
        '201':
          description: Shipment order created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentOrder'
        '400':
          $ref: '#/components/responses/BadRequest'

  /shipment-orders/{gid}:
    get:
      operationId: getShipmentOrder
      summary: Get a shipment order
      description: Returns full shipment order details including lines, references, and routing.
      tags:
        - ShipmentOrders
      parameters:
        - $ref: '#/components/parameters/GidParam'
      responses:
        '200':
          description: Shipment order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentOrderDetail'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateShipmentOrder
      summary: Update a shipment order
      description: Updates mutable fields on a shipment order.
      tags:
        - ShipmentOrders
      parameters:
        - $ref: '#/components/parameters/GidParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShipmentOrderUpdate'
      responses:
        '200':
          description: Order updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentOrder'
    delete:
      operationId: deleteShipmentOrder
      summary: Delete a shipment order
      description: Deletes a shipment order in Draft status.
      tags:
        - ShipmentOrders
      parameters:
        - $ref: '#/components/parameters/GidParam'
      responses:
        '204':
          description: Deleted

  /carriers:
    get:
      operationId: listCarriers
      summary: List carriers
      description: Returns carrier master data including SCAC codes and service levels.
      tags:
        - Carriers
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum: [A, I]
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
      responses:
        '200':
          description: Carrier list
          content:
            application/json:
              schema:
                type: object
                properties:
                  carriers:
                    type: array
                    items:
                      $ref: '#/components/schemas/Carrier'
                  totalCount:
                    type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'

  /carriers/{gid}:
    get:
      operationId: getCarrier
      summary: Get a carrier
      description: Returns carrier details including service offerings and contact information.
      tags:
        - Carriers
      parameters:
        - $ref: '#/components/parameters/GidParam'
      responses:
        '200':
          description: Carrier details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Carrier'
        '404':
          $ref: '#/components/responses/NotFound'

  /locations:
    get:
      operationId: listLocations
      summary: List locations
      description: Returns location master data including addresses and coordinates.
      tags:
        - Locations
      parameters:
        - name: locationType
          in: query
          schema:
            type: string
        - name: country
          in: query
          schema:
            type: string
            maxLength: 3
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
      responses:
        '200':
          description: Location list
          content:
            application/json:
              schema:
                type: object
                properties:
                  locations:
                    type: array
                    items:
                      $ref: '#/components/schemas/Location'
                  totalCount:
                    type: integer

  /rates:
    get:
      operationId: listRates
      summary: List rate records
      description: Returns freight rate records applicable to lanes and carriers.
      tags:
        - Rates
      parameters:
        - name: carrierGid
          in: query
          schema:
            type: string
        - name: effectiveDate
          in: query
          schema:
            type: string
            format: date
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
      responses:
        '200':
          description: Rate list
          content:
            application/json:
              schema:
                type: object
                properties:
                  rates:
                    type: array
                    items:
                      $ref: '#/components/schemas/Rate'
                  totalCount:
                    type: integer

components:
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://login.oracle.com/oauth2/v1/token
          scopes:
            otm.read: Read OTM data
            otm.write: Write OTM data

  parameters:
    GidParam:
      name: gid
      in: path
      required: true
      description: OTM Global Identifier (domainName.xid format)
      schema:
        type: string
        pattern: '^[A-Z0-9_]+\.[A-Z0-9_-]+$'

  responses:
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'

  schemas:
    ShipmentOrder:
      type: object
      description: An OTM shipment order (order to move)
      properties:
        shipmentOrderGid:
          type: string
          description: Global identifier (domain.xid format)
        shipmentOrderXid:
          type: string
          description: User-defined order ID
        status:
          type: string
          enum: [I, OB, PL, DP, IT, DL, CL]
          description: "I=Initial, OB=Open-Booked, PL=Planned, DP=Dispatched, IT=InTransit, DL=Delivered, CL=Closed"
        sourceLocationGid:
          type: string
          description: Origin location GID
        destLocationGid:
          type: string
          description: Destination location GID
        earlyPickupDate:
          type: string
          format: date-time
        latePickupDate:
          type: string
          format: date-time
        earlyDeliveryDate:
          type: string
          format: date-time
        lateDeliveryDate:
          type: string
          format: date-time
        transportationMode:
          type: string
          enum: [LTL, TL, OCEAN, AIR, RAIL, PARCEL, INTERMODAL]
        totalWeight:
          type: number
          format: double
        totalWeightUom:
          type: string
          enum: [LB, KG, T, MT]
        totalVolume:
          type: number
          format: double
        totalVolumeUom:
          type: string
        insertDate:
          type: string
          format: date-time
        lastUpdateDate:
          type: string
          format: date-time

    ShipmentOrderCreate:
      type: object
      required:
        - shipmentOrderXid
        - sourceLocationGid
        - destLocationGid
        - earlyPickupDate
        - lateDeliveryDate
      properties:
        shipmentOrderXid:
          type: string
        sourceLocationGid:
          type: string
        destLocationGid:
          type: string
        earlyPickupDate:
          type: string
          format: date-time
        latePickupDate:
          type: string
          format: date-time
        earlyDeliveryDate:
          type: string
          format: date-time
        lateDeliveryDate:
          type: string
          format: date-time
        transportationMode:
          type: string
          enum: [LTL, TL, OCEAN, AIR, RAIL, PARCEL, INTERMODAL]
        lines:
          type: array
          items:
            $ref: '#/components/schemas/ShipmentOrderLineCreate'

    ShipmentOrderUpdate:
      type: object
      properties:
        earlyPickupDate:
          type: string
          format: date-time
        latePickupDate:
          type: string
          format: date-time
        earlyDeliveryDate:
          type: string
          format: date-time
        lateDeliveryDate:
          type: string
          format: date-time

    ShipmentOrderDetail:
      allOf:
        - $ref: '#/components/schemas/ShipmentOrder'
        - type: object
          properties:
            lines:
              type: array
              items:
                $ref: '#/components/schemas/ShipmentOrderLine'
            references:
              type: array
              items:
                type: object
                properties:
                  refType:
                    type: string
                  refValue:
                    type: string

    ShipmentOrderLine:
      type: object
      properties:
        lineNumber:
          type: integer
        itemGid:
          type: string
        itemDescription:
          type: string
        quantity:
          type: number
          format: double
        quantityUom:
          type: string
        weight:
          type: number
          format: double
        weightUom:
          type: string
        volume:
          type: number
          format: double
        volumeUom:
          type: string
        packageType:
          type: string

    ShipmentOrderLineCreate:
      type: object
      required:
        - lineNumber
        - quantity
        - quantityUom
      properties:
        lineNumber:
          type: integer
        itemGid:
          type: string
        itemDescription:
          type: string
        quantity:
          type: number
          format: double
        quantityUom:
          type: string
        weight:
          type: number
          format: double
        weightUom:
          type: string

    Carrier:
      type: object
      properties:
        servprovGid:
          type: string
          description: Service provider GID
        servprovXid:
          type: string
          description: Carrier identifier (SCAC or internal)
        name:
          type: string
        scacCode:
          type: string
          maxLength: 4
          description: Standard Carrier Alpha Code
        status:
          type: string
          enum: [A, I]
        transportationModes:
          type: array
          items:
            type: string
        contactName:
          type: string
        contactPhone:
          type: string
        contactEmail:
          type: string
          format: email
        insertDate:
          type: string
          format: date-time

    Location:
      type: object
      properties:
        locationGid:
          type: string
        locationXid:
          type: string
        locationName:
          type: string
        locationType:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        province:
          type: string
        postalCode:
          type: string
        country:
          type: string
          maxLength: 3
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double

    Rate:
      type: object
      properties:
        rateRecordGid:
          type: string
        rateRecordXid:
          type: string
        carrierGid:
          type: string
        effectiveDate:
          type: string
          format: date
        expiryDate:
          type: string
          format: date
        transportationMode:
          type: string
        rateOfferingGid:
          type: string
        currency:
          type: string
          maxLength: 3

    Error:
      type: object
      properties:
        errorCode:
          type: string
        errorMessage:
          type: string