İYS API hata kodları, isteğinizin neden reddedildiğini H ile başlayan bir kodla söyler. En sık görülenler şunlardır: H174 aynı durumla tekrar güncelleme, H175 ilk kaydın RET olması, H178 sistemdekinden eski tarihli güncelleme ve H467 üç iş gününden eski izin. Bu dört kodun hiçbiri aynı isteği tekrar göndererek çözülmez. Veriyi ya da süreci düzeltmeniz gerekir.

Bu yazıda hata yanıtlarının biçimini, en önemli kodların resmî anlamını, her biri için ne yapmanız gerektiğini ve hangi hatalarda tekrar denemenin doğru, hangilerinde zararlı olduğunu anlatıyoruz. Kodların tam listesi İYS API dokümantasyonundadır; burada pratikte işinize yarayanları grupladık. Uç noktaların kendisi için İYS API entegrasyonu yazısına bakın.

Hatalar nasıl döner?

Hatalar nasıl döner? HTTP durumu da anlam taşır, Toplu eklemede, X-Trace-Id

İYS API metotlarının çoğu hata durumunda bir errors dizisi döner; her öğede code ve message bulunur. Jeton servisi OAuth biçimini kullanır, ViA PASS metotları ise errorCode ve errorMessage alanlarıyla yanıt verir.

json
// İYS API metotları (izin, bayi, sorgu vb.)
{ "errors": [ { "code": "H175", "message": "İlk defa kaydedilen bir iznin durum (status) bilgisi RET olmamalıdır." } ] }

// /oauth2/token (OAuth biçimi)
{ "error": "invalid_request", "error_description": "Kullanıcı kimlik bilgileri geçersiz." }

// ViA PASS metotları
{ "errorCode": "ERR-SYS-0004", "errorMessage": "..." }
  • HTTP durumu da anlam taşır: 400 ve 422 veri hatası, 401 kimlik, 403 yetki ve abonelik, 429 limit, 500 ve 503 sunucu tarafı sorunudur.
  • Toplu eklemede hata, ilk yanıtta değil sonuç sorgusunda gelir. GET .../consents/request/{requestId} yanıtında her alt istek için status: "failure" ve bir error nesnesi döner.
  • X-Trace-Id: 19/10/2026 tarihli 3.2.3 sürümünden beri tüm yanıtlarda bu başlık var. İstek, yanıt ve X-Trace-Id değerini birlikte loglayın; destek başvurusunda bunları iletmeniz isteniyor.

İş kuralı hataları: H174, H175, H178, H467 ve diğerleri

Bu gruptaki hatalar isteğin biçimi doğru olsa bile İYS'deki kayıtla ya da mevzuatla çeliştiğini gösterir.

KodHTTPResmî anlamNe yapmalı
H174400İzin durumu güncellemesi için farklı bir durum girilmelidir (ONAY/RET)Kayıt zaten bu durumda; sorgulayıp doğrulayın, tekrar göndermeyin
H175400İlk defa kaydedilen bir iznin durumu RET olmamalıdırİYS'de kaydı olmayan adres için RET göndermeyin; kendi listenizde gönderim dışı tutun
H178400Sistemdeki iznin tarihinden önceki tarihli izinlerle güncelleme yapılamazMevcut kaydı sorgulayın, hareketleri tarih sırasıyla gönderin
H467422 / 400Üç iş günü öncesinde alınan izinler kaydedilemezOnayları üç iş günü içinde gönderen bir akış kurun
H408422HS_KARAR kaynağından iletilen izinler için durum RET olmalıdırHS_KARAR yalnızca RET ile ve mevcut bir kayıt için kullanılır
H462 / H463400TACIR izinleri güncellenirken consentDate / source verilmelidirTACIR güncellemesinde iki alanı da gönderin
H155422HS_2015 izinlerinde tarih yalnızca 2015-05-01 00:00:00 olabilirHS_2015 kaynağında tarihi bu değere sabitleyin
H1564221 Mayıs 2015 öncesi tarihler kabul edilmezTarih verisini kontrol edin
H162422Mevcut tarih ve saatten ileri bir tarih girilmemelidirSunucu saatini ve saat dilimini (Türkiye saati) kontrol edin

H174: Aynı durumla güncelleme

