/v1/account kaynağı, access token’ın sahibi olan kullanıcıyı yönetir. Hesap kişiye aittir ve tüm kliniklerde ortaktır: ad, e-posta, şifre, profil fotoğrafı, iki adımlı doğrulama ve bildirim tercihleri bir kez tutulur. Klinik üyeliği ve roller ise klinik başınadır.
Bu kaynaktaki uç noktalar X-Tenant başlığı istemez. Tek istisna GET /v1/account/roles uç noktasıdır. Başlığın nasıl çalıştığı için Klinikler ve X-Tenant sayfasına bakın.
Endpoint özeti
Tüm isteklerAuthorization: Bearer <access_token> başlığı taşır. Scope’ların anlamı için Scope’lar sayfasına bakın.
Hesap silme için ayrı bir scope gerekir. Yalnızca
account:write taşıyan token 403 alır. Uygulamanızın bu scope’u kullanabilmesi için uygulama kaydında account:delete scope’unu da seçin.Hesap bilgileri
GET /v1/account yanıtı şu alanları içerir:
Hesap uç noktalarında zaman damgaları UTC döner, çünkü bu isteklerde klinik bağlamı yoktur.
PUT /v1/account yalnızca name ve email alanlarını kabul eder. Diğer alanlar sessizce yok sayılır. İkisi de gönderildiğinde zorunludur ve en fazla 255 karakter olabilir. E-posta, silinmemiş kullanıcılar arasında benzersiz olmalıdır.
Profil fotoğrafı için POST /v1/account/avatar isteğini multipart/form-data olarak gönderin. file alanı zorunludur. İzin verilen biçimler jpg, jpeg, png ve webp, en büyük boyut 5 MB’tır. Yanıt güncel hesap nesnesidir.
GET /v1/account/onboarding yanıtında default_country_id, default_country, missing_profile_fields, has_tenant, can_create_tenant, email_verified ve pending_invitation_count alanları bulunur. missing_profile_fields yalnızca name içerebilir.
Klinikler ve roller
GET /v1/account/tenants kullanıcının üye olduğu tüm klinikleri döner; pasif klinikler de is_active: false ile listelenir. id değeri, diğer isteklerde X-Tenant başlığına yazacağınız değerdir.
GET /v1/account/roles seçili klinikte kullanıcının rollerini ve etkin izinlerini döner. İzinler klinik başınadır: bir klinikte verilen izin diğer klinikte geçerli olmaz.
402 döner. İzin adlarının kullanımı için İzinler ve görünürlük sayfasına bakın.
POST /v1/account/tenants ile yeni klinik açarken Idempotency-Key başlığı zorunludur (8–128 karakter; harf, rakam ve . _ : -). Gövdede name ve country_id gönderin. Aynı anahtar ve aynı gövde aynı kliniği 201 ile tekrar döner. Aktif bir klinikte zaten üyeyseniz 409 TENANT_CREATION_MEMBERSHIP_EXISTS alırsınız. Bir kullanıcı dakikada en fazla 2 klinik oluşturabilir. Genel kurallar için Idempotency sayfasına bakın.
Başka bir kullanıcıyı kliniğe eklemek veya davet etmek için Kullanıcılar, roller ve davetler sayfasındaki uç noktaları kullanın.
Bildirim tercihleri
Tercihler kullanıcıya aittir ve tüm kliniklerde geçerlidir. Model “kapatma” esaslıdır: bir tür siz kapatmadıkça açıktır.GET /v1/account/notification-preferences her bildirim türü için bir öğe döner:
PUT isteğinde preferences dizisi zorunludur ve en az bir öğe içermelidir. Her öğe yalnızca type ve enabled alanlarını taşır. Aynı type iki kez gönderilmez. Gönderilmeyen türler olduğu gibi kalır; yanıt tüm listeyi döner.
label ve category_label her zaman Türkçedir; Accept-Language değerinden etkilenmez. Bu uç noktanın doğrulama mesajları İngilizcedir.
Bu liste yalnızca uygulama içi bildirim türlerini kapsar. Kimlik ve faturalama e-postaları bildirim türü değildir; tercihlerle kapatılamaz. Bildirimleri okuma ve yönetme için Bildirimler sayfasına bakın.
Şifre ve iki adımlı doğrulama
Hassas işlemler (şifre değiştirme, iki adımlı doğrulamayı başlatma, kapatma ve kodları yenileme, diğer oturumları kapatma, hesap silme)current_password ister. Bu işlemler kullanıcı başına dakikada 5 istekle sınırlıdır; aşıldığında 429 döner. two-factor/confirm için sınır dakikada 3 denemedir. Genel sınırlar için Oran sınırları sayfasına bakın.
Şifre değiştirme
PUT /v1/account/password gövdesi:
Şifre değişince kullanıcının diğer web oturumları kapanır. Diğer OAuth token’ları yalnızca
revoke_other_tokens ile iptal edilir; isteği gönderen token geçerli kalır. Başarılı yanıt: Şifre başarıyla güncellendi.
İki adımlı doğrulama
1
Başlatın
POST /v1/account/two-factor isteğini current_password ile gönderin. Yanıt qr_code_url ve 8 adet recovery_codes içerir. qr_code_url bir otpauth:// adresidir, resim değildir; QR kod olarak siz üretirsiniz. Kurtarma kodlarını yalnızca bu yanıtta ve yenileme yanıtında görürsünüz.2
Onaylayın
Authenticator uygulamasındaki 6 haneli kodu
POST /v1/account/two-factor/confirm isteğinde code olarak gönderin. Onay için şifre gerekmez. Daha önce kabul edilmiş bir kod, süresi dolana kadar tekrar kullanılamaz; aynı kodu yeniden gönderirseniz 422 TWO_FACTOR_INVALID_CODE döner.GET /v1/account/two-factor ile is_enabled ve is_confirmed olarak okursunuz. disable ve recovery-codes/regenerate istekleri current_password ister; yenilemede eski kodlar geçersiz olur.
Tarayıcı oturumları
GET /v1/account/browser-sessions her oturum için id, ip_address, user_agent, last_active_at, is_current_device ve device bilgisini döner. Bearer token ile yapılan isteklerde is_current_device hiçbir zaman true olmaz. POST /v1/account/browser-sessions/logout isteği current_password ile tüm diğer web oturumlarını kapatır. Mobil uygulama ve entegrasyon token’ları etkilenmez.
Hesap silme
DELETE /v1/account isteği için account:delete ve account:sensitive scope’ları gerekir.
OpenAPI şeması bu iki alanı sorgu parametresi olarak gösterir; JSON gövde de çalışır. Şifre URL’de görünmesin diye gövde kullanmanızı öneririz.
Hesabınız silindi. mesajıdır. İşlem şunları yapar:
- Hesabı hemen kapatır, tüm access token’ları iptal eder ve tüm web oturumlarını sonlandırır.
- Kişisel verileri 30 gün sonra anonimleştirmek üzere zamanlar. Randevu, satış ve destek talebi gibi geçmiş kayıtlar anonimleşen kullanıcıya bağlı kalır.
- Eski e-posta adresine bilgilendirme e-postası gönderir.
SINGLE_MEMBER_TENANT yanıtındaki mesaj şöyledir: Hesabınızı silmeden önce tek üyesi olduğunuz kliniklere başka bir kullanıcı eklemeli veya sahipliği devretmelisiniz. Alan hataları (yanlış şifre, geçersiz kod) 422 olarak döner. Tüm hata kodları için Hata kodları sayfasına bakın.
Panelden aynı işlemler için Profil ve güvenlik sayfasına bakın.