Locus Order Management API

Manage the delivery order lifecycle on the Locus OMS — create, retrieve, cancel, complete, open, park, reschedule, and verify inventory for client orders, plus look up delivery slots and configure service types. Base URL https://oms.locus-api.com/v1.

Locus Order Management API is one of 3 APIs that Locus publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Order Management, Orders, Delivery Slots, and Service Types. The published artifact set on APIs.io includes API documentation and an OpenAPI specification.

OpenAPI Specification

locus-oms-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: Locus Order API
  description: Manage your orders with the Locus OMS API
  version: 1.0.0
schemes:
- https
consumes:
- application/json
produces:
- application/json
securityDefinitions:
  locusauth:
    type: basic
    description: HTTP Basic Authentication
  apiKeyAuth:
    type: apiKey
    in: header
    name: Authorization
paths:
  /client/{clientId}/order:
    get:
      summary: Get an order
      operationId: getOrderBySourceId
      parameters:
      - name: sourceOrderId
        in: query
        description: Source Id of the order
        required: true
        type: string
      tags:
      - Order
      responses:
        '200':
          description: The latest order in terms of orderDate with the given sourceOrderId
          schema:
            $ref: '#/definitions/Order'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
  /client/{clientId}/order/{orderId}:
    get:
      summary: Get an order
      operationId: getOrder
      parameters:
      - name: include
        in: query
        description: Comma separated list of extra fields that should be included for the Order. Supported values are HOMEBASE
          & LOCATION
        required: false
        type: string
      tags:
      - Order
      responses:
        '200':
          description: Requested Order
          schema:
            $ref: '#/definitions/Order'
      security:
      - locusauth: []
    put:
      summary: Create an order
      operationId: createOrder
      parameters:
      - name: body
        in: body
        description: Order create request
        required: true
        schema:
          $ref: '#/definitions/CreateOrderRequest'
      - name: suffix
        in: query
        description: Append given suffix to all orderIds, if provided
        required: false
        type: string
      - $ref: '#/parameters/OverwriteParam'
      tags:
      - Order
      responses:
        '200':
          description: Created Order
          schema:
            $ref: '#/definitions/Order'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
    - $ref: '#/parameters/OrderIdParam'
  /client/{clientId}/order/{orderId}/park:
    put:
      description: Update status as parked for a single order
      operationId: parkOrder
      parameters:
      - name: request
        in: body
        description: park request
        required: false
        schema:
          $ref: '#/definitions/ParkOrderRequest'
      tags:
      - Order
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/GenericResponse'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
    - $ref: '#/parameters/OrderIdParam'
  /client/{clientId}/order/{orderId}/cancel:
    put:
      description: Update status as cancelled for a single order
      operationId: cancelOrder
      parameters:
      - name: request
        in: body
        description: cancel order request
        required: false
        schema:
          $ref: '#/definitions/CancelOrderRequest'
      tags:
      - Order
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/GenericResponse'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
    - $ref: '#/parameters/OrderIdParam'
  /client/{clientId}/order/{orderId}/open:
    put:
      description: Update status as open for a single order
      operationId: openOrder
      tags:
      - Order
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/GenericResponse'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
    - $ref: '#/parameters/OrderIdParam'
  /client/{clientId}/order/{orderId}/complete:
    put:
      description: Update the order status to COMPLETE
      operationId: completeOrder
      parameters:
      - name: request
        in: body
        description: Complete order request
        required: true
        schema:
          $ref: '#/definitions/CompleteOrderRequest'
      tags:
      - Order
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/GenericResponse'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
    - $ref: '#/parameters/OrderIdParam'
  /client/{clientId}/order/{orderId}/reschedule:
    post:
      description: Reschedule the order for given date
      operationId: rescheduleOrder
      parameters:
      - name: request
        in: body
        description: Order reschedule request
        required: true
        schema:
          $ref: '#/definitions/OrderRescheduleRequest'
      tags:
      - Order
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/GenericResponse'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
    - $ref: '#/parameters/OrderIdParam'
  /client/{clientId}/order/{orderId}/verify-inventory:
    put:
      summary: Inventory Verification
      operationId: verifyInventory
      parameters:
      - name: request
        in: body
        required: true
        schema:
          $ref: '#/definitions/InventoryVerificationRequest'
      tags:
      - Order
      responses:
        '200':
          description: Void response
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
    - $ref: '#/parameters/OrderIdParam'
  /client/{clientId}/get-slots:
    post:
      summary: Get available future slots for the given order
      operationId: getServiceableSlots
      parameters:
      - name: body
        in: body
        description: Order Details
        required: true
        schema:
          $ref: '#/definitions/GetServiceableSlotsRequest'
      tags:
      - OrderServiceability
      responses:
        '200':
          description: Information with all the available future slots
          schema:
            $ref: '#/definitions/GetSlotsResponse'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
  /client/{clientId}/service-type/{serviceTypeId}:
    get:
      summary: Get service type
      operationId: getServiceType
      tags:
      - ServiceType
      responses:
        '200':
          description: Service type object
          schema:
            $ref: '#/definitions/ServiceTypeConfiguration'
      security:
      - locusauth: []
    put:
      summary: Create service type
      operationId: createServiceType
      parameters:
      - name: serviceType
        in: body
        description: Create service type request
        required: true
        schema:
          $ref: '#/definitions/CreateServiceTypeRequest'
      - $ref: '#/parameters/OverwriteParam'
      tags:
      - ServiceType
      responses:
        '200':
          description: Created Service Type Object
          schema:
            $ref: '#/definitions/ServiceTypeConfiguration'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
    - $ref: '#/parameters/ServiceTypeIdParam'
  /client/{clientId}/service-type/{serviceTypeId}/disable:
    post:
      description: Disable a specific service type
      operationId: disableServiceType
      tags:
      - ServiceTypeConfiguration
      responses:
        '200':
          description: Updated service type object
          schema:
            $ref: '#/definitions/ServiceTypeConfiguration'
      security:
      - locusauth: []
    parameters:
    - $ref: '#/parameters/ClientIdParam'
    - $ref: '#/parameters/ServiceTypeIdParam'
