curl --request POST \
--url https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility \
--header 'Authorization: Bearer <token>' \
--header 'x-fabric-channel-id: <x-fabric-channel-id>' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>'import requests
url = "https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility"
headers = {
"x-fabric-tenant-id": "<x-fabric-tenant-id>",
"x-fabric-channel-id": "<x-fabric-channel-id>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-fabric-tenant-id': '<x-fabric-tenant-id>',
'x-fabric-channel-id': '<x-fabric-channel-id>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"x-fabric-channel-id: <x-fabric-channel-id>",
"x-fabric-tenant-id: <x-fabric-tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-tenant-id>")
req.Header.Add("x-fabric-channel-id", "<x-fabric-channel-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("x-fabric-channel-id", "<x-fabric-channel-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["x-fabric-channel-id"] = '<x-fabric-channel-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"eligibleReasonCodes": [
{
"code": "1DMG",
"description": "Damaged"
}
],
"fees": [
{
"amount": 33.9,
"amountInCurrencies": [
{
"currency": "USD",
"group": "SHOPPER",
"amount": 123.45
}
],
"currency": "USD",
"platinumFee": 33.9
}
],
"items": [
{
"eligibleQuantity": 10,
"isEligible": true,
"lineItemId": "62f3dfc438bcab1951be0a19",
"sku": "P1234"
}
],
"orderId": "62f3982438bcab1951be0a19",
"period": "30D00H00M",
"policyType": "Company Policy 2023"
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4003",
"message": "Mandatory param(s): `requiredField1` is/are missing",
"errors": [
{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4002",
"message": "Invalid value(s) specified for 'requiredField.field3'",
"errors": []
}
],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders"
}
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4001",
"message": "Unauthorized request",
"errors": [],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders/OrderId_12345"
}
}{
"message": "Not found",
"type": "CLIENT_ERROR"
}{
"type": "SERVER_ERROR",
"errorCode": "SERVICE-5000",
"message": "Internal server error",
"errors": [],
"context": {
"service": "inventories",
"endpoint": "POST /v3/inventories/actions/find-by-geography"
}
}Check order cancellation eligibility by order identifier
Determines whether an order is eligible for cancellation.
- Customers may initiate cancellations due to incorrect order placement.
- Merchants may initiate cancellations due to product unavailability, pricing errors, payment failures, or shipping restrictions.
You can also specify lineItemIds to check cancellation eligibility for specific line items.
If not provided, eligibility is checked for each item in the order.
Note:
- Use this endpoint if you have the order ID, order number, or external order ID.
- If you only have an order number, set
orderIdTypetoorder-number.
curl --request POST \
--url https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility \
--header 'Authorization: Bearer <token>' \
--header 'x-fabric-channel-id: <x-fabric-channel-id>' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>'import requests
url = "https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility"
headers = {
"x-fabric-tenant-id": "<x-fabric-tenant-id>",
"x-fabric-channel-id": "<x-fabric-channel-id>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-fabric-tenant-id': '<x-fabric-tenant-id>',
'x-fabric-channel-id': '<x-fabric-channel-id>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"x-fabric-channel-id: <x-fabric-channel-id>",
"x-fabric-tenant-id: <x-fabric-tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-tenant-id>")
req.Header.Add("x-fabric-channel-id", "<x-fabric-channel-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("x-fabric-channel-id", "<x-fabric-channel-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/orders/{orderIdType}/{orderIdValue}/actions/check-cancel-eligibility")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["x-fabric-channel-id"] = '<x-fabric-channel-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"eligibleReasonCodes": [
{
"code": "1DMG",
"description": "Damaged"
}
],
"fees": [
{
"amount": 33.9,
"amountInCurrencies": [
{
"currency": "USD",
"group": "SHOPPER",
"amount": 123.45
}
],
"currency": "USD",
"platinumFee": 33.9
}
],
"items": [
{
"eligibleQuantity": 10,
"isEligible": true,
"lineItemId": "62f3dfc438bcab1951be0a19",
"sku": "P1234"
}
],
"orderId": "62f3982438bcab1951be0a19",
"period": "30D00H00M",
"policyType": "Company Policy 2023"
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4003",
"message": "Mandatory param(s): `requiredField1` is/are missing",
"errors": [
{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4002",
"message": "Invalid value(s) specified for 'requiredField.field3'",
"errors": []
}
],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders"
}
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4001",
"message": "Unauthorized request",
"errors": [],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders/OrderId_12345"
}
}{
"message": "Not found",
"type": "CLIENT_ERROR"
}{
"type": "SERVER_ERROR",
"errorCode": "SERVICE-5000",
"message": "Internal server error",
"errors": [],
"context": {
"service": "inventories",
"endpoint": "POST /v3/inventories/actions/find-by-geography"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
A header used by fabric to identify the tenant making the request. You must include tenant id in the authentication header for an API request to access any of fabric’s endpoints. You can retrieve the tenant id , which is also called account id, from Copilot. This header is required.
x-fabric-channel-id identifies the sales channel where the API request is being made; primarily for multichannel use cases. The channel ids are 12 corresponding to US and 13 corresponding to Canada. The default channel id is 12. This field is required.
Unique request ID
Path Parameters
The type of order identifier used to locate the order.
Supported values:
order-idorder-numberorder-external-id
order-id, order-number, order-external-id The value of the specified order identifier.
Query Parameters
The merchant-defined cancellation policy to use when evaluating eligibility.
If omitted, the default policy is applied.
One or more line item IDs.
- If specified, eligibility is checked only for the given line items.
- If omitted, eligibility is checked for each item in the order.
Response
OK
Eligibility details object.
Reason codes for returns
Show child attributes
Show child attributes
Fee details
Show child attributes
Show child attributes
Item's eligibility for return, cancellation, or exchange
Show child attributes
Show child attributes
24-character system-generated order ID
"62f3982438bcab1951be0a19"
Return, exchange or cancellation window as per merchant policy
"30D00H00M"
Policy type that determines eligibility of exchange, return, or cancellation. If omitted, the default policy is considered.
"Company Policy 2023"
Was this page helpful?
