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

# Cancel a parcel

> Cancel an announced parcel (if supported by the carrier) or delete an unannounced parcel.

<Warning>
  **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).
</Warning>

You can use this endpoint to:

1. **Cancel** an announced parcel; or,
2. **Delete** an unannounced parcel

## Cancelling a parcel

When you **cancel** a parcel which has already been announced (has a shipping label attached to it), you will still be able to find it via the `parcel_id` and the [Retrieve a parcel](/api/v2/parcels/retrieve-a-parcel) endpoint. In the Sendcloud platform, it will appear in your **Cancelled labels** overview.

**Insurance Notice**: If you proceed to ship a parcel that was initially cancelled, the parcel's insurance coverage will become void, and any insurance claims will not be valid for that shipment.

<Warning>
  After 42 days, it's no longer possible to cancel a parcel, even if it hasn't been shipped.
</Warning>

### Conditions for label cancellation

It's not always possible to cancel a parcel which has already been announced. As a result, cancellation is not guaranteed and may be asynchronous depending on the state of the parcel. When you send a cancellation request via this endpoint, the response will indicate the status of the cancellation request.

<Info>
  Each carrier has different cancellation deadlines. Some carriers do not accept cancellation requests regardless of whether or not the label is cancelled within the deadline. You can find more information about cancellation deadlines in our [help center](https://support.sendcloud.com/hc/en-us/articles/360025143991-How-do-I-cancel-my-shipment-).
</Info>

## Deleting a parcel

When you **delete** a parcel which hasn't been announced, the parcel will be removed from the Sendcloud system and you will no longer be able to locate it via the parcel `id`. You will need to create the parcel again if you want to announce it at a later date.


## OpenAPI

````yaml /.openapi/v2/parcels/openapi.yaml post /parcels/{id}/cancel
openapi: 3.1.0
info:
  title: Parcels
  version: 2.0.0
  description: >
    At the core of the Sendcloud Shipping API is the Parcels resource. Parcels
    are data objects which can be announced, and have a shipping method and
    shipping label assigned to them. You can also think of parcels as
    **shipments**.

    You can use this resource to perform a number of activities:


    * Create a parcel and immediately announce it

    * Create a parcel and choose not to announce it (no shipping label is
    created)

    * Update the details, or create a label, for an unannounced parcel

    * Cancel an announced parcel


    <!-- theme: info -->

    > International parcels require more information than domestic parcels.
    Certain customs documents must be created when shipping to countries outside
    the EU. For Sendcloud to successfully generate these documents, all the
    necessary information must be available in your parcel request. Read more
    in-depth information on [international shipping and its
    requirements](/docs/shipping/international-shipping/).
  contact:
    name: Sendcloud API Support
    url: https://www.sendcloud.dev
    email: contact@sendcloud.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://panel.sendcloud.sc/api/v2
    description: Sendcloud Production
security: []
tags:
  - name: Parcels
paths:
  /parcels/{id}/cancel:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
        description: ID of the parcel
    post:
      tags:
        - Parcels
      summary: Cancel a parcel
      description: >-
        Cancel an announced parcel (if supported by the carrier) or delete an
        unannounced parcel.
      operationId: sc-public-v2-scp-post-cancel_specific
      responses:
        '200':
          description: |-
            Cancelled
            - The parcel has been cancelled if all valid conditions apply.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelParcelStatus'
              examples:
                Cancelled:
                  summary: Successfully Cancelled
                  value:
                    status: cancelled
                    message: Parcel has been cancelled
        '202':
          description: >-
            Parcel cancelation has been queued

            - The parcel having the status of ready to send (1000) will be
            watched for 14 days and if nothing nothing has changed to the
            parcel, it will be cancelled.
        '400':
          description: >-
            Cancellation rejected

            - When parcel has the status of 2000 which means it is already
            cancelled.

            - After period of 42 days of the parcel being announced we cannot
            cancel it and will let you know about it through a response message.

            - When parcel has the status ode (11) saying that it’s delivered it
            will not do anything to the parcel and your request will be
            rejected.
        '404':
          description: Not Found
        '410':
          description: >-
            Deleted

            - Happens when the parcel announcement has failed, the parcel status
            contains id of 1002 and you try to cancel it.
      security:
        - HTTPBasicAuth: []
        - OAuth2ClientCreds: []
components:
  schemas:
    CancelParcelStatus:
      title: Cancel Parcel Status Object
      type: object
      properties:
        status:
          type: string
          minLength: 1
        message:
          type: string
          minLength: 1
      required:
        - status
        - message
  securitySchemes:
    HTTPBasicAuth:
      type: http
      description: >-
        Basic Authentication using API key and secrets is currently the main
        authentication mechanism.
      scheme: basic
    OAuth2ClientCreds:
      type: oauth2
      description: >-
        OAuth2 is a standardized protocol for authorization that allows users to
        share their private resources stored on one site with another site
        without having to provide their credentials. OAuth2 Client Credentials
        Grant workflow. This workflow is typically used for server-to-server
        interactions that require authorization to access specific resources.
      flows:
        clientCredentials:
          tokenUrl: https://account.sendcloud.com/oauth2/token/
          scopes:
            api: Default OAuth scope required to access Sendcloud API.

````