---
title: "Update order delivery information"
method: PUT
path: "/v1/orders/{orderId}/delivery"
tags: ["orders_endpoints"]
---

# Update order delivery information

`PUT /v1/orders/{orderId}/delivery`

## Request

- Base URL: `https://partners.tryotter.com`
- URL: `https://partners.tryotter.com/v1/orders/{orderId}/delivery`
- Auth: OAuth 2
  - Authorization code: `/v1/auth/oauth2/authorize`
  - Client credentials
  - Token URL: `/v1/auth/token` scopes: `orders.update`
- TypeScript: <https://skmtc.dev/cloudkitchens/apis/otter-api/docs/v1/orders/:orderId/delivery/put.ts> (a function with typed inputs; its response is checked against the schema)

Updates the delivery information for the order identified by `orderId` — courier details, destination address, vehicle, last known location, and dropoff instructions. Use it to keep delivery state current as the courier progresses. The update is processed asynchronously and returns `202 Accepted`.
Rate limit: 8 requests per minute.

## Path parameters

- `orderId` string, required: The external order identifier supplied by your app in `externalIdentifiers.id` when the order was created.

## Headers

- `X-Store-Id` string, required: The unique identifier of the store in your app. This ID, along with the `Application ID`, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to `onboarding:905bb725-b141-4a9b-832a-1f254f772c94` (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided `internalStoreId` (a.k.a. Sku-Sku ID).

## Request body

- OrderDeliveryInfoUpdateRequest: The request to update an order delivery info status.
  - `deliveryInfo` RequiredDeliveryInfo, required: Information on order's delivery process.
    - `courier` Courier, nullable: Details about the delivery courier.
      - `name` string, nullable: The person's name as it should be displayed.
      - `phone` string, nullable: The person's phone number.
      - `phoneCode` string, nullable: A code or extension of the phone number.
      - `email` string, nullable: The person's email address.
      - `personalIdentifiers` PersonalIdentifiers, nullable: The person's personal identifiers (e.g. tax identification number).
        - `taxIdentificationNumber` string, nullable: Person tax identification number.
        - `serviceProviderId` string, nullable: External service provider ID i.e. Courier Id.
    - `destination` Address, nullable: Order delivery address.
      - `fullAddress` string, nullable: Full, human comprehensible address. It is usually formatted in the order appropriate for your locale.
      - `postalCode` string: Postal code of the address.
      - `city` string: The city/town portion of the address.
      - `state` string: Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, or a prefecture.
      - `countryCode` string: CLDR country code. See http://cldr.unicode.org/
      - `addressLines` string[], nullable: Address lines (e.g. street, PO Box, or company name) or the full single line address (e.g. street, city, state, country, zip).
      - `linesOfAddress` string[], nullable: Deprecated: use addressLines. Address lines (e.g. street, PO Box, or company name) or the full single line address (e.g. street, city, state, country, zip).
      - `location` Location, nullable: Latitude and longitude of the address.
        - `latitude` number, double, required: The latitude of the location.
        - `longitude` number, double, required: The longitude of the location.
    - `licensePlate` string, nullable: License plate of a vehicle used by the courier.
    - `makeModel` string, nullable: Make and model of a vehicle used by the courier.
    - `lastKnownLocation` Location, nullable: Latitude and longitude of the address.
      - `latitude` number, double, required: The latitude of the location.
      - `longitude` number, double, required: The longitude of the location.
    - `dropoffInstructions` DropoffInstructions, nullable: Requirements to verify the completion of the delivery.
      - `dropoffType` 'MEET_AT_DOOR' | 'LEAVE_AT_DOOR' | 'MEET_IN_LOBBY': The drop-off type for the delivery.
      - `verificationRequirements` VerificationRequirements, nullable: Verification requirements for the delivery.
        - `signatureRequirement` SignatureRequirement, nullable: Enables and configure the signature requirement.
          - `enabled` boolean: Marks the signature requirement as required.
          - `collectSignerName` boolean: Whether the signer's name should be collected.
          - `collectSignerRelationship` boolean: Whether the signer's relationship with the intended recipient should be collected.
        - `pictureRequirement` PictureRequirement, nullable: Enables and configure the picture requirement.
          - `enabled` boolean: Marks the picture requirement as required.
    - `note` string, nullable: Special delivery instructions, if any.

## Response `202`

The order delivery information was successfully accepted.

## Other responses

- `400`: The request is malformed.
- `401`: Invalid authorization.
- `403`: Authorization not valid for the requested resource.
- `404`: Resource not found.
- `422`: The request body is not valid.

---

[API](https://skmtc.dev/cloudkitchens/apis/otter-api.md) - [All operations](https://skmtc.dev/cloudkitchens/apis/otter-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloudkitchens/apis/otter-api/revisions/4c868194a467?raw)
