---
title: "Sync one"
method: POST
path: "/shipping_integrations/ecourier/orders/sync_one/v1"
tags: ["/shipping_integrations"]
---

# Sync one

`POST /shipping_integrations/ecourier/orders/sync_one/v1`

Fetches and mirrors one e-Courier order by the provider's own order number, updating the unified order list alongside it. | authz: min_org_role=operator | (EcourierOrderSyncOneReq) -> (EcourierOrder1)

## Request body

- EcourierOrderSyncOneReq
  - `provider_org_id` string, required — Must be a string starting with `org_`
  - `integration_order_id` string, required

## Response `200`

Successful Response

- EcourierOrder1
  - `schema_version` 1, required
  - `_id` string, required
  - `org_id` string, required — Must be a string starting with `org_`
  - `shipping_integration` 'ecourier', required
  - `provider_org_id` string, required — Must be a string starting with `org_`
  - `integration_order_id` string, required
  - `provider_payload` EcourierOrderResponse1, required — One e-Courier order, including caller contact details and POD signoff. `@UserGUID` and `OrderEvents` are the only attributes deliberately absent, and never to be added. See the module docstring.
    - `@OrderNumber` string, nullable
    - `@OrderID` string, nullable
    - `@OrderGUID` string, nullable
    - `@CustomerID` string, nullable
    - `@OrderAlias` string, nullable
    - `@Auth` string, nullable
    - `@OrderStatus` string, nullable
    - `@OperationalStatus` string, nullable
    - `@InvoiceStatus` string, nullable
    - `@OrderDate` string, nullable
    - `@CreateDate` string, nullable
    - `@DueDateTime` string, nullable
    - `@DispatchDateTime` string, nullable
    - `@PickedUpDateTime` string, nullable
    - `@DeliveredDateTime` string, nullable
    - `@PodDateTime` string, nullable
    - `@LastChanged` string, nullable
    - `@Service` string, nullable
    - `@ServiceDesc` string, nullable
    - `@Pieces` string, nullable
    - `@Weight` string, nullable
    - `@TotalMiles` string, nullable
    - `@SiteCode` string, nullable
    - `@AmountCharged` string, nullable
    - `@Caller` string, nullable
    - `@CallerEmail` string, nullable
    - `@CallerPhone` string, nullable
    - `@CreateUserName` string, nullable
    - `@PodName` string, nullable
    - `Customer` EcourierOrderCustomerResponse1 — The customer an order belongs to. This is what the customer check reads. `FindOrder`'s `CustomerCode` filter is undocumented, so the sync asserts `customer_code` here on every hydrated order before persisting it, keeping the mirror to our customer's orders rather than trusting the query.
      - `@CustomerID` string, nullable
      - `@CustomerCode` string, nullable
      - `@Name` string, nullable
    - `Stops` EcourierOrderStopResponse1[]
      - `@StopID` string, nullable
      - `@StopType` string, nullable
      - `@Sequence` string, nullable
      - `@Name` string, nullable
      - `@Address` string, nullable
      - `@City` string, nullable
      - `@State` string, nullable
      - `@Zip` string, nullable
      - `@Country` string, nullable
      - `@Latitude` string, nullable
      - `@Longitude` string, nullable
      - `@ScheduledDateTime` string, nullable
      - `@ScheduledDateTimeTZ` string, nullable
      - `@Pieces` string, nullable
      - `@Weight` 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

---

[API](https://skmtc.dev/chrt/apis/chrt-fastapi.md) · [All operations](https://skmtc.dev/chrt/apis/chrt-fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/chrt/chrt-fastapi/revisions/ea04e157edb3/schema)
