Faturalandırma¶
TEBHOS ödemeleri tek ödeme sağlayıcısı olan Polar üzerinden alır. Bu sayfadaki yollar bir Polar ödeme sayfası veya müşteri portalı oturumu açar ve URL'sini döndürür; tarayıcı satın alımı ardından Polar'ın barındırılan sayfalarında tamamlar. Bir ödeme tamamlandığında Polar TEBHOS'u bilgilendirir ve TEBHOS satın alınanı (TEBHOS Pro, Pro hediyesi, İş Sınıfı, takviyeler veya mağaza öğeleri) tanımlar. Ortaya çıkan hak durumu Premium sayfasında açıklanır.
Buradaki tüm yollar yalnızca kullanıcılara açıktır: bot token'ı 403 ACCESS_DENIED ile reddedilir. TEBHOS kart bilgilerini hiçbir zaman görmez ve saklamaz.
Satın alımlar eşzamansız olarak tanımlanır
Bir ödeme yolu yalnızca bir URL döndürür. Polar ödemeyi onaylayana kadar hiçbir şey tanımlanmaz. TEBHOS'a geri yönlendirildikten sonra yeni durumu görmek için Premium durumumu al (veya ilgili kaynağı) yeniden okuyun.
Yönlendirme URL'si nesnesi¶
Her ödeme ve portal yolu, tarayıcıda açılacak tek bir URL ile yanıt verir.
| Alan | Tür | Açıklama |
|---|---|---|
| url | string | Polar ödeme sayfası veya müşteri portalı oturumunun mutlak URL'si |
Ödeme para birimi¶
Ödeme oturumları Türk lirası (try) veya ABD doları (usd) ile açılır. Para birimi şu sırayla seçilir:
- İstek gövdesindeki
currencyalanı, değeritryveyausdolduğunda (büyük/küçük harf duyarsız). Diğer değerler yok sayılır. - Aksi hâlde, çağıranın ülkesi Türkiye ise (
CF-IPCountrybaşlığından veya IP konumundan)try. - Aksi hâlde ürünün varsayılanı (USD).
TEBHOS ayrıca ödeme sayfasını hesabın e-posta adresi ve ülkesiyle önceden doldurur ve Polar müşterisini TEBHOS kullanıcı kimliğine bağlar.
Abonelik ödemesi oluştur¶
POST /premium/checkout
TEBHOS Pro aboneliği için bir Polar ödeme sayfası açar ve bir yönlendirme URL'si nesnesi döndürür. Ödemeden sonra tarayıcı https://tebhos.com/premium/callback?status=success adresine döner.
JSON gövdesi¶
Gövde isteğe bağlıdır; gövde yoksa aylık plan kullanılır.
| Alan | Tür | Açıklama |
|---|---|---|
| plan? | string | monthly (varsayılan) veya yearly. cycle diğer ad olarak kabul edilir; annually, annual ve year da yıllık planı seçer |
| currency? | string | try veya usd, bkz. ödeme para birimi |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | yönlendirme URL'si nesnesi | Ödeme oturumu oluşturuldu |
| 400 | hata yanıtı | Bilinmeyen plan veya yıllık plan bu örnekte (instance) yapılandırılmamış (BAD_REQUEST) |
| 500 | hata yanıtı | Polar yapılandırılmamış veya isteği reddetti |
Örnek¶
curl -X POST "https://tebhos.com/api/v1/premium/checkout" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"plan":"yearly","currency":"try"}'
Hediye ödemesi oluştur¶
POST /premium/checkout/gift
Bir arkadaş için TEBHOS Pro satın alan bir Polar ödeme sayfası açar. Ödeme tamamlandığında üyelik doğrudan alıcının hesabına uygulanır (bkz. Hediyeler) ve isteğe bağlı mesaj alıcıya iletilir. Tarayıcı https://tebhos.com/premium/callback?status=gift-success adresine döner.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| recipient_id | snowflake | Hediyeyi alacak kullanıcı. Zorunlu |
| plan? | string | monthly (1 ay, varsayılan) veya yearly (12 ay); cycle diğer ad olarak kabul edilir |
| message? | string | Alıcı için bir not; 190 karaktere kısaltılır |
| currency? | string | try veya usd, bkz. ödeme para birimi |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | yönlendirme URL'si nesnesi | Ödeme oturumu oluşturuldu |
| 400 | hata yanıtı | recipient_id yok veya geçersiz, alıcı çağıranın kendisi, bilinmeyen plan ya da hediyeler bu örnekte yapılandırılmamış (BAD_REQUEST) |
| 403 | hata yanıtı | Alıcı çağıranın arkadaşı değil (FORBIDDEN) |
| 404 | hata yanıtı | Alıcı mevcut değil (NOT_FOUND) |
İş Sınıfı ödemesi oluştur¶
POST /business/checkout
Tek bir sunucu için İş Sınıfı aboneliğine yönelik bir Polar ödeme sayfası açar. Yalnızca sunucu sahibi satın alabilir.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| guild_id | snowflake | Yükseltilecek sunucu. Zorunlu |
| plan? | string | monthly (varsayılan) veya yearly (annually, annual, year de kabul edilir) |
| currency? | string | try veya usd, bkz. ödeme para birimi |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | yönlendirme URL'si nesnesi | Ödeme oturumu oluşturuldu |
| 400 | hata yanıtı | Geçersiz guild_id veya plan, sunucuda zaten İş Sınıfı var ya da İş Sınıfı bu örnekte yapılandırılmamış (BAD_REQUEST) |
| 404 | hata yanıtı | Çağıran sunucunun sahibi değil (NOT_FOUND; böylece sunucunun var olup olmadığı açığa çıkmaz) |
Hız sınırı¶
business:checkout kovasında kullanıcı başına saatte 10 istek.
Takviye ve mağaza ödemeleri¶
İki yol daha bir ödeme URL'siyle yanıt verebilir:
- Sunucuya takviye yap (
POST /servers/{guild_id}/boost) ücretsiz takviyeleri hemen uygular ve ücretli kalan kısım için bir ödeme URL'si döndürür. - Mağaza öğesi satın al ve mağaza paketi satın al her zaman bir ödeme URL'si döndürür.
Müşteri portalı oluştur¶
POST /premium/billing-portal
Kullanıcının ödeme yöntemlerini yönettiği ve faturalarını indirdiği Polar müşteri portalı için bir yönlendirme URL'si nesnesi döndürür. Yalnızca Polar aboneliği olan hesaplar kullanabilir; Premium durumumu al yanıtındaki has_billing_account, istemciye bunu sunup sunmayacağını bildirir.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | yönlendirme URL'si nesnesi | Portal oturumu oluşturuldu |
| 400 | hata yanıtı | Hesabın Polar aboneliği veya müşteri kaydı yok (BAD_REQUEST) |
Hız sınırı¶
premium:portal kovasında kullanıcı başına saatte 20 istek.
İş Sınıfı müşteri portalı oluştur¶
POST /business/guilds/{guild_id}/billing-portal
Bir sunucunun İş Sınıfı aboneliği için Müşteri portalı oluştur ile aynıdır. Yalnızca sahip kullanabilir; sahip olmayan biri veya İş Sınıfı aboneliği olmayan bir sunucu 404 NOT_FOUND alır.
Hız sınırı¶
business:portal kovasında kullanıcı başına saatte 20 istek.
İşlemleri listele¶
GET /premium/transactions
Çağıranın Polar sipariş geçmişini sayfa başına 10 kayıt olarak döndürür. Polar aboneliği olmayan bir hesap hata yerine boş bir liste alır.
Sorgu parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| page? | integer | 1'den başlayan sayfa numarası (varsayılan 1) |
Yanıt¶
| Alan | Tür | Açıklama |
|---|---|---|
| items | array[işlem nesnesi] | Bu sayfadaki siparişler |
| total_pages | integer | Sayfa sayısı |
| current_page | integer | Döndürülen sayfa |
İşlem nesnesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | string | Polar sipariş kimliği |
| amount | integer | Küçük birim cinsinden sipariş toplamı (kuruş veya sent) |
| amount_paid | integer | Sipariş ödendiyse amount ile aynı, aksi hâlde 0 |
| refunded_amount | ?integer | Küçük birim cinsinden iade edilen tutar |
| currency | ?string | Büyük harfli para birimi kodu, ör. TRY |
| status | ?string | Polar sipariş durumu |
| type | ?string | Faturalandırma nedeni, ör. purchase, subscription_create veya subscription_cycle |
| description | ?string | Ürün adı |
| created_at | ?string | Siparişin oluşturulma zamanı |
| period_start | null | Her zaman null |
| period_end | null | Her zaman null |
{
"items": [
{
"id": "9b2f6c1e-2d6a-4f0e-9a51-0c9d1e2f3a4b",
"amount": 8999,
"amount_paid": 8999,
"refunded_amount": 0,
"currency": "TRY",
"status": "paid",
"type": "subscription_create",
"description": "TEBHOS Pro",
"created_at": "2026-09-01T10:00:00Z",
"period_start": null,
"period_end": null
}
],
"total_pages": 1,
"current_page": 1
}
Aboneliği iptal et¶
POST /premium/cancel-subscription
Çağıranın Polar aboneliğini geçerli faturalandırma döneminin sonunda bitecek şekilde planlar ve 204 döndürür. Premium, premiumUntil tarihine kadar etkin kalır. İptal zaten planlanmışken yeniden çağırmak, Polar ile iletişim kurmadan başarılı olur. İade yapılmaz.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 204 | boş | İptal planlandı |
| 400 | hata yanıtı | Hesabın Polar aboneliği yok (BAD_REQUEST) |
Hız sınırı¶
premium:cancel-subscription kovasında kullanıcı başına dakikada 5 istek.
Premium'u iptal et¶
POST /premium/cancel
TEBHOS istemcisinin kullandığı daha kapsamlı bir iptal işlemi. 204 yerine güncellenmiş Premium durum nesnesini (premiumWillCancel true olarak) döndürür ve Polar aboneliğinden gelmeyen Premium için de çalışır:
- Polar aboneliği varsa Aboneliği iptal et gibi davranır.
- Bir hediyeden veya personel tanımlamasından gelen süreli Premium varsa, üyeliği
premiumUntiltarihinde bitecek şekilde işaretler. - Bitiş tarihi olmayan ömür boyu Premium varsa, Premium hemen kaldırılır.
Hız sınırı¶
premium:cancel kovasında kullanıcı başına saatte 10 istek.
Aboneliği yeniden etkinleştir¶
POST /premium/reactivate-subscription
Çağıranın Polar aboneliğinde planlanmış bir iptali geri alır ve 204 döndürür. Planlanmış bir iptal yoksa değişiklik yapmadan 204 döndürür.
| Durum | Gövde | Koşul |
|---|---|---|
| 204 | boş | Abonelik yenilenecek |
| 400 | hata yanıtı | Hesabın Polar aboneliği yok (BAD_REQUEST) |
Hız sınırı¶
premium:reactivate-subscription kovasında kullanıcı başına dakikada 5 istek.
İş Sınıfını iptal et ve yeniden etkinleştir¶
POST /business/guilds/{guild_id}/cancel
POST /business/guilds/{guild_id}/reactivate
Bir sunucunun İş Sınıfı aboneliğinin dönem sonu iptalini planlar veya geri alır. Yalnızca sahip kullanabilir. Her ikisi de {"ok": true, "will_cancel": <bool>} döndürür.
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | {ok, will_cancel} |
Tamamlandı |
| 400 | hata yanıtı | İptal: abonelik etkin değil. Yeniden etkinleştirme: planlanmış bir iptal yok (BAD_REQUEST) |
| 404 | hata yanıtı | Çağıran sunucunun sahibi değil veya sunucunun İş Sınıfı aboneliği yok (NOT_FOUND) |
Hız sınırı¶
Her ikisi business:cancel kovasında kullanıcı başına saatte 10 isteği paylaşır.
TEBHOS'ta desteklenmeyenler¶
TEBHOS'ta desteklenmez
Yerelleştirilmiş kart ön onayı, yaş doğrulama oturumları, self servis iadeler ve iade uygunluğu için TEBHOS uç noktası yoktur. İadeler API üzerinden talep edilemez.