CallwiseDocs

Faturalama, koşullar ve aksama

Ücretsiz hafta, 12 aylık sözleşme, yenilemeyi iptal etme, iade olmaması, bir çalışma alanının hangi modüllere sahip olduğu ve bir ödeme başarısız olduğunda ne olduğu.

Bir çalışma alanı tek bir temele abone olur: bir plan veya bir sektör paketi, artı eklentiler. Bunlar birlikte, hangi modüllere sahip olduğunu belirler. Her modülün ardından bir faturalama durumu vardır; bunu yalnızca faturalama (hizmet rolü) yazar, uygulamadaki bir kişi asla yazmaz.

Ücretsiz hafta

Her satın alma, müşteri başına bir tane olmak üzere 7 günlük ücretsiz bir deneme ile başlar. Tarihler, @callwise/pricing içindeki trialSchedule(purchaseDay) işlevinden gelir:

  • Ödeme ekranında müşteri ödeme bilgilerini girer ve onay kutusunu işaretler. Bir ödeme yöntemi kaydedilir ve bugün $0 tahsil edilir. Ödeme ekranı Today: $0 · First charge on <date> yazar ve tutarı gösterir.
  • 7. gün (son ücretsiz günün ertesi günü): yıllık toplam bir kez tahsil edilir ve 12 aylık sözleşme o gün başlar. 16 Oct 2026 tarihli bir satın alma 16–22 Oct tarihleri arasında ücretsizdir, 23 Oct 2026 tarihinde tahsil edilir ve sözleşmesi 23 Oct 2026 tarihinden 22 Oct 2027 tarihine kadar sürer; 23 Oct 2027 tarihinde yenilenir.
  • Deneme sırasında iptal hiçbir şeye mal olmaz. Sitede bu, Denemeyi iptal et sayfasıdır (/account/trial, sipariş numarası + e-posta). Sayfa, @callwise/store içindeki cancelTrial() çağrısını yapar: yalnızca sipariş trialing durumundayken ve ilk tahsilat gününden önce izin verilir; kayıtlı yöntemi geçersiz kılar ve hiçbir şey tahsil etmez. İlk tahsilattan sonra sözleşme iade edilmez ve yalnızca yenileme iptal edilebilir.
  • Müşteri başına bir deneme, saklanan siparişlerde normalize edilmiş e-posta ile sayılır (küçük harf, kırpılmış, +tags atılmış, Gmail noktaları yok sayılmış). İkinci bir satın almanın denemesi yoktur: ödeme ekranında tahsil edilir, sözleşmesi o gün başlar (termFrom(today)) ve ödeme ekranı "Your free trial was used on an earlier order: charged today" der.

@callwise/store içindeki sipariş durumları şöyledir: trialing (yöntem kaydedildi, hiçbir şey tahsil edilmedi) → active (ilk tahsilat alındı) veya trialing → trial_cancelled (hiçbir zaman hiçbir şey tahsil edilmedi). Her sipariş trial: { start, end, firstChargeOn } değerini, amountToday değerini, firstCharge: { amount, on, idempotencyKey, status } değerini ve sözleşme tarihlerini saklar.

7. günün tahsilat işi

runDueTrialCharges(now), ilk tahsilat günü bugün veya daha erken olan her trialing siparişi tam olarak bir kez tahsil eder ve active durumuna geçirir. İptal edilmiş denemeler atlanır; 7. günü henüz gelmemiş siparişlere dokunulmaz. İş yinelenmeye karşı güvenlidir: tahsil edilmiş bir sipariş artık trialing değildir ve her tahsilat, sipariş başına tek bir idempotency anahtarı taşır (first-charge:<orderId>). Bu yüzden işi iki kez çalıştırmak veya tahsilat ile kayıt arasında bir çökmeden sonra çalıştırmak asla iki kez tahsil etmez. Başarısız bir tahsilat trialing kalır ve sonraki çalıştırmada yeniden denenir.

