curl --request GET \
--url https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses \
--header 'Authorization: Basic <encoded-value>'const url = 'https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses';
const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"request_id": "1b4a155b1823442010bbd14a1a534633",
"data": [
{
"id": 1,
"status": "DISPATCHING",
"translation": {
"en": "DISPATCHING",
"id": "Menugaskan",
"vi": "Gửi đi"
}
},
{
"id": 2,
"status": "ALLOCATING",
"translation": {
"en": "ALLOCATING",
"id": "Mengalokasikan",
"vi": "Phân bổ"
}
},
{
"id": 3,
"status": "PENDING_PICKUP",
"translation": {
"en": "PENDING PICKUP",
"id": "Penjemputan Tertunda",
"vi": "Đang chờ nhận"
}
},
{
"id": 4,
"status": "PICKING_UP",
"translation": {
"en": "PICKING UP",
"id": "Mengambil",
"vi": "Nhặt lên"
}
},
{
"id": 5,
"status": "IN_DELIVERY",
"translation": {
"en": "IN DELIVERY",
"id": "Dalam Pengiriman",
"vi": "Trong quá trình giao hàng"
}
},
{
"id": 6,
"status": "COMPLETED",
"translation": {
"en": "COMPLETED",
"id": "Selesai",
"vi": "Hoàn thành"
}
},
{
"id": 7,
"status": "RETURNED",
"translation": {
"en": "RETURNED",
"id": "Kembali",
"vi": "Trả lại"
}
},
{
"id": 8,
"status": "FAILED",
"translation": {
"en": "FAILED",
"id": "Gagal",
"vi": "Thất bại"
}
},
{
"id": 9,
"status": "CANCELED",
"translation": {
"en": "CANCELED",
"id": "Dibatalkan",
"vi": "Đã hủy"
}
},
{
"id": 10,
"status": "IN_RETURN",
"translation": {
"en": "IN RETURN",
"id": "Dalam Pengembalian",
"vi": "Đổi lại"
}
},
{
"id": 11,
"status": "DISPATCH_FAILED",
"translation": {
"en": "DISPATCH FAILED",
"id": "Pengiriman Gagal",
"vi": "Không thể gửi đi"
}
},
{
"id": 12,
"status": "SWITCHED_TO_MANUAL",
"translation": {
"en": "SWITCHED TO MANUAL",
"id": "Ubah ke manual",
"vi": "Đã chuyển sang thủ công"
}
},
{
"id": 13,
"status": "DELETED",
"translation": {
"en": "DELETED",
"id": "Dihapus",
"vi": "Đã xóa"
}
}
]
}Enum of valid fulfillment statuses
Returns the 13 fulfillment-status rows. The numeric id is what
appears as Order.fulfillment_status_id (and as status_id
inside each entry of Order.fulfillments[]).
curl --request GET \
--url https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses \
--header 'Authorization: Basic <encoded-value>'const url = 'https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses';
const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.shadowchef.co/v1/partner/orders/fulfillment-statuses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"request_id": "1b4a155b1823442010bbd14a1a534633",
"data": [
{
"id": 1,
"status": "DISPATCHING",
"translation": {
"en": "DISPATCHING",
"id": "Menugaskan",
"vi": "Gửi đi"
}
},
{
"id": 2,
"status": "ALLOCATING",
"translation": {
"en": "ALLOCATING",
"id": "Mengalokasikan",
"vi": "Phân bổ"
}
},
{
"id": 3,
"status": "PENDING_PICKUP",
"translation": {
"en": "PENDING PICKUP",
"id": "Penjemputan Tertunda",
"vi": "Đang chờ nhận"
}
},
{
"id": 4,
"status": "PICKING_UP",
"translation": {
"en": "PICKING UP",
"id": "Mengambil",
"vi": "Nhặt lên"
}
},
{
"id": 5,
"status": "IN_DELIVERY",
"translation": {
"en": "IN DELIVERY",
"id": "Dalam Pengiriman",
"vi": "Trong quá trình giao hàng"
}
},
{
"id": 6,
"status": "COMPLETED",
"translation": {
"en": "COMPLETED",
"id": "Selesai",
"vi": "Hoàn thành"
}
},
{
"id": 7,
"status": "RETURNED",
"translation": {
"en": "RETURNED",
"id": "Kembali",
"vi": "Trả lại"
}
},
{
"id": 8,
"status": "FAILED",
"translation": {
"en": "FAILED",
"id": "Gagal",
"vi": "Thất bại"
}
},
{
"id": 9,
"status": "CANCELED",
"translation": {
"en": "CANCELED",
"id": "Dibatalkan",
"vi": "Đã hủy"
}
},
{
"id": 10,
"status": "IN_RETURN",
"translation": {
"en": "IN RETURN",
"id": "Dalam Pengembalian",
"vi": "Đổi lại"
}
},
{
"id": 11,
"status": "DISPATCH_FAILED",
"translation": {
"en": "DISPATCH FAILED",
"id": "Pengiriman Gagal",
"vi": "Không thể gửi đi"
}
},
{
"id": 12,
"status": "SWITCHED_TO_MANUAL",
"translation": {
"en": "SWITCHED TO MANUAL",
"id": "Ubah ke manual",
"vi": "Đã chuyển sang thủ công"
}
},
{
"id": 13,
"status": "DELETED",
"translation": {
"en": "DELETED",
"id": "Dihapus",
"vi": "Đã xóa"
}
}
]
}Authorizations
Authorization: Basic base64(partner_key:secret_key).
Credentials are issued by a klikit operator. The plaintext
secret_key is shown once at issuance and cannot be retrieved
later — store it securely. If lost, ask your operator to rotate
the secret to receive a new one. The old secret stops working
immediately on rotation; there is no overlap window.
Response
Fulfillment-status enum
Canonical response wrapper. Every response — success or error —
carries the request_id so you can quote one id to klikit
support to correlate a request end-to-end.
"req_4d1b7e3f-..."
Endpoint-specific payload on success.
Show child attributes
Show child attributes
Machine-readable error code + human message. The code is stable
across releases — switch on code in your client code rather
than parsing the message text.
Common codes you will encounter as a partner:
| Code | HTTP | Meaning |
|---|---|---|
auth_missing | 401 | Authorization header absent / malformed |
auth_invalid_credential | 401 | partner_key or secret_key did not verify |
auth_revoked | 403 | Credential is revoked |
auth_forbidden | 403 | Credential not authorized for the requested scope |
request_invalid | 400 | Body / query parameters failed validation |
request_missing_idempotency_key | 400 | Write endpoint called without Idempotency-Key |
request_invalid_range | 400 | Date range > 90 days |
resource_not_found | 404 | Order / store / mapping does not exist |
resource_unmapped | 404 | Stock / availability call referenced an unknown SKU |
state_invalid_transition | 409 | Order PATCH not allowed by current state |
state_idempotency_conflict | 409 | Same Idempotency-Key reused with a different body |
rate_limit_exceeded | 429 | Per-credential rate cap hit |
downstream_unavailable | 502 | An internal klikit dependency is unreachable |
Show child attributes
Show child attributes