Skip to content

Faturalandırma ve Ödemeler API'si ​

Çalışma alanı aboneliklerini yönetin, PayTR üzerinden ödemeleri işleyin, faturaları görüntüleyin ve kuponları doğrulayın.

Checkout Başlat ​

Bir PayTR ödeme oturumu oluşturur ve bir iFrame URL'si döner.

POST /api/workspaces/{slug}/billing/checkout/

İstek Gövdesi:

AlanTürAçıklama
plan_slugstringPlan tanımlayıcısı (örn. pro, business)
billing_intervalstringmonth veya year
coupon_codestringİsteğe bağlı indirim kodu

Yanıt:

json
{
  "iframe_token": "abc123...",
  "iframe_url": "https://www.paytr.com/odeme/guvenli/abc123...",
  "merchant_oid": "SG-c86cd04d-1712567890123",
  "amount": 9990,
  "currency": "TL"
}

PayTR ödeme formunu görüntülemek için iframe_url değerini bir <iframe> içine gömün.

Aboneliği Getir ​

Aktif aboneliği ve çalışma alanı limitlerini döner.

GET /api/workspaces/{slug}/billing/subscription/

Yanıt:

json
{
  "subscription": {
    "id": "sub_id",
    "plan_slug": "pro",
    "status": "active",
    "billing_interval": "month",
    "currency": "TL",
    "amount_per_period": 9990,
    "current_period_start": "2026-04-08T00:00:00Z",
    "current_period_end": "2026-05-08T00:00:00Z",
    "cancel_at_period_end": false
  },
  "limits": {
    "plan_slug": "pro",
    "plan_name": "SetGet Pro",
    "max_users": -1,
    "max_projects": -1,
    "max_storage_gb": 100,
    "ai_tokens_monthly": 50000,
    "features": { "time_tracking": true, "custom_properties": true },
    "is_active": true
  }
}

Abonelik yoksa subscription değeri null olur ve limits ücretsiz katman varsayılanlarını döner.

Aboneliği İptal Et ​

POST /api/workspaces/{slug}/billing/cancel/

İstek Gövdesi:

AlanTürAçıklama
immediatebooleantrue = hemen iptal, false = dönem sonunda iptal

Faturaları Listele ​

GET /api/workspaces/{slug}/billing/invoices/?offset=0&per_page=20

Yanıt:

json
{
  "results": [
    {
      "id": "inv_id",
      "invoice_number": "INV-2026-000001",
      "plan_name": "SetGet Pro",
      "billing_interval": "month",
      "total_amount": 9990,
      "currency": "TL",
      "period_start": "2026-04-08T00:00:00Z",
      "period_end": "2026-05-08T00:00:00Z",
      "created_at": "2026-04-08T12:00:00Z"
    }
  ],
  "total": 1
}

Ödemeleri Listele ​

GET /api/workspaces/{slug}/billing/payments/?offset=0&per_page=20

Durum bilgisi (pending, success, failed, refunded) dahil ödeme geçmişini döner.

Kuponu Doğrula ​

POST /api/workspaces/{slug}/billing/validate-coupon/

İstek Gövdesi:

json
{
  "code": "WELCOME20",
  "plan_slug": "pro",
  "amount": 9990
}

Yanıt:

json
{
  "valid": true,
  "discounted_amount": 7992,
  "discount_display": "-19.98"
}

PayTR Callback (Webhook) ​

PayTR, ödeme sonuçlarını bu uç noktaya gönderir. Bu uç noktayı doğrudan çağırmayın.

POST /api/webhooks/paytr/callback/

Bu uç nokta herkese açıktır (kimlik doğrulama gerekmez). PayTR hash imzasını doğrular ve düz metin olarak OK yanıtı döner.

Abonelik Durumları ​

DurumAçıklama
trialingÜcretsiz deneme süresi
activeÖdenmiş ve aktif
past_dueÖdeme başarısız, ödemesiz süre içinde
suspendedÖdemesiz süre dolmuş
canceledKullanıcı tarafından iptal edildi
expiredAbonelik dönemi sona erdi