---
title: "GetCancellationOptions"
method: GET
path: "/api/PostSale/GetCancellationOptions"
tags: ["PostSale"]
---

# GetCancellationOptions

`GET /api/PostSale/GetCancellationOptions`

This method is used to validate whether a channel cancellation can be submitted for a given order
<b>Permissions Required: </b> GlobalPermissions.OrderBook.OpenOrders.CancellationsNode
<b>Rate limit: </b><span style="background-color:#0272d9;color:white;padding:4px 8px;text-align:center;border-radius:5px; font-size: small;"><b>150</b></span> / minute

## Query parameters

- `orderId` string, uuid

## Response `200`

OK

- CancellationOptions
  - `CanCancelInternally` boolean
  - `AutomaticRefundOnCancel` boolean
  - `CanCancel` boolean
  - `CanCancelOrderLines` boolean
  - `CanCancelPartially` boolean
  - `CanCancelFreeText` boolean
  - `CancelFreeTextOrNoteMaxLength` integer
  - `CancellationReasons` ChannelReason[]
    - `Types` 'None' | 'Cancellation' | 'ItemRefund' | 'ShippingRefund' | 'ServiceRefund' | 'ItemReturn' | 'InsufficientRefund' | 'AdditionalRefund' | 'RejectReturn' | 'RejectRefund'
    - `Tag` string
    - `DisplayName` string
    - `SubReasons` ChannelSubReason[]
      - `Tag` string
      - `DisplayName` string
  - `Order` OrderDetails
    - `OrderId` string, uuid — Order ID (pkOrderId)
    - `NumOrderId` integer — Linnworks order number
    - `Processed` boolean — If order is processed
    - `ProcessedDateTime` string, date-time — Date and time when order was processed
    - `FulfilmentLocationId` string, uuid — Location ID
    - `GeneralInfo` OrderGeneralInfo — BasicOrderGeneralInfo
      - `Status` integer — Order Status (0 = UNPAID, 1 = PAID, 2 = RETURN, 3 = PENDING, 4 = RESEND)
      - `StatusDescription` string, nullable — Description of the order status
      - `LabelPrinted` boolean — Is label printed?
      - `LabelError` string, nullable — Is there a label error?
      - `InvoicePrinted` boolean — Is invoice printed?
      - `InvoicePrintError` string, nullable — Is there a invoice print error?
      - `PickListPrinted` boolean — Is pick list printed?
      - `PickListPrintError` string, nullable — Is there a pick list print error?
      - `NotesCount` integer — Quantity of order notes
      - `Marker` integer — Order marker (0 = NOT TAG, 1 = Tag 1, 2 = Tag 2, 3 = Tag 3, 4 = Tag 4, 5 = Tag 5, 6 = Tag 6, 7 = Parked)
      - `Identifiers` BasicIdentifier[], nullable — Order identifiers. [Prime | Scheduled]
        - `Tag` string, nullable — Internal tag for identification purposes
        - `Name` string, nullable — Display name for the identifier
      - `ReferenceNum` string, nullable — Order reference number (Channel defined)
      - `SecondaryReference` string, nullable — An additional reference number for the order (Used by some channels)
      - `ExternalReferenceNum` string, nullable — This is an additional reference number from the sales channel, typically used by eBay
      - `ReceivedDate` string, date-time — The date and time at which the order was placed on the sales channel
      - `Source` string, nullable — Order ChannelName/Source (e.g. EBAY)
      - `SubSource` string, nullable — Order SubSource (e.g. EBAY1)
      - `DespatchByDate` string, date-time — Despatch by Date
      - `ScheduledDelivery` ScheduledDelivery — ScheduledDelivery
        - `From` string, date-time, nullable — The start of requested delivery
        - `To` string, date-time, nullable — The end of requested delivery
      - `HasScheduledDelivery` boolean — Does the order have scheduled delivery dates?
      - `NumItems` integer — Quantity of order items
      - `StockAllocationType` 'NotAllocated' | 'Insuffient' | 'Partial' | 'Full' | 'OverAllocated' — StockAllocationType
    - `ShippingInfo` OrderShippingInfo — OrderShippingInfo
      - `Vendor` string, nullable — Courier name (e.g. Royal Mail)
      - `PostalServiceId` string, uuid — Postal service ID
      - `PostalServiceName` string, nullable — Postal service name (e.g. Next day delivery)
      - `TotalWeight` number, double — Order total weight
      - `ItemWeight` number, double — Order item weight
      - `PackageCategoryId` string, uuid — Package category ID
      - `PackageCategory` string, nullable — Package category name
      - `PackageTypeId` string, uuid, nullable — Package type ID
      - `PackageType` string, nullable — Package type name
      - `TrackingNumber` string, nullable — Order tracking number provided by courier
      - `ManualAdjust` boolean — If there is an adjustment to shipping cost was made
    - `CustomerInfo` OrderCustomerInfo — OrderCustomerInfo
      - `ChannelBuyerName` string, nullable — Username of customer (Comes from channel)
      - `Address` ShippingAddress — BillingAddress
        - `Address1` string, nullable — First line of customer address.
        - `Address2` string, nullable — Second line of customer address.
        - `Address3` string, nullable — Third line of customer address.
        - `Town` string, nullable — Customer's town.
        - `Region` string, nullable — Customer's region.
        - `PostCode` string, nullable — Customer's postcode.
        - `Country` string, nullable — Customer's country.
        - `CountryId` string, uuid — Customer's country id.
        - `FullName` string, nullable — Customer's first and second name.
        - `Company` string, nullable — Customer's company name.
        - `PhoneNumber` string, nullable — Customer's telephone number.
        - `EmailAddress` string, nullable — Customer's email address.
      - `BillingAddress` union — Customer billing address
        - BillingAddress — BillingAddress
          - `Address1` string, nullable — First line of customer address.
          - `Address2` string, nullable — Second line of customer address.
          - `Address3` string, nullable — Third line of customer address.
          - `Town` string, nullable — Customer's town.
          - `Region` string, nullable — Customer's region.
          - `PostCode` string, nullable — Customer's postcode.
          - `Country` string, nullable — Customer's country.
          - `CountryId` string, uuid — Customer's country id.
          - `FullName` string, nullable — Customer's first and second name.
          - `Company` string, nullable — Customer's company name.
          - `PhoneNumber` string, nullable — Customer's telephone number.
          - `EmailAddress` string, nullable — Customer's email address.
        - ShippingAddress — BillingAddress
          - `Address1` string, nullable — First line of customer address.
          - `Address2` string, nullable — Second line of customer address.
          - `Address3` string, nullable — Third line of customer address.
          - `Town` string, nullable — Customer's town.
          - `Region` string, nullable — Customer's region.
          - `PostCode` string, nullable — Customer's postcode.
          - `Country` string, nullable — Customer's country.
          - `CountryId` string, uuid — Customer's country id.
          - `FullName` string, nullable — Customer's first and second name.
          - `Company` string, nullable — Customer's company name.
          - `PhoneNumber` string, nullable — Customer's telephone number.
          - `EmailAddress` string, nullable — Customer's email address.
      - `TaxId` string, nullable — Buyer's tax number.
    - `TotalsInfo` OrderTotalsInfo — OrderTotalsInfo
      - `Subtotal` number, double — Order subtotal
      - `PostageCost` number, double — Order postage cost
      - `PostageCostExTax` number, double — Order postage cost ex. tax
      - `Tax` number, double — Tax
      - `TotalCharge` number, double — Total charge
      - `PaymentMethod` string, nullable — Payment method
      - `PaymentMethodId` string, uuid — Payment method ID
      - `TotalDiscount` number, double — Total discount applied to the order
      - `Currency` string, nullable — Order currency
      - `CountryTaxRate` number, double — Country tax rate
      - `ConversionRate` number, double — Currency conversion rate. Set at point of save by the currency
    - `ExtendedProperties` ExtendedProperty[] — Extended properties of an order
      - `RowId` string, uuid — Record row ID
      - `Name` string, nullable — Extended property name
      - `Value` string, nullable — Extended property value
      - `Type` string, nullable — Extended property type
    - `FolderName` string[] — Folder names assigned to an order
    - `Items` OrderItem[] — List of order items
      - `RowId` string, uuid — Record row ID
      - `StockItemId` string, uuid — Stock Item ID
      - `IsService` boolean — Is the item a service?
      - `IsUnlinked` boolean — Is the item unlinked?
      - `Quantity` integer — Quantity
    - `Notes` OrderNote[] — List of order notes
      - `OrderNoteId` string, uuid — Order note ID
      - `NoteDate` string, date-time — Date and time when note was added
      - `Internal` boolean — Order note type (Internal or External)
      - `Note` string, nullable — Note's text
      - `CreatedBy` string, nullable — User that created note
      - `NoteTypeId` integer, nullable — Type of note such as "Processing Note". Non specific note types can be set to null.
    - `PaidDateTime` string, date-time — Date and time when the order was marked as paid
    - `TaxId` string — Buyer's tax number.
  - `CancellationHeader` OrderRefundHeader
    - `RefundHeaderId` integer
    - `Currency` string
    - `Amount` number, double
    - `RefundLines` VerifiedRefund[]
      - `RefundRowId` string, uuid — A unique identifier for the refund line
      - `RefundHeaderId` integer — A unique identifier for the refund header this line belongs to
      - `Status` PostSaleStatus
        - `StatusHeader` 'OPEN' | 'PROCESSED' | 'ERROR' | 'ERROR_ACKED' | 'PENDING' — Identifies whether the refund is open, processed, or in an erroneous state
        - `StatusDetail` PostSaleSubStatus
          - `StatusTag` string — For an individual refund line, this identifies the line's state on the channel. For the header, if all its lines have the same StatusTag, it will also have the same StatusTag. If not, it will determine an appropriate StatusTag based on those of its lines
          - `StatusDescription` string — A user-friendly descriptor of the StatusTag
          - `Actionable` boolean — Determines whether the refund is in a state where it requires action from the user
          - `ActionDescription` string — A user-friendly descriptor of what "actioning" the refund will do on the channel
          - `EditableFields` string[] — Where certain fields need to be modified for the refund to be successfully actioned, this list is populated with a list of the field names, allowing them to be edited as necessary
      - `RefundedUnit` 'Item' | 'Shipping' | 'Service' | 'Additional' — Identifies the type of refund for this line
      - `IsShippingRefund` boolean — Identifies whether the refund is a shipping refund
      - `IsAdditionalRefund` boolean — Identifies whether the refund is an additional refund
      - `IsCancellation` boolean — Identifies whether the refund row is a cancellation
      - `RefundedItem` VerifiedRefundItem
        - `OrderItemRowId` string, uuid — The unique order item identifier
        - `ReturnRowId` integer — A unique identifier for the return line this refund relates to. If null, it is an independent refund
        - `ItemSKU` string — The Linnworks SKU for the item, assuming it is linked. If it is not, this matches the channel SKU
        - `ChannelSKU` string — The channel's SKU for the item
        - `ItemTitle` string — For a linked item, the Linnworks item title for this channel (or the default item title where a specific channel title does not exist). For an unlinked item, this is the title provided by the channel
        - `Cost` number, double — The tax-inclusive cost for this line
        - `CancelledQuantity` integer — If a refund is linked to a cancellation request, this field denotes the amount of the item cancelled
      - `ValidationError` string — If validation has failed for this item, the field will be populated with the appropriate error message
      - `Error` string
      - `Errors` RefundError[]
        - `RefundRowId` string, uuid
        - `ErrorMessage` string
        - `DateStamp` string, date-time
        - `Acknowledged` boolean
      - `Actioned` boolean — Line-level indicator of whether the refund has been actioned
      - `ActionedDate` string, date-time — If a refund has been actioned, this denotes the date it was actioned. For not actioned lines, this value is null
      - `ChannelInitiated` boolean — Identifies whether the refund was created manually in Linnworks, or downloaded from the channel automatically
      - `Internal` boolean — Identifies whether the line is processed only internally or also on a third-party channel
      - `Deleted` boolean — Identifies whether the line has been removed from the refund, and is pending an update to the database to reflect this
      - `ExternalReference` string — The channel reference number for this refund
      - `IsFreeText` boolean — Identifies whether the refund reason is provided in freetext, or as one of a predefined set of options
      - `FreeTextOrNote` string — For freetext refund reasons, this is the reason that will be sent to the channel. Otherwise, it is considered an internal note
      - `Amount` number, double — The amount to be refunded for this line
      - `Quantity` integer — Used when the refund is part of a return
      - `ReasonTag` string — For channels that support predefined refund reasons, this is the tag that identifies a predefined reason
      - `SubReasonTag` string — For channels that support a secondary predefined refund reason, this is the tag that identifies a predefined secondary reason
      - `InsufficientRefundTag` string — For channels that require a reason when the refund is lower than the full line amount, this is the tag that identifies a predefined insufficient refund reason
      - `InsufficientRefundNote` string — For channels that require a reason when the refund is lower than the full line amount, and support a freetext note, this field populates that note
      - `ReasonCategory` string — Internal reason category
    - `RefundLink` string
    - `OrderId` string, uuid
    - `NumOrderId` integer
    - `Status` PostSaleStatus
      - `StatusHeader` 'OPEN' | 'PROCESSED' | 'ERROR' | 'ERROR_ACKED' | 'PENDING' — Identifies whether the refund is open, processed, or in an erroneous state
      - `StatusDetail` PostSaleSubStatus
        - `StatusTag` string — For an individual refund line, this identifies the line's state on the channel. For the header, if all its lines have the same StatusTag, it will also have the same StatusTag. If not, it will determine an appropriate StatusTag based on those of its lines
        - `StatusDescription` string — A user-friendly descriptor of the StatusTag
        - `Actionable` boolean — Determines whether the refund is in a state where it requires action from the user
        - `ActionDescription` string — A user-friendly descriptor of what "actioning" the refund will do on the channel
        - `EditableFields` string[] — Where certain fields need to be modified for the refund to be successfully actioned, this list is populated with a list of the field names, allowing them to be edited as necessary
    - `OrderSource` string
    - `OrderSubSource` string
    - `ExternalReference` string
    - `ChannelInitiated` boolean
    - `CreatedDate` string, date-time
    - `Actioned` boolean
    - `LastActionDate` string, date-time
  - `AllowRefundOnCancel` boolean
  - `Errors` string[]
  - `OrderIsLockedOnUnhandledError` boolean

---

[API](https://skmtc.net/linnworks/apis/authenticate-api.md) · [All operations](https://skmtc.net/linnworks/apis/authenticate-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/linnworks/authenticate-api/revisions/0123569a22fb/schema)
