Langganan
AM mengelola siklus hidup langganan Stripe untuk akun sehingga Anda dapat fokus pada harga dan kontrol akses, bukan pada penanganan webhook.
Buat sesi checkout, biarkan pelanggan mengelola paket mereka, dan tetap sinkronkan akses akun dengan Stripe.
Alur Langganan
Endpoint
| Endpoint | Tujuan |
|---|---|
POST /api/accounts/:account_id/subscriptions/stripe/checkout-session | Mulai pembayaran berlangganan |
POST /api/accounts/:account_id/subscriptions/stripe/portal-session | Buka portal pelanggan |
POST /api/accounts/:account_id/subscriptions/stripe/checkout-session-sync | Sinkronkan sesi checkout ke langganan |
POST /api/accounts/:account_id/subscriptions/sync | Sinkronkan langganan dari Stripe |
POST /api/accounts/:account_id/subscriptions/change | Ubah paket atau harga |
POST /api/accounts/:account_id/subscriptions/cancel | Batalkan langganan |
GET /api/accounts/:account_id/subscriptions | Daftar langganan |
GET /api/accounts/:account_id/subscriptions/features | Daftar fitur aktif |
GET /api/accounts/:account_id/subscriptions/identity | Dapatkan identitas pelanggan Stripe |
POST /api/applications/:application_id/subscriptions/stripe/webhook | Endpoint penerima webhook Stripe |
Sesi Pembayaran
Membuat sesi Stripe Checkout untuk langganan baru:
// Request
{
price_id: "price_...",
success_url: "https://app.example.com/success",
cancel_url: "https://app.example.com/cancel"
}
// Response
{
url: "https://checkout.stripe.com/..."
}
Arahkan pengguna ke URL yang dikembalikan. Setelah pembayaran, Stripe mengalihkan ke URL sukses Anda.
Portal Pelanggan
Biarkan pelanggan mengelola sendiri:
- Perbarui metode pembayaran
- Lihat faktur
- Batalkan langganan
- Ubah paket
// Request
{
return_url: "https://app.example.com/settings";
}
// Response
{
url: "https://billing.stripe.com/...";
}
Identitas Berlangganan
Setiap akun memiliki identitas berlangganan yang memetakan akun tersebut ke pelanggan Stripe. Ini digunakan untuk menyelesaikan webhook Stripe dan menyinkronkan status penagihan.
Event Webhook
AM menangani webhook Stripe dan mencoba lagi jika gagal:
| Event | Tindakan |
|---|---|
checkout.session.completed | Tautkan pelanggan dan buat langganan |
customer.subscription.* | Sinkronkan data langganan |
invoice.paid | Sinkronisasi faktur + akses pembaruan |
invoice.payment_failed | Perbarui jendela akses |