dealer
67 uç · /api/b2b/v1/dealer
İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 67 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.
GET /dealer/account/open-items — açık faturalar (oldest-first) + bakiye + yaşlandırma kovaları.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/account/open-items" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/account/settlements/{id}/allocations — bir settlement'ın fatura-başı dökümü (bayi-RLS).
idcurl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/account/settlements/<id>/allocations" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/announcements — YALNIZ yayında olanlar.
Pencere süzgeci SQL'de (now() sunucunun saati): istemciye bırakılsa süresi geçmiş
kampanya bayinin sapmalı cihazında canlı görünürdü.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/announcements" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /dealer/cart — sepeti boşalt (tüm kalemleri sil; sepet aktif kalır).
curl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/cart" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/cart/items — kalem ekle/ayarla (MUTLAK qty; upsert). Fiyat snapshot'ı yenilenir.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/cart/items" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /dealer/cart/items/{product} — kalemi sepetten çıkar (yoksa 404).
productcurl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/cart/items/<product>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/catalog/{ref}/related — bir ürünün ilişkili (related/cross/up-sell) ürünleri.
refBayiye GÖRÜNMEYEN ilişkili ürünler visible=false (UI gizleyebilir; erişim read-model ile aynı).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/catalog/<ref>/related" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/b2b/v1/dealer/catalog/facets — bayinin GÖREBİLDİĞİ ürünler üzerinden facet sayaçları.
İzin: list_catalog ile AYNI (CATALOG_VIEW) — facet listenin metadata'sıdır, ayrı bir yetki
düzlemi değildir (daha gevşek bir kapı listeyi baypas eden bir yan-kanal olurdu).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/catalog/facets" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/b2b/v1/admin/marketplace/resolve/{kind} — the resolved active provider for a kind.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/catalog/resolve" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/checkout/pay — sipariş için kart ödemesi (server-otoriter tutar).
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/checkout/pay" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/checkout/validate — yazımsız sipariş-hazırlık raporu.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/checkout/validate" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/b2b/v1/dealer/documents — bayinin belgeleri (yeni→eski, **keyset** sayfalı).
invoice.view. Sözleşme: ?after=&limit=&doc_type=&from=&to=&open_only= →
{documents, party_linked, next_cursor, limit, remaining_available}.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/documents" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/b2b/v1/dealer/documents/{id}/pdf — belgenin PDF kopyası (stream). invoice.view.
id**404 tek sebep-bağımsız yanıt:** başka bayinin belgesi, başka tenant'ın belgesi, taslak belge,
**iptal edilmiş belge**, izinli-tür-dışı belge ve olmayan belge AYNI 404'ü alır → varlık
oracle'ı yok. Yanıt no-store: bayiye özel mali belge ara katmanda ASLA önbelleklenmemeli.
**Satırlar sessizce düşmez:** motorun tek sayfaya sığdıramadığı satırlar hem PDF içinde bir
bildirim satırıyla ([build_pdf_lines]) hem de x-document-line-count /
x-document-lines-rendered başlıklarıyla açıkça söylenir.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/documents/<id>/pdf" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/favorites — bayi-kullanıcının favorileri (product_ref listesi).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/favorites" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/favorites — favori ekle (idempotent; unique(tenant,dealer_user,product)).
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/favorites" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /dealer/favorites/{product} — favoriden çıkar.
productcurl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/favorites/<product>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Bayi-düzlemi kökü (require_dealer → [principal::DealerCtx]). Gerçek portal rotaları
(sepet/sipariş/profil — BF1 ileri + BF4+) bu düzleme eklenir; şimdilik kimliğin kanıtı.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/home" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/b2b/v1/dealer/invitations — bayinin BEKLEYEN (süresi geçmemiş) davetleri.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/invitations" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/b2b/v1/dealer/invitations — dealer_admin (users.manage) KENDİ bayisine davet.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/invitations" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /api/b2b/v1/dealer/invitations/{id} — bayi KENDİ pending davetini iptal eder
id(staff revoke_dealer_invitationından farkı: dealer_id kapsam filtresi — başka bayinin
davet id'si 404).
curl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/invitations/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/b2b/v1/dealer/invitations/{id}/resend — bayi KENDİ bekleyen davetini yeniden gönderir
id(dealer_id kapsam filtresi: başka bayinin daveti 404; dealer-plane revoke ile simetrik). Rate-limit'li.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/invitations/<id>/resend" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/orders/{id} — sipariş detayı (satırlar + statü geçmişi/takip + SEVKİYATLAR).
idSahiplik doğrulanır.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/orders/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/b2b/v1/admin/applications/{id}/approve (b2b.dealers.approve).
idcurl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/orders/<id>/approve" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/orders/{id}/cancel — siparişi İPTAL ET (submitted→cancelled).
id# Neden "reddet"in yanına ayrı bir eylem (2026-08-23 kullanıcı kararı)
*"approvals kısmında siparişte reddet tuşu var; reddet olmamalı mantıken çünkü
onaylayan kişi o değil. iptal et olabilir en fazla — üstüne basınca iptal nedeni
yazılıp iptal edildi durumuna gelebilir sipariş."*
Haklı: satıcı onay modu always (platform varsayılanı) ya da over_risk + risk
ise kararı SATICI verir ve bayi-düzlemi onayı decide içindeki kredi-risk kapısına
takılıp **409** alır. O siparişte bayiye "Reddet" göstermek, verilmeyecek bir kararı
veriyormuş gibi göstermektir. Bayinin gerçekten yapabileceği şey KENDİ talebini
GERİ ÇEKMEKTİR — ve bunun adı iptaldir.
🔴 GEREKÇE ZORUNLUDUR. İptal terminal bir durumdur (is_terminal) ve sipariş oradan
otomatik hiçbir yere gitmez; "neden iptal edildi" sorusunun cevabı yazılmazsa siparişi
VEREN kullanıcı bunu bir arıza sanar. Gerekçe order_status_historyye yazılır ve
bildirimde alıcıya AYNEN gider.
⚠ order_approvalsa satır YAZILMAZ: iptal bir onay kararı değildir (CHECK zaten
approved|rejected ile sınırlı ve öyle kalmalı).
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/orders/<id>/cancel" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/b2b/v1/dealer/orders/{id}/documents/{doc} — bayi kendi belgesini indirir.
iddocSüzgeç YOK: dealer_visible ve "bu sipariş benim mi" kararlarının ikisi de RLS
politikasındadır. Kapalı belge → 0 satır → **404** (403 değil: varlık bilgisi sızmasın).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/orders/<id>/documents/<doc>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/b2b/v1/admin/applications/{id}/reject (b2b.dealers.approve).
idcurl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/orders/<id>/reject" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/orders/{id}/reorder — geçmiş siparişi GÜNCEL fiyatla sepete ekle. Görünmeyen/
idfiyatlanamaz/MOQ-uymayan ürünler ATLANIR + raporlanır (kısmi reorder). ORDER_CREATE.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/orders/<id>/reorder" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/orders/{order_id}/returns — bayi iade talebi (RETURN_CREATE).
order_idcurl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/orders/<order_id>/returns" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/orders/pending-approvals — bu bayinin onay bekleyen (submitted) siparişleri.
dealer-RLS zaten bayiye kısıtlar; ORDER_APPROVE izni gerekir.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/orders/pending-approvals" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/payment-methods — kayıtlı kartları listele (token YOK).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/payment-methods" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/payment-methods — kart ekle. PAN→PSP→token; token+gösterim sealed saklanır.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/payment-methods" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /dealer/payment-methods/{id} — kartı kaldır (PSP token iptali best-effort + DB sil).
idcurl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/payment-methods/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/payment-methods/{id}/default — varsayılan kartı değiştir.
idcurl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/payment-methods/<id>/default" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/payment-terms — bayi KENDİ koşulunu görür (değiştiremez).
Tanımlı değilse null döner: "peşin" varsaymak, vadeli çalışan bayiye yanlış bilgi
vermek olurdu (varsayılan bir gerçek değil, bir tahmindir).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/payment-terms" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/payments/{id}/threeds/complete — 3DS finalize.
idcurl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/payments/<id>/threeds/complete" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Bayinin etkin bayi-portalı izinleri (frontend UI'ı buna göre gösterir/gizler). Yalnız
b2b.dealer_role_permissions'tan; core.user_roles'a dokunmaz.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/permissions" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /pricing/coupon/validate — kupon doğrula (consume YOK).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/pricing/coupon/validate" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Eldeki stok + **BİLİNİYOR MU** kararı (STOCK-01).
ref🔴 Defteri boş bir ürüne "0 adet" demek yalandır — ölçüm boşluğunu ölçüm sonucu
gibi sunar. checkout.rs::stock_map bunu zaten söylüyordu; ekran ise aynı 0'ı
"Stokta yok" diye basıyordu ve ERP bağlamayan HER kiracıda katalogdaki her ürün
kalıcı olarak stoksuz görünüyordu (2026-08-22 vakası). Üç hâl döner:
tracked=false (takip yok, hep satılabilir) · known=false (bilinmiyor) · adet.
⚠ known YALNIZ elle modda daralır: ERP'si olan kiracıda defterin sessizliği
gerçekten "stok yok" demektir ve o kiracıya "bilinmiyor" demek, çalışan bir
ölçümü belirsiz göstermek olurdu.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/products/<ref>/stock" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}PATCH /api/b2b/v1/dealer/profile (require_dealer; dealer_write seam).
🔴 KAPI **ASIL KULLANICIDIR**, izin DEĞİL (2026-08-22 vakası). Eskiden kapı
b2b_portal.users.manage idi; o izin dealer_admin KADAR dealer_ownda da var
(mig 1467: ikisi bilerek izin-özdeş) ve panelin kullanıcı-ekleme formu yalnız
SİPARİŞ GÖRÜNÜRLÜĞÜ sorduğu için eklenen HER bayi kullanıcısı bu iki rolden birini
alıyor → hepsi firma künyesini yazabiliyordu. Kullanıcı raporu: *"bayinin kendisi
olmamasına rağmen firma bilgilerini güncelleyebiliyor"*.
Firma künyesi bayi ORG'unun beyanıdır; onu değiştirmek bir ekip işi değil, bayinin
kendi kimliğine ait bir karardır (mig 1489 is_primary).
curl -X PATCH "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/profile" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/quotes — bayinin kendi teklifleri (dealer-RLS → başkasınınki görünmez).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/quotes" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/quotes — bayi teklif ister (b2b_portal.order.create).
Teklif İSTEMEK sipariş vermeye en yakın eylemdir: aynı izin istenir. Yalnız katalog görebilen (ama sipariş veremeyen) kullanıcı fiyat sorup satıcıyı meşgul edemez.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/quotes" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/quotes/{id}/accept — teklifi kabul et → SİPARİŞ oluştur.
idSipariş satırları teklifin DONMUŞ fiyatıyla kurulur (yeniden fiyatlama YOK, dosya başı
sözleşmesi). Sipariş submitted doğar: satıcının onay politikası (risk/always) normal
akıştaki gibi işler — teklif verilmiş olması onay kuralını atlamaz.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/quotes/<id>/accept" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/quotes/{id}/accept-to-cart — teklifi kabul et → kalemleri SEPETE yaz.
id# Neden acceptin yanında ayrı bir yol var
2026-08-23 kullanıcı kararı: *"teklif kabul edilirse sepete gidecektir onaylıyor musunuz?
… sepete de teklifte ne fiyatı ne adedi varsa ona göre eklensin."* Bayi teklifi kabul
ettikten sonra sepetine başka ürün de ekleyip TEK siparişte gönderebilmek istiyor;
accept ise doğrudan sipariş üretir ve bu ara adımı bırakmaz. İki yol da durur —
hangisinin kullanılacağına EKRAN karar verir.
# Fiyat nasıl korunuyor
Sepet kalemi quote_id + quote_vat_rate ile damgalanır (mig 1500). checkout::price_cart
o satırda fiyat motorunu ÇALIŞTIRMAZ, teklifin donmuş fiyatını kullanır. Damga olmadan
pazarlık fiyatı ödeme adımında sessizce liste fiyatına dönerdi — yani teklif özelliği
hiçbir işe yaramazdı.
# 🔴 Kapılar accept ile BİREBİR aynıdır
Sahiplik (cross-dealer 404) · yalnız quoted · daha önce siparişe dönmemiş ·
valid_until SUNUCU saatiyle · fiyatsız satır 409. İkinci bir kapı seti yazmak, birinin
er geç gevşemesi demekti.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/quotes/<id>/accept-to-cart" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /dealer/quotes/{id}/reject — bayi teklifi reddeder.
idcurl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/quotes/<id>/reject" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/returns — bayinin iadeleri (dealer-RLS; keyset sayfalı + sunucu filtreli).
Sözleşme: ?after=&limit=&status=&q=&date_from=&date_to= → {items, next_cursor};
parametresiz → eski düz dizi (geriye uyum).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/returns" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/returns/{id} — iade detayı (PD-1; başlık + satırlar). Dealer-RLS → başka
idbayinin iadesi 404 (sızıntı-güvenli).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/returns/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/b2b/v1/dealer/roles — davet/rol-değiştir formu için rol seçenekleri (users.manage).
dealer_roles tenant-RLS (dealer_id kolonu yok) → dealer tx'inden okunur (rbac çözümüyle aynı yol).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/roles" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /dealer/targets — bayi KENDİ hedeflerini ve gerçekleşmesini görür.
Bayiye hedefini göstermek işin yarısıdır; primi de görmesi satışı yönlendirir. Dealer-RLS yalnız kendi satırlarını verir.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/targets" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/b2b/v1/dealer/team/members — bayinin ekibi (users.manage).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/team/members" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}PATCH /api/b2b/v1/dealer/team/members/{user_id} — rol değiştir ve/veya askıya-al/aktifleştir.
user_idcurl -X PATCH "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/team/members/<user_id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /api/b2b/v1/dealer/team/members/{user_id} — üyeyi ekipten çıkar (+ paired
user_idcore.tenant_users temizliği, staff kimliği KORUNUR — BF1 remove semantiği dealer-scoped).
curl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/dealer/team/members/<user_id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}