Ana içeriğe geç

Ortak kurallar

Biçimler​

Alan adları snake_case olan JSON; kimlikler UUID; zamanlar UTC'de ISO 8601 (2026-10-05T12:00:00Z), tarihler 2026-10-05. Sabit bir listeden gelen değerler {"code": "in_progress", "name": "In Progress"} biçimindedir: kod hiç değişmez, ad Accept-Language'e uyar (tr Türkçe, diğerleri İngilizce).

Sayfalar​

Listeler {"data": [...], "next_cursor": "…"} döner. Sonraki sayfayı cursor=<next_cursor> ile isteyin; son sayfada next_cursor: null olur. limit 1–200 (varsayılan 50). Sayfalarken diğer parametreleri değiştirmeyin.

def every(path, token, **params):
"""bir listenin bütün kayıtları, sayfa sayfa"""
cursor = None
while True:
query = {**params, "limit": 200, **({"cursor": cursor} if cursor else {})}
page = requests.get(f"{API}{path}", params=query, timeout=30,
headers={"Authorization": f"Bearer {token}"}).json()
yield from page["data"]
cursor = page["next_cursor"]
if not cursor:
return

Hatalar​

Hatalar {"error": {"code": "…", "message": "…"}} döner (invalid_body'de alanları sayan details da vardır).

DurumKodAnlamı
400invalid_parameterBir sorgu parametresi uymuyor (zaman, kimlik, limit, imleç).
401invalid_tokenToken yok, bilinmiyor, süresi dolmuş ya da geri alınmış — yeni token alın.
403insufficient_scopeToken'da bu uç noktanın istediği kapsam yok.
403forbiddenEntegrasyonun yetkileri buna (bu kayıtta, şu an) izin vermiyor.
403access_deniedEntegrasyon şu an kullanılamıyor (kapalı, paket, organizasyon).
403read_onlyOrganizasyon salt okunur (ödenmemiş paket): yalnız iş emri cevaplama sürer.
403plan_limitPaket buna izin vermiyor (ör. iş emri oluşturma).
404not_foundBöyle bir kayıt yok ya da entegrasyon okuyamıyor.
409external_id_takenOrganizasyonun başka bir kaydında bu external_id var.
409request_in_progressBu Idempotency-Key ile ilk istek hâlâ sürüyor.
422invalid_bodyGövde uymuyor (details alanları sayar).
422rule_violationkommuns'un bir kuralı reddetti (ör. zorunlu soru cevapsız) — mesaj hangisi olduğunu söyler.
422idempotency_key_reusedIdempotency-Key başka bir istek için kullanılmış.
429rate_limitedDakikalık sınır aşıldı; Retry-After saniye bekleyin.

Tekrar güvenliği​

POST, PATCH ve DELETE bir Idempotency-Key başlığı alır (1–200 karakter; ör. bir UUID ya da kendi kaydınızın numarası). 24 saat içinde aynı anahtar ve aynı istek, ilk yanıtı Idempotent-Replayed: true ile yeniden döner ve yeni bir şey oluşturmaz — zaman aşımından sonra yeniden denemek güvenlidir.

Kendi numaralarınız: external_id​

Envanter düğümleri, iş emirleri ve geri bildirimler sisteminizin kendi numarasını taşıyabilir (en çok 128 karakter, organizasyon içinde tekil). Envanterin numarası kommuns'ta düğümün Genel sekmesinde ("Dış sistem numarası") girilir; iş emirleri ve geri bildirimler numaralarını siz oluştururken alır. Bir kaydı ?external_id= ile bulun.