---
title: "Update a Shipment"
method: PUT
path: "/shipments/{shipment_id}"
tags: ["Shipments"]
---

# Update a Shipment

`PUT /shipments/{shipment_id}`

## Request

- Base URL: `https://app-sandbox.resolvepay.com/api`
- URL: `https://app-sandbox.resolvepay.com/api/shipments/{shipment_id}`
- Auth: one of:
  - HTTP bearer
  - HTTP basic
- TypeScript: <https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference/docs/shipments/:shipment_id/put.ts> (a function with typed inputs; its response is checked against the schema)

Update an existing shipment belonging to one of your sub-merchants.

## Path parameters

- `shipment_id` string, required

## Request body

- ShipmentUpdateRequest
  - `merchant_invoice_id` string: ID of the invoice (must belong to one of your sub-merchants).
  - `shipment_tracking_number` string: Tracking number for the shipment.
  - `shipment_courier` string: Shipping courier or provider name. While any value can be accepted, instant verification is supported for specific couriers. See the [Shipments API documentation](#tag/Shipments) for the complete list of supported couriers.
  - `file` ShipmentFile
    - `url` string, uri, required: S3 URL of the uploaded file obtained after uploading to the signed URL from `/shipments/sign-upload`.
    - `size` integer, required: File size in bytes.
    - `metadata` object: Optional metadata about the file.
      - `original_filename` string: Original filename before upload.

## Response `200`

An object representing the Shipment.

- ShipmentObject
  - `id` string: Unique identifier of the Shipment.
  - `merchant_invoice_id` string: ID of the associated merchant invoice.
  - `fulfillment_method` 'shipping_provider' | 'self_delivery' | 'customer_pickup' | 'services_only': Method of fulfillment for the shipment.
  - `shipment_tracking_number` string: Tracking number provided by the shipping courier.
  - `shipment_courier` string: Shipping courier or provider name. While any value can be accepted, instant verification is supported for specific couriers. See the [Shipments API documentation](#tag/Shipments) for the complete list of supported couriers.
  - `verification_status` 'verified' | 'pending': Manual or automatic verification status of the shipment.
  - `created_at` string, date-time: Date time when the shipment was created.
  - `updated_at` string, date-time: Date time when the shipment was last updated.
  - `tracking_status` string, nullable: Current tracking status of the shipment from the courier.
  - `tracking_substatus` string, nullable: Detailed tracking substatus providing additional context about the shipment's current state.
  - `expected_delivery` string, date-time, nullable: Expected delivery date and time provided by the shipping courier.

## Other responses

- `400`: Bad request error
- `401`: Unauthorized error
- `404`: Not found error
- `429`: Rate limit error

---

[API](https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference.md) - [All operations](https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/resolvepay/apis/resolve-partners-api-reference/revisions/5a1c75b8b404?raw)