ONAY durumundaki bir izne tekrar ONAY, RET durumundakine tekrar RET gönderdiğinizde gelir. Çoğu zaman sizin sisteminizle İYS'nin zaten aynı durumda olduğunu gösterir. Mutabakat ve eşitleme işlerinde bu kodu "değişiklik gerekmiyor" olarak ele alın, ama emin olmak için consents/status ile kaydı sorgulayın.

H175: İlk kayıt RET olamaz

İYS'de hiç kaydı olmayan bir adres için ilk hareket RET olamaz. Kendi veritabanınızda "pazarlama istemiyor" olarak işaretli ve İYS'de hiç kaydı olmayan kişiler için yapılacak iş, onlara ticari ileti göndermemektir. Bu kişileri İYS'ye ONAY olarak yüklemek ise hem yanlış hem de risklidir.

H178: Eski tarihli güncelleme

İYS, sistemdeki iznin tarihinden önceki tarihli bir hareketle güncelleme kabul etmez. İYS SSS'ye göre kayıtlı bir izin aynı consentDate ile yeniden yüklendiğinde de H178 alınır; SSS bu durumda consentDate değerinin sistemdekinden farklı olacak şekilde güncellenmesini söyler. Pratikte en sık sebep, kuyruktaki hareketlerin sırasız gönderilmesidir. Hareketleri consentDate sırasıyla gönderin. Tarihi de iznin gerçekte alındığı ya da reddedildiği an olarak yazın; yapay tarih üretmeyin, çünkü İYS SSS izin verilen tarihle işlem yapılmamasının şikâyet riski doğurabileceğini belirtiyor.

H467: Üç iş gününden eski izin

Yönetmelik m.7/11'e göre İYS üzerinden alınmayan onaylar hizmet sağlayıcı tarafından üç iş günü içinde İYS'ye kaydedilir, m.7/12'ye göre kaydedilmeyen onaylar geçersizdir. API bu kuralı H467 ile uygular. İYS SSS'ye göre cumartesi, pazar ve resmî tatiller iş gününden sayılmaz. Yeni bir TACIR izni eklenirken bu kural yoktur; TACIR izni güncellenirken devreye girer. Bu hata tekrar denemeyle düzelmez. Onay kuyruğunuzu günlük değil, mümkünse anlık ya da saatlik işleyin ve takılan kayıtlar için alarm kurun. Onay kayıtlarını nasıl saklayacağınızı onay kaydı saklama ve ispat yazısında anlattık.

Format ve doğrulama hataları

Format ve doğrulama hataları: H014, H110-H114, H115-H117, H118
KodHTTPResmî anlam (özet)Ne yapmalı
H014400İstek JSON formatına uygun olmalıdırContent-Type ve gövde serileştirmesini kontrol edin
H110-H114422status, type, consentDate, source veya recipient bulunamadıZorunlu alanı ekleyin
H115-H117422status, recipientType veya type için geçersiz değerEnum değerlerini büyük harf ve Türkçe karaktersiz yazın
H118422Gövdede izin verilmeyen bir alan varYalnızca dokümandaki alanları gönderin
H119 / H486422 / 400Geçersiz izin kaynağı (source)HS_ ile başlayan izinli değerlerden birini kullanın
H120422Geçerli bir e-posta adresi girinizE-postayı doğrulayın; Türkçe karakter ve boşluk olmamalı
H121422Telefon E164 formatında olmalıdır (örn. +905992000000)Numarayı +90 ile başlayan biçime çevirin
H158422İzin tarihi yyyy-mm-dd hh:mm:ss formatında olmalıdırTarih biçimini düzeltin
H464422MESAJ tipi için recipient telefon formatında olmalıdırtype ile recipient eşleşmesini kontrol edin
H091 / H125422Tek seferde en fazla 1000 izinListeyi 1000'lik parçalara bölün
H194422Listede aynı recipientType, type ve recipient tekrar edemezListedeki tekrar eden adresleri çıkarın

Kimlik, yetki ve abonelik hataları

