---
title: "Detail"
method: GET
path: "/shipping_integrations/courie/orders/detail/v1/{id}"
tags: ["/shipping_integrations"]
---

# Detail

`GET /shipping_integrations/courie/orders/detail/v1/{id}`

Returns one mirrored Courie order by its Mongo ObjectId. | () -> (CourieOrder1)

## Path parameters

- `id` string, required — Mongo ObjectId of the mirror document. Courie's own order ID is the integration_order_id, accepted by the by_integration_order_id route.

## Response `200`

Successful Response

- CourieOrder1
  - `schema_version` 1, required
  - `_id` string, required
  - `org_id` string, required — Must be a string starting with `org_`
  - `shipping_integration` 'courie', required
  - `provider_org_id` string, required — Must be a string starting with `org_`
  - `integration_order_id` string, required
  - `provider_payload` CourieOrderResponse1, required — One Courie order, as returned by both the list and detail endpoints. The list endpoint returns this same complete shape, so the mirror never needs a per-order detail call.
    - `id` string, required
    - `remoteId` string, nullable
    - `status` 'CREATED' | 'ASSIGNED' | 'IN_TRANSIT' | 'COMPLETED' | 'ATTEMPTED' | 'ON_HOLD' | 'DELETED' | 'FAILED', required — Courie's own order status. The spec documents these only as a bare enum list with no per-value meaning. `IN_TRANSIT`, `ON_HOLD` and `DELETED` have not been observed live. `unified.py` derives progress from the pickup milestone rather than this field.
    - `statusDescription` string, nullable
    - `customerId` string, required
    - `customerCompanyName` string, nullable
    - `trackingNumber` string, nullable
    - `trackingUrl` string, nullable
    - `referenceNumber` string, nullable
    - `displayId` integer, nullable
    - `pickedUpAt` string, date-time, nullable
    - `deliveredAt` string, date-time, nullable
    - `activities` CourieOrderEventResponse1[]
      - `event` 'CREATED' | 'PICKED_UP' | 'DROPPED_OFF' | 'RETURNED_TO_PICK_UP' | 'ATTEMPTED' | 'COMPLETED', required — Activity event types. NOTE: there is no assignment event, so an order moving to `ASSIGNED` leaves no trace here and status cannot be reconstructed from this log.
      - `timestamp` string, date-time, required
      - `address` string, nullable
    - `proofOfPickUps` CourieProofOfDeliveryResponse1[]
      - `type` string, nullable
      - `url` string, nullable
      - `signedBy` string, nullable
      - `timestamp` string, nullable
    - `proofOfDeliveries` CourieProofOfDeliveryResponse1[]
      - `type` string, nullable
      - `url` string, nullable
      - `signedBy` string, nullable
      - `timestamp` string, nullable
    - `shipmentDate` string, nullable
    - `shipmentType` string, nullable
    - `serviceTypeName` string, nullable
    - `vehicleTypeName` string, nullable
    - `packageSize` string, nullable
    - `numPackages` integer, nullable
    - `packageWeightInPounds` number, nullable
    - `packageTypeName` string, nullable
    - `packageDescription` string, nullable
    - `stops` CourieStopResponse1[]
      - `type` 'PICK_UP' | 'DROP_OFF', required
      - `address` CourieAddressResponse1
        - `streetAddress` string, nullable
        - `suite` string, nullable
        - `city` string, nullable
        - `state` string, nullable
        - `postalCode` string, nullable
        - `country` string, nullable
        - `display` string, nullable
        - `lngLat` CourieLatLngResponse1
          - `latitude` number, nullable
          - `longitude` number, nullable
          - `valid` boolean, nullable
      - `contactName` string, nullable
      - `companyName` string, nullable
      - `phone` string, nullable
      - `suite` string, nullable
      - `instruction` string, nullable
      - `completedAt` integer, nullable
      - `attemptedAt` integer, nullable
      - `ready` integer, nullable
      - `due` integer, nullable
      - `stopSequenceNumber` integer, nullable
      - `orderId` string, nullable
      - `driverStopSequenceNumber` integer, nullable
      - `driver` CourieDriverResponse1
        - `firstName` string, nullable
        - `lastName` string, nullable
      - `locationScans` CourieLocationScanResponse1[]
        - `code` string, nullable
        - `scannedAt` integer, nullable
      - `attempts` CourieStopAttemptResponse1[]
        - `date` string, nullable
        - `reason` CourieAttemptReasonResponse1
          - `name` string, nullable
          - `code` string, nullable
      - `driverAnswers` CourieDriverAnswerResponse1[]
        - `question` string, nullable
        - `type` string, nullable
        - `answer` string, nullable
        - `photoUrl` string, nullable
    - `packages` CouriePackageResponse1[]
      - `reference` string, nullable
      - `status` string, nullable
    - `packageItems` CouriePackageItemResponse1[]
      - `weight` number, nullable
      - `length` number, nullable
      - `width` number, nullable
      - `height` number, nullable
      - `quantity` integer, nullable
    - `customFields` CourieCustomFieldResponse1[]
      - `name` string, nullable
      - `type` string, nullable
      - `value` string, nullable
  - `provider_payload_hash` string, required
  - `created_at_timestamp` string, date-time, required
  - `updated_at_timestamp` string, date-time, required
  - `mirrored_at_timestamp` string, date-time, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-21** `9a30893d8db1` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/chrt/apis/chrt-fastapi/changes/shipping_integrations/courie/orders/detail/v1/:id/get.md)

---

[API](https://skmtc.dev/chrt/apis/chrt-fastapi.md) · [All operations](https://skmtc.dev/chrt/apis/chrt-fastapi/llms.txt) · [OpenAPI document](https://skmtc.dev/chrt/apis/chrt-fastapi/revisions/1a1e5a995fc9?raw)
