Ana içeriğe geç

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
{
  "url": "https://checkout.example.com/polar_c_9f8e7d6c5b4a"
}

Ödeme para birimi

Ödeme oturumları Türk lirası (try) veya ABD doları (usd) ile açılır. Para birimi şu sırayla seçilir:

  1. İstek gövdesindeki currency alanı, değeri try veya usd olduğunda (büyük/küçük harf duyarsız). Diğer değerler yok sayılır.
  2. Aksi hâlde, çağıranın ülkesi Türkiye ise (CF-IPCountry başlığından veya IP konumundan) try.
  3. 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:

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 premiumUntil tarihinde 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.