pnpm --filter @callwise/store charge-due                          # against apps/site/.data/orders.json
pnpm --filter @callwise/store charge-due -- --now 2026-10-23      # pretend it is day 7

Ödeme sağlayıcıları

PaymentProvider arayüzünde setupPaymentMethod (bir yöntem kaydeder, $0), charge (hemen tahsil eder; denemesiz bir satın alma için), chargeFirst(order) (7. gün tahsilatı) ve voidOnCancel(order) vardır. İade çağrısı yoktur. Bu derleme yalnızca demo sağlayıcıyı içerir: ödeme ekranındaki demo kart formu (4242 4242 4242 4242) yalnızca markayı, son 4 haneyi ve son kullanma tarihini tutar; tam numarayı veya CVC'yi asla tutmaz ve para hareket etmez.

Yazılmamış ve doğrulanmamıştır (kodda verified: false):

  • Stripe: SetupIntent ile kaydedilmiş bir yöntem üzerinde trial_period_days=7 olan bir abonelik. Kart alanları Stripe Elements olurdu; böylece kart numaraları bizim sunucumuza hiç ulaşmaz.
  • Yinelenen faturalaması olmayan bankalar: ödeme ekranında yıllık toplam için bir 3D Secure ön yetkilendirmesi. Zamanlanmış iş bunu 7. günde tahsil eder, iptalde ise geçersiz kılar.

Sözleşme

  • Her plan, paket ve eklenti, ücretsiz haftadan sonra başlayan (veya denemesini daha önce kullanmış bir müşteri için ödeme ekranında başlayan), peşin yıllık faturalandırılan 12 aylık asgari bir sözleşmedir. Aydan aya bir seçenek yoktur.
  • Fiyatlar aylık gösterilir: liste fiyatından 12% düşülmüş hali. Sözleşme bedeli bunların on ikisidir ve peşin alınır. Bkz. Fiyatlandırma.
  • @callwise/pricing içindeki termFrom(start), tarihleri verir: sözleşme ilk yıldönümünden önceki gün biter ve yıldönümünde yenilenir. 16 Oct 2026 tarihinde başlayan bir sözleşme 15 Oct 2027 tarihinde biter ve 16 Oct 2027 tarihinde yenilenir. Ay sonları sınırlanır (31 Jan başlarsa 31 Jan tarihinde yenilenir, 30 Jan tarihinde biter).
  • cw_subscriptions, term_start, term_end ve renewal_cancelled_at değerlerini saklar.

Yenilemeyi iptal etmek

İptal etmek, yenilemeyi iptal etmek demektir; başka bir şey değil. Bir sahip bunu Ayarlar → Faturalama → Yenilemeyi iptal et üzerinden yapar. İşlem şunları yapar:

  • renewal_cancelled_at değerini ayarlar (yenileme tarihi boşalır),
  • her modülü term_end tarihine kadar etkin tutar,
  • hiçbir şey tahsil etmez ve hiçbir şey iade etmez.

term_end tarihinden sonra, iptal edilmiş bir çalışma alanının aşağıdaki süresi dolmuş çalışma alanı gibi salt okunur olması amaçlanır. Bu derlemede o tarihte durumu değiştiren bir şey henüz yoktur (zamanlanmış bir faturalama işi yoktur); kural, işin ona uyabilmesi için yazılmıştır.

İade yok

İlk yıllık tahsilat alındıktan sonra ödemelerin iadesi yoktur (ücretsiz hafta sırasında iptal hiçbir şeye mal olmadığı için iade edilecek bir şey de yoktur): kullanılmayan aylar, kullanılmayan krediler, artık kullanılmayan eklentiler veya daha küçük bir plana geçiş (bir sonraki yenilemede yürürlüğe girer) için tam ya da kısmi iade yapılmaz. Kodda bir iade yolu yoktur: @callwise/pricing, REFUNDS = 'none' değerini dışa aktarır ve bir iade işlevi yoktur; @callwise/store ile onun PaymentProvider arayüzünde hiç iade işlevi yoktur ve siparişler refund: 'never' taşır.

