/integration/devicesCihaz listesi
Örnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/devices"Yanıt: JSON — cihaz id, ad, konum, API host, durum alanları.
Geliştirici dokümantasyonu
Harici sistemlerin (PMS, otomasyon, merkezi IT) Poyraz Network ile konuştuğu stabil REST yüzeyi. Panel JWT'sinden bağımsızdır.
API, işletmenizin tenant kapsamındaki kaynaklara erişir: MikroTik cihazları, aktif Wi‑Fi oturumları, misafir RADIUS hesapları, analitik özetleri ve 5651 uyum uyarıları.
Anahtar oluşturmak için panele giriş yapın: Yönetim → API. Kurumsal plan gereklidir.
Her istekte Authorization başlığına Bearer token ekleyin. Token formatı pn_live_ ile başlar.
export POYRAZ_API_KEY="pn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export API_BASE="https://hotspot.poyraznetwork.com"
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/devices"Tüm entegrasyon endpoint'leri aşağıdaki önek altındadır:
https://hotspot.poyraznetwork.com/api/v1/integrationİstekler HTTPS üzerinden yapılmalıdır. JSON gövdesi gönderirken Content-Type: application/json kullanın.
Hata yanıtları JSON formatındadır; message alanında Türkçe açıklama döner.
| HTTP | Anlam | Tipik neden |
|---|---|---|
| 401 | Kimlik doğrulama başarısız | Eksik/hatalı token, iptal edilmiş anahtar |
| 403 | Yetkisiz | Kurumsal plan yok, otel modu kapalı (pms_reception), tenant dışı |
| 409 | Çakışma | Aktif guest_ref veya username kullanımda |
| 429 | Çok fazla istek | Rate limit (~60/dk genel, log export ~5/saat) |
| 400 | Geçersiz istek | Hatalı JSON, geçersiz tarih formatı |
{
"error": true,
"message": "API erişimi Kurumsal planda mevcuttur. Plan yükseltmesi için yönetici panelinden faturalandırmaya gidin."
}Tenant'a bağlı MikroTik cihazlarını listeler ve detay döner.
/integration/devicesÖrnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/devices"Yanıt: JSON — cihaz id, ad, konum, API host, durum alanları.
/integration/devices/:id| Parametre | Tür | Açıklama |
|---|---|---|
| idzorunlu | uuid | Cihaz kimliği (panelden veya listeden) |
Örnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/devices/CİHAZ_UUID"Aktif RADIUS oturumlarını izleyin ve gerektiğinde kesin.
/integration/sessionsÖrnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/sessions"/integration/sessions/:id/disconnect| Parametre | Tür | Açıklama |
|---|---|---|
| idzorunlu | string | Oturum kimliği (acctsessionid) |
Örnek istek
curl -sS -X POST -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/sessions/OTURUM_ID/disconnect"RADIUS kullanıcıları — doğrudan oda hesabı açmak için kullanılır. Otel PMS entegrasyonu için önerilen yol aşağıdaki guest-stays API'dir; bu endpoint'ler legacy / basit mod olarak kalır.
/integration/radius/usersÖrnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/radius/users"/integration/radius/users| Parametre | Tür | Açıklama |
|---|---|---|
| usernamezorunlu | string | Benzersiz kullanıcı adı (ör. oda-305) |
| passwordzorunlu | string | Wi‑Fi şifresi |
| profile | string | RADIUS profil adı; boşsa varsayılan profil |
Örnek istek
curl -sS -X POST -H "Authorization: Bearer $POYRAZ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"username": "oda-305",
"password": "Rz8kP2mN",
"profile": "otel-misafir"
}' \
"$API_BASE/api/v1/integration/radius/users"/integration/radius/users/:usernameÖrnek istek
curl -sS -X PUT -H "Authorization: Bearer $POYRAZ_API_KEY" \
-H "Content-Type: application/json" \
-d '{"password": "yeni-şifre", "profile": "otel-misafir"}' \
"$API_BASE/api/v1/integration/radius/users/oda-305"/integration/radius/users/:usernameÖrnek istek
curl -sS -X DELETE -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/radius/users/oda-305"/integration/analytics| Parametre | Tür | Açıklama |
|---|---|---|
| days | integer | Geriye dönük gün (1–365, varsayılan 30) |
| nas | string | Belirli NAS IP filtresi |
Örnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/analytics?days=30"/integration/compliance/alertsÖrnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/compliance/alerts"/integration/logs/export.csv| Parametre | Tür | Açıklama |
|---|---|---|
| fromzorunlu | date | Başlangıç — YYYY-MM-DD veya RFC3339 |
| tozorunlu | date | Bitiş — YYYY-MM-DD veya RFC3339 (gün dahil) |
Örnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
-o logs.csv \
"$API_BASE/api/v1/integration/logs/export.csv?from=2026-07-01&to=2026-07-26"Yanıt: text/csv dosyası — ts, kind, src_ip, username, raw_message sütunları.
PMS entegrasyonundan önce işletme tarafında aşağıdaki adımlar tamamlanmalıdır. API yazma işlemleri yalnızca Kurumsal plan ve wifi_identity_mode = pms_reception iken çalışır.
| Adım | Panel | Açıklama |
|---|---|---|
| 1 | Yönetim → API | pn_live_ anahtarı oluşturun |
| 2 | Wi‑Fi kimlik modu | Otel — resepsiyon / PMS seçin |
| 3 | 5651 Uyum | PMS kimlik beyanını (Madde 4/c) işaretleyin |
| 4 | PMS / middleware | Check-in ve check-out olaylarını guest-stays API'ye bağlayın |
| 5 | Konaklamalar | Aktif oda kayıtlarını ve entegrasyonu doğrulayın |
Otel PMS entegrasyonunun ana sözleşmesi. Check-in'de RADIUS hesabı ve konaklama kaydı atomik oluşturulur; oturum logları oda ve guest_ref ile denetimde birleştirilir.
/integration/guest-stays| Parametre | Tür | Açıklama |
|---|---|---|
| roomzorunlu | string | Oda numarası |
| guest_refzorunlu | string | PMS rezervasyon ID; aynı anda tek aktif kayıt |
| check_in_atzorunlu | datetime | RFC3339 veya YYYY-MM-DD |
| check_out_atzorunlu | datetime | Check-in'den sonra olmalı |
| password | string | Wi‑Fi şifresi; boşsa otomatik |
| profile | string | RADIUS profil adı |
| guest_label | string | Kısa etiket (ör. A.Y.) |
| username | string | Override; varsayılan oda-{room} |
Örnek istek
curl -sS -X POST -H "Authorization: Bearer $POYRAZ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"room": "305",
"guest_ref": "RES-2026-88421",
"guest_label": "A.Y.",
"check_in_at": "2026-07-26T14:00:00Z",
"check_out_at": "2026-07-28T11:00:00Z"
}' \
"$API_BASE/api/v1/integration/guest-stays"Yanıt: 201 — guest_stay, username, password (yalnızca oluşturma anında).
/integration/guest-staysÖrnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/guest-stays?status=active"/integration/guest-stays/:id/integration/guest-stays/:id| Parametre | Tür | Açıklama |
|---|---|---|
| room | string | Yeni oda |
| check_out_at | datetime | Çıkış uzatma |
| password | string | Yeni Wi‑Fi şifresi |
| profile | string | RADIUS profil |
| guest_label | string | Etiket |
/integration/guest-stays/:id/checkout/integration/guest-stays/by-ref/:guest_refÖrnek istek
curl -sS -X DELETE -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/guest-stays/by-ref/RES-2026-88421"/integration/audit/guest-sessions.csv| Parametre | Tür | Açıklama |
|---|---|---|
| fromzorunlu | date | YYYY-MM-DD veya RFC3339 |
| tozorunlu | date | Bitiş tarihi |
Örnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
-o guest-sessions.csv \
"$API_BASE/api/v1/integration/audit/guest-sessions.csv?from=2026-07-01&to=2026-07-26"Yanıt: CSV: session_start, session_stop, username, room, guest_ref, guest_label, mac, framed_ip, nas_ip
Tipik entegrasyon akışı ve PMS olay eşlemesi. API referansı için Guest-stays API ve kurulum için Otel kurulumu bölümlerine bakın.
| PMS olayı | API çağrısı |
|---|---|
| Check-in tamamlandı | POST /integration/guest-stays |
| Oda değişti | PATCH /integration/guest-stays/:id |
| Çıkış uzatıldı | PATCH (check_out_at) |
| Check-out | DELETE .../by-ref/:guest_ref |
| Erken çıkış + anında kes | GET /sessions → POST disconnect → checkout |
Oda, PMS rezervasyon referansı ve çıkış saati ile RADIUS hesabı + konaklama kaydı oluşturulur. Şifre boş bırakılırsa sunucu üretir.
curl -sS -X POST -H "Authorization: Bearer $POYRAZ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"room": "305",
"guest_ref": "RES-2026-88421",
"guest_label": "A.Y.",
"password": "Rz8kP2mN",
"profile": "otel-misafir",
"check_in_at": "2026-07-26T14:00:00Z",
"check_out_at": "2026-07-28T11:00:00Z"
}' \
"$API_BASE/api/v1/integration/guest-stays"Konaklamayı kapatır ve RADIUS hesabını siler.
# ID ile
curl -sS -X POST -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/guest-stays/KONAKLAMA_UUID/checkout"
# PMS rezervasyon ref ile (shortcut)
curl -sS -X DELETE -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/guest-stays/by-ref/RES-2026-88421"RADIUS oturumlarını oda ve guest_ref ile birleştirir. Ham syslog export yerine otel denetimlerinde bunu kullanın.
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
-o guest-sessions.csv \
"$API_BASE/api/v1/integration/audit/guest-sessions.csv?from=2026-07-01&to=2026-07-26"/integration/guest-staysÖrnek istek
curl -sS -H "Authorization: Bearer $POYRAZ_API_KEY" \
"$API_BASE/api/v1/integration/guest-stays?status=active"/integration/guest-stays/:idOda/rezervasyon metadata olmadan yalnızca RADIUS hesabı açmak için (önerilmez):
curl -sS -X POST -H "Authorization: Bearer $POYRAZ_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username":"oda-305","password":"Rz8kP2mN","profile":"otel-misafir"}' \
"$API_BASE/api/v1/integration/radius/users"