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ı?