Cüzdan
Son Kullanıcılar
Dondurma

Son Kullanıcıyı Dondurma

Bu uçları kim çağırır?Dış API (s2s)
Taban yol
/api/v1/wallet
Kimlik
Ed25519 istek imzası — X-Key-Id, X-Date, X-Nonce, Digest (body varsa), X-Signature. Zaman penceresi ±5 dk, nonce tek kullanımlık, anahtarda IP allow-list olabilir.
Yetki
Anahtarınız cüzdan ürününü ve çağrının gerektirdiği cüzdan iznini taşımalıdır; izni olmayan çağrı 403 WALLET_INSUFFICIENT_SCOPE alır. Uç başına izinler: Anahtar izinleri.
Çapraz yüzey
Dondurma s2s ve merchant panelde vardır. Dondurmayı kaldırma ve kapatma yalnız paneldedir: Panel — Son Kullanıcılar. Bu uç için anahtarınızda wallet:enduser:manage ya da wallet:program:manage izni gerekir.
POST /api/v1/wallet/end-users/{id}/freeze

Kullanıcının durumunu ACTIVE'den FROZEN'a çeker. Şüpheli bir işlem, hesap ele geçirme şüphesi ya da kendi risk kararınız için kullanılır. Dondurma geri alınabilir; bakiye korunur.

İstek

HeaderZorunluKural
İmza header'ları✅Kimlik Doğrulama
Idempotency-Key✅1–128 karakter
Body alanıTipZorunluKural
reasonstring—Dondurma gerekçesi, en fazla 240 karakter.

Body göndermeyecekseniz boş bir JSON nesnesi ({}) gönderebilirsiniz.

curl -X POST "https://api-gateway.lunixi.com/api/v1/wallet/end-users/8d4c2a1f-3b6e-4f7a-9c5d-2e8b1a0f6c34/freeze" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: freeze-crm-88213-20261011" \
  -H "X-Key-Id: …" -H "X-Date: …" -H "X-Nonce: …" -H "Digest: …" -H "X-Signature: …" \
  -d '{"reason":"Müşteri telefonunu kaybettiğini bildirdi"}'
{
  "status": "success",
  "code": "SUCCESS",
  "message": "…",
  "data": {
    "endUser": {
      "id": "8d4c2a1f-3b6e-4f7a-9c5d-2e8b1a0f6c34",
      "programId": "5b9e2f3a-7c41-4d8e-a6f2-9e1b3c4d5f60",
      "accountType": "PERSONAL",
      "externalCustomerId": "crm-88213",
      "phoneMasked": "9053******67",
      "displayNameMasked": "A*** Y*****",
      "status": "FROZEN",
      "updatedAt": "2026-10-11T11:20:37.912Z"
    }
  },
  "requestId": "…"
}

Yanıt endUser görünümünün tamamını döner; alanlar Detay ve Arama sayfasındadır (örnek kısaltılmıştır).

Dondurulmuş kullanıcı

Sonuç
Gönderen olarak cüzdandan cüzdana transfer, IBAN'a transfer, para çekme, bakiye yüklemeBaşlatılamaz — 409 WALLET_STATE_INVALID
Cüzdanla ödemede ödeyen olmakKullanıcı bulunamamış sayılır — 404 WALLET_NOT_FOUND
Cüzdandan cüzdana transferde alıcı olmakAlıcı bulunamamış sayılır — 404 WALLET_NOT_FOUND
Cüzdan sorgulamaexists: false döner
Yeni cüzdan açmak409 WALLET_STATE_INVALID
BakiyeKorunur; para hareket etmez
Okumalar (detay, bakiye, limit durumu, liste)Çalışır

Dondurma, başlamış işlemleri geri almaz. Kararınızı vermeden önce kullanıcının açık operasyonlarını Operasyonlar üzerinden kontrol edin.

Tekrar çağrı

  • Kullanıcı zaten FROZEN ise çağrı başarılı olur ve kullanıcıyı değiştirmeden döner.
  • Aynı Idempotency-Key ile tekrar, ilk yanıtı döner. Karşılaştırma yalnız kullanıcı kimliği üzerinden yapılır; reason farklı olsa bile ilk yanıt döner.
  • CLOSED bir kullanıcı dondurulamaz: 409 WALLET_STATE_INVALID.

Dondurmayı kaldırma ve kapatma

Bu iki işlem s2s API'de yoktur; operasyon ekibiniz merchant panelden yapar:

  • Dondurmayı kaldırma kullanıcıyı ACTIVE'e döndürür.
  • Kapatma kullanıcıyı, tüm cüzdanlarını ve hesaplarını CLOSED yapar ve geri alınamaz. Hesaplardan birinde bakiye varsa kapatma 409 WALLET_BALANCE_NOT_ZERO ile reddedilir.

Ayrıntı: Panel — Son Kullanıcılar.

Hatalar

HTTPKodNe zaman
400VALIDATION_ERRORreason 240 karakterden uzun ya da body tanımsız bir alan içeriyor
400—{id} UUID değil; Idempotency-Key eksik, boş ya da 128 karakterden uzun
403WALLET_INSUFFICIENT_SCOPEAnahtarda wallet:enduser:manage ya da wallet:program:manage yok
404WALLET_NOT_FOUNDKullanıcı yok ya da size ait değil
409WALLET_STATE_INVALIDKullanıcı CLOSED
409WALLET_IDEMPOTENCY_IN_PROGRESSAynı anahtarla gönderilen ilk istek hâlâ işleniyor