KodHTTPResmî anlam (özet)Ne yapmalı
H250400Kullanıcı adı veya şifre eksikOrtam değişkenlerini kontrol edin
H251401Kullanıcı kimlik bilgileri geçersizŞifreyi kontrol edin; şifre 6 ayda bir güncellenmeli
H351401Eksik veya geçersiz jetonJetonu yenileyip bir kez tekrar deneyin
H353403Alan, kullanıcı izinleriyle eşleştirilemiyoriysCode ve brandCode ortamla ve yetkiyle uyumlu mu bakın
H180403retailerCode ile bayi bulunamadıBayi kodunu bayi listesinden doğrulayın
H520403Abonelik PAUSED veya EXPIRED iken yalnızca abonelik sorgulanabilirAboneliği yenileyin
H521403Abonelik durumu CLOSED iken API kullanılamazAbonelik durumunu İYS ile netleştirin
H524403iysCode için abonelik kaydı bulunamadıAbonelik tanımını kontrol edin
H586403Aboneliğiniz API kullanımını içermiyorPaketinizi kontrol edin
H525422Kullanılan izin sayısı maksimuma ulaştıPaket kotasını yükseltin

Canlı ortamda 401 alıyorsanız İYS SSS'nin önerdiği ilk kontrol IP'dir: istek attığınız IP adresi İYS'de tanımlı olmalıdır. Paket ve kota konuları için İYS ücret tarifesi yazısına bakabilirsiniz.

Limit ve sunucu hataları

KodHTTPAnlamNe yapmalı
H083 / H124429Saniyelik istek limiti (IP başına 10)Kısa bekleyip hızınızı düşürün
H084429Saatlik kimlik doğrulama limitiSüre dolana kadar jeton servisine hiç istek atmayın
H086429Saatlik tekil izin sorgulama limiti (1000)Çoklu sorguya geçin veya sonucu önbelleğe alın
H089429Saatlik izin geçmişi limiti (100)Geçmiş sorgularını azaltın
H123400Servis şu anda meşgul, daha sonra tekrar deneyinizArtan aralıklarla tekrar deneyin
H192503İstek zaman aşımına uğradıDurumu sorgulayıp gerekirse tekrar deneyin
H015, H470, H476500Beklenmedik bir hata oluştuSınırlı sayıda tekrar; sürerse destek
H101, H103500Sunucuya esas veri kaydedilemedi / sunucuda arama yapılamadıSınırlı sayıda tekrar; sürerse destek

Tekrar denensin mi? Karar kuralı

Tekrar denensin mi? Karar kuralı: 429 (H083, H124), 429 (H084, H086, H089), 500, 503, H123, 401 H351

İYS dokümanında genel bir tekrar deneme politikası yer almıyor, ama birkaç kural kararı netleştiriyor. 429 ve bazı 5xx mesajları açıkça "daha sonra tekrar deneyiniz" diyor. Öte yandan canlı ortamda son 24 saatte 20.000 ve üzeri istekte başarı oranı %70'in altına düşerse ve bildirimden sonraki 96 saatte düzelmezse IP adresiniz whitelist'ten çıkarılır. Bu hesaba 400, 401, 403, 404 ve 422 yanıtları girer. Yani hatalı veriyi tekrar tekrar göndermek hem sonuç vermez hem de erişiminizi riske atar.

DurumTekrar dene?Nasıl
429 (H083, H124)EvetKısa bekleme, istek hızını düşürme
429 (H084, H086, H089)Evet, ama geçSaatlik pencere bitene kadar o servise istek atmama
500, 503, H123Evet, sınırlıArtan aralıklarla birkaç deneme; mümkünse V2 tekil ekleme
401 H351Bir kezJetonu yenileyip aynı isteği bir kez
400 ve 422 iş kuralı veya formatHayırVeriyi düzeltip yeni istek
403 yetki veya abonelikHayırYetki veya paket sorununu çözme
javascript
// HTTP durumu ve İYS koduna göre ne yapılacağına karar veren basit yardımcı
function hataKarari(status, kod) {
  if (status === 429) return 'BEKLE';            // limit doldu: pencere bitene kadar bekleyin
  if (status === 401 && kod === 'H351') return 'JETON_YENILE'; // jetonu yenileyip bir kez deneyin
  if (status >= 500 || kod === 'H123') return 'SONRA_DENE';    // artan aralıklarla, sınırlı sayıda
  if (kod === 'H174') return 'ZATEN_BU_DURUMDA';  // sorgulayıp doğrulayın, tekrar göndermeyin
  return 'DUZELT';                                // 400/403/404/422: veri, yetki veya abonelik sorunu
}

