> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usenash.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk Update Deliveries

> Apply updates to up to 100 deliveries in a single request. Each item carries a `deliveryId` plus the same field set as the single-delivery endpoint. Per-item failures come back as a structured error in the response and do not affect the rest of the batch.



## OpenAPI

````yaml patch /v1/fleet/deliveries
openapi: 3.1.0
info:
  title: Nash API
  version: 1.0.0
servers:
  - url: https://api.sandbox.usenash.com
    description: Sandbox API
  - url: https://api.sandbox.ap-southeast-2.usenash.com
    description: Sandbox API (Australia)
  - url: https://api.usenash.com
    description: Production API
  - url: https://api.ap-southeast-2.usenash.com
    description: Production API (Australia)
security: []
tags:
  - name: Notifications
    description: Notifications
    x-nash-topic: config
  - name: Annotate
    description: Annotate
    x-nash-topic: wismo
  - name: Notifications — Send
    description: One-off notification send without a NotificationTrigger.
    x-nash-topic: notifications
  - name: Shipping
    description: Shipping operations
    x-nash-topic: shipping
  - name: Workflow
    description: Workflow automation management
    x-nash-topic: scheduling
  - name: Workflow Execution
    description: Workflow execution history and monitoring
    x-nash-topic: scheduling
  - name: Optimization Strategies
    description: Create, read, update, and delete route optimization strategies.
    x-nash-topic: scheduling
  - name: AI Agents
    description: AI agent management — create, read, update, and delete agents
    x-nash-topic: config
  - name: AI Functions
    description: LLM-backed domain tools
    x-nash-topic: ai
  - name: Webhooks
    description: Webhook delivery inspection
    x-nash-topic: webhooks
  - name: Fleet Simulator
    description: Simulate delivery status transitions in dev and sandbox environments.
    x-nash-topic: testing
  - name: Miscellaneous
    description: Miscellaneous
  - name: Job
    description: Job
    x-nash-topic: wismo
  - name: Batch Job
    description: Batch Job
    x-nash-topic: wismo
  - name: Order
    description: Order
    x-nash-topic: wismo
  - name: Route
    description: Route
    x-nash-topic: scheduling
  - name: Provider
    description: Provider
    x-nash-topic: provider
  - name: Dispatch Strategies
    description: Dispatch Strategies
    x-nash-topic: scheduling
  - name: Store Locations
    description: Store Locations
    x-nash-topic: config
  - name: Vehicles
    description: Vehicles
    x-nash-topic: provider
  - name: Couriers
    description: Couriers
    x-nash-topic: provider
  - name: Shifts
    description: Shifts
    x-nash-topic: provider
  - name: Delivery Windows
    description: Delivery Windows
    x-nash-topic: config
  - name: Templates
    description: Templates
    x-nash-topic: config
  - name: Zones
    description: Zones
    x-nash-topic: config
  - name: Feedback
    description: Feedback
    x-nash-topic: reporting
  - name: Organizations
    description: Organizations
    x-nash-topic: config
  - name: Store Catalog
    description: Store Catalog
    x-nash-topic: config
  - name: Messaging
    description: Messaging
    x-nash-topic: config
  - name: Contracts
    description: Provider contract pricing and version listings
    x-nash-topic: provider
  - name: Event Timeline
    description: Entity-scoped event timeline + outbound provider traffic for one entity.
    x-nash-topic: internal
  - name: Fleet
    description: Inbound endpoints fleets call to update in-flight deliveries.
    x-nash-topic: delivery
  - name: Route Restrictions
    description: Org-scoped geographic areas the route optimizer must avoid traversing.
    x-nash-topic: config
  - name: Users
    description: User, role, and organization-membership management.
    x-nash-topic: config
paths:
  /v1/fleet/deliveries:
    patch:
      tags:
        - Fleet
      summary: Bulk Update Deliveries
      description: >-
        Apply updates to up to 100 deliveries in a single request. Each item
        carries a `deliveryId` plus the same field set as the single-delivery
        endpoint. Per-item failures come back as a structured error in the
        response and do not affect the rest of the batch.
      operationId: deliveries_v1_bulk_update_deliveries_route_patch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkDeliveryUpdateRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkDeliveryUpdateResponse'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NashValidationError'
