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/subscribeAboneliklerde yeni misiniz? external_id arama anahtarını ve abonelik nesnesini anlamak için önce Abonelikler Genel Bakış sayfasını okuyun.
İstek Gövdesi
| Alan | Tür | Zorunlu | Notlar |
|---|---|---|---|
user_id | string (ULID) | Evet | Kullanıcılar içinde mevcut olmalı |
product_id | string (ULID) | Koşullu | Ürün, Loyetta ULID ile. sku gönderilmedikçe zorunludur. Ürünler içinde mevcut olmalı |
sku | string | Koşullu | Ürün, kendi ürün kodunuzla. product_id yerine kullanın |
external_id | string (≤191) | Evet | Sizin referansınız; benzersiz olmalı |
period | string | Evet | daily, weekly, monthly, yearly değerlerinden biri |
started_at | datetime | Evet | |
due_at | datetime | Hayır | started_at'tan sonra olmalı |
meta | object | Hayır | Serbest 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."]
}
}