5xx sonrasında isteğin İYS'de işlenip işlenmediğinden emin değilseniz, tekrar göndermeden önce consents/status ile kaydı sorgulayın. 3.1.1 sürümüyle gelen V2 tekil ekleme metodu da yardımcı olur: aynı gövde değiştirilmeden tekrar gönderilirse aynı transactionId döner. Toplu eklemede ise boş sonuç bir hata değildir; işlem henüz bitmemiştir ve sonucu en az 300 saniye sonra sorgulamanız gerekir. Bekleme ve kuyruk tasarımı için API rate limiting stratejileri yazısına bakabilirsiniz.

ViA ile ilgili sık hatalar

İYS üzerinden onay toplama hizmeti ViA'nın kendi hata kodları var. En sık karşılaşılanlar şunlar:

  • H1015: İşleme devam edebilmek için ViA kontör miktarı yeterli değil.
  • H1050: OTP kodu en fazla 3 defa hatalı girilebilir.
  • H465: Alıcı için 3 dakika içinde yeni bir süreç başlatılamaz.
  • H1000: Form yayımlanmadığı için süreç başlatılamaz.

ViA akışının tamamını İYS ViA nedir yazısında anlattık.

Sürüm notlarından öne çıkanlar

  • 3.2.3 (19/10/2026): Tüm yanıtlara X-Trace-Id başlığı eklendi.
  • 3.2.2 (13/10/2026): ViA FORM metotları eklendi.
  • 3.1.3 (18/11/2025): Hata kodlarına H486 (geçersiz source) eklendi.
  • 3.1.1 (21/08/2025): Tekil İzin Ekleme V2 ve Asenkron Çoklu İzin Ekleme V2 metotları eklendi.
  • 1.1.3 (22/01/2021): Üç iş günü kuralı (H467) API'ye eklendi.

Eski açık kaynak istemciler V2 metotlarını, push servisini veya H467 gibi sonradan eklenen kuralları içermeyebilir. Hata yönetimini her zaman resmî dokümana göre yazın.

Destek başvurusunda ne gönderilir?

İYS dokümanına göre destek başvurusunda HTTP metodu, tam URL, saniye hassasiyetinde ve saat dilimli istek zamanı, istek gövdesi, yanıt kodu ve gövdesi, X-Trace-Id ve çıkış IP adresi iletilmelidir. Jeton ve şifre paylaşılmamalıdır. Başvuru, API Destek Platformu'na kayıtlı e-posta adresinden destek@iys.org.tr adresine yapılır. Entegratör kullanıyorsanız önce entegratörünüzle iletişime geçmeniz genellikle daha hızlı sonuç verir.

Sık Sorulan Sorular

Toplu eklemede 202 aldım ama izin görünmüyor, neden?

202 ve subRequestId yalnızca isteğin kuyruğa alındığını gösterir. İYS SSS de bunun iznin eklendiği anlamına gelmediğini söylüyor. Sonucu requestId ile sorgulayın; failure satırlarındaki hata kodları sorunu gösterir.

H178 alıyorum ama tarihim doğru, neden?

Aynı consentDate ile kayıtlı bir izni yeniden yüklediğinizde de H178 alırsınız. Ayrıca sistemdeki kayıttan daha eski tarihli bir hareket gönderiyor olabilirsiniz. Önce mevcut kaydı sorgulayın, sonra hareketleri tarih sırasıyla gönderin.

H467 hafta sonu ve bayramda nasıl hesaplanır?

İYS SSS'ye göre cumartesi, pazar ve resmî tatiller iş günü sayılmaz. Yine de son güne bırakmak yerine onayları alındıkları gün göndermek en güvenli yoldur.

429 aldığımda ne kadar beklemeliyim?

Saniyelik limitte (H083, H124) kısa bir bekleme yeterlidir. Saatlik limitlerde (H084, H086, H089) pencere dolmadan o servise istek atmayın; jeton servisinde süre dolmadan atılan istek sayacı yeniden başlatır.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: İYS nedir · İYS API entegrasyonu · İYS ViA nedir · İYS entegratörü nedir · İYS ret bildirimi · REST API güvenlik rehberi