Pientegra API

Error Reference

Pientegra error envelope, External API'de dönen stable error code'lar ve retry kararları.

Pientegra hataları tek bir JSON envelope ile döner. Integration kodunda branching için message değil, error alanını kullan.

{
  "error": "validation_failed",
  "message": "Geçersiz istek.",
  "correlationId": "01927b3c-9c1f-7a3a-9c4f-8a3e1f8b1c00",
  "details": {
    "issues": [
      {
        "path": ["targetIban"],
        "message": "Invalid string: must match pattern /^[A-Z0-9]{15,34}$/"
      }
    ]
  }
}

details.issues Zod-style array taşır: her hata path (alan yolu) ve human-readable message içerir. Tek bir request birden fazla issue döndürebilir.

retryAfterSeconds sadece 429 rate_limited response'larında bulunur (yukarıdaki örnekte yer almaz).

FieldAnlam
errorStable, machine-readable code. Business logic burada branch etmeli.
messageDeveloper log'u için human-readable açıklama. Son kullanıcıya birebir göstermeyin.
correlationIdPientegra support ile paylaşılacak trace ID.
retryAfterSecondsSadece rate limit response'larında bekleme süresi.
detailsValidation gibi alan bazlı hatalarda ek context.

Authentication & tenancy

HTTPerrorNe anlama gelir?
401unauthorizedAPI key eksik, geçersiz, expired veya inactive.
403forbiddenRequest policy gereği reddedildi.
403tenant_inactivePartner hesabı veya site operasyonel olarak inactive.
403cross_tenant_deniedAPI key'in scope'u dışındaki bir resource'a erişim denemesi.

Validation

HTTPerrorNe anlama gelir?
400validation_failedBody veya required header contract'a uymuyor. details alanı field-bazlı hata listesi içerir.
400invalid_amountAmount formatı parse edilemedi.
400amount_below_minAmount partner için tanımlı minimum altında.
400amount_above_maxAmount partner için tanımlı maximum üstünde.
400unsupported_currencyCurrency desteklenmiyor (varsayılan ve aktif: TRY).
404not_foundResource yok veya bu API key'in scope'u dışında.

Idempotency & state

HTTPerrorNe anlama gelir?
409duplicate_idempotency_keyAynı Idempotency-Key ile aynı anda işlem sürüyor.
409idempotency_key_reuse_with_different_bodyAynı key farklı payload ile tekrar kullanıldı.
409idempotency_key_expiredAynı key 24 saatlik TTL sonrası tekrar gönderildi; yeni bir key üretip tekrar deneyin.
409conflictGeneric concurrency veya state conflict.
409invalid_state_transitionResource mevcut state'ten hedef state'e geçemez.
409collateral_exceededPartner collateral limiti aşıldı; operasyonel aksiyon gerekir.

Capacity & infrastructure

HTTPerrorNe anlama gelir?
429rate_limitedRate limit aşıldı. Cevap retryAfterSeconds içerir.
503all_accounts_cappedDeposit için uygun aktif hesap kapasitesi kalmadı.
503service_unavailableGeçici dependency veya maintenance problemi.
500internal_errorBeklenmeyen server-side hata.

Retry policy

POST request'lerinde retry yaparken aynı Idempotency-Key kullanılmalıdır. Yeni key ile retry etmek duplicate deposit veya withdrawal kaydı yaratabilir.

DurumAksiyon
Network timeout / connection resetAynı key ile retry.
408, 429, 5xxAynı key ile exponential backoff.
duplicate_idempotency_keyKısa delay sonrası aynı key ile tekrar dene.
validation_failed, unauthorized, forbidden, idempotency_key_reuse_with_different_bodyRetry yapma; request'i düzelt.

Idempotency TTL varsayılan olarak 24 saattir. Bu süre içinde aynı key ve aynı payload replay-safe davranır.

On this page