shipments.replaced
All of a shipment's items moved to a new shipment, for example when a new label was bought for it, the seller added tracking from their own label, or Whatnot support changed its label. The previous shipment is usually cancelled. The body has both shipments. Requires read:shipments.
Headers
- Type: stringFormat: uuidwebhook
-id requiredUnique ID of the event. Retries of a delivery send the same ID, so use it to deduplicate.
- Type: integerFormat: int64webhook
-timestamp requiredWhen this delivery attempt was sent, as a Unix timestamp in seconds. Each retry sends a new timestamp.
- Type: stringwebhook
-signature requiredSpace-separated signatures, each
v1,followed by the base64 HMAC-SHA256 of{webhook-id}.{webhook-timestamp}.{body}, keyed with your webhook secret.
Body·ShipmentReplacedWebhookBody
- Type: ShipmentReplacedDatadatarequiredProperties: 2
The event's data. Its shape depends on the topic.
- Type: stringseller
_id requiredThe ID of the seller the event belongs to.
- Type: stringFormat: date-timetimestamprequired
When the event happened, in ISO 8601. Stable across retries; the
webhook-timestampheader is when each attempt was sent. - typeconst:shipments.replacedrequired
The webhook topic.
- versionconst:v2required
The payload version.
Responses
- 200
Acknowledge delivery. Any 2XX status counts.
- default
Fail delivery. Non-2XX statuses and timeouts are retried.
{
"type": "shipments.replaced",
"timestamp": "2026-10-20T16:00:00.123Z",
"data": {
"previous_shipment": {
"created_at": "2026-09-21T12:00:00.000Z",
"dimensions": {
"height": 1,
"length": 6,
"unit": "inch",
"width": 4
},
"documents": {
"bundled_url": "https://example.com/documents.pdf",
"label_url": "https://example.com/label.pdf"
},
"dropoff_due": "2026-09-23T07:00:00.000Z",
"fulfillment_method": "shipping",
"hazardous_material": "not_hazardous",
"id": "12345",
"insurance": {
"amount": {
"amount": "25.00",
"currency": "USD"
},
"contents": "Trading cards"
},
"recipient": {
"display_name": "Card Collector",
"id": "6789",
"username": "cardcollector"
},
"required_actions": [],
"seller_paid_shipping_cost": {
"amount": "5.99",
"currency": "USD"
},
"signature_required": false,
"status": "label_generated",
"tracking": {
"carrier": "usps",
"service": "usps_ground_advantage",
"tracking_code": "9400111899223100012345"
},
"updated_at": "2026-09-21T13:00:00.000Z",
"url": "https://www.whatnot.com/dashboard/shipments/U2hpcG1lbnROb2RlOjUxMjU0MTM5Mw==",
"weight": {
"unit": "ounce",
"value": 4
}
},
"replacement_shipment": {
"created_at": "2026-09-21T12:00:00.000Z",
"dimensions": {
"height": 1,
"length": 6,
"unit": "inch",
"width": 4
},
"documents": {
"bundled_url": "https://example.com/documents.pdf",
"label_url": "https://example.com/label.pdf"
},
"dropoff_due": "2026-09-23T07:00:00.000Z",
"fulfillment_method": "shipping",
"hazardous_material": "not_hazardous",
"id": "12345",
"insurance": {
"amount": {
"amount": "25.00",
"currency": "USD"
},
"contents": "Trading cards"
},
"recipient": {
"display_name": "Card Collector",
"id": "6789",
"username": "cardcollector"
},
"required_actions": [],
"seller_paid_shipping_cost": {
"amount": "5.99",
"currency": "USD"
},
"signature_required": false,
"status": "label_generated",
"tracking": {
"carrier": "usps",
"service": "usps_ground_advantage",
"tracking_code": "9400111899223100012345"
},
"updated_at": "2026-09-21T13:00:00.000Z",
"url": "https://www.whatnot.com/dashboard/shipments/U2hpcG1lbnROb2RlOjUxMjU0MTM5Mw==",
"weight": {
"unit": "ounce",
"value": 4
}
}
},
"version": "v2",
"seller_id": "1234567"
}