Skip to main content
Yeni anahtarlar konsol veya programatik olarak oluşturulabilir. İki durumda da client_secret yalnızca yanıtta bir kez döner — sonradan tekrar erişilemez.

Konsoldan oluşturma

1

API Anahtarları sayfası

Konsol → Ayarlar → API Anahtarları.
2

Yeni Anahtar Oluştur

Sağ üstteki butona basın.
3

Bilgileri girin

  • Görünen ad — hangi servis/ortam için (örn. “Production — Ödeme Servisi”).
  • İletişim e-postası — opsiyonel; alarm/uyarı için.
  • Plan — bu anahtara atanacak plan (rate limit + kotalar).
  • IP whitelist — production için zorunlu kabul edin.
  • Geçerlilik tarihi — opsiyonel; geçici anahtarlar için.
4

Secret'i kopyalayın

Üretilen client_secret değerini güvenli bir yere (vault, secret manager) kopyalayın. Bu pencere kapatıldıktan sonra bir daha gösterilmez.

API ile oluşturma

POST /api/v1/tenants/me/api-keys
Bearer access token gerektirir + kullanıcı tenant-admin rolünde olmalı.
curl -X POST https://identity.payven.com.tr/api/v1/tenants/me/api-keys \
  -H "Authorization: Bearer $PAYVEN_TOKEN" \
  -H "Idempotency-Key: api-key-prod-payments-1" \
  -H "Content-Type: application/json" \
  -d '{
    "display_name":            "Production — Ödeme Servisi",
    "contact_email":           "ops@example.com",
    "merchant_id":             "M-IST-001",
    "plan_id":                 "abc-...",
    "daily_limit_override":    null,
    "monthly_limit_override":  null,
    "rate_limit_override":     null,
    "allowed_ips":             "52.18.42.10,52.18.42.0/24",
    "expires_at":              null
  }'
AlanTipZorunlulukAçıklama
display_namestringZorunluAnahtar için açıklayıcı ad
contact_emailstringOpsiyonelAlarm / uyarı e-postası
merchant_idstringOpsiyonelDefault merchant external ID — access token claim’ine yansır
plan_idUUIDOpsiyonelAtanacak plan — boş bırakılırsa tenant default’u
daily_limit_overrideintOpsiyonelPlan günlük limitini override eder (kuruş)
monthly_limit_overrideintOpsiyonelPlan aylık limit override
rate_limit_overrideintOpsiyonelPlan RPS override
allowed_ipsstringOpsiyonelCSV IP / CIDR listesi (örn. 52.18.42.10,10.0.0.0/8). Boş = tüm IP’ler
expires_atdatetimeOpsiyonelAnahtarın otomatik pasifleşeceği tarih (UTC, ISO 8601)

Yanıt

201 CreatedCreateApiKeyResult:
{
  "api_key": {
    "id":                       "8e3f5c12-...",
    "tenant_id":                "1a2b3c4d-...",
    "client_id":       "pvk-payven-a1b2c3",
    "display_name":             "Production — Ödeme Servisi",
    "contact_email":            "ops@example.com",
    "merchant_id":              "M-IST-001",
    "plan_id":                  "abc-...",
    "plan_code":                "standard",
    "plan_name":                "Standart Plan",
    "effective_daily_limit":    100000,
    "effective_monthly_limit":  3000000,
    "effective_rate_limit":     200,
    "allowed_ips":              "52.18.42.10,52.18.42.0/24",
    "expires_at":               null,
    "is_active":                true,
    "created":                  "2026-05-03T12:34:56.789+00:00"
  },
  "secret": "AbC123dEf456GhI789jKl012MnO345pQ"
}
secret alanı yalnızca bu yanıtta dönecek. Liste/detay endpoint’lerinde döndürülmez. Hemen secret manager’ınıza (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, Doppler, vb.) kaydedin.

Hemen kullanmaya başlama

Aldığınız client_id + client_secret çifti ile Identity’den access token alın ve ürün servislerine gönderin. Access token içinde tenant_id, merchant_id, plan_code, daily_limit, monthly_limit, rate_limit gibi claim’ler taşınır — ürün servisleri bunları doğrudan doğrular, ek bir kimlik akışı gerekmez.

Hata response’ları

Hata yanıtı RFC 9457 problem+json.
HTTPcodeAnlam
403forbiddentenant-admin rolü yok
404plan_not_foundBelirtilen plan_id bulunamadı
409api_key_limit_reachedPlan kotanız aktif anahtar sayısı için doldu
422invalid_ip_formatallowed_ips formatı geçersiz (IP / CIDR olmalı)
422invalid_expires_atGeçmiş tarih veya format hatalı