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

# Retrieve Cancellation

> Retrieve the status of a cancellation

You will receive either a `request_processing` response, an error response, or a successful cancellation response of type `cancellation_response`.

## Attempting to Cancel State

In approximately 50% of cases, Amazon cannot immediately cancel an order and will respond with an "attempting to cancel" status:

```json Example attempting_to_cancel Response theme={null}
{
  "_type": "error",
  "code": "attempting_to_cancel",
  "message": "The retailer is attempting to cancel the order.",
  "data": {
    "msg": "Attempting to cancel order"
  },
  "request": {
    ...
  }
}
```

<Info>
  **Processing Time:** When a cancellation enters the `attempting_to_cancel` state, Zinc will continue polling the retailer to determine the final status. No guarantees can be made for how long this will take.
</Info>

### State Transitions

The `attempting_to_cancel` state is temporary and will eventually resolve to one of:

* **Successful cancellation** - Order was cancelled successfully
* **Failed cancellation** - Cancellation was rejected or failed

### Webhook Behavior

If you're using webhooks, you'll receive notifications for state changes:

1. **Initial `attempting_to_cancel`** - `request_failed` webhook is triggered
2. **Final resolution:**
   * If cancellation succeeds → `request_succeeded` webhook
   * If cancellation fails → `request_failed` webhook (again with updated response)

<Tip>
  Using webhooks eliminates the need to poll the cancellation request ID for status updates.
</Tip>


## OpenAPI

````yaml GET /v1/cancellations/{request_id}
openapi: 3.0.0
info:
  title: Zinc API
  version: 1.0.0
  description: API for placing orders and retrieving product data from top retailers.
servers:
  - url: https://api.zinc.io
    description: Production server
security:
  - basicAuth: []
paths:
  /v1/cancellations/{request_id}:
    get:
      summary: Retrieve Cancellation
      description: Retrieve a cancellation response given a cancellation request id.
      parameters:
        - name: request_id
          in: path
          required: true
          schema:
            type: string
          description: The unique identifier for the cancellation request
      responses:
        '200':
          description: Cancellation details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancellationDetailsResponse'
        '400':
          description: Request is currently processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessingError'
components:
  schemas:
    CancellationDetailsResponse:
      type: object
      properties:
        _type:
          type: string
          description: Response type
          enum:
            - cancellation_response
        merchant_order_id:
          type: string
          description: The merchant order id of the order that was cancelled
        request:
          type: object
          description: The original request that was sent to the Zinc API
    ProcessingError:
      type: object
      properties:
        _type:
          type: string
          description: Response type
          enum:
            - error
        code:
          type: string
          description: >-
            Error code. Most commonly `request_processing`, but can be any error
            code from the [Error
            Handling](/api-reference/introduction/error-handling) documentation.
        message:
          type: string
          description: Error message
        data:
          type: object
          description: Additional error data
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Use your client token as the username. Leave the password blank.

````