Hatalar
PrimeAPI isteklerine verilen yanıtlarda tüm uç noktalar bir ApiResult<T> zarfı kullanır. Başarılı sonuçlarda result alanı dolu, error boş olur. Hata durumlarında HTTP 200 döndürülebilir ancak error alanı dolar.
Yanıt zarfı
- Name
result- Description
İstenen değerin kendisi (tipi uç noktaya göre değişir).
- Name
error- Type
- string
- Description
Hata durumunda açıklama mesajı. Endpoint'in sonuç alanlarını da kontrol edin; V4 mobil imzada başarı için result.isSuccess true olmalıdır.
- Name
errorCode- Type
- string?
- Description
Dilden bağımsız, opsiyonel makine hata kodu. Null ise JSON'a yazılmaz. Başarılı yanıtta, eski sürümlerde veya kod üretilmeyen validasyon hatalarında bulunmayabilir; alanın yokluğu tek başına başarı anlamına gelmez.
Hata türleri
PrimeAPI’de iki ana hata kaynağı vardır:
- Name
ApplicationError- Description
İş kuralı/validasyon hataları. Örn. zorunlu alanların eksikliği, yetkisizlik, kaynak bulunamaması.
- Name
SystemError- Description
Beklenmeyen durumlar/istisnalar. Sunucu tarafından yakalanıp
erroriçine özetlenir.
V4 mobil imza ve fingerprint hata kodları
Bu sözleşme PAdES Mobile V4, CAdES Mobile V4, XAdES Mobile V4 ve ortak V2 fingerprint güncellemesini içeren API sürümü için geçerlidir. Dokümanın güncellenmiş olması ilgili API ortamının deploy edildiği anlamına gelmez; ortam sürümünü doğrulayın. V1/V2 imza endpoint'lerinin aynı kodları ürettiği varsayılmamalıdır.
| Kod | Kaynak ve anlamı | Entegratör aksiyonu |
|---|---|---|
USER_CANCEL | V4 imza yanıtı: operatörün imza durum kodu 401, kullanıcı iptali. HTTP 401 değildir. | İlgili imza/fingerprint takibini sonlandırın, iptal mesajını gösterin. Yeni denemeyi kullanıcı başlatsın. |
UNKNOWN_CLIENT | V4 imza yanıtı: SOAP 105 / UNKNOWN_CLIENT veya profil yanıtı 105, hedef kullanıcı operatör tarafından tanınmıyor. | Takibi durdurun; telefon numarası, seçilen operatör ve mobil imza aboneliğini kontrol ettirin. Otomatik tekrar göndermeyin. |
EXPIRED_TRANSACTION | V4 operatör imza yanıtı 208: işlemin süresi doldu. USER_CANCEL değildir. | Takibi durdurun; süre dolması bilgisini gösterin, otomatik yeni imza talebi göndermeyin. |
OPERATOR_TIMEOUT | V4 operatör HTTP çağrısında zaman aşımı: kesin imza sonucu alınamadı. | Takibi durdurun; belirsiz sonucu otomatik tekrar ile telafi etmeyin. İşlem kimlikleriyle kontrol ettirin. |
OPERATOR_UNAVAILABLE | V4 operatör iletişimi başarısız (ör. HTTP 502). | Takibi durdurun; iletişim hatasını gösterin, otomatik yeni imza talebi göndermeyin. |
SIGNING_FAILED | V4 iç mobil imzalama işlemi başka nedenle tamamlanamadı. | Takibi sonlandırın, güvenli hata mesajını gösterin; inceleme için işlem zamanı, giriş/sonuç işlem kimlikleri ve requestId'yi saklayın. |
FINGERPRINT_TIMEOUT | V2 fingerprint sorgusunda değer 20 saniyelik bekleme bütçesinde bulunamadı. | Bunu iptal veya kesin imza başarısızlığı saymayın. Devam eden imza isteğinin sonucunu esas alın; sınırsız polling veya otomatik yeni imza isteği üretmeyin. |
UNKNOWN_CLIENT servis hesabı/parola hatası değildir. USER_CANCEL, operatörün bildirdiği sonuçtur; kullanıcının cihazda yaptığı fiziksel eylemin bağımsız doğrulaması değildir. Bu kodlardan geçmişteki her genel hatanın veya HTTP 524'ün kullanıcı iptali olduğu sonucu çıkarılamaz.
EXPIRED_TRANSACTION, OPERATOR_TIMEOUT ve OPERATOR_UNAVAILABLE için ilgili V4 API iyileştirmesinin dağıtılmış olması gerekir. Eski sürümler bu durumlarda SIGNING_FAILED dönebilir. HTTP timeout bir telefon iptali değildir. V4 HTTP istemcisinin süresi 150 saniye, operatöre verilen süre 120 saniyedir; reverse proxy ve toplam API süresi için garanti verilmez.
| Kod | Türkçe error | İngilizce error |
|---|---|---|
EXPIRED_TRANSACTION | Mobil imza işleminin süresi doldu. | The mobile signing transaction has expired. |
OPERATOR_TIMEOUT | Mobil imza operatöründen zamanında yanıt alınamadı. | The mobile signing operator did not respond in time. |
OPERATOR_UNAVAILABLE | Mobil imza operatörüyle iletişim kurulamadı. | Communication with the mobile signing operator failed. |
Kullanıcı iptali — displayLanguage: tr
{
"result": {
"isSuccess": false,
"operationId": "22222222-2222-2222-2222-222222222222"
},
"error": "Mobil imza işlemi iptal edildi.",
"errorCode": "USER_CANCEL"
}
Mobil imza kaydı bulunamadı — displayLanguage: tr
{
"result": {
"isSuccess": false,
"operationId": "22222222-2222-2222-2222-222222222222"
},
"error": "Bu telefon numarası için operatörde mobil imza kaydı bulunamadı. Numaranızı ve seçilen operatörü kontrol edin.",
"errorCode": "UNKNOWN_CLIENT"
}
Fingerprint bekleme süresi doldu — displayLanguage: tr
{
"result": { "fingerPrint": null },
"error": "Bekleme süresi içinde parmak izi bulunamadı.",
"errorCode": "FINGERPRINT_TIMEOUT"
}
displayLanguage: "en" için iptal mesajı Mobile signing was cancelled., abonelik mesajı No mobile signature registration was found for this phone number with the operator. Check the phone number and selected operator. olur. Fingerprint mesajı Fingerprint could not be found within the waiting period. şeklindedir. Kararları çevrilen mesaj metni yerine kod ve işlem sonucuna göre alın.
Mevcut result ve error alanları korunur. Yeni alanları reddeden katı istemci modellerine opsiyonel errorCode ekleyin; bilinmeyen kodlar için genel hata yolu bırakın. Ham SOAP veya kimlik bilgileri bu hata yanıtlarına eklenmez. Kodlar yeni bir veritabanı kolonu değildir; geçmiş kayıtlar ve başka sorgu endpoint'leri aynı kodları döndürmeyebilir.
İmza hatasında bekleyen fingerprint sorgusunu mümkünse iptal edin. Fingerprint'in bulunması başarı kanıtı değildir; geç gelen yanıt sonlandırılmış işlemi tekrar aktif hale getirmemelidir. Fingerprint sorgusunda imza isteğinin girişindeki dosya işlem kimliğini, başarılı imzayı indirirken ise imza yanıtındaki yeni işlem kimliğini kullanın.
Yaygın uygulama hataları (mesajlar)
Bu bölüm, controller’larda en sık görülen hataların kısa bir listesidir. Metinler birebir veya yakın olabilir; sürümlere göre küçük farklılıklar gösterebilir.
- Name
UserId boş- Description
Yetkilendirme kimliği (user_id claim) yok veya geçersiz.
- Name
empty-request-id- Description
RequestId21 karakter değil ya da boş.
- Name
user-not-found- Description
Kullanıcı bulunamadı veya pasif/silinmiş.
- Name
ApiUser bulunamadı.- Description
İlgili kullanıcıya ait ApiUser kaydı yok.
- Name
ApiUser CoreApiV2 kullanımı için uygun değil.- Description
ApiUser tipi bu uç noktayı kullanmaya uygun değil.
- Name
users-organization-not-found- Description
Kullanıcının organizasyon kaydı bulunamadı.
- Name
Lisans süresi bitmiş.- Description
Organizasyon lisansı sona ermiş (CoreApiFile.UploadFile).
- Name
Dosya bulunamadı.- Description
operationIdile ilişkili çıktı dosyası mevcut değil.
- Name
Dosya silinmiş.- Description
İlgili işlem silinmiş durumda (DeletedDate dolu).
- Name
Farklı kullanıcıya ait işlem.- Description
İşlem sahibinin kullanıcısı ile istek yapan kullanıcı farklı.
- Name
Geçersiz uploadsessionid. / Yükleme oturumu bulunamadı / geçersiz- Description
Parça/parça yüklemede yanlış veya süresi dolmuş oturum.
- Name
Eksik header. / Geçersiz chunkindex. / Parça boyutu geçersiz.- Description
Chunk upload sırasında eksik ya da hatalı başlık/değer.
- Name
Birleştirilmiş dosya boyutu beklenenden farklı.- Description
Parça birleştirme sonrası dosya boyutu doğrulanamadı.
- Name
Önimzalı doküman okunamadı.- Description
signStepThree aşamasında dosya okunamadı.
- Name
İmzalama işleminde hata oluştu.- Description
İmzalama sırasında beklenmeyen durum.
- Name
İmzalı veri boş olamaz. / İşlem şifresi geçersiz.- Description
signStepThree giriş doğrulamaları (SignedData/KeyId/KeySecret).
Örnek hata yanıtı
Application error
{
"result": null,
"error": "user-not-found"
}
System error
{
"result": null,
"error": "System error occurred. Please contact support. Ref: 2025-12-18T10:15:30Z"
}
İyileştirme önerileri
- Name
İstek doğrulaması- Description
RequestId(21 karakter) ve dil (displayLanguage) alanlarını doldurun.
- Name
OperationId zinciri- Description
Giriş ve sonuç işlem kimliklerini ayrı saklayın. V4 fingerprint sorgusunda imza isteğinin girişindeki dosya operationId'sini; imzalı dosyayı indirirken başarılı imza yanıtındaki yeni operationId'yi kullanın.
- Name
Retry/idempotency- Description
Chunk upload parça yüklemesi idempotenttir; aynı parçayı tekrar göndermek kabul edilebilir.
- Name
Log korelasyonu- Description
Hata mesajlarını
operationIdverequestIdile birlikte kaydedin.