---
title: "Cancel external order"
method: POST
path: "/open-api/v1.0/external-orders/{externalSource}/{externalOrderId}/cancel"
tags: ["External Orders"]
---

# Cancel external order

`POST /open-api/v1.0/external-orders/{externalSource}/{externalOrderId}/cancel`

*Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).*

Cancels an external order and its fulfillments. Payment is not processed since external orders are paid on the marketplace. Use forceCancel=true to bypass IN_PRODUCTION and ON_HOLD restrictions (cannot bypass PACKAGED or SHIPPED statuses).

## Path parameters

- `externalSource` string, required
- `externalOrderId` string, required

## Request body

- ComFourthwallOpenapiModelCancelExternalOrderRequest
  - `reason` string, required — Reason for cancellation (for audit purposes)
  - `forceCancel` boolean, required — If true, bypasses IN_PRODUCTION and ON_HOLD restrictions (cannot bypass PACKAGED or SHIPPED)

## Response `200`

OK

- ComFourthwallOpenapiModelCancelExternalOrderResponseV1 — Result of an external order cancellation request
  - `externalOrderId` string, required
  - `externalSource` string, required
  - `fourthwallOrderId` string, uuid, required
  - `status` string, required — Overall cancellation status
  - `cancelledFulfillments` ComFourthwallOpenapiModelCancelledFulfillmentInfoV1[], required — Fulfillments that were successfully cancelled
    - `fulfillmentId` string, required
    - `previousStatus` string, required — Status before cancellation
    - `provider` string, required
    - `itemCount` integer, required — Number of items in this fulfillment
  - `skippedFulfillments` ComFourthwallOpenapiModelSkippedFulfillmentInfoV1[], required — Fulfillments that were skipped (could not be cancelled)
    - `fulfillmentId` string, required
    - `status` string, required
    - `reason` string, required — Reason why this fulfillment was skipped
    - `itemCount` integer, required — Number of items in this fulfillment

## Other responses

- `400` — Possible errors: `CANNOT_CANCEL_EXTERNAL_ORDER`, `FULFILLMENT_INVALID_STATUS_TRANSITION`
- `404` — Possible errors: `EXTERNAL_ORDER_NOT_FOUND_BY_EXTERNAL_ID`, `FULFILLMENT_NOT_FOUND`, `FULFILLMENT_ORDER_NOT_FOUND`, `OFFER_VARIANT_NOT_FOUND_ERROR`, `ORDER_ID_NOT_FOUND`
- `429` — Rate limited: 100 requests / 10 seconds per shop.

---

[API](https://skmtc.net/fourthwall/apis/fourthwall-apis-2.md) · [All operations](https://skmtc.net/fourthwall/apis/fourthwall-apis-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fourthwall/fourthwall-apis-2/revisions/ef273312f051/schema)
