Fiziksel POS
API Referansı
Genel Bakış Sayaçları

Genel Bakış Sayaçları

Bu uçları kim çağırır?Dış API (s2s)
Taban yol
/api/v1/physical-pos
Kimlik
Her istekte Ed25519 istek imzası — X-Key-Id, X-Date, X-Nonce, X-Signature; gövdeli isteklerde ayrıca Digest. Zaman penceresi ±5 dk, nonce tek kullanımlık. Bearer jetonu ya da panel oturumu bu uçlarda kabul edilmez.
Yetki
Anahtarınız Fiziksel POS ürününü (PHYSICAL_POS) ve bu sayfadaki uçların kapsamını taşımalıdır: physical_pos:view. Ürünü olmayan anahtar 403 PRODUCT_NOT_ENABLED, kapsamı olmayan anahtar 403 API_INSUFFICIENT_SCOPE alır. Bkz. Kimlik Doğrulama ve Kapsamlar.
Çapraz yüzey
Bu uçlar s2s yüzeyindedir; kendi sunucunuzdan imzalı istekle çağırırsınız. Aynı kayıtların panelde ekranları var, ama panel uçları API anahtarıyla çağrılamaz; bu uçlar da panel oturumuyla çağrılamaz.

Tek istekte fiziksel POS kayıtlarınızın özet sayılarını döner. Test anahtarı da bu ucu çağırabilir.

GET /api/v1/physical-pos/overview

Sorgu parametresi almaz; tanımsız parametre 400 VALIDATION_ERROR, environment 400 physical_pos.input.environment_invalid döner. Ortamı anahtarınız belirler.

source lunixi-sign.sh
REQ_PATH="/api/v1/physical-pos/overview"
lunixi_sign GET "$REQ_PATH"
 
curl "https://api-gateway.lunixi.com$REQ_PATH" \
  -H "X-Key-Id: $LUNIXI_KEY_ID" \
  -H "X-Date: $DATE" \
  -H "X-Nonce: $NONCE" \
  -H "X-Signature: $SIGNATURE"

lunixi-sign.sh: Kimlik Doğrulama › İmza yardımcısı.

{
  "status": "success",
  "code": "SUCCESS",
  "data": {
    "overview": {
      "stores": { "active": 12, "archived": 2 },
      "registers": { "active": 31, "archived": 4 },
      "terminals": { "environment": "LIVE", "open": 28, "closed": 3 },
      "devices": {
        "environment": "LIVE",
        "total": 35,
        "active": 0,
        "pending": 33,
        "suspended": 0,
        "maintenance": 0,
        "retired": 2,
        "unverified": 33
      },
      "transactions": null,
      "generatedAt": "2026-01-10T09:00:00.000Z"
    }
  },
  "statusCode": 200,
  "requestId": "00000000-0000-0000-0000-000000000000"
}
AlanTipAçıklama
stores.activeintegerACTIVE mağaza sayısı. Ortamsızdır; test ve canlı anahtar aynı sayıyı görür.
stores.archivedintegerARCHIVED mağaza sayısı.
registers.activeintegerACTIVE kasa sayısı. Ortamsızdır.
registers.archivedintegerARCHIVED kasa sayısı.
terminals.environmentstringTerminal sayılarının ait olduğu ortam: anahtarınızın ortamı (TEST ya da LIVE).
terminals.openintegerBu ortamda kapatılmamış terminal sayısı (ACTIVE ve SUSPENDED).
terminals.closedintegerBu ortamda CLOSED terminal sayısı.
devices.environmentstringCihaz sayılarının ait olduğu ortam: anahtarınızın ortamı.
devices.totalintegerBu ortamdaki bütün cihazlar (emekliler dahil).
devices.activeintegerACTIVE cihaz sayısı.
devices.pendingintegerPENDING cihaz sayısı.
devices.suspendedintegerSUSPENDED cihaz sayısı.
devices.maintenanceintegerMAINTENANCE cihaz sayısı.
devices.retiredintegerRETIRED cihaz sayısı.
devices.unverifiedintegerSahipliği doğrulanmamış, emekli olmayan cihaz sayısı.
transactionsnullHer zaman null.
generatedAtstringSayımın yapıldığı an.
  • Bütün sayılar aynı anda okunur ve birbiriyle tutarlıdır.
  • Sayılar önbelleklenmez: bir kayıt oluşturduktan, arşivledikten ya da kapattıktan hemen sonraki istek yeni sayıyı görür.

transactions alanını 0 olarak yorumlamayın. Yanıtlara yeni alanlar ve değerler eklenebilir; kodunuz tanımadığı alanları yok saymalıdır.

Hatalar

HTTPcodeNe zaman
403PRODUCT_NOT_ENABLEDAnahtarda Fiziksel POS ürünü yok.
403API_INSUFFICIENT_SCOPEAnahtarda physical_pos:view yok.
400physical_pos.input.environment_invalidSorguda environment gönderildi.
400VALIDATION_ERRORTanımsız sorgu parametresi.

Bütün kodlar: Hata Kodları.