Loyetta

Abone Ol

Yeni bir abonelik oluşturun. Durum active olarak ayarlanır ve bir subscribed yaşam döngüsü olayı kaydedilir.

POST/v1/superuser/subscribe

Aboneliklerde yeni misiniz? external_id arama anahtarını ve abonelik nesnesini anlamak için önce Abonelikler Genel Bakış sayfasını okuyun.

İstek Gövdesi

AlanTürZorunluNotlar
user_idstring (ULID)EvetKullanıcılar içinde mevcut olmalı
product_idstring (ULID)KoşulluÜrün, Loyetta ULID ile. sku gönderilmedikçe zorunludur. Ürünler içinde mevcut olmalı
skustringKoşulluÜrün, kendi ürün kodunuzla. product_id yerine kullanın
external_idstring (≤191)EvetSizin referansınız; benzersiz olmalı
periodstringEvetdaily, weekly, monthly, yearly değerlerinden biri
started_atdatetimeEvet
due_atdatetimeHayırstarted_at'tan sonra olmalı
metaobjectHayırSerbest formatlı JSON metadata

Ürünü ya product_id (Loyetta ULID) ya da sku (kendi ürün kodunuz) ile tanımlayın. Hangisi elinizde varsa onu gönderin — ikisine birden ihtiyacınız yok. İkisini birden gönderirseniz product_id öncelikli olur ve sku yok sayılır.

Örnek İstek

bash
curl -X POST "https://marka.prod.loyetta.com/api/v1/superuser/subscribe" \
  -H "Authorization: Bearer loy_sk_live_xxxx" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "user_id": "01JQ...",
    "sku": "PLAN-GOLD",
    "external_id": "sub_12345",
    "period": "monthly",
    "started_at": "2026-03-26T00:00:00Z",
    "due_at": "2026-04-26T00:00:00Z",
    "meta": { "plan_tier": "gold" }
  }'

Yanıt (201 Created)

json
{
  "success": true,
  "data": {
    "id": "01JQ...",
    "external_id": "sub_12345",
    "product_id": "01JQ...",
    "user_id": "01JQ...",
    "status": "active",
    "period": "monthly",
    "started_at": "2026-03-26T00:00:00.000000Z",
    "ended_at": null,
    "due_at": "2026-04-26T00:00:00.000000Z"
  }
}

Hata Yanıtları

403 — Yasak (token super_user yetkisine sahip değil)

json
{
  "message": "Operation not allowed."
}

422 — Doğrulama Hatası

json
{
  "message": "The given data was invalid.",
  "errors": {
    "external_id": ["The external id has already been taken."]
  }
}