Fiziksel POS
Hata Kodları

Hata Kodları

Hatalar ortak hata zarfıyla döner. Dallanmayı message'a göre değil, code'a göre yapın; zarfın alanları ve genel kurallar: Hata Yönetimi.

{
  "status": "failure",
  "code": "physical_pos.input.text_invalid",
  "message": "Metin boş olamaz ve görünmez ya da biçimlendirme karakteri içeremez.",
  "statusCode": 400,
  "requestId": "00000000-0000-0000-0000-000000000000",
  "details": { "field": "name", "reason": "forbidden_character" },
  "docsUrl": "https://docs.lunixi.com/tr/physical-pos/errors#physical_pos.input.text_invalid"
}
  • message isteğin diline göre Türkçe ya da İngilizce döner; aşağıdaki tablolardaki açıklamalar bu metinlerdir. → Hata Yönetimi › Dil seçimi
  • details her hatada bulunmaz. Bulunduğunda alan adını (field) ve sebebi (reason) taşıyabilir; physical_pos.validation.invalid hatasında ayrıntılar details.errors dizisindedir, her öğe { field, errors: [<sebep>] }. Değer hiçbir zaman details'e yazılmaz.
  • Aşağıdaki kodlarda yanıt docsUrl alanı taşır; bağlantı bu sayfada kodun satırına gider.
  • 4xx hatalar yeniden denemeyle düzelmez. Yeniden denenebilir tek sınıf 503 ve diğer 5xx hatalardır. → Ortak Kurallar › Yeniden deneme

physical_pos.* kodları

İstek ve ortak kurallar

HTTPcodeAçıklamaNe yapmalı
400physical_pos.validation.invalidFiziksel POS isteğindeki alanlar geçersiz — gönderilen alanları kontrol edin.details.errors içindeki alanı düzeltin.
400physical_pos.cursor.invalidSayfalama imleci geçersiz; listeyi ilk sayfadan yeniden isteyin.İlk sayfadan yeniden başlayın.
400physical_pos.idempotency.key_requiredBu işlem için Idempotency-Key başlığı zorunludur.Idempotency-Key başlığını ekleyin.
400physical_pos.idempotency.key_invalidIdempotency-Key 8-200 karakter, boşluksuz yazdırılabilir ASCII olmalı.8–200 karakterlik, boşluksuz bir değer kullanın (ör. UUID).
409physical_pos.idempotency_mismatchBu Idempotency-Key farklı bir istekle kullanılmış.Yeni işlem için yeni bir anahtar kullanın.
409physical_pos.version_conflictKayıt siz düzenlerken değişti; güncel hâlini alıp değişikliği yeniden yapın.Kaydı yeniden okuyun, güncel rowVersion ile tekrar gönderin.
400physical_pos.input.code_invalidKod biçimi geçersiz.Kodu A-Z, 0-9, ., _, - ile yazın; kapalı kümeli alanlarda listedeki bir değeri gönderin.
400physical_pos.input.text_invalidMetin boş olamaz ve görünmez ya da biçimlendirme karakteri içeremez.details.field ve details.reason'a bakın; metni düzeltin.
400physical_pos.input.ref_invalidReferans değeri geçersiz: boşluksuz, yazdırılabilir ASCII olmalı.Değeri izin verilen karakterlerle yazın.
400physical_pos.input.reason_code_invalidSebep kodu geçersiz.İşleme uygun bir gerekçe kodu gönderin.
400physical_pos.input.vendor_code_invalidÜretici kodu geçersiz.Katalogdaki üretici kodunu kullanın.
400physical_pos.input.virtual_serial_invalidSanal seri numarası geçersiz.Yalnız A-Z ve 0-9 kullanın, en çok 64 karakter.
400physical_pos.input.bank_terminal_number_invalidBanka üye işyeri ya da terminal numarası geçersiz (yalnız büyük harf ve rakam).MID ve TID'yi A-Z ve 0-9 ile, en çok 32 karakter yazın.
404physical_pos.record.reference_not_foundBağlanmak istenen kayıt bulunamadı.Gönderdiğiniz kimlikleri kontrol edin.
409physical_pos.record.already_existsBu kayıt zaten var.Kaydı okuyun; aynı isteği yeni bir anahtarla tekrarlamayın.
409physical_pos.record.field_immutableBu alan oluşturulduktan sonra değiştirilemez.Bu alanı değiştirmeyin; gerekirse yeni kayıt oluşturun.
409physical_pos.record.interval_conflictKayıt aynı anda başka bir istekle değişti; güncel hâlini okuyup yeniden deneyin.Kaydı yeniden okuyup tekrar deneyin.
400physical_pos.input.empty_patchGüncellenecek alan yok.Değiştirmek istediğiniz en az bir alanı gönderin.
400physical_pos.input.filter_invalidListe süzgeci geçersiz; details.field alanındaki değeri düzeltin.details.field'da adı geçen süzgeci düzeltin.
400physical_pos.input.serial_invalidCihaz seri numarası geçersiz.Seri numarasını üreticinin biçimiyle yazın.
400physical_pos.input.channel_variant_invalidEntegrasyon kanalı varyantı geçersiz.Yalnız A-Z, 0-9 ve _ kullanın, en çok 32 karakter.

