---
title: "Cancel a pickup"
method: POST
path: "/v1/pickups/{pickup_id}/cancel"
tags: ["ship"]
---

# Cancel a pickup

`POST /v1/pickups/{pickup_id}/cancel`

## Request

- Base URL: `https://api.noerrands.com/c/ship`
- URL: `https://api.noerrands.com/c/ship/v1/pickups/{pickup_id}/cancel`
- Auth: HTTP bearer

Cancel a scheduled pickup with confirm true, and refund it in full if it was paid; irreversible, and the driver will not come. Free. Sensitive write: it requires the human's approval to cancel.

## Path parameters

- `pickup_id` string, required

## Request body

- object
  - `pickup_id` string, required
  - `confirm` true, required: Must be true. Set it only after the human approved this exact action and price.

## Response `200`

Success.

- object
  - `pickup_id` string, required
  - `shipment_id` string, required
  - `status` 'quoted' | 'scheduled' | 'cancelled', required
  - `carrier` string
  - `service` string
  - `confirmation` string: The carrier's confirmation number. Give it to the human.
  - `earliest` string, required
  - `latest` string, required
  - `credits_charged_cents` integer, required
  - `balance_cents` integer, required: General credit left.

## Other responses

- `400`: invalid_request
- `401`: unauthorized. Carries WWW-Authenticate: Bearer resource_metadata="..."
- `403`: forbidden_scope: a write tool called with a read-only key.
- `404`: not_found
- `429`: rate_limited
- `502`: provider_error

---

[API](https://skmtc.dev/noerrands/apis/no-errands-ship-api.md) · [All operations](https://skmtc.dev/noerrands/apis/no-errands-ship-api/llms.txt) · [OpenAPI document](https://skmtc.dev/noerrands/apis/no-errands-ship-api/revisions/f0615c6bd5d8?raw)
