GET /orders/{orderId}/cancellation-requests

Read every cancellation request a buyer has opened on the order, pending and resolved, oldest first. Use it to recover a missed order.cancellation_request.* event: each event carries one of these items. Answer a pending request by declining it with POST /orders/{orderId}/cancellation-requests/{requestId}/decline, or honor it by cancelling the lines it names with POST /orders/{orderId}/cancel.

Example

These examples send requests to the sandbox.

Replace the example orderId in the URL with your own.

Generated cURL request - Sandbox
curl --request GET \
  --url 'https://api-sandbox.snapcaster.ca/api/v1/marketplace/orders/ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW/cancellation-requests' \
  --header "Authorization: Bearer $MARKETPLACE_API_KEY"
Response 200: One pending request
{
  "success": true,
  "data": {
    "items": [
      {
        "id": "cnr_8d3f2a61b0c94e7f9a15c2d48e6b7031",
        "order_id": "ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW",
        "status": "pending",
        "reason": "Ordered the wrong printing",
        "resolution_note": null,
        "created_at": "2026-09-04T19:01:12.000Z",
        "resolved_at": null,
        "lines": [
          {
            "line_ref": "oln_1f0c8a4d7e2b45c9a1d6f3b8e07c9241",
            "sku_id": 14602,
            "quantity": 1
          }
        ]
      }
    ]
  }
}

Endpoint

EnvironmentURL
Sandboxhttps://api-sandbox.snapcaster.ca/api/v1/marketplace/orders/{orderId}/cancellation-requests
Productionhttps://api.snapcaster.ca/api/v1/marketplace/orders/{orderId}/cancellation-requests
Authentication
  • marketplaceApiKey - http bearer. Send the seller's marketplace API key as Authorization: Bearer mp_{sellerCode}_{hex}. The mp_{sellerCode}_ prefix identifies the seller; the trailing hex is the secret. The seller generates the key and supplies it to your platform.

Request

Path parameters

orderId string required

The opaque public order id (the webhook/poll order_id).

Constraints: minimum length: 1 Example ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW

Headers

X-Snapcaster-Api-Version string

Override the platform pin for this request only. Webhook versions and the platform pin do not change.

Constraints: allowed values: 2026-10 Example 2026-10

Response

200

The order's cancellation requests.

Response body: CancellationRequestListResponse

success boolean required

Whether the operation completed as requested.

Constraints: allowed values: true Example true

data object required

The operation or event payload.

Show child fieldsHide child fields
data.items CancellationRequest[] required

Every cancellation request on the order, pending and resolved, oldest first.

Show child fieldsHide child fields
data.items[].id string required

The cancellation request id (cnr_…), stable for the life of the request (STABLE).

Example cnr_8d3f2a61b0c94e7f9a15c2d48e6b7031

data.items[].order_id string required

The order the buyer asked to cancel (STABLE).

Example ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW

data.items[].status string required

pending until it is answered. honored: a cancellation covered it. declined: the seller refused it, with resolution_note. withdrawn: the buyer took it back (STABLE).

Constraints: allowed values: pending, honored, declined, withdrawn Example pending

data.items[].reason string or null required

The buyer's own words, or null when they gave none (STABLE).

Example Ordered the wrong printing

data.items[].resolution_note string or null required

The decline reason the buyer is shown. Null unless status is declined (STABLE).

Example null

data.items[].created_at string required

When the buyer opened the request (STABLE).

Constraints: format: date-time Example 2026-09-04T19:01:12.000Z

data.items[].resolved_at string or null required

When the request was honored, declined or withdrawn. Null while it is pending (STABLE).

Constraints: format: date-time Example null

data.items[].lines array of object or null required

The lines the buyer asked to cancel, or null when they asked to cancel the whole order (STABLE).

Show child fieldsHide child fields
data.items[].lines[].line_ref string or null required

The purchase line the buyer asked to cancel, the same line_ref the order carries. Null only on a request recorded before line refs existed.

Example oln_1f0c8a4d7e2b45c9a1d6f3b8e07c9241

data.items[].lines[].sku_id integer required

The SKU now on that line (STABLE).

Example 14602

data.items[].lines[].quantity integer

How many units the buyer asked to cancel. Omitted means the whole line (STABLE).

Constraints: exclusive minimum: 0 Example 1

Errors

Errors return a MarketplaceError body, except HTTP 500 (ApiError). Error codes explains both error bodies and lists every code.

  • 400 INVALID_REQUEST UNSUPPORTED_API_VERSION

    The request failed validation (INVALID_REQUEST). Unknown or retired API-version override (UNSUPPORTED_API_VERSION).

    Do this: Correct the fields named in the error details, then retry the request. For UNSUPPORTED_API_VERSION, choose a supported version from the API versioning guide.

  • 401 UNAUTHORIZED

    Missing or invalid marketplace API key (UNAUTHORIZED).

    Do this: Send the marketplace API key for this seller as a Bearer token, then retry.

  • 403 SUBSCRIPTION_EXCLUDES_ORDERS

    The platform's subscription is inventory, which does not include orders (SUBSCRIPTION_EXCLUDES_ORDERS). Only orders and both subscriptions read and act on orders.

    Do this: Do not retry. Ask Snapcaster to change the platform subscription to orders or both if the platform should handle orders.

  • 404 ORDER_NOT_FOUND

    No order matches this id for the authenticated seller (ORDER_NOT_FOUND). Another seller's order also returns 404, so the response does not reveal whether it exists.

    Do this: Check the order_id against GET /orders for the authenticated seller, then retry with that id.

  • 500 INTERNAL_ERROR

    An unexpected failure (INTERNAL_ERROR).

    Do this: Retry with bounded retries and jitter. If the failure persists, contact Snapcaster with the X-Correlation-ID response header.