Ödeme onayı

Sitenin ödeme ekranında, işaretsiz başlayan zorunlu bir onay kutusu vardır. Cümlesi; ücretsiz haftayı, ilk tahsilatın tarihini ve tutarını, deneme sırasında iptalin hiçbir şeye mal olmadığını, denemeden sonra başlayan 12 aylık asgari süreyi, peşin yıllık faturalamayı, otomatik yenilemeyi ve iade olmadığını söyler ve Koşullar ile İptal ve iade politikasına bağlanır. Cümleyi her sipariş için consentText(offer) kurar; denemesini kullanmış bir müşteri için denemenin kullanıldığını ve tahsilatın bugün olduğunu söyler. Sunucu teklifi yeniden hesaplar, kutu işaretli olmayan veya cümlesi farklı olan bir siparişi reddeder ve siparişe şunu kaydeder:

{ "accepted": true, "at": "2026-10-16T09:30:00.000Z", "termsVersion": "2026-10-16", "text": "I agree to the Terms and …" }

Bu derlemedeki koşullar sürümü 2026-10-16b değeridir. Daha eski bir metin veya daha eski bir sürüm gösteren bir sayfadan verilen sipariş reddedilir.

Faturalama durumları

DurumNereden gelirKişiler ne yapabilir
lockedModül planda, pakette veya bir eklentide yokturHiçbir şey. Sayfa, hangi planın kilidini açtığını gösterir.
activeÖdenmiştir veya ücretsiz haftadadırErişim düzeylerinin izin verdiği her şey
graceÖdeme kısa süre önce başarısız olmuşturÖdeme düzeltilirken her şey
read_onlyÖdeme bir süredir başarısızdır veya sözleşme yenilenmeden bitmiştirYalnızca görüntüleme. Düzenleme yok, yayınlama yok.

Bir sahip, Ayarlar içinde active bir modülü kapatabilir de; bu, modülü herkesten gizler. locked bir modülü açmak veritabanı tarafından reddedilir.

Bir ödeme başarısız olduğunda

Aşağıdaki sayılar, @callwise/pricing içindeki LAPSE_RULES değerinden gelir.

Days after a failed paymentStatusModule stateWhat happens
0activeactiveFull access.
1–7past_duegraceFull access while the payment is fixed.
8–30read_onlyread_onlyData visible, no edits. Calls forward to the fallback number.
after 30lapsedread_onlyStill read-only. Data is kept for 90 days.

Çalışma alanı salt okunurken aramalar düşürülmez: Ayarlar → Telefon numaraları içinde ayarlanan yedek numaraya yönlendirilirler. Veri, bir aksamadan sonra veya yenilenmeden biten bir sözleşmeden sonra 90 gün tutulur; böylece dışa aktarılabilir.

Krediler

Her planın ve paketin ayda bir paylaşılan kredi havuzu vardır; bunu her modül ve her yapay zeka modeli kullanır (bkz. Fiyatlandırma ve Yapay zeka modelleri ve krediler). Aramalar, ajanlarının kullandığı modellerin oranında kredi harcar. Krediler sonraki aya devretmez. Sahipler %80'de ve %100'de bir uyarı alır. %100'ün ötesinde, çalışma alanı kredi başına $0.03 aşımına izin vermediyse aramalar yedek numaralara yönlendirilir.

Planı kim değiştirebilir

Uygulamanın içinden kimse. Plan, durum, sözleşme ve havuz hakkı cw_subscriptions içinde durur; oturum açmış kullanıcılar bunu okuyabilir ama yazamaz. Bir sahibin yapabildiği tek faturalama yazması, yenilemeyi iptal etmektir. Bu derlemede gerçek bir ödeme yoktur: sitenin mağazası demo siparişlerini kaydeder, demo modunda bir plan değişikliği simüle edilir ve yerel veritabanı modunda hizmet rolüyle yazılır.

On this page