parameters:
  ClientIdParam:
    name: clientId
    in: path
    description: Id of the client
    required: true
    type: string
  OrderIdParam:
    name: orderId
    in: path
    description: Id of the order
    required: true
    type: string
  DispatchWaveIdParam:
    name: dispatchWaveId
    in: path
    description: Id of the Dispatch Wave
    required: true
    type: string
  sourceOrderIdQueryParam:
    name: sourceOrderId
    in: query
    description: SourceorderId's of the order seperated by comma
    required: false
    type: string
  BatchIdParam:
    name: batchId
    in: path
    description: Id of the batch
    required: true
    type: string
  PlanIdParam:
    name: planId
    in: path
    description: Id of the plan
    required: true
    type: string
  TeamIdQueryParam:
    name: teamId
    in: query
    description: Takes teamId and fetches the entities belonging to the team.
    required: true
    type: string
  BusinessUnitIdParam:
    name: businessUnitId
    in: path
    description: Id of the business unit
    required: true
    type: string
  BagModelIdParam:
    name: bagModelId
    in: path
    description: Id of the bag model
    required: true
    type: string
  TeamIdParam:
    name: teamId
    in: path
    description: Id of the team
    required: true
    type: string
  HomebaseIdParam:
    name: homebaseId
    in: path
    description: Id of the homebase
    required: true
    type: string
  OverwriteParam:
    name: overwrite
    in: query
    description: Boolean flag if true, will overwrite the existing entity
    required: false
    type: boolean
  EntityTypeParam:
    name: entityType
    in: path
    description: IdType of the Entity Id. Ref to OmsEntityType definition.
    required: true
    type: string
  UseConsistentReadParam:
    name: useConsistentRead
    in: query
    description: If true, strongly consistent response is returned to the user.
    required: false
    default: false
    type: boolean
  IncludeExternalSettings:
    name: includeExternalSettings
    in: query
    description: If true, external settings will include in response.
    required: false
    default: true
    type: boolean
  ExportIdParam:
    name: exportId
    in: path
    description: Id of the entity that is being exported
    required: true
    default: null
    type: string
  NodeIdParam:
    name: nodeId
    in: path
    description: Id of the node in the shipment
    required: true
    type: string
  CustomerSlotIdParam:
    name: customerSlotId
    in: path
    description: Id of the customer slot
    required: true
    type: string
  SlotGroupIdParam:
    name: slotGroupId
    in: path
    description: Id of the slot group
    required: true
    type: string
  VersionIdParam:
    name: versionId
    in: path
    description: Id of the version
    required: true
    type: integer
    format: int32
  TransitChecklistIdParam:
    name: transitChecklistIdParam
    in: path
    description: Id of the transit checklist
    required: true
    type: string
  BagIdParam:
    name: bagId
    in: path
    description: Id of the bag model
    required: true
    type: string
  MapIdParam:
    name: mapId
    in: path
    description: Id of the Serviceability Map
    required: true
    type: string
  TransactionIdParam:
    name: transactionId
    in: path
    description: Id of the order transaction
    required: true
    type: string
  ServiceTypeIdParam:
    name: serviceTypeId
    in: path
    description: Id of the service type
    required: true
    type: string
