ERP

portal

23 uç · /api/erp/v1/portal

İ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.

GET/api/erp/v1/portal/coa/{tenant}/{token}

OTURUMSUZ müşteri portalı — 3-kapı YOK; erişim = token + tenant-scoped RLS (emsal mutabakat portalı).

Herkese açıkYol parametresi: tenanttoken
İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/coa/<tenant>/<token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/customer/{tenant}/{token}/catalog

Portal customer catalog

Herkese açıkYol parametresi: tenanttoken
İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/customer/<tenant>/<token>/catalog" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/customer/{tenant}/{token}/documents

Portal customer documents

Herkese açıkYol parametresi: tenanttoken
İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/customer/<tenant>/<token>/documents" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/customer/{tenant}/{token}/orders

Portal customer order

Herkese açıkYol parametresi: tenanttoken
İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/customer/<tenant>/<token>/orders" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/display/{tenant}/frame

**Portal düzlemindeki kare ucu** — ekran tableti sunucuya doğrudan bağlanır.

OturumYol parametresi: tenant

[`display_frame_handler`] ile aynı [`poll_state`]'i çağırır; fark yalnız KİMLİKTEDİR: orada Bearer panel oturumu + `erp.pos.view`, burada tek başına capability token. ⭐⭐⭐ Aynı 404 sözleşmesi: başlık yok / boş / bozuk / süresi dolmuş / iptal edilmiş **ve bilinmeyen ya da askıya alınmış tenant** — hepsi [`invalid_token`]'ın TEK mesajıyla 404. Tenant'ın varlığını sızdıran ayrı bir hata, yoldaki `{tenant}`'ı bir tenant-numaralandırma aracına çevirirdi.

İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/display/<tenant>/frame" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/embed/{tenant}/{token}

Gömülü analitik portalı (BLE-2611) — oturumsuz, token + tenant yönlendirmesi.

Herkese açıkYol parametresi: tenanttoken
İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/embed/<tenant>/<token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/kitchen/{tenant}/frame

**Portal düzlemindeki mutfak karesi** — tablet sunucuya doğrudan bağlanır.

OturumYol parametresi: tenant

[`kitchen_frame_handler`] ile aynı [`poll_station`]'ı çağırır; fark yalnız KİMLİKTEDİR. ⭐⭐⭐ Aynı 404 sözleşmesi: başlık yok / bozuk / süresi dolmuş / iptalli **ve bilinmeyen ya da askıya alınmış tenant** — hepsi [`invalid_token`]'ın TEK mesajıyla 404 (yoldaki `{tenant}` bir tenant-numaralandırma aracına dönüşmesin).

İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/kitchen/<tenant>/frame" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/pos/{tenant}/offline/enqueue

Cihazın KENDİ fiş gönderimi. Gövdede `terminal_id` YOKTUR (bkz. [`device_identity`]).

OturumYol parametresi: tenant
İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/pos/<tenant>/offline/enqueue" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/pos/{tenant}/offline/heartbeat

Cihazın "ayaktayım" damgası — gönderecek fişi olmadığında da çalar.

OturumYol parametresi: tenant

Damgayı [`device_identity`] içindeki `authenticate_terminal` zaten atar; bu uç ona ayrı bir yol verir ki cihaz canlılığını bildirmek için boş bir parti göndermek zorunda kalmasın (boş parti 400'dür — bkz. [`enqueue_batch`]).

İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/pos/<tenant>/offline/heartbeat" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/pos/{tenant}/offline/status

Cihazın KENDİ kuyruk özeti — `terminal_id` süzgeci token'dan gelir, sorgudan değil; bir kasa

OturumYol parametresi: tenant

komşusunun (ya da tüm mağazanın) kuyruk sayılarını göremez.

İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/pos/<tenant>/offline/status" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/psp/{tenant}/{provider}/webhook

Psp public webhook

OturumYol parametresi: tenantprovider
İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/psp/<tenant>/<provider>/webhook" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/qr/{tenant}/{token}/bill

Qr public bill

OturumYol parametresi: tenanttoken
İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/qr/<tenant>/<token>/bill" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/qr/{tenant}/{token}/call

Qr public call

OturumYol parametresi: tenanttoken
İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/qr/<tenant>/<token>/call" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/qr/{tenant}/{token}/menu

Qr public menu

OturumYol parametresi: tenanttoken
İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/qr/<tenant>/<token>/menu" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/qr/{tenant}/{token}/orders

Qr public order

OturumYol parametresi: tenanttoken
İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/qr/<tenant>/<token>/orders" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/qr/{tenant}/{token}/ticket

Qr public ticket

OturumYol parametresi: tenanttoken
İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/qr/<tenant>/<token>/ticket" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/reconciliations/{tenant}/{token}

Portal görünümü: karşı taraf token + tenant_id ile (oturumsuz) mutabakatı görür. 3-kapı YOK —

Herkese açıkYol parametresi: tenanttoken

erişim token + tenant-scoped RLS ile. Geçersiz token/tenant → 404, süresi dolmuş → 403.

İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/reconciliations/<tenant>/<token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/reconciliations/{tenant}/{token}/respond

Portal yanıtı: karşı taraf token + tenant_id ile (oturumsuz) kabul/itiraz kaydeder. responded_by

Herkese açıkYol parametresi: tenanttoken

NULL (harici aktör). 'sent' değilse 409, süresi dolmuş → 403, geçersiz → 404.

İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/reconciliations/<tenant>/<token>/respond" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/supplier/{tenant}/{token}/documents

Portal supplier documents

Herkese açıkYol parametresi: tenanttoken
İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/supplier/<tenant>/<token>/documents" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/supplier/{tenant}/{token}/orders/{doc}/acknowledge

Portal supplier ack

Herkese açıkYol parametresi: tenanttokendoc
İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/supplier/<tenant>/<token>/orders/<doc>/acknowledge" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/erp/v1/portal/supplier/{tenant}/{token}/rfqs

Portal supplier rfqs

Herkese açıkYol parametresi: tenanttoken
İstek
curl -X GET "https://{slug}.erp.blesyum.app/api/erp/v1/portal/supplier/<tenant>/<token>/rfqs" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/supplier/{tenant}/{token}/rfqs/{rfq}/quote

Portal supplier quote

Herkese açıkYol parametresi: tenanttokenrfq
İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/supplier/<tenant>/<token>/rfqs/<rfq>/quote" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/erp/v1/portal/webstore/{tenant}/{connection}/webhook

Webstore public webhook

OturumYol parametresi: tenantconnection
İstek
curl -X POST "https://{slug}.erp.blesyum.app/api/erp/v1/portal/webstore/<tenant>/<connection>/webhook" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?