Cüzdanlı Kullanıcı Aktarımı (CSV)
CSV dosyası yükleyerek cüzdan adresine sahip kullanıcıları sisteme aktarır. Limitler ve yanıt yapısı Bulk JSON endpoint ile aynıdır: en fazla 500 satır, maksimum dosya boyutu 5 MB, satır bazlı sonuçlar.
İstek
POST /v2/users/users/migrate/with-wallet/csv
Başlıklar
| Ad | Açıklama |
|---|---|
Authorization | Gerekli. Kimlik doğrulama için Bearer token |
Content-Type | Gerekli. multipart/form-data olmalı |
Form Alanları
| Ad | Açıklama |
|---|---|
file | Gerekli. CSV dosyası. İlk satır başlık olarak yorumlanır. |
CSV Formatı
İlk satır başlıktır. Sadece wallet_address zorunludur; diğer tüm sütunlar opsiyoneldir ve dosyadan tamamen çıkarılabilir.
| Sütun | Tip | Zorunlu | Notlar |
|---|---|---|---|
wallet_address | string | Evet | Sunucuda küçük harfe normalize edilir. |
external_id | string | Hayır | email yoksa gereklidir. Boşluk karakterleri trim edilir. |
email | string | Hayır | external_id yoksa gereklidir. |
name | string | Hayır | Yoksa veya boşsa null saklanır. |
surname | string | Hayır | Yoksa veya boşsa null saklanır. |
kyc_sent | boolean | Hayır | Varsayılan false. Kabul edilen doğru değerler: true, 1, yes, y (büyük/küçük harf duyarsız). |
Dosya başındaki UTF-8 BOM karakterine tolerans gösterilir. Sütun sırası önemli değildir — parser başlık adına göre eşleştirir.
Örnek — Klasik mod (tek satır)
email,name,surname,wallet_address,kyc_sent
john@example.com,John,Doe,0xAbCdEf0123456789ABCDEF0123456789ABCDEF01,false
Örnek — KVKK modu (kişisel bilgi yok)
external_id,wallet_address,kyc_sent
EXT-1042,0xAbCdEf0123456789ABCDEF0123456789ABCDEF01,true
EXT-1043,0x2222222222222222222222222222222222222222,false
Örnek — Karışık
external_id,email,name,surname,wallet_address,kyc_sent
EXT-1042,,,,0x1111111111111111111111111111111111111111,true
,alice@example.com,Alice,Smith,0x2222222222222222222222222222222222222222,false
cURL Örneği
curl --location '{{baseUrl}}/v2/users/users/migrate/with-wallet/csv' \
--header 'Authorization: Bearer <token>' \
--form 'file=@./users.csv'
Yanıt
Bulk JSON endpoint ile aynıdır: toplam sayaçlar ve satır bazlı results[] dizisi.
{
"total": 2,
"success": 2,
"skipped": 0,
"failed": 0,
"results": [
{ "external_id": "EXT-1042", "user_id": "6913872755654191dede37da", "status": "created" },
{ "external_id": "EXT-1043", "user_id": "6913872755654191dede37db", "status": "created" }
]
}
Durum Kodları
| Durum Kodu | Açıklama |
|---|---|
| 200 | Başarılı — satır bazlı sonuçlar döner. |
| 400 | Hatalı İstek — dosya yok, dosya çok büyük, başlıkta wallet_address yok, CSV satır limitini aşıyor veya boş dosya. |
| 401 | Yetkisiz — Geçersiz veya eksik kimlik doğrulama token'ı. |
| 500 | Sunucu hatası. |
Sık Karşılaşılan 400 Hata Mesajları
| Mesaj | Sebep |
|---|---|
file is required | file form alanı eksik. |
file too large | Dosya 5 MB sınırını aşıyor. |
csv header is required | İlk satır parse edilemedi. |
missing csv column: wallet_address | Zorunlu sütun başlıkta yok. |
csv exceeds row limit | 500'den fazla veri satırı. |
csv has no rows | Başlık var ama veri satırı yok. |