components:
  schemas:
    BulkDeliveryUpdateRequest:
      title: BulkDeliveryUpdateRequest
      required:
        - deliveries
      type: object
      properties:
        deliveries:
          title: Deliveries
          maxItems: 100
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/BulkDeliveryUpdateItem'
          description: Delivery updates to apply (max 100).
      description: Top-level body for ``PATCH /v1/deliveries`` (bulk update).
    BulkDeliveryUpdateResponse:
      title: BulkDeliveryUpdateResponse
      required:
        - results
      type: object
      properties:
        results:
          title: Results
          type: array
          items:
            $ref: '#/components/schemas/BulkDeliveryUpdateResultItem'
          description: One result per request item, in order.
      description: Top-level response for ``PATCH /v1/deliveries``.
    NashValidationError:
      title: NashValidationError
      required:
        - error
        - response_status
        - RequestID
      type: object
      properties:
        error:
          $ref: '#/components/schemas/NashErrorDetails'
        response_status:
          title: Response Status
          type: string
        RequestID:
          title: Requestid
          type: string
    BulkDeliveryUpdateItem:
      title: BulkDeliveryUpdateItem
      required:
        - deliveryId
      type: object
      properties:
        status:
          anyOf:
            - $ref: '#/components/schemas/DeliveryStatusUpdateValue'
            - type: 'null'
          description: New lifecycle status.
          default: null
        coordinates:
          anyOf:
            - $ref: '#/components/schemas/Coordinates'
            - type: 'null'
          description: Current courier coordinates.
          default: null
        proofOfDelivery:
          title: Proofofdelivery
          anyOf:
            - type: array
              items:
                oneOf:
                  - $ref: '#/components/schemas/ImageProof'
                  - $ref: '#/components/schemas/BarcodeProof'
                discriminator:
                  propertyName: podType
                  mapping:
                    barcode_scan_on_dropoff:
                      $ref: '#/components/schemas/BarcodeProof'
                    barcode_scan_on_pickup:
                      $ref: '#/components/schemas/BarcodeProof'
                    barcode_scan_on_return:
                      $ref: '#/components/schemas/BarcodeProof'
                    photo_pre_delivery_verification:
                      $ref: '#/components/schemas/ImageProof'
                    photo_proof_of_delivery:
                      $ref: '#/components/schemas/ImageProof'
                    photo_proof_of_pickup:
                      $ref: '#/components/schemas/ImageProof'
                    signature_proof_of_delivery:
                      $ref: '#/components/schemas/ImageProof'
                    signature_proof_of_pickup:
                      $ref: '#/components/schemas/ImageProof'
            - type: 'null'
          description: >-
            Proof artifacts captured at the stop. Image or barcode,
            discriminated by `podType`.
          default: null
        courier:
          anyOf:
            - $ref: '#/components/schemas/Courier'
            - type: 'null'
          description: Identity and vehicle of the assigned courier.
          default: null
        failure:
          anyOf:
            - $ref: '#/components/schemas/DeliveryFailure'
            - type: 'null'
          description: Cause when the delivery enters `failed` or `canceled_by_provider`.
          default: null
        pickupNote:
          title: Pickupnote
          anyOf:
            - type: string
            - type: 'null'
          description: Note from the courier at pickup. E.g. 'used the side door'.
          default: null
        dropoffNote:
          title: Dropoffnote
          anyOf:
            - type: string
            - type: 'null'
          description: Note from the courier at dropoff. E.g. 'left with concierge'.
          default: null
        parkingLocation:
          title: Parkinglocation
          anyOf:
            - type: string
            - type: 'null'
          description: Where the courier parked at the stop. E.g. 'loading bay 4'.
          default: null
        returnParkingLocation:
          title: Returnparkinglocation
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Where the courier parked when returning the package to the pickup
            location.
          default: null
        pickupEta:
          title: Pickupeta
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          description: Estimated pickup arrival time. ISO 8601.
          default: null
        dropoffEta:
          title: Dropoffeta
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          description: Estimated dropoff arrival time. ISO 8601.
          default: null
        externalDeliveryId:
          title: Externaldeliveryid
          anyOf:
            - type: string
            - type: 'null'
          description: Provider's own identifier for this delivery.
          default: null
        deliveryId:
          title: Deliveryid
          type: string
          description: Nash delivery id.
      description: |-
        One update inside a bulk PATCH /v1/deliveries call.

        Same field set as ``DeliveryUpdate`` plus a required ``delivery_id``.
    BulkDeliveryUpdateResultItem:
      title: BulkDeliveryUpdateResultItem
      required:
        - deliveryId
        - success
      type: object
      properties:
        deliveryId:
          title: Deliveryid
          type: string
          description: Nash delivery id.
        success:
          title: Success
          type: boolean
          description: Whether the update was applied.
        errorCode:
          title: Errorcode
          anyOf:
            - type: string
            - type: 'null'
          description: Error code if `success` is false.
          default: null
        errorMessage:
          title: Errormessage
          anyOf:
            - type: string
            - type: 'null'
          description: Error detail if `success` is false.
          default: null
        delivery:
          title: Delivery
          anyOf:
            - type: object
              additionalProperties: true
            - type: 'null'
          description: Updated delivery on success.
          default: null
      description: |-
        Per-item result for a bulk update.

        On success, ``delivery`` carries the same shape returned under each task
        by ``GET /v1/jobs/<id>`` (the canonical ``DeliverySerializer`` shape).
        On failure, ``error_code`` and ``error_message`` describe why this item
        was skipped. Other items in the same request are unaffected.
    NashErrorDetails:
      title: NashErrorDetails
      required:
        - code
        - message
      type: object
      properties:
        code:
          title: Code
          type: string
        message:
          title: Message
          type: string
        details:
          title: Details
          anyOf:
            - type: object
              additionalProperties: true
            - type: 'null'
          default: null
    DeliveryStatusUpdateValue:
      title: DeliveryStatusUpdateValue
      enum:
        - not_assigned_driver
        - assigned_driver
        - pickup_enroute
        - pickup_arrived
        - pickup_complete
        - dropoff_enroute
        - dropoff_arrived
        - dropoff_complete
        - failed
        - canceled_by_provider
        - return_in_progress
        - return_arrived
        - returned_to_store
      type: string
      description: >-
        Lifecycle states a fleet can report for a delivery.


        Ordered roughly chronologically:


        - ``not_assigned_driver`` — provider received the dispatch but hasn't
        found a driver.

        - ``assigned_driver`` — a driver has accepted the dispatch but hasn't
        departed.

        - ``pickup_enroute`` — driver is on the way to the pickup location.

        - ``pickup_arrived`` — driver is at the pickup location.

        - ``pickup_complete`` — package has been picked up.

        - ``dropoff_enroute`` — driver is on the way to the customer.

        - ``dropoff_arrived`` — driver is at the customer.

        - ``dropoff_complete`` — package delivered (terminal success).

        - ``failed`` — delivery aborted; pair with ``failure`` block (terminal).

        - ``canceled_by_provider`` — provider canceled the dispatch (terminal).

        - ``return_in_progress`` — package is being returned to the pickup
        location.

        - ``return_arrived`` — driver is at the pickup location to return.

        - ``returned_to_store`` — package returned (terminal).
    Coordinates:
      title: Coordinates
      required:
        - latitude
        - longitude
      type: object
      properties:
        latitude:
          title: Latitude
          maximum: 90
          minimum: -90
          type: number
          description: Latitude in decimal degrees.
        longitude:
          title: Longitude
          maximum: 180
          minimum: -180
          type: number
          description: Longitude in decimal degrees.
      description: Latitude / longitude pair for the courier's current location.
    ImageProof:
      title: ImageProof
      required:
        - podType
        - imageUrl
      type: object
      properties:
        podType:
          title: Podtype
          enum:
            - photo_proof_of_delivery
            - signature_proof_of_delivery
            - photo_proof_of_pickup
            - signature_proof_of_pickup
            - photo_pre_delivery_verification
          type: string
          description: Type of image artifact.
        imageUrl:
          title: Imageurl
          type: string
          description: URL of the captured image.
      description: Image-based proof captured at pickup or dropoff (photo or signature).
    BarcodeProof:
      title: BarcodeProof
      required:
        - podType
        - value
        - status
      type: object
      properties:
        podType:
          title: Podtype
          enum:
            - barcode_scan_on_pickup
            - barcode_scan_on_dropoff
            - barcode_scan_on_return
          type: string
          description: Type of barcode scan.
        value:
          title: Value
          type: string
          description: The scanned barcode string.
        status:
          title: Status
          enum:
            - success
            - invalid
            - failure
            - skipped
            - manually_entered
            - damaged
          type: string
          description: Outcome of the scan.
      description: Barcode scan recorded at pickup, dropoff, or during a return.
    Courier:
      title: Courier
      type: object
      properties:
        name:
          title: Name
          anyOf:
            - type: string
            - type: 'null'
          description: Courier's display name.
          default: null
        phoneNumber:
          title: Phonenumber
          anyOf:
            - type: string
            - type: 'null'
          description: Courier's phone number, E.164.
          default: null
        pickupPhoneNumber:
          title: Pickupphonenumber
          anyOf:
            - type: string
            - type: 'null'
          description: Proxy phone for the pickup contact, if issued.
          default: null
        dropoffPhoneNumber:
          title: Dropoffphonenumber
          anyOf:
            - type: string
            - type: 'null'
          description: Proxy phone for the customer, if issued.
          default: null
        profileImageUrl:
          title: Profileimageurl
          anyOf:
            - type: string
            - type: 'null'
          description: URL of the courier's profile image.
          default: null
        vehicle:
          anyOf:
            - $ref: '#/components/schemas/CourierVehicle'
            - type: 'null'
          description: Vehicle the courier is using.
          default: null
        externalId:
          title: Externalid
          anyOf:
            - type: string
            - type: 'null'
          description: Provider's own courier identifier.
          default: null
      description: |-
        Identity and vehicle for the courier currently handling the delivery.

        Send the full block when a courier is first assigned, or any subset when
        one of the fields changes (e.g., a driver swap mid-flight).
    DeliveryFailure:
      title: DeliveryFailure
      required:
        - code
      type: object
      properties:
        code:
          $ref: '#/components/schemas/DeliveryFailureCode'
          description: Failure code.
        reason:
          title: Reason
          anyOf:
            - type: string
            - type: 'null'
          description: Free-text detail.
          default: null
      description: >-
        Structured cause when a delivery enters ``failed`` or
        ``canceled_by_provider``.
    CourierVehicle:
      title: CourierVehicle
      type: object
      properties:
        make:
          title: Make
          anyOf:
            - type: string
            - type: 'null'
          description: Vehicle make. E.g. 'Toyota'.
          default: null
        model:
          title: Model
          anyOf:
            - type: string
            - type: 'null'
          description: Vehicle model. E.g. 'Prius'.
          default: null
        color:
          title: Color
          anyOf:
            - type: string
            - type: 'null'
          description: Vehicle color. E.g. 'white'.
          default: null
        licensePlate:
          title: Licenseplate
          anyOf:
            - type: string
            - type: 'null'
          description: License plate.
          default: null
      description: Vehicle the courier is using to fulfill the delivery.
    DeliveryFailureCode:
      title: DeliveryFailureCode
      enum:
        - customer_unavailable
        - address_not_found
        - out_of_service_area
        - damage_in_transit
        - item_unavailable
        - age_verification_failed
        - no_capacity
        - other
      type: string
      description: >-
        Structured failure / cancellation code paired with optional free-text
        reason.


        Stable across providers so analytics, reassignment policy, and merchant

        notifications can branch on the cause rather than parsing strings. Used

        for both ``failed`` and ``canceled_by_provider`` status transitions.

````