B2B

marketplace

23 uç · /api/b2b/v1/marketplace

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 23 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

DELETE/api/b2b/v1/admin/marketplace/api-keys/{key_id}

DELETE /api/b2b/v1/admin/marketplace/api-keys/{key_id} — anahtarı iptal et.

OturumYol parametresi: key_id
İstek
curl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/api-keys/<key_id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/marketplace/apps/{id}/compliance

GET /api/b2b/v1/admin/marketplace/apps/{id}/compliance — app scope-uyum raporu (staff, view).

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/apps/<id>/compliance" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/marketplace/apps/{id}/install

POST /api/b2b/v1/admin/marketplace/apps/{id}/install — onaylı app'i bu kiracıya kur.

OturumYol parametresi: id

**B2B kapsam kontrolü ÖNCE:** motor install_app yalnız approved bakar; compatible_products süzgeci B2B-yereldir. Bu kontrol olmadan B2B paneli, B2B ile uyumlu OLMAYAN (ör. yalnız ERP) bir app'i kurabilirdi — katalogda göremediği bir şeyi id'siyle kurmak. Fail-closed: kapsam dışıysa katalogdaki gibi **404** (varlığını sızdırmayız). **Yetki onayı BURADA zorunludur (2026-08-15).** Çağıran grant_scopes ile app'in istediği yetkilerin TAMAMINI adıyla saymak zorundadır; küme eşit değilse kurulum 400 ile reddedilir. Öncesinde onay yalnız panelin onay kutusuydu — yani istemci tarafıydı: bir betik ya da güncellenmemiş bir ekran, app ne isterse sessizce veriyordu. Asıl koruduğu vaka **yetki kayması**: kurulu bir app yeni sürümünde daha fazla yetki isterse, eski listeyi gönderen çağıran artık sessizce genişletmek yerine 400 alır ve operatör yeni listeyi görüp onaylamak zorunda kalır. (Kurulum on conflict do update olduğu için bu yol gerçekten bir GÜNCELLEME yoludur.) ⚠ Kısmi onay (istenen yetkilerin bir kısmını verme) DESTEKLENMEZ: motor required_scopes'un tamamını yazar ve app beyan ettiği yetkiler olmadan çalışmayacağını varsayar. Yarım grant, app'i sessizce bozardı; "kabul et ya da kurma" dürüst olan.

İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/apps/<id>/install" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/marketplace/apps/{id}/uninstall

POST /api/b2b/v1/admin/marketplace/apps/{id}/uninstall — kurulumu kaldır (grant iptal).

OturumYol parametresi: id

Motor satırı SİLMEZ, status='uninstalled' + granted_scopes='{}' yapar → basılmış API anahtarları scope'suz kalır ve resolve_binding aktif-kurulum şartıyla o app'e bağlı yuvayı kendiliğinden seçimsiz bırakır (addon_binding.rs notu).

İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/apps/<id>/uninstall" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/marketplace/bindings

GET /api/b2b/v1/admin/marketplace/bindings

Oturum
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/bindings" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/marketplace/bindings

POST /api/b2b/v1/admin/marketplace/bindings

Oturum
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/bindings" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/b2b/v1/admin/marketplace/bindings/{id}

DELETE /api/b2b/v1/admin/marketplace/bindings/{id}

OturumYol parametresi: id
İstek
curl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/bindings/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/marketplace/bindings/{id}/default

POST /api/b2b/v1/admin/marketplace/bindings/{id}/default

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/bindings/<id>/default" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/marketplace/charges

GET /api/b2b/v1/admin/marketplace/bindings

Oturum
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/charges" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/marketplace/charges/{id}

GET /api/b2b/v1/admin/dealers/{id}

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/charges/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/marketplace/charges/{id}/refund

POST /api/b2b/v1/admin/marketplace/charges/{id}/refund

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/charges/<id>/refund" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/marketplace/charges/{id}/settle

POST /api/b2b/v1/admin/marketplace/charges/{id}/settle

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/charges/<id>/settle" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/marketplace/events

GET /api/b2b/v1/admin/marketplace/events — abone olunabilir b2b.* webhook olay kataloğu

Oturum

(BLE-2233 discovery). Çekirdek EVENT_CATALOG'u KİRLETMEDEN B2B kendi olay sözlüğünü yayınlar; tenant bir ucu bu olaylara POST /api/v1/webhooks (çekirdek create_endpoint) ile abone eder, B2B iş tx'inde teslimat üretir, çekirdek worker imzalar+teslim eder. Statik liste (tenant verisi YOK) ama b2b.marketplace.view ile kapılı (yalnız yetkili personel keşfeder).

İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/events" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/marketplace/installed

GET /api/b2b/v1/admin/marketplace/installed — bu kiracının AKTİF kurulumları.

Oturum
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/installed" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/marketplace/installed/{id}/api-keys

POST /api/b2b/v1/admin/marketplace/installed/{id}/api-keys — kurulum için scoped anahtar bas.

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/installed/<id>/api-keys" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/marketplace/installed/{id}/charge

POST /api/b2b/v1/admin/marketplace/installed/{id}/charge — kurulum için charge kaydet (idempotent).

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/installed/<id>/charge" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/marketplace/installed/{id}/config

GET /api/b2b/v1/admin/dealers/{id}

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/installed/<id>/config" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/b2b/v1/admin/marketplace/installed/{id}/config

PUT /api/b2b/v1/admin/marketplace/installed/{id}/config

OturumYol parametresi: id
İstek
curl -X PUT "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/installed/<id>/config" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/marketplace/requests

POST /api/b2b/v1/admin/marketplace/bindings

Oturum
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/requests" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/marketplace/requests

GET /api/b2b/v1/admin/marketplace/bindings

Oturum
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/requests" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/marketplace/resolve/{kind}

GET /api/b2b/v1/admin/marketplace/resolve/{kind} — the resolved active provider for a kind.

OturumYol parametresi: kind
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/marketplace/resolve/<kind>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/marketplace/apps

GET /api/b2b/v1/admin/marketplace/bindings

Oturum
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/marketplace/apps" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/marketplace/apps/{id}

GET /api/b2b/v1/admin/dealers/{id}

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/marketplace/apps/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?