curl --request GET \
--url https://omnicommerce.sg/api/v1/returns/actions \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://omnicommerce.sg/api/v1/returns/actions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://omnicommerce.sg/api/v1/returns/actions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"ok": true,
"apiVersion": "<string>",
"operationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "completed",
"data": {
"success": true,
"returnIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"succeededCount": 4503599627370495,
"failedCount": 4503599627370495,
"results": [
{
"returnId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"success": true,
"marketplace": "shopee",
"marketplaceStatus": "<string>",
"externalReturnId": "<string>",
"externalOrderId": "<string>",
"actions": [
{
"id": "<string>",
"label": "<string>",
"description": "<string>"
}
],
"version": "<string>",
"limitation": "<string>"
}
]
},
"links": {},
"warnings": [
"<string>"
],
"recommendations": [
"<string>"
]
}Check Return Actions
Authorization
Requires orders:write.
Eligibility
Read live marketplace decisions for 1–50 OmniCommerce return UUIDs using repeated returnIds query parameters. Refreshes the saved return state through the same service as the order UI. All targets are organization- and store-scoped before marketplace access. Results preserve first-requested order; one provider failure does not block another store. data.success describes eligibility checks, not whether an action is available. Completed, cancelled and other terminal returns have no actions. Check actions.length and limitation; never infer eligibility from status alone. Amazon and WhatsApp currently return explicit processing limitations. Other marketplaces expose only decisions supported by their current API state. No buyer remarks, shipping evidence or raw provider payloads are returned. Pass each chosen action id and version unchanged to POST /api/v1/returns/actions.
curl --request GET \
--url https://omnicommerce.sg/api/v1/returns/actions \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://omnicommerce.sg/api/v1/returns/actions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://omnicommerce.sg/api/v1/returns/actions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"ok": true,
"apiVersion": "<string>",
"operationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "completed",
"data": {
"success": true,
"returnIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"succeededCount": 4503599627370495,
"failedCount": 4503599627370495,
"results": [
{
"returnId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"success": true,
"marketplace": "shopee",
"marketplaceStatus": "<string>",
"externalReturnId": "<string>",
"externalOrderId": "<string>",
"actions": [
{
"id": "<string>",
"label": "<string>",
"description": "<string>"
}
],
"version": "<string>",
"limitation": "<string>"
}
]
},
"links": {},
"warnings": [
"<string>"
],
"recommendations": [
"<string>"
]
}Authorizations
Bearer API key for server-to-server access. Session auth is also supported in first-party UI flows.
Query Parameters
Repeat this query parameter for each UUID. Between 1 and 50 entries, deduplicated in first-requested order.
1 - 50 elements^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Session callers only. API keys resolve organization scope from the credential.
1 - 120Response
Request completed. Inspect data.success, per-target results and pendingCount for processing progress.