Merchant of record ile SaaS faturalama: planlar, denemeler, kullanım ücretleri ve webhook'lar
Skalp, SaaS'ınızı merchant of record olarak faturalayabilir. Uygulamanız bir abonelik ödemesi açar, Skalp ödemeyi alır, müşterinin ülkesinin KDV'sini ekler ve her faturayı keser; imzalı webhook'lar da veritabanınızı güncel tutar. Plan üstü kullanım aynı karttan alınır.
Planlar
Her plan haftalık, aylık ya da yıllık faturalanan bir üründür ve isteğe bağlı olarak 14 güne kadar deneme süresi olabilir. Fiyatlar nettir ve mağazanızın para birimindedir. Bir plana Polonya, euro bölgesi, ABD ve Brezilya'daki müşteriler için en fazla üç başka para biriminde yuvarlak bir fiyat da verebilirsiniz.
Ödeme sayfasını açmak
client := skalp.New(skalp.Options{})
session, err := client.CreateSubscriptionCheckout(ctx, skalp.CreateSubscriptionCheckoutParams{
ProductSlug: "pro-monthly",
ExternalRef: orgID,
ReturnURL: "https://app.example.com/billing?checkout=success",
})
if err != nil {
return err
}
http.Redirect(w, r, session.URL, http.StatusSeeOther)
Node'da aynı çağrı skalp.subscriptions.createCheckout(...). Müşteri Skalp'in sayfasında öder, bu yüzden uygulamanız hiçbir zaman kart formu göstermez. AB'deki bir şirket orada KDV numarasını girebilir ve reverse charge ile alır. ExternalRef aboneliğin her olayında geri gelir, böylece ilk ödemeden önce Skalp kimliklerini saklamanız gerekmez.
Tüm yaşam döngüsü için webhook'lar
| Olay | Ne zaman gelir |
subscription.created | Abonelik başladı. |
subscription.renewed | Bir dönem ödendi. Fatura kimliğini, tutarı ve yeni bitiş tarihini içerir. |
subscription.past_due | Bir yenileme başarısız oldu. Deneme sayısını ve bir sonrakinin zamanını içerir. |
subscription.updated | Bir şey değişti, örneğin plan ya da dönem sonuna planlanmış bir iptal. |
subscription.canceled | Plan sona erdi. cancelReason içerir. |
subscription.refunded, subscription.disputed | Bir ödeme iade edildi ya da müşterinin bankası bir itiraz açtı. |
Her istek Skalp-Signature başlığında bir HMAC-SHA256 imzası taşır. Node'da skalp.webhooks.constructEvent, Go'da client.ConstructEvent bu imzayı kontrol eder ve beş dakikadan eski teslimatları reddeder.
Plan değişikliği ve iptal
subscriptions.changePlan müşteriyi başka bir plana taşır ve farkı orantılı olarak hesaplar. subscriptions.cancel planı ödenen dönemin sonunda bitirir, yani müşteri o zamana kadar erişimini korur.
Kullanım ücretleri
const charge = await skalp.subscriptions.createUsageCharge(subscription.id, {
amount: 12.34,
currency: 'EUR',
description: 'Seats over the plan, September 2026',
idempotencyKey: `seats:${orgId}:2026-09`,
periodStart: new Date('2026-09-01T00:00:00Z'),
periodEnd: new Date('2026-10-01T00:00:00Z'),
})
if (charge.status === 'open') await sendPaymentLink(charge.hostedUrl)
Kullanım ücretleri kayıtlı karttan mağazanızın para biriminde alınır. Aynı idempotencyKey her zaman aynı ücreti döndürür, bu yüzden zaman aşımı ya da 5xx hatasından sonra iki kez ücret almadan tekrar deneyebilirsiniz. Her aboneliğin kullanım ücretleri için günlük bir üst sınırı vardır ve Skalp desteği bu sınırı yükseltebilir.
Başarısız ödemeler
Bir yenileme başarısız olduğunda müşteri, herhangi bir kartla ödeyebileceği açık bir fatura alır ve bu kart sonraki yenilemelerde kullanılır. Size subscription.past_due gelir ve subscription.renewed gelene kadar uygulamanızda bir uyarı gösterebilirsiniz.
Faturalar, kuponlar ve vergi
Skalp her ödeme için müşterinin ülkesinin KDV'sini içeren bir PDF fatura keser ve subscriptions.listInvoices bunları faturalama sayfanız için döndürür. Bir plandaki kuponlar ilk ödemeye, belirli sayıda aya ya da aboneliğin tamamına uygulanabilir.
Sık sorulan sorular
Faturada kimin adı var?
Skalp'in. Merchant of record Skalp olduğu için planı müşterinize Skalp satar ve size payınızı öder.
Kendi fiyatlandırma sayfamı koruyabilir miyim?
Evet. Fiyatlandırma sayfanız API'yi çağırır ve müşteriyi dönen ödeme sayfasına yönlendirir.
Müşterinin Skalp hesabı olması gerekir mi?
Hayır. API üzerinden gelen müşteriler aboneliklerini e-postalarına gönderilen bir kodla yönetir.
Maliyeti ne?
Her ödemenin %10'u, son 30 gündeki satışlarınız 20.000 $'ı geçtiğinde %7'si; ödeme işleme dahil ve aylık ücret yok.