curl --location --request DELETE 'https://api.stateset.com/v1/orders/ord_123abc' \
--header 'Authorization: Token <token>'
curl --location --request DELETE 'https://api.stateset.com/v1/orders/ord_123abc?archive_instead=true' \
--header 'Authorization: Token <token>'
mutation orderDeleteMutation {
orderDelete(id: "${orderId}", archiveInstead: false) {
success
order {
id
deleted
}
userErrors {
field
message
}
}
}
const deletedOrder = await stateset.orders.delete('ord_123abc');
// Or archive instead
const archivedOrder = await stateset.orders.delete('ord_123abc', {
archive_instead: true
});
deleted_order = stateset.orders.delete('ord_123abc')
# Or archive instead
archived_order = stateset.orders.delete('ord_123abc', {
'archive_instead': True
})
deleted_order = Stateset::Order.delete('ord_123abc')
# Or archive instead
archived_order = Stateset::Order.delete('ord_123abc', {
archive_instead: true
})
deletedOrder, err := stateset.Orders.Delete("ord_123abc")
// Or archive instead
archivedOrder, err := stateset.Orders.Delete("ord_123abc", DeleteOptions{
ArchiveInstead: true
})
Order deletedOrder = stateset.orders.delete("ord_123abc");
// Or archive instead
DeleteOptions options = new DeleteOptions();
options.setArchiveInstead(true);
Order archivedOrder = stateset.orders.delete("ord_123abc", options);
$deleted_order = $stateset->orders->delete('ord_123abc');
// Or archive instead
$archived_order = $stateset->orders->delete('ord_123abc', [
'archive_instead' => true
]);
var deletedOrder = await stateset.Orders.Delete("ord_123abc");
// Or archive instead
var archivedOrder = await stateset.Orders.Delete("ord_123abc", new DeleteOptions {
ArchiveInstead = true
});
{
"id": "ord_123abc",
"deleted": true,
"archived": false,
"related_records": {
"payments": 0,
"shipments": 0,
"returns": 0,
"refunds": 0
},
"deleted_at": "2024-01-15T14:30:00Z",
"deleted_by": "user_123"
}
{
"id": "ord_123abc",
"deleted": false,
"archived": true,
"status": "archived",
"archived_at": "2024-01-15T14:30:00Z",
"archived_by": "user_123",
"archive_reason": "User requested archival instead of deletion"
}
{
"error": {
"code": "order_not_deletable",
"message": "Cannot delete order that has been shipped. Only draft or cancelled orders can be deleted.",
"details": {
"order_id": "ord_123abc",
"current_status": "shipped",
"deletable_statuses": ["draft", "cancelled"],
"suggestion": "Cancel the order first or archive it instead"
}
}
}
{
"error": {
"code": "active_returns",
"message": "Cannot delete order with active returns. Please resolve all returns first.",
"details": {
"order_id": "ord_123abc",
"active_returns": 2,
"return_ids": ["ret_456def", "ret_789ghi"]
}
}
}
Delete Order
This endpoint deletes an order. Only draft or cancelled orders can be deleted.
DELETE
/
v1
/
orders
/
:id
curl --location --request DELETE 'https://api.stateset.com/v1/orders/ord_123abc' \
--header 'Authorization: Token <token>'
curl --location --request DELETE 'https://api.stateset.com/v1/orders/ord_123abc?archive_instead=true' \
--header 'Authorization: Token <token>'
mutation orderDeleteMutation {
orderDelete(id: "${orderId}", archiveInstead: false) {
success
order {
id
deleted
}
userErrors {
field
message
}
}
}
const deletedOrder = await stateset.orders.delete('ord_123abc');
// Or archive instead
const archivedOrder = await stateset.orders.delete('ord_123abc', {
archive_instead: true
});
deleted_order = stateset.orders.delete('ord_123abc')
# Or archive instead
archived_order = stateset.orders.delete('ord_123abc', {
'archive_instead': True
})
deleted_order = Stateset::Order.delete('ord_123abc')
# Or archive instead
archived_order = Stateset::Order.delete('ord_123abc', {
archive_instead: true
})
deletedOrder, err := stateset.Orders.Delete("ord_123abc")
// Or archive instead
archivedOrder, err := stateset.Orders.Delete("ord_123abc", DeleteOptions{
ArchiveInstead: true
})
Order deletedOrder = stateset.orders.delete("ord_123abc");
// Or archive instead
DeleteOptions options = new DeleteOptions();
options.setArchiveInstead(true);
Order archivedOrder = stateset.orders.delete("ord_123abc", options);
$deleted_order = $stateset->orders->delete('ord_123abc');
// Or archive instead
$archived_order = $stateset->orders->delete('ord_123abc', [
'archive_instead' => true
]);
var deletedOrder = await stateset.Orders.Delete("ord_123abc");
// Or archive instead
var archivedOrder = await stateset.Orders.Delete("ord_123abc", new DeleteOptions {
ArchiveInstead = true
});
{
"id": "ord_123abc",
"deleted": true,
"archived": false,
"related_records": {
"payments": 0,
"shipments": 0,
"returns": 0,
"refunds": 0
},
"deleted_at": "2024-01-15T14:30:00Z",
"deleted_by": "user_123"
}
{
"id": "ord_123abc",
"deleted": false,
"archived": true,
"status": "archived",
"archived_at": "2024-01-15T14:30:00Z",
"archived_by": "user_123",
"archive_reason": "User requested archival instead of deletion"
}
{
"error": {
"code": "order_not_deletable",
"message": "Cannot delete order that has been shipped. Only draft or cancelled orders can be deleted.",
"details": {
"order_id": "ord_123abc",
"current_status": "shipped",
"deletable_statuses": ["draft", "cancelled"],
"suggestion": "Cancel the order first or archive it instead"
}
}
}
{
"error": {
"code": "active_returns",
"message": "Cannot delete order with active returns. Please resolve all returns first.",
"details": {
"order_id": "ord_123abc",
"active_returns": 2,
"return_ids": ["ret_456def", "ret_789ghi"]
}
}
}
Path Parameters
The unique identifier of the order to delete
Query Parameters
Force deletion even if there are related records (requires admin permission)
Archive the order instead of deleting it (recommended for audit trail)
Response
The ID of the deleted order
Indicates whether the order was successfully deleted
Indicates if the order was archived instead of deleted
Timestamp when the order was deleted
User who deleted the order
Error Responses
curl --location --request DELETE 'https://api.stateset.com/v1/orders/ord_123abc' \
--header 'Authorization: Token <token>'
curl --location --request DELETE 'https://api.stateset.com/v1/orders/ord_123abc?archive_instead=true' \
--header 'Authorization: Token <token>'
mutation orderDeleteMutation {
orderDelete(id: "${orderId}", archiveInstead: false) {
success
order {
id
deleted
}
userErrors {
field
message
}
}
}
const deletedOrder = await stateset.orders.delete('ord_123abc');
// Or archive instead
const archivedOrder = await stateset.orders.delete('ord_123abc', {
archive_instead: true
});
deleted_order = stateset.orders.delete('ord_123abc')
# Or archive instead
archived_order = stateset.orders.delete('ord_123abc', {
'archive_instead': True
})
deleted_order = Stateset::Order.delete('ord_123abc')
# Or archive instead
archived_order = Stateset::Order.delete('ord_123abc', {
archive_instead: true
})
deletedOrder, err := stateset.Orders.Delete("ord_123abc")
// Or archive instead
archivedOrder, err := stateset.Orders.Delete("ord_123abc", DeleteOptions{
ArchiveInstead: true
})
Order deletedOrder = stateset.orders.delete("ord_123abc");
// Or archive instead
DeleteOptions options = new DeleteOptions();
options.setArchiveInstead(true);
Order archivedOrder = stateset.orders.delete("ord_123abc", options);
$deleted_order = $stateset->orders->delete('ord_123abc');
// Or archive instead
$archived_order = $stateset->orders->delete('ord_123abc', [
'archive_instead' => true
]);
var deletedOrder = await stateset.Orders.Delete("ord_123abc");
// Or archive instead
var archivedOrder = await stateset.Orders.Delete("ord_123abc", new DeleteOptions {
ArchiveInstead = true
});
{
"id": "ord_123abc",
"deleted": true,
"archived": false,
"related_records": {
"payments": 0,
"shipments": 0,
"returns": 0,
"refunds": 0
},
"deleted_at": "2024-01-15T14:30:00Z",
"deleted_by": "user_123"
}
{
"id": "ord_123abc",
"deleted": false,
"archived": true,
"status": "archived",
"archived_at": "2024-01-15T14:30:00Z",
"archived_by": "user_123",
"archive_reason": "User requested archival instead of deletion"
}
{
"error": {
"code": "order_not_deletable",
"message": "Cannot delete order that has been shipped. Only draft or cancelled orders can be deleted.",
"details": {
"order_id": "ord_123abc",
"current_status": "shipped",
"deletable_statuses": ["draft", "cancelled"],
"suggestion": "Cancel the order first or archive it instead"
}
}
}
{
"error": {
"code": "active_returns",
"message": "Cannot delete order with active returns. Please resolve all returns first.",
"details": {
"order_id": "ord_123abc",
"active_returns": 2,
"return_ids": ["ret_456def", "ret_789ghi"]
}
}
}
⌘I