Kimlik ve ortam

HTTPcodeAçıklamaNe yapmalı
403physical_pos.environment.test_key_read_onlyTEST API anahtarı fiziksel POS kayıtlarını yalnız okuyabilir; değişiklik için LIVE anahtarı ya da paneli kullanın.Fiziksel POS yazma isteklerinin hepsi için canlı anahtarı ya da paneli kullanın.
400physical_pos.input.environment_invalidOrtam bilgisi geçersiz: API anahtarıyla istekte ortam gönderilmez; panel yalnız canlı ortamla çalışır.İstekte environment göndermeyin; ortamı anahtarınız belirler.
403physical_pos.auth.scope_missingBu fiziksel POS işlemi için gerekli yetki yok.Anahtara gereken kapsamı ekleyin.
403physical_pos.auth.organization_missingİsteğin ait olduğu organizasyon doğrulanamadı.Anahtarın geçerli olduğunu kontrol edin; sürerse destekle iletişime geçin.
403physical_pos.auth.environment_missingİsteğin ortamı doğrulanamadı.Anahtarın geçerli olduğunu kontrol edin; sürerse destekle iletişime geçin.
403physical_pos.auth.actor_missingİşlemi yapan kullanıcı doğrulanamadı.Anahtarın geçerli olduğunu kontrol edin; sürerse destekle iletişime geçin.

Mağaza ve kasa

HTTPcodeAçıklamaNe yapmalı
404physical_pos.store.not_foundMağaza bulunamadı.Mağaza kimliğini kontrol edin.
404physical_pos.register.not_foundKasa bulunamadı.Kasa kimliğini kontrol edin.
409physical_pos.store.code_takenBu kodla bir mağaza zaten var (arşivli mağazalar da kodlarını korur).Başka bir kod seçin ya da arşivli mağazayı yeniden açın.
409physical_pos.store.external_ref_takenBu dış referansla bir mağaza zaten var.Başka bir externalRef kullanın.
409physical_pos.store.archivedMağaza arşivli; önce mağazayı yeniden açın.Önce mağazayı yeniden açın.
409physical_pos.store.has_devicesCihaz atanmış mağaza arşivlenemez; cihazları başka bir mağazaya taşıyın, depoya alın ya da emekliye ayırın.Cihazları başka mağazaya ya da kasaya taşıyın, depoya alın ya da emekliye ayırın.
409physical_pos.store.too_many_active_registersMağazanın aktif kasası tek seferde arşivlenemeyecek kadar çok; önce kasaları arşivleyin.Önce kasaları tek tek arşivleyin.
409physical_pos.store.invalid_transitionMağazanın durumu bu şekilde değiştirilemez.Mağazanın güncel durumunu okuyun.
409physical_pos.store.has_active_registersAktif kasası olan mağaza arşivlenemez; önce kasaları arşivleyin.Önce kasaları arşivleyin.
409physical_pos.store.has_open_assignmentsCihaz ataması açık olan mağaza arşivlenemez; cihazları başka bir mağazaya taşıyın, depoya alın ya da emekliye ayırın.Cihazları başka mağazaya ya da kasaya taşıyın, depoya alın ya da emekliye ayırın.
409physical_pos.register.code_takenBu mağazada bu kodla bir kasa zaten var.Bu mağazada başka bir kasa kodu seçin.
409physical_pos.register.archivedKasa arşivli; önce kasayı yeniden açın.Önce kasayı yeniden açın.
409physical_pos.register.has_devicesCihaz atanmış kasa arşivlenemez; cihazları başka bir mağaza ya da kasaya taşıyın, depoya alın ya da emekliye ayırın.Cihazları başka mağazaya ya da kasaya taşıyın, depoya alın ya da emekliye ayırın.
409physical_pos.register.invalid_transitionKasanın durumu bu şekilde değiştirilemez.Kasanın güncel durumunu okuyun.
409physical_pos.register.has_open_assignmentsCihaz ataması açık olan kasa arşivlenemez; cihazları başka bir mağaza ya da kasaya taşıyın, depoya alın ya da emekliye ayırın.Cihazları başka mağazaya ya da kasaya taşıyın, depoya alın ya da emekliye ayırın.
409physical_pos.register.store_archivedArşivli mağazanın kasası açılamaz; önce mağazayı yeniden açın.Önce mağazayı yeniden açın.
409physical_pos.device_assignment.target_archivedArşivli mağazaya ya da kasaya cihaz atanamaz.Etkin bir mağazaya ya da kasaya atayın.

Mantıksal terminal, banka satırı ve cihaz bağı

HTTPcodeAçıklamaNe yapmalı
404physical_pos.terminal.not_foundTerminal bulunamadı.Terminal kimliğini ve anahtarınızın ortamını kontrol edin.
409physical_pos.terminal.code_takenBu kodla bir terminal zaten var.Bu ortamda başka bir terminal kodu seçin.
409physical_pos.terminal.vendor_ref_takenBu üretici terminal referansıyla açık bir terminal zaten var.Değeri kullanan terminali kontrol edin.
409physical_pos.terminal.virtual_serial_takenBu sanal seriyle açık bir terminal zaten var.Değeri kullanan terminali kontrol edin.
409physical_pos.terminal.closedTerminal kapatılmış; değişiklik yapılamaz.Kapatılmış terminal değiştirilemez; gerekirse yeni terminal oluşturun.
400physical_pos.terminal.vendor_requiredBu işlem için terminalin üreticisi belirtilmiş olmalı.Terminale önce üretici atayın ya da vendorCode gönderin.
400physical_pos.device.vendor_unknownCihaz üreticisi tanınmıyor.Katalogdaki etkin bir üreticinin kodunu kullanın.
400physical_pos.terminal.device_vendor_mismatchTerminal ile cihaz farklı üreticilere ait; bağlanamaz.Terminalle aynı üreticinin cihazını kullanın ya da cihazın üreticisini atayın.
409physical_pos.logical_terminal.invalid_transitionTerminalin durumu bu şekilde değiştirilemez.Terminalin güncel durumunu okuyun.
404physical_pos.acquirer.not_foundBanka kaydı bulunamadı.Banka satırı kimliğini ve ortamı kontrol edin.
409physical_pos.acquirer.duplicateBu banka ve terminal numarasıyla bir kayıt zaten var.Mevcut satırı kullanın ya da yeniden etkinleştirin.
400physical_pos.acquirer.currency_invalidPara birimi listesi geçersiz: ISO 4217 kodları, tekrarsız, en çok 16.Listeyi tekrarsız ISO 4217 kodlarıyla, en çok 16 kod olarak gönderin.
409physical_pos.terminal.link_conflictCihaz başka bir terminale bağlı; önce o bağ kapanmalı.Önce cihazın diğer terminaldeki bağını çözün.
409physical_pos.terminal.device_already_linkedCihaz zaten bu terminale bağlı.İşlem gerekmez; terminali okuyun.
409physical_pos.terminal.device_not_linkedTerminale bağlı cihaz yok.İşlem gerekmez; terminali okuyun.
409physical_pos.terminal.environment_mismatchTerminal ile cihazın ortamı (test / canlı) aynı olmalı.Terminalle aynı ortamdaki bir cihaz kullanın.

Cihazlar

HTTPcodeAçıklamaNe yapmalı
404physical_pos.device.not_foundCihaz bulunamadı.Cihaz kimliğini ve ortamını kontrol edin.
404physical_pos.device_model.not_foundCihaz modeli bulunamadı.Katalogdaki bir model kimliğini kullanın.
400physical_pos.device.model_vendor_mismatchCihaz modeli seçilen üreticiye ait değil.vendorCode ile aynı üreticinin modelini seçin.
409physical_pos.device.model_deprecatedBu cihaz modeli kullanımdan kaldırılmış; yeni cihaz eklenemez.Etkin bir model seçin.
400physical_pos.device.app_mode_invalidUygulama modu yalnız uygulamalı entegrasyon kanallarında (APP2APP, LOCAL_REST) seçilebilir.appMode'u yalnız APP2APP ya da LOCAL_REST kanalında gönderin.
409physical_pos.device.serial_takenBu seri numarasıyla kayıtlı bir cihazınız zaten var.Bu seriyle kayıtlı cihazınızı kullanın.
409physical_pos.device.external_ref_takenBu dış referans başka bir cihazınızda kullanılıyor.Başka bir externalRef kullanın.
409physical_pos.device.already_assignedCihaz zaten bu mağaza ve kasaya atanmış.İşlem gerekmez; cihazı okuyun.
409physical_pos.device.not_assignedCihaz herhangi bir mağazaya atanmış değil.İşlem gerekmez; cihazı okuyun.
409physical_pos.device.invalid_transitionCihazın durumu bu şekilde değiştirilemez.Cihazın güncel durumunu okuyun.
409physical_pos.device.ownership_unverifiedSahipliği doğrulanmamış cihaz etkinleştirilemez.Sahipliği doğrulanmamış cihazın durumu değiştirilemez.
409physical_pos.device.identity_activeCihazın etkin kimlik anahtarı ya da açık aktivasyon kodu var; önce kimliği iptal edin.Cihazın etkin kimliği varken emekliye ayrılamaz.
409physical_pos.device.retiredCihaz emekliye ayrılmış; bu işlem yapılamaz.Emekli cihaz değiştirilemez; başka bir cihaz kullanın.

Sunucu

HTTPcodeAçıklamaNe yapmalı
503physical_pos.service.busyKayıt şu anda başka bir işlemle meşgul; kısa bir süre sonra yeniden deneyin.Kısa bir beklemeden sonra aynı istekle yeniden deneyin.
503physical_pos.dependency.unavailableBağımlı servis şu anda yanıt vermiyor; lütfen biraz sonra yeniden deneyin.Geri çekilerek yeniden deneyin.
503physical_pos.service.not_configuredFiziksel POS hizmeti şu anda kullanılamıyor. Lütfen daha sonra tekrar deneyin.Geri çekilerek yeniden deneyin.
500physical_pos.internal.integrityİşlem şu anda tamamlanamıyor. Lütfen daha sonra tekrar deneyin.Geri çekilerek yeniden deneyin; sürerse requestId ile destekle iletişime geçin.
500physical_pos.gateway.response_invalidFiziksel POS hizmetinden beklenmeyen yanıt alındı. Lütfen daha sonra tekrar deneyin.Geri çekilerek yeniden deneyin; sürerse requestId ile destekle iletişime geçin.

Başka bir organizasyona ait kayıt ile olmayan kayıt aynı 404 cevabını alır; biçim dışı kimlikler de aynı cevabı alır. Bu, kayıtların varlığının dışarıdan anlaşılmasını önler.

Platform kodları

Bu kodlar imza, ürün, kapsam, doğrulama ve oran sınırı katmanlarından gelir ve bütün ürünlerde aynıdır:

HTTPcodeNe zaman
400VALIDATION_ERRORTanımlanmamış alan ya da sorgu parametresi; değer kümesi dışında süzgeç; yanlış tip.
401AUTH_HEADERS_MISSING, INVALID_KID, INVALID_SIGNATURE, NONCE_REPLAY, INVALID_DATE, DIGEST_MISSING, INVALID_DIGESTİstek imzası eksik ya da geçersiz. → Kimlik Doğrulama ve Kapsamlar
403IP_NOT_ALLOWED, MERCHANT_SUSPENDEDİstek anahtarın IP izin listesi dışından geldi ya da hesabınız aktif değil.
403PRODUCT_NOT_ENABLEDAnahtarda Fiziksel POS ürünü (PHYSICAL_POS) yok.
403API_INSUFFICIENT_SCOPEAnahtarda ucun kapsamı yok. → Kapsamlar
429RATE_LIMITEDOran sınırı aşıldı; Retry-After kadar bekleyin. → Oran sınırı
503PRODUCT_ENTITLEMENT_UNAVAILABLEÜrün yetkiniz şu an doğrulanamadı; geri çekilerek yeniden deneyin.
503gateway.downstream_unavailableHizmete şu an ulaşılamıyor; geri çekilerek yeniden deneyin.
504gateway.downstream_timeoutHizmet zamanında yanıt vermedi; geri çekilerek yeniden deneyin. Oluşturma isteklerinde aynı Idempotency-Key'i kullanın.

Kodların ayrıntısı: Hata Yönetimi › Kod sözlüğü.