---
title: "Update Job by JobID/ExternalIdentifier"
method: PATCH
path: "/v1/jobs/{id}"
tags: ["Job"]
---

# Update Job by JobID/ExternalIdentifier

`PATCH /v1/jobs/{id}`

Update an existing job's details such as pickup/dropoff times, addresses, or metadata. The id can be a Nash job ID or your external identifier.

## Path parameters

- `id` string, nullable, required — Job ID or External Identifier
- `jobConfigurationId` string, nullable, required — Job Configuration ID (for updating a package in a batch job)

## Request body

- UpdateJobInputSerializer — Expected input for update job endpoint.
  - `pickupAddress` string, nullable — Pickup address
  - `pickupAddressComponents` ParsedAddressInputSerializer — Parsed address input serializer for creating a job.
    - `number` string, nullable — The number of the address.
    - `secondaryNumber` string, nullable — The secondary number of the address.
    - `street` string, required — The street of the address. If your geocoding service does not split numbers from street names, you can pass the street name with the number in this field. Example: 1600 Pennsylvania Avenue NW.
    - `county` string, nullable — The county of the address.
    - `city` string, required — The city of the address.
    - `state` string, nullable — The state of the address.
    - `postalCode` string, nullable — The postal code of the address.
    - `country` string, required — The country of the address.
    - `latitude` number, nullable — The latitude of the address.
    - `longitude` number, nullable — The longitude of the address.
  - `pickupPhoneNumber` string, nullable — Pickup phone number
  - `pickupBusinessName` string, nullable — Pickup business name
  - `pickupFirstName` string, nullable — Pickup first name
  - `pickupLastName` string, nullable — Pickup last name
  - `pickupEmail` string, nullable — Pickup email
  - `pickupInstructions` string, nullable — Pickup instructions
  - `pickupStoreLocationId` string, nullable — Pickup store location ID
  - `pickupBarcodes` string[], nullable
  - `dropoffAddress` string, nullable — Dropoff address
  - `dropoffAddressComponents` ParsedAddressInputSerializer — Parsed address input serializer for creating a job.
    - `number` string, nullable — The number of the address.
    - `secondaryNumber` string, nullable — The secondary number of the address.
    - `street` string, required — The street of the address. If your geocoding service does not split numbers from street names, you can pass the street name with the number in this field. Example: 1600 Pennsylvania Avenue NW.
    - `county` string, nullable — The county of the address.
    - `city` string, required — The city of the address.
    - `state` string, nullable — The state of the address.
    - `postalCode` string, nullable — The postal code of the address.
    - `country` string, required — The country of the address.
    - `latitude` number, nullable — The latitude of the address.
    - `longitude` number, nullable — The longitude of the address.
  - `dropoffPhoneNumber` string, nullable — Dropoff phone number
  - `dropoffBusinessName` string, nullable — Dropoff business name
  - `dropoffFirstName` string, nullable — Dropoff first name
  - `dropoffLastName` string, nullable — Dropoff last name
  - `dropoffEmail` string, nullable — Dropoff email
  - `dropoffStoreLocationId` string, nullable — Dropoff store location ID
  - `dropoffInstructions` string, nullable — Dropoff instructions
  - `dropoffBarcodes` string[], nullable
  - `packageDeliveryMode` string, nullable — Package delivery mode
  - `packagePickupStartTime` string, nullable — Package pickup start time
  - `packagePickupEndTime` string, nullable — Package pickup end time
  - `packageDropoffStartTime` string, nullable — Package dropoff start time
  - `packageDropoffEndTime` string, nullable — Package dropoff end time
  - `packageDescription` string, nullable — Package description
  - `packageRequirements` union[], nullable — Package requirements.
    - union
      - 'photo_proof_of_delivery' | 'signature_proof_of_delivery' | 'photo_proof_of_pickup' | 'photo_reference_on_dropoff' | 'photo_reference_capture_on_dropoff' | 'signature_proof_of_pickup' | 'photo_pre_delivery_verification' | 'age_verification_on_delivery' | 'id_verification_on_delivery' | 'barcode_scan_on_pickup' | 'barcode_scan_on_dropoff' | 'barcode_scan_on_return' | 'meet_on_delivery' | 'shipping_label' | 'two_person_team' | 'pincode_verification' | 'schedule_ii_controlled_substances' | 'alcohol' | 'tobacco' | 'vapes' | 'parking_check_in' | 'display_barcode_on_pickup' | 'pick_and_pack' — Detailed description: https://docs.usenash.com/reference/package-requirements.
      - string
  - `packageMinimumVehicleSize` 'any' | 'bike' | 'motorbike' | 'cargobike' | 'sedan' | 'car' | 'suv' | 'pickup_truck' | 'pickup' | 'van' | 'large_van' | 'extra_large_van' | 'truck', nullable — Minimum vehicle size required for the package. Allowed values: ['any', 'bike', 'motorbike', 'cargobike', 'sedan', 'car', 'suv', 'pickup_truck', 'pickup', 'van', 'large_van', 'extra_large_van', 'truck']
  - `packageValue` number, nullable — Package value
  - `packageTax` number, nullable — Package tax
  - `tipAmount` number, nullable — Tip amount
  - `currency` string, nullable — Currency
  - `packageItems` object[], nullable — List of items in the package
  - `referenceId` string, nullable — Reference ID
  - `itemsCount` integer, nullable — Items count
  - `weight` union — Package weight
    - integer
    - number
  - `externalIdentifier` string, nullable — External identifier for the job
  - `jobMetadata` object, nullable — Job metadata
  - `packageMetadata` object, nullable — Package metadata

## Response `200`

OK

- ReturnedJobMixin — A Nash Job.
  - `id` string, required — Job ID
  - `createdAt` string, required — Created at
  - `portalUrl` string, required — Portal URL
  - `externalIdentifier` string, nullable — External identifier
  - `jobMetadata` object, nullable — Job metadata
  - `isActive` boolean, required — Is the job active
  - `isBatch` boolean, required — Is the job a batch
  - `jobConfigurations` JobConfigurationsSerializer[], required — Job configurations
    - `id` string, required — Job Configuration ID
    - `package` PackageSerializer, required — Generic serializer for packages used in many endpoints; Used for output.
      - `id` string, required — Package ID
      - `description` string, nullable — Description
      - `requirements` string[], required — Requirements
      - `tags` string[], nullable — Tags
      - `packageDeliveryMode` string, nullable — Package delivery mode
      - `pickupStartTime` string, nullable — Pickup start time
      - `pickupEndTime` string, nullable — Pickup end time
      - `pickupBarcodes` string[], nullable
      - `dropoffStartTime` string, nullable — Dropoff start time
      - `dropoffEndTime` string, nullable — Dropoff end time
      - `dropoffBarcodes` string[], nullable
      - `valueCents` integer, required
      - `taxCents` integer, nullable — Tax in cents
      - `serviceFeeCents` integer, nullable — Service fee in cents
      - `itemsCount` union, required — Items count
        - integer
        - number
      - `externalIdentifier` string, nullable — External identifier
      - `minimumVehicleSize` 'any' | 'bike' | 'motorbike' | 'cargobike' | 'sedan' | 'car' | 'suv' | 'pickup_truck' | 'pickup' | 'van' | 'large_van' | 'extra_large_van' | 'truck', nullable — Minimum vehicle size required for the package. Allowed values: ['any', 'bike', 'motorbike', 'cargobike', 'sedan', 'car', 'suv', 'pickup_truck', 'pickup', 'van', 'large_van', 'extra_large_van', 'truck']
      - `pickupLocation` LocationSerializer, required — Generic serializer for location used in many endpoints.
        - `id` string, required — Location ID
        - `address` string, required — Address
        - `formattedAddress` string, required — Formatted address
        - `addressNumber` string, nullable — Address number
        - `addressFormattedStreet` string, nullable — Address formatted street
        - `addressCity` string, required — Address city
        - `addressCounty` string, nullable — Address county
        - `addressState` string, nullable — Address state
        - `addressZip` string, nullable — Address zip
        - `addressCountry` string, required — Address country
        - `timezoneId` string, required — Timezone ID
        - `timezoneName` string, required — Timezone name
        - `instructions` string, nullable — Instructions
        - `businessName` string, nullable — Business name
        - `firstName` string, nullable — First name
        - `lastName` string, nullable — Last name
        - `phoneNumber` string, nullable — Phone number
        - `email` string, nullable — Email
        - `lat` number, nullable — Latitude
        - `lng` number, nullable — Longitude
      - `pickupStoreLocationId` string, nullable — Pickup store location ID
      - `pickupStoreLocationExternalId` string, nullable — Pickup store location external ID
      - `dropoffLocation` LocationSerializer, required — Generic serializer for location used in many endpoints.
        - `id` string, required — Location ID
        - `address` string, required — Address
        - `formattedAddress` string, required — Formatted address
        - `addressNumber` string, nullable — Address number
        - `addressFormattedStreet` string, nullable — Address formatted street
        - `addressCity` string, required — Address city
        - `addressCounty` string, nullable — Address county
        - `addressState` string, nullable — Address state
        - `addressZip` string, nullable — Address zip
        - `addressCountry` string, required — Address country
        - `timezoneId` string, required — Timezone ID
        - `timezoneName` string, required — Timezone name
        - `instructions` string, nullable — Instructions
        - `businessName` string, nullable — Business name
        - `firstName` string, nullable — First name
        - `lastName` string, nullable — Last name
        - `phoneNumber` string, nullable — Phone number
        - `email` string, nullable — Email
        - `lat` number, nullable — Latitude
        - `lng` number, nullable — Longitude
      - `dropoffStoreLocationId` string, nullable — Dropoff store location ID
      - `drivingMetrics` object, nullable — Driving metrics (distance in meters, duration in seconds)
      - `value` number, nullable — Value
      - `tax` union — Tax
        - integer
        - number
      - `serviceFee` union — Service fee
        - integer
        - number
      - `tipAmountCents` integer, nullable
      - `weight` union — Weight
        - integer
        - number
      - `dimensions` object, nullable — Dimensions
      - `items` ItemOutput[], nullable — Items
        - `id` string, nullable — The merchant ID of the item
        - `description` string, nullable — The description of the item
        - `count` integer, nullable — The quantity of the item
        - `dimensions` Dimensions
          - `height` union — The height of the item in centimeters (cm)
            - number
            - integer
          - `width` union — The width of the item in centimeters (cm)
            - number
            - integer
          - `depth` union — The depth of the item in centimeters (cm)
            - number
            - integer
        - `weight` union — The weight of the item in kilograms (kg)
          - number
          - integer
        - `valueCents` integer, nullable — The value of the item in cents
        - `requirements` string[], nullable — List of requirements for this item
        - `category` string, nullable — The category of the item
        - `barcode` string, nullable — Barcode value for this item.
        - `metadata` object, nullable — Key-value data to attach to this item.
        - `subItems` SubItemOutput[], nullable — The nested sub-items
          - `id` string, nullable — The merchant ID of the item
          - `description` string, nullable — The description of the item
          - `count` integer, nullable — The quantity of the item
          - `dimensions` Dimensions
            - `height` union — The height of the item in centimeters (cm)
              - …
            - `width` union — The width of the item in centimeters (cm)
              - …
            - `depth` union — The depth of the item in centimeters (cm)
              - …
          - `weight` union — The weight of the item in kilograms (kg)
            - number
            - integer
          - `valueCents` integer, nullable — The value of the item in cents
          - `requirements` string[], nullable — List of requirements for this item
          - `category` string, nullable — The category of the item
          - `barcode` string, nullable — Barcode value for this item.
          - `metadata` object, nullable — Key-value data to attach to this item.
          - `sku` string, nullable — The SKU of the sub-item
          - `substitution` SubstitutionObject
            - `preference` string, nullable — Substitution preference: refund or substitute
            - `source` string, nullable — Source of substitution, e.g., merchant, customer
            - `substituteItems` SubstituteItemObject[], nullable — List of substitute items
              - …
          - `subItems` SubItemOutput[], nullable — The nested sub-items
      - `referenceId` string, nullable — Reference ID
      - `packageMetadata` object, nullable — Package metadata
    - `tasks` TaskSerializer[], required — Tasks
      - `id` string, required — Task ID
      - `createdAt` string, required — Created at
      - `status` string, required — Status
      - `pickupStartTime` string, nullable — Pickup start time
      - `pickupEndTime` string, nullable — Pickup end time
      - `dropoffStartTime` string, nullable — Dropoff start time
      - `dropoffEndTime` string, nullable — Dropoff end time
      - `providerId` string, nullable — Provider ID
      - `providerIsInternal` boolean, nullable — Provider is internal
      - `tipAmountCents` integer, nullable — Tip amount in cents
      - `winnerQuote` object, nullable — Winner quote
      - `quotes` QuoteSerializer[], nullable — Quotes
        - `id` string, required — Quote ID
        - `type` string, nullable — Quote type
        - `providerId` string, required — Provider ID
        - `providerName` string, required — Provider name
        - `providerLogo` string, nullable — Provider logo
        - `providerIsInternal` boolean, nullable — Is the provider internal
        - `createdTime` string, required — Created time
        - `expireTime` string, nullable — Expire time
        - `priceCents` integer, required — Price in cents
        - `taxAmountCents` integer, nullable — Tax amount in cents
        - `tollFeeCents` integer, nullable — Toll fee in cents
        - `nashFeeCents` integer, nullable — Nash fee in cents
        - `insuranceFeeCents` integer, nullable — Insurance fee in cents
        - `currency` string, nullable — Currency
        - `pickupWindow` string, nullable — Pickup window
        - `dropoffEta` string, nullable — Dropoff ETA
        - `tags` string[], nullable — Tags
        - `costSplitCustomerCents` integer, nullable — Cost split customer in cents
        - `costSplitBusinessCents` integer, nullable — Cost split business in cents
        - `totalPriceBreakdown` object, nullable — Total price breakdown
        - `totalPriceCents` integer, nullable — Total price in cents
        - `rank` integer, nullable — Quote rank for preferred provider ordering
        - `price` number, nullable — Price
        - `isSuccessful` boolean, nullable — Is successful
        - `errorMessage` string, nullable — Error message
      - `failedQuotes` object[], nullable — Failed quotes
      - `delivery` DeliverySerializer — Generic serializer for deliveries used in many endpoints. Some endpoints won't return all fields, so they are optional. This means that they will return field names with null values.
        - `id` string, required — Delivery ID
        - `type` string, nullable
        - `status` string, required — Delivery status
        - `statusHistory` object[], nullable — Delivery status history
        - `isActive` boolean, required — Is the delivery active
        - `pickupEta` string, nullable — Pickup ETA
        - `dropoffEta` string, nullable — Dropoff ETA
        - `dropoffDeadline` string, nullable — Dropoff deadline
        - `priceCents` integer, required — Price in cents
        - `currency` string, required — Currency
        - `documents` DocumentSerializer[], nullable — Documents
          - `createdAt` string, required
          - `id` string, required
          - `type` string, required
          - `url` string, nullable
          - `data` string, binary, nullable
          - `contentType` string, required
          - `documentMetadata` object, nullable
        - `nashFeeCents` integer, nullable — Nash fee in cents
        - `courierName` string, nullable — Courier name
        - `courierPhoneNumber` string, nullable — Courier phone number
        - `courierPickupPhoneNumber` string, nullable — Courier pickup phone number
        - `courierDropoffPhoneNumber` string, nullable — Courier dropoff phone number
        - `courierLocation` object, nullable — Courier location
        - `courierVehicle` object, nullable — Courier vehicle
        - `courierProfileImage` string, nullable — Courier profile image
        - `proofOfDelivery` object[], nullable — Proof of delivery
        - `providerDeliveryId` string, nullable — Provider delivery id
        - `providerBatchId` string, nullable — Provider batch id
        - `price` number, nullable — Price
        - `taxAmountCents` integer, nullable — Tax amount in cents
        - `tollFeeCents` integer, nullable — Toll fee in cents
        - `waitFeeCents` integer, nullable — Wait fee in cents
        - `waitTimeMinutes` integer, nullable — Wait time in minutes
        - `cancellationFeeCents` integer, nullable — Cancellation fee in cents
        - `returnFeeCents` integer, nullable — Return fee in cents
        - `otherProviderFees` object, nullable — Other provider fees
        - `insuranceFeeCents` integer, nullable — Insurance fee in cents
        - `totalPriceBreakdown` object, nullable — Total price breakdown
        - `totalPriceCents` integer, nullable — Total price in cents
        - `pickedItems` PickedItemsSerializer[], nullable — Picked items
          - `sku` string, nullable
          - `requestedSku` string, nullable
          - `id` string, nullable
          - `requestedId` string, nullable
          - `quantity` integer, nullable
          - `requestedQuantity` integer, nullable
          - `scannedBarcode` string, nullable
          - `weight` number, nullable
          - `priceCents` integer, nullable
          - `status` string, nullable — Per-item fulfillment outcome at pick time. One of: `picked`, `partially_picked`, `not_picked`, `substituted`.
          - `name` string, nullable
          - `scans` ItemScanSerializer[], nullable
            - `substitutionType` string, nullable
            - `barcodes` BarcodeInfoSerializer[], nullable
              - …
      - `tipAmountUsd` number, nullable — Tip amount in USD
      - `failureReason` string, nullable — Failure reason
      - `taskNotes` NoteSerializer[], nullable — Task notes
        - `id` string, required — Note ID
        - `createdAt` string, required — Created at
        - `note` string, required — Note
        - `user` BasicUserSerializer, required — Generic serializer for basic users used in many endpoints.
          - `email` string, required — Email
    - `advancedTask` union — Advanced task
      - TaskSerializer — Generic serializer for tasks used in many endpoints.
        - `id` string, required — Task ID
        - `createdAt` string, required — Created at
        - `status` string, required — Status
        - `pickupStartTime` string, nullable — Pickup start time
        - `pickupEndTime` string, nullable — Pickup end time
        - `dropoffStartTime` string, nullable — Dropoff start time
        - `dropoffEndTime` string, nullable — Dropoff end time
        - `providerId` string, nullable — Provider ID
        - `providerIsInternal` boolean, nullable — Provider is internal
        - `tipAmountCents` integer, nullable — Tip amount in cents
        - `winnerQuote` object, nullable — Winner quote
        - `quotes` QuoteSerializer[], nullable — Quotes
          - `id` string, required — Quote ID
          - `type` string, nullable — Quote type
          - `providerId` string, required — Provider ID
          - `providerName` string, required — Provider name
          - `providerLogo` string, nullable — Provider logo
          - `providerIsInternal` boolean, nullable — Is the provider internal
          - `createdTime` string, required — Created time
          - `expireTime` string, nullable — Expire time
          - `priceCents` integer, required — Price in cents
          - `taxAmountCents` integer, nullable — Tax amount in cents
          - `tollFeeCents` integer, nullable — Toll fee in cents
          - `nashFeeCents` integer, nullable — Nash fee in cents
          - `insuranceFeeCents` integer, nullable — Insurance fee in cents
          - `currency` string, nullable — Currency
          - `pickupWindow` string, nullable — Pickup window
          - `dropoffEta` string, nullable — Dropoff ETA
          - `tags` string[], nullable — Tags
          - `costSplitCustomerCents` integer, nullable — Cost split customer in cents
          - `costSplitBusinessCents` integer, nullable — Cost split business in cents
          - `totalPriceBreakdown` object, nullable — Total price breakdown
          - `totalPriceCents` integer, nullable — Total price in cents
          - `rank` integer, nullable — Quote rank for preferred provider ordering
          - `price` number, nullable — Price
          - `isSuccessful` boolean, nullable — Is successful
          - `errorMessage` string, nullable — Error message
        - `failedQuotes` object[], nullable — Failed quotes
        - `delivery` DeliverySerializer — Generic serializer for deliveries used in many endpoints. Some endpoints won't return all fields, so they are optional. This means that they will return field names with null values.
          - `id` string, required — Delivery ID
          - `type` string, nullable
          - `status` string, required — Delivery status
          - `statusHistory` object[], nullable — Delivery status history
          - `isActive` boolean, required — Is the delivery active
          - `pickupEta` string, nullable — Pickup ETA
          - `dropoffEta` string, nullable — Dropoff ETA
          - `dropoffDeadline` string, nullable — Dropoff deadline
          - `priceCents` integer, required — Price in cents
          - `currency` string, required — Currency
          - `documents` DocumentSerializer[], nullable — Documents
            - `createdAt` string, required
            - `id` string, required
            - `type` string, required
            - `url` string, nullable
            - `data` string, binary, nullable
            - `contentType` string, required
            - `documentMetadata` object, nullable
          - `nashFeeCents` integer, nullable — Nash fee in cents
          - `courierName` string, nullable — Courier name
          - `courierPhoneNumber` string, nullable — Courier phone number
          - `courierPickupPhoneNumber` string, nullable — Courier pickup phone number
          - `courierDropoffPhoneNumber` string, nullable — Courier dropoff phone number
          - `courierLocation` object, nullable — Courier location
          - `courierVehicle` object, nullable — Courier vehicle
          - `courierProfileImage` string, nullable — Courier profile image
          - `proofOfDelivery` object[], nullable — Proof of delivery
          - `providerDeliveryId` string, nullable — Provider delivery id
          - `providerBatchId` string, nullable — Provider batch id
          - `price` number, nullable — Price
          - `taxAmountCents` integer, nullable — Tax amount in cents
          - `tollFeeCents` integer, nullable — Toll fee in cents
          - `waitFeeCents` integer, nullable — Wait fee in cents
          - `waitTimeMinutes` integer, nullable — Wait time in minutes
          - `cancellationFeeCents` integer, nullable — Cancellation fee in cents
          - `returnFeeCents` integer, nullable — Return fee in cents
          - `otherProviderFees` object, nullable — Other provider fees
          - `insuranceFeeCents` integer, nullable — Insurance fee in cents
          - `totalPriceBreakdown` object, nullable — Total price breakdown
          - `totalPriceCents` integer, nullable — Total price in cents
          - `pickedItems` PickedItemsSerializer[], nullable — Picked items
            - `sku` string, nullable
            - `requestedSku` string, nullable
            - `id` string, nullable
            - `requestedId` string, nullable
            - `quantity` integer, nullable
            - `requestedQuantity` integer, nullable
            - `scannedBarcode` string, nullable
            - `weight` number, nullable
            - `priceCents` integer, nullable
            - `status` string, nullable — Per-item fulfillment outcome at pick time. One of: `picked`, `partially_picked`, `not_picked`, `substituted`.
            - `name` string, nullable
            - `scans` ItemScanSerializer[], nullable
              - …
        - `tipAmountUsd` number, nullable — Tip amount in USD
        - `failureReason` string, nullable — Failure reason
        - `taskNotes` NoteSerializer[], nullable — Task notes
          - `id` string, required — Note ID
          - `createdAt` string, required — Created at
          - `note` string, required — Note
          - `user` BasicUserSerializer, required — Generic serializer for basic users used in many endpoints.
            - `email` string, required — Email
      - CompressedAdvancedTaskSerializer — Generic serializer for tasks used in many endpoints.
        - `id` string, required — Task ID
    - `delivery` DeliverySerializer — Generic serializer for deliveries used in many endpoints. Some endpoints won't return all fields, so they are optional. This means that they will return field names with null values.
      - `id` string, required — Delivery ID
      - `type` string, nullable
      - `status` string, required — Delivery status
      - `statusHistory` object[], nullable — Delivery status history
      - `isActive` boolean, required — Is the delivery active
      - `pickupEta` string, nullable — Pickup ETA
      - `dropoffEta` string, nullable — Dropoff ETA
      - `dropoffDeadline` string, nullable — Dropoff deadline
      - `priceCents` integer, required — Price in cents
      - `currency` string, required — Currency
      - `documents` DocumentSerializer[], nullable — Documents
        - `createdAt` string, required
        - `id` string, required
        - `type` string, required
        - `url` string, nullable
        - `data` string, binary, nullable
        - `contentType` string, required
        - `documentMetadata` object, nullable
      - `nashFeeCents` integer, nullable — Nash fee in cents
      - `courierName` string, nullable — Courier name
      - `courierPhoneNumber` string, nullable — Courier phone number
      - `courierPickupPhoneNumber` string, nullable — Courier pickup phone number
      - `courierDropoffPhoneNumber` string, nullable — Courier dropoff phone number
      - `courierLocation` object, nullable — Courier location
      - `courierVehicle` object, nullable — Courier vehicle
      - `courierProfileImage` string, nullable — Courier profile image
      - `proofOfDelivery` object[], nullable — Proof of delivery
      - `providerDeliveryId` string, nullable — Provider delivery id
      - `providerBatchId` string, nullable — Provider batch id
      - `price` number, nullable — Price
      - `taxAmountCents` integer, nullable — Tax amount in cents
      - `tollFeeCents` integer, nullable — Toll fee in cents
      - `waitFeeCents` integer, nullable — Wait fee in cents
      - `waitTimeMinutes` integer, nullable — Wait time in minutes
      - `cancellationFeeCents` integer, nullable — Cancellation fee in cents
      - `returnFeeCents` integer, nullable — Return fee in cents
      - `otherProviderFees` object, nullable — Other provider fees
      - `insuranceFeeCents` integer, nullable — Insurance fee in cents
      - `totalPriceBreakdown` object, nullable — Total price breakdown
      - `totalPriceCents` integer, nullable — Total price in cents
      - `pickedItems` PickedItemsSerializer[], nullable — Picked items
        - `sku` string, nullable
        - `requestedSku` string, nullable
        - `id` string, nullable
        - `requestedId` string, nullable
        - `quantity` integer, nullable
        - `requestedQuantity` integer, nullable
        - `scannedBarcode` string, nullable
        - `weight` number, nullable
        - `priceCents` integer, nullable
        - `status` string, nullable — Per-item fulfillment outcome at pick time. One of: `picked`, `partially_picked`, `not_picked`, `substituted`.
        - `name` string, nullable
        - `scans` ItemScanSerializer[], nullable
          - `substitutionType` string, nullable
          - `barcodes` BarcodeInfoSerializer[], nullable
            - `weight` number, nullable
            - `priceCents` integer, nullable
            - `weightUnit` string, nullable
            - `productCode` string, nullable
            - `isVariableWeight` boolean, nullable
            - `barcode` string, nullable
            - `variableValue` number, nullable
            - `format` string, nullable
            - `indicatorDigit` string, nullable
            - `checkDigit` string, nullable
            - `manufacturerCode` string, nullable
            - `itemReference` string, nullable
            - `pluCheckDigit` string, nullable
            - `barcodeSansCheckDigit` string, nullable
            - `expirationDate` string, nullable
    - `publicTrackingUrl` string, nullable — Public tracking URL
  - `optionsGroup` OptionsGroupSerializer — Generic serializer for options groups used in many endpoints.
    - `id` string, required — Dispatch Strategy ID
    - `label` string, required — Dispatch Strategy Label
    - `allowedProviders` string[], nullable — Allowed providers
    - `enableAutoDispatch` boolean, nullable — Enable auto dispatch
    - `providerSelectionStrategy` string, nullable — Provider selection strategy
    - `reassignOnFailure` boolean, nullable — Reassign on failure
    - `enableMaxDeliveryFee` boolean, nullable — Enable max delivery fee
    - `maxDeliveryFeeCents` integer, nullable — Max delivery fee in cents
    - `costSplitMaxFixedPriceCents` integer, nullable — Cost split max fixed price in cents
    - `costSplitMaxPercentage` number, nullable — Cost split max percentage
    - `costSplitStrategy` string, nullable — Cost split strategy
    - `smartReassignment` boolean, nullable — Smart reassignment
  - `shortReferenceCode` string, nullable — 7-digit non-unique human-readable reference code for the job.
  - `selectedConfiguration` object, nullable — Selected configuration
  - `jobSpecification` object, nullable — Job specification
  - `route` RouteSerializer — Represents a planned sequence of stops for a delivery or batch.
    - `id` string, required — Unique identifier for the route.
    - `externalId` string, nullable — External Route ID.
    - `portalUrl` string, required — Portal URL of the route.
    - `name` string, nullable — Name of the route.
    - `type` string, required — Type of the route, indicating the pickup/dropoff structure.
    - `courierId` string, nullable — Courier ID of the driver assigned to the route.
    - `vehicleId` string, nullable — Vehicle ID of the vehicle assigned to the route.
    - `courier` CourierSerializer — Courier details for a route.
      - `id` string, nullable
      - `firstName` string, nullable
      - `lastName` string, nullable
      - `phoneNumber` string, nullable
    - `driverGroup` DriverGroupSerializer — Driver group details for a route.
      - `id` string, nullable
      - `externalId` string, nullable
    - `courierPosition` CourierPositionSerializer — Current GPS position of a courier.
      - `lat` number, required — Latitude coordinate.
      - `lng` number, required — Longitude coordinate.
      - `updatedAt` string, nullable — Timestamp when the position was last updated on the server.
      - `capturedAt` string, nullable — Timestamp when the GPS position was captured on driver's device.
      - `accuracy` number, nullable — Estimated horizontal accuracy radius in meters.
      - `heading` number, nullable — Heading in degrees relative to true north.
      - `speed` number, nullable — Speed in meters per second.
      - `altitude` number, nullable — Altitude in meters above sea level.
      - `altitudeAccuracy` number, nullable — Estimated altitude accuracy in meters.
      - `batteryLevel` number, nullable — Battery level from 0.0 to 1.0, if provided by device.
      - `batteryIsCharging` boolean, nullable — Whether the device is currently charging.
      - `isMoving` boolean, nullable — Whether the device is currently detected as moving.
    - `vehicle` VehicleSerializer — Vehicle details for a route.
      - `licensePlate` string, nullable
      - `make` string, nullable
      - `model` string, nullable
      - `color` string, nullable
      - `year` integer, nullable
      - `type` string, nullable
    - `providerName` string, nullable — Name of the delivery provider assigned to this route.
    - `shiftId` string, nullable — Shift ID of the shift assigned to the route.
    - `stops` RouteStopSerializer[], required — Ordered list of stops included in the route.
      - `stopType` string, required — Type of the stop.
      - `objectIds` string[], required — List of object IDs (e.g., order IDs, store location IDs) associated with this stop.
      - `arrivalTime` string, nullable — Estimated arrival time at the stop (UTC).
      - `departTime` string, nullable — Estimated departure time from the stop (UTC).
      - `plannedArrivalTime` string, nullable — Snapshot of arrival_time captured pre-dispatch (UTC). Mirrors arrival_time while the route is undispatched, then freezes at dispatch — gives consumers the planned ETA at dispatch even after real-time tracking updates arrival_time.
      - `serviceTime` number, nullable — Estimated service time spent at the stop (in seconds).
      - `distanceFromPrevious` number, nullable — Distance traveled from the previous stop (in meters).
      - `durationFromPrevious` number, nullable — Travel duration from the previous stop (in seconds).
      - `location` LatLngSerializer, required — Latitude/longitude coordinates.
        - `lat` number, required — Latitude coordinate.
        - `lng` number, required — Longitude coordinate.
      - `status` string, nullable — Current status of the stop.
      - `statusDescription` string, nullable — Detailed description of the current status of the stop.
      - `statusHistory` object[], nullable — History of status changes for the stop.
      - `metadata` object, nullable — Additional metadata for this stop.
      - `startedAt` string, nullable — Timestamp when the stop entered IN_PROGRESS status (UTC).
      - `breakDuration` integer, nullable — Duration in seconds of the break at this stop (for DRIVER_BREAK stops).
      - `orders` StopOrderSerializer[], nullable — Orders associated with this stop, including tracking URLs and delivery details.
        - `id` string, required — Order ID.
        - `externalId` string, nullable — External identifier for the order.
        - `publicTrackingUrl` string, nullable — Public tracking URL for the order.
        - `pod` ProofOfDeliverySerializer[], nullable — Proof of delivery data (photos, signature, etc.) if captured.
          - `type` string, required — Type of proof of delivery, e.g., 'photo', 'signature', etc.
          - `url` string, nullable — URL of the proof of delivery document.
          - `uploadedAt` string, nullable — Timestamp when the proof of delivery was uploaded.
        - `orderItems` OrderItemSerializer[], nullable — Items with lifecycle status tracking (picked, delivered, failed, etc.).
          - `id` string, nullable — The merchant ID of the item
          - `description` string, nullable — The description of the item
          - `count` integer, nullable — The quantity of the item
          - `valueCents` integer, nullable — The value of the item in cents
          - `barcode` string, nullable — Barcode associated with the item
          - `sku` string, nullable — SKU of the item
          - `category` string, nullable — The category of the item
          - `status` string, nullable — Current lifecycle status of the item.
          - `availableQuantity` integer, nullable — Quantity available after pickup (may differ from count)
          - `statusMetadata` ItemStatusMetadataSerializer — Operational metadata tracked during item lifecycle in route delivery.
            - `pickedAt` string, nullable — Timestamp when the item was picked up
            - `deliveredAt` string, nullable — Timestamp when the item was delivered
            - `failedAt` string, nullable — Timestamp when the item delivery failed
            - `returnedAt` string, nullable — Timestamp when the item was returned
            - `failureReason` string, nullable — Reason for delivery failure
            - `failureLocation` string, nullable — Where the failure occurred: 'pickup' or 'dropoff'
          - `statusHistory` ItemStatusHistoryEntrySerializer[], nullable — History of status changes for this item.
            - `status` string, required — Item status at this point in time
            - `createdAt` string, required — Timestamp of the status change
          - `subItems` OrderItemSerializer[], nullable — Nested sub-items with their own status tracking.
    - `isDispatched` boolean — Whether the route is dispatched.
    - `jobId` string, nullable — Dispatched Job ID of this route
    - `routeMetadata` object, nullable — Additional metadata for the route.
    - `validationErrors` object, nullable — Validation errors for the route.
    - `encodedPolyline` string, nullable — Encoded polyline representing the route geometry.
    - `status` string, nullable — Current status of the route.
    - `statusHistory` object[], nullable — History of status changes for the route.

## Other responses

- `422` — Unprocessable Content

---

[API](https://skmtc.net/usenash/apis/nash-api.md) · [All operations](https://skmtc.net/usenash/apis/nash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/usenash/nash-api/revisions/09a23a95889b/schema)