definitions:
  BulkCreateOrderRequest:
    properties:
      requests:
        type: array
        items:
          $ref: '#/definitions/CreateOrderRequest'
  CreateOrderRequest:
    description: Create order request
    required:
    - clientId
    - id
    allOf:
    - $ref: '#/definitions/EntityDefinition'
    - type: object
      properties:
        type:
          $ref: '#/definitions/OrderType'
        sourceOrderId:
          description: Order identifier in the client system
          type: string
        awbNumbers:
          description: Air Waybill numbers of the order for tracking
          type: array
          items:
            type: string
        scanId:
          description: Scan id of the task
          type: string
        teamId:
          description: Team of carrier client to consider for this order assignment
          type: string
        lineItems:
          type: array
          items:
            $ref: '#/definitions/MinimalLineItem'
        skills:
          description: List of skills
          type: array
          items:
            type: string
        homebaseId:
          description: Master id for the homebase / warehouse
          type: string
        homebaseSlot:
          $ref: '#/definitions/TimeSlot'
        homebaseTransactionDuration:
          description: Duration required for transaction at the pickup location, in seconds
          type: integer
          format: int32
        visitName:
          description: Custom name given to drop location by the client
          type: string
        locationId:
          description: Master location id for the drop location
          type: string
        category:
          description: order category
          type: string
        locationAddress:
          $ref: '#/definitions/ExtendedStructuredAddress'
        latLng:
          $ref: '#/definitions/MinimalLatLng'
        contactPoint:
          $ref: '#/definitions/MinimalContactPoint'
        slotId:
          type: string
        slot:
          $ref: '#/definitions/TimeSlot'
        slots:
          description: List of available time slots for drop
          type: array
          items:
            $ref: '#/definitions/TimeSlot'
        transactionDuration:
          description: Duration required for transaction at the drop location, in seconds
          type: integer
          format: int32
        amountTransaction:
          $ref: '#/definitions/AmountTransaction'
        appFields:
          $ref: '#/definitions/AppFields'
        volume:
          $ref: '#/definitions/Volume'
        weight:
          $ref: '#/definitions/Weight'
        quantity:
          $ref: '#/definitions/Quantity'
        quantities:
          type: array
          items:
            $ref: '#/definitions/Quantity'
        priority:
          description: Priority of the order
          type: integer
          format: int32
        date:
          type: string
          description: Date as String in format "YYYY-MM-DD"
        orderedOn:
          description: Time of order creation on the client system
          type: string
          format: date-time
        orderDate:
          type: string
          description: Date as String in format "YYYY-MM-DD"
        customerPromisedDate:
          description: Customer promised delivery date as String in format "YYYY-MM-DD"
          type: string
        customerPromisedDateTime:
          description: Customer promised delivery date and time in ISO-8601 format
          type: string
          format: date-time
        riderId:
          type: string
        transporterId:
          type: string
        bagDetails:
          $ref: '#/definitions/BagDetails'
        shipmentMetadata:
          $ref: '#/definitions/ShipmentLegMetadata'
        cratingInfo:
          $ref: '#/definitions/CratingInfo'
        preferredTransporterTypes:
          type: array
          items:
            $ref: '#/definitions/TransporterType'
        transporterType:
          $ref: '#/definitions/TransporterType'
        dlcRequestId:
          type: string
        sequence:
          type: integer
          format: int32
          default: 1
        lineItemDetails:
          $ref: '#/definitions/CreateLineItemDetails'
        isSealed:
          type: boolean
          default: false
        promiseInformation:
          $ref: '#/definitions/CreatePromiseInformationRequest'
  MinimalSearchOrder:
    description: Bulk get minimal order object
    allOf:
    - $ref: '#/definitions/EntityDefinition'
    - type: object
      properties:
        locationAddress:
          $ref: '#/definitions/StructuredAddress'
        latLng:
          $ref: '#/definitions/MinimalLatLng'
        effectiveVolume:
          $ref: '#/definitions/Volume'
        effectiveWeight:
          $ref: '#/definitions/Weight'
        lineItems:
          type: array
          items:
            $ref: '#/definitions/MinimalLineItem'
        slot:
          $ref: '#/definitions/TimeSlot'
        transactionDuration:
          description: Duration required for transaction at the drop location, in seconds
          type: integer
          format: int32
        contactPoint:
          $ref: '#/definitions/MinimalContactPoint'
        obfuscated:
          type: boolean
          default: false
        type:
          $ref: '#/definitions/OrderType'
        sourceOrderId:
          description: Order identifier in the client system
          type: string
        skills:
          description: List of skills
          type: array
          items:
            type: string
        slotId:
          type: string
        orderStatus:
          $ref: '#/definitions/OrderStatus'
        orderSubStatus:
          $ref: '#/definitions/OrderSubStatus'
  Order:
    description: Order model
    allOf:
    - $ref: '#/definitions/CreateOrderRequest'
    - type: object
      properties:
        homebase:
          type: object
        location:
          type: object
        parentOrderId:
          description: Id to identify parent of orders that have split
          type: string
        orderStatus:
          $ref: '#/definitions/OrderStatus'
        orderSubStatus:
          $ref: '#/definitions/OrderSubStatus'
        channel:
          $ref: '#/definitions/FulfillmentChannel'
        mode:
          $ref: '#/definitions/FulfillmentMode'
        masterLineItems:
          type: array
          items:
            $ref: '#/definitions/MinimalMasterLineItem'
        orderMetadata:
          $ref: '#/definitions/OrderMetadata'
        automationMetadata:
          $ref: '#/definitions/AutomationMetadata'
        lastCallbackTimestamp:
          description: Timestamp of last callback from downstream
          type: string
          format: date-time
        combinedSkills:
          type: array
          items:
            type: string
        history:
          type: array
          items:
            $ref: '#/definitions/DeliveryAttempt'
        timeline:
          type: array
          items:
            $ref: '#/definitions/TimelineEntry'
        transactionDurationInfo:
          $ref: '#/definitions/TransactionDurationInfo'
        obfuscated:
          type: boolean
          default: false
        classVersion:
          type: integer
          format: int32
          default: 1
        geocodingMetadata:
          $ref: '#/definitions/GeocodingMetadata'
        autosortDetails:
          $ref: '#/definitions/AutoSortDetails'
        effectiveVolume:
          $ref: '#/definitions/Volume'
        effectiveWeight:
          $ref: '#/definitions/Weight'
        channelSelected:
          type: boolean
          default: false
        amountInformation:
          $ref: '#/definitions/OrderAmountInformation'
        lineItemDetails:
          $ref: '#/definitions/LineItemDetails'
        promiseInformation:
          $ref: '#/definitions/PromiseInformation'
        boxDetailSummary:
          $ref: '#/definitions/BoxDetailSummary'
  BoxDetailSummary:
    properties:
      totalCases:
        type: integer
        format: int32
      totalPieces:
        type: integer
        format: int32
      quantityUnit:
        type: string
      boxUnit:
        type: string
  AutoSortDetails:
    description: details containing the route
    properties:
      route:
        description: Route for given order
        $ref: '#/definitions/MinimalAutosortRoute'
      versionedMapIds:
        type: array
        items:
          $ref: '#/definitions/VersionedMapId'
      autosortId:
        description: Id of the auto sort request
        type: string
  OrchestrationShipmentMetadata:
    properties:
      carrierId:
        type: string
      serviceType:
        type: string
      orchestrationStatus:
        $ref: '#/definitions/OrchestrationStatus'
      shipmentRateDetail:
        $ref: '#/definitions/ShipmentRateDetail'
      waybills:
        type: array
        items:
          $ref: '#/definitions/OrchestrationWaybillMetadata'
  OrchestrationStatus:
    type: object
  ShipmentRateDetail:
    type: object
  CreateTourResponse:
    type: object
  GetScanToAddResponse:
    type: object
  OrchestrationWaybillMetadata:
    properties:
      lineItemId:
        type: string
      waybillId:
        type: string
      waybillNumber:
        type: string
  DeliveryAttempt:
    description: Delivery attempt history
    properties:
      statusUpdates:
        type: array
        items:
          $ref: '#/definitions/OrderStatusUpdate'
  TransactionDurationInfo:
    properties:
      zone:
        description: Transaction duration based on the zone of the order
        type: integer
        format: int32
      skill:
        description: Transaction duration based on the skills of the order
        type: integer
        format: int32
      location:
        description: Transaction duration based on the location of the order
        type: integer
        format: int32
      lineitem:
        description: Transaction duration based on the lineitems of the order
        type: integer
        format: int32
      lineitemMultiplier:
        type: number
        format: double
        default: 1
  TimelineEntry:
    required:
    - type
    - updatedOn
    - updatedBy
    properties:
      type:
        description: Timeline entry type
        type: string
        default: STATUS_UPDATE
        enum:
        - STATUS_UPDATE
        - VERIFIED
        - RESCHEDULE
        - NOTES_UPDATE
        - TEAM_UPDATE
        - DELIVERY_WINDOW_UPDATE
        - PAYMENT_UPDATE
        - EXECUTED_AMOUNT_UPDATE
        - CURRENT_AMOUNT_UPDATE
      channel:
        $ref: '#/definitions/FulfillmentChannel'
      orderStatus:
        $ref: '#/definitions/OrderStatus'
      orderSubStatus:
        $ref: '#/definitions/OrderSubStatus'
      updatedBy:
        type: string
      updatedOn:
        type: string
        format: date-time
      eventTimestamp:
        type: string
        format: date-time
      reasonCode:
        $ref: '#/definitions/ReasonCode'
      reasonDescription:
        type: string
      source:
        description: Origin of the request (Dashboard, Application)
        type: string
      invalidEntry:
        description: flag to denote out of order, async and other invalid entry
        type: boolean
        default: false
      attributes:
        type: object
        additionalProperties:
          type: object
  OrderStatusUpdate:
    description: Merge patch request wrapper
    properties:
      channel:
        $ref: '#/definitions/FulfillmentChannel'
      orderStatus:
        $ref: '#/definitions/OrderStatus'
      orderSubStatus:
        $ref: '#/definitions/OrderSubStatus'
      orderMetadata:
        $ref: '#/definitions/OrderMetadata'
      updatedBy:
        type: string
      updatedOn:
        type: string
        format: date-time
  OrderMetadata:
    description: Order planning and execution metadata
    properties:
      batchId:
        type: string
      planId:
        type: string
      dispatchWaveId:
        type: string
      dispatchWaveName:
        type: string
      dispatchWaveBatchId:
        type: string
      planIteration:
        type: integer
      homebaseId:
        type: string
      latLng:
        $ref: '#/definitions/MinimalLatLng'
      trackingInfo:
        $ref: '#/definitions/TrackingInfo'
      customerSlotStart:
        type: string
      customerSlotEnd:
        type: string
      taskDate:
        type: string
      checklist:
        $ref: '#/definitions/Checklist'
      checklistItems:
        $ref: '#/definitions/ChecklistItems'
      paymentChecklistItems:
        $ref: '#/definitions/PaymentChecklistItems'
      checklistMetadata:
        $ref: '#/definitions/ChecklistMetadata'
      tourDetail:
        $ref: '#/definitions/TourDetail'
      rejectedTours:
        type: array
        items:
          $ref: '#/definitions/RejectedTourDetail'
      homebaseEta:
        type: string
        format: date-time
      homebaseEtd:
        type: string
        format: date-time
      homebaseCompleteOtp:
        type: string
      customerArrivedOtp:
        type: string
      customerCompleteOtp:
        type: string
      cancellationOtp:
        type: string
      customerReturnOtp:
        type: string
      initialEta:
        type: string
        format: date-time
      initialEtd:
        type: string
        format: date-time
      currentEta:
        type: string
        format: date-time
      slaStatus:
        $ref: '#/definitions/SlaStatusEnum'
      slaDelayedBy:
        description: SLA delta in minutes
        type: integer
        format: int32
      slaEarlyBy:
        description: SLA early delta in minutes
        type: integer
        format: int32
      homebaseCompletedOn:
        type: string
      isInventoryVerified:
        type: boolean
        default: true
      lineItems:
        type: array
        items:
          $ref: '#/definitions/LineItemTransactionStatus'
      payments:
        $ref: '#/definitions/Payments'
      orderVisitDetails:
        $ref: '#/definitions/OrderVisitDetails'
      actor:
        $ref: '#/definitions/Actor'
      triggerTime:
        type: string
        format: date-time
      homebaseProofOfCompletion:
        $ref: '#/definitions/Checklist'
      homebaseProofOfCancellation:
        $ref: '#/definitions/Checklist'
      customerProofOfCompletion:
        $ref: '#/definitions/Checklist'
      customerProofOfCancellation:
        $ref: '#/definitions/Checklist'
      proofOfSkipPaymentCollection:
        $ref: '#/definitions/Checklist'
      fullPaymentChecklist:
        $ref: '#/definitions/Checklist'
      partialPaymentChecklist:
        $ref: '#/definitions/Checklist'
      skipPaymentChecklist:
        $ref: '#/definitions/Checklist'
      homebaseProofOfCompletionVerification:
        $ref: '#/definitions/PodChecklistVerificationResult'
      homebaseProofOfCancellationVerification:
        $ref: '#/definitions/PodChecklistVerificationResult'
      customerProofOfCompletionVerification:
        $ref: '#/definitions/PodChecklistVerificationResult'
      customerProofOfCancellationVerification:
        $ref: '#/definitions/PodChecklistVerificationResult'
      completedAt:
        type: string
        format: date-time
      completedBy:
        type: string
      cancelledAt:
        type: string
        format: date-time
      cancelledBy:
        type: string
      cancelledByUserType:
        type: string
      reasonCode:
        $ref: '#/definitions/ReasonCode'
      reasonDescription:
        type: string
      drift:
        type: number
        format: double
      timezone:
        type: string
      orchestrationMetadata:
        $ref: '#/definitions/OrchestrationMetadata'
      homebaseToCustomerDistance:
        description: Homebase to customer distance.
        $ref: '#/definitions/Distance'
      costMetadata:
        $ref: '#/definitions/OrderCostMetadata'
      initialReceivedAt:
        type: string
        format: date-time
      receivedAt:
        type: string
        format: date-time
      initialOpenedAt:
        type: string
        format: date-time
      openedAt:
        type: string
        format: date-time
      planningAt:
        type: string
        format: date-time
      plannedAt:
        type: string
        format: date-time
      assignedAt:
        type: string
        format: date-time
      pendingAcceptanceAt:
        type: string
        format: date-time
      acceptedAt:
        type: string
        format: date-time
      pickupEnrouteAt:
        type: string
        format: date-time
      pickupOngoingAt:
        type: string
        format: date-time
      pickupReachedAt:
        type: string
        format: date-time
      pickupDoneAt:
        type: string
        format: date-time
      inTransitAt:
        type: string
        format: date-time
      dropEnrouteAt:
        type: string
        format: date-time
      dropReachedAt:
        type: string
        format: date-time
      dropOngoingAt:
        type: string
        format: date-time
      inboundCompletedAt:
        type: string
        format: date-time
      inboundPendingAt:
        type: string
        format: date-time
      attemptFailedAt:
        type: string
        format: date-time
      partiallyCompletedAt:
        type: string
        format: date-time
      initiallyParkedAt:
        type: string
        format: date-time
      parkedAt:
        type: string
        format: date-time
      openBy:
        type: string
      parkBy:
        type: string
      verifiedBy:
        type: string
      age:
        description: Field denoting age of order before reaching terminal status
        type: integer
        format: int64
      latestTransactionId:
        type: integer
        format: int32
      currentTransactionId:
        type: integer
        format: int32
      transactionChecklist:
        $ref: '#/definitions/TransactionChecklistItems'
  PodChecklistVerificationResult:
    properties:
      podVerificationStatus:
        description: Status of the POD verification result
        $ref: '#/definitions/PodVerificationStatusEnum'
      podVerificationResult:
        description: A map of POD verification results with checklist item id and result
        type: object
        additionalProperties:
          $ref: '#/definitions/PodVerificationResult'
  PodVerificationResult:
    $ref: https://swagger.locus-api.com/task.yaml#/definitions/PodVerificationResult
  PodVerificationStatusEnum:
    $ref: https://swagger.locus-api.com/task.yaml#/definitions/PodVerificationStatusEnum
  TransactionChecklistItems:
    properties:
      outboundChecklist:
        type: array
        items:
          $ref: '#/definitions/ChecklistItem'
      inboundChecklist:
        type: array
        items:
          $ref: '#/definitions/ChecklistItem'
      assetInboundChecklist:
        type: array
        items:
          $ref: '#/definitions/ChecklistItem'
      cashInboundChecklist:
        type: array
        items:
          $ref: '#/definitions/ChecklistItem'
  OrderCostMetadata:
    properties:
      dispatchedFreightCost:
        $ref: '#/definitions/OrderFreightCostMetadata'
      contractCostMetadata:
        $ref: '#/definitions/ContractCostMetadata'
  OrderFreightCostMetadata:
    properties:
      freightCost:
        $ref: '#/definitions/FreightCost'
  ContractCostMetadata:
    properties:
      contractId:
        $ref: '#/definitions/ContractId'
      status:
        $ref: '#/definitions/OrderCostEnum'
      totalCost:
        description: Total cost for the given request
        type: number
        format: double
      costBreakup:
        type: array
        items:
          $ref: '#/definitions/BaseCostBreakup'
  OrderCostEnum:
    description: Status based on contract calculation. Possible values DISABLED, CONTRACT_MISSING, CALCULATION_FAILURE, AVAILABLE
    type: string
    enum:
    - DISABLED
    - CONTRACT_MISSING
    - CALCULATION_FAILURE
    - AVAILABLE
  BaseCostBreakup:
    type: object
  OrchestrationMetadata:
    properties:
      orchestrationId:
        type: string
      shipmentMetadata:
        $ref: '#/definitions/OrchestrationShipmentMetadata'
      customerGeocodedLocation:
        $ref: '#/definitions/OrderGeocodedLocation'
      homebaseGeocodedLocation:
        $ref: '#/definitions/OrderGeocodedLocation'
      shippingLabelInfo:
        $ref: '#/definitions/ShippingLabelInfo'
  OrderGeocodedLocation:
    properties:
      city:
        type: string
      state:
        type: string
  ChecklistMetadata:
    description: Order checklist metadata
    properties:
      updateCount:
        type: integer
        format: int32
        default: 0
      updateAllowedStatus:
        type: string
        enum:
        - ALLOWED
        - NOT_ALLOWED
        default: ALLOWED
  AutomationMetadata:
    description: Order automation metadata
    properties:
      reattemptCount:
        type: integer
        format: int32
        default: 0
      rescheduleCount:
        type: integer
        format: int32
        default: 0
      reasonCode:
        $ref: '#/definitions/ReasonCode'
      reasonDescription:
        type: string
      attemptCount:
        type: integer
        format: int

# --- truncated at 32 KB (202 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/locus-sh/refs/heads/main/openapi/locus-oms-openapi.yml