Archust Docs

Credits, Billing & Team

Thanh toán Stripe, credit hệ thống, team và cấu hình.

Credits, Billing & Team

Module quản lý thanh toán, credit, team và cấu hình tenant. Thanh toán qua Stripe, sync về Clerk publicMetadata qua webhooks.

Credits

/dashboard/credits — balance, transactions, top-up

Billing

/dashboard/billing — Stripe portal, plan, usage

Team

Clerk Organizations — invite, roles

Bạn tìm thấy gì ở đâu

TrangĐường dẫnMô tả
Credits/dashboard/creditsPrefetch balance + transactions(limit20, date-desc)
Billing/dashboard/billingPlan, usage, Stripe Customer Portal
TeamClerk OrganizationsKhông có trang /dashboard/settings/team riêng — quản lý qua Clerk UI hoặc team router

Không có folder /dashboard/settings — các cài đặt brand-voice, generation-rules, business-config nằm trong settings router nhưng không có page riêng. Đừng tìm /settings/* trong sidebar.

Credits System

Credits là đơn vị thanh toán cho AI generation. Reserve → settle nguyên tử.

BảngMô tả
credit_accountsBalance per tenant (org_id unique)
credit_transactionsMỗi reserve/settle/refund/top-up
pricing_rulesGiá per 1K tokens per model
Chức năngMô tả
balance / transactionsSố dư và lịch sử
checkBalance / quoteKiểm tra trước khi generate, estimate cost
reserve / usage / getUsageReserve khi tạo job/chat
pricing / pricingRules / listPackagesGiá theo model
createCheckoutSessionTạo Stripe Checkout để nạp
planInfo / usageSummary / modelUsageTổng hợp theo plan và model

Billing

Chức năngMô tả
currentPlanPlan từ Clerk publicMetadata + tenants.plan
usage / usageHistory / getHistoryUsage: drafts/month, tokens/month, jobs
createPortalSessionTạo Stripe Customer Portal URL để tự quản lý subscription

Plan quota lưu trong Clerk Org publicMetadata để check nhanh không cần DB query. Stripe webhook sync plan changes về Clerk metadata.

Plans

PlanDrafts / thángTokens / thángConcurrent jobsGiá
Free5200K1$0
Starter502M2$29
Pro50020M5$99
EnterpriseCustomCustomCustomLiên hệ

Vượt soft cap 80% → banner warning + realtime tenant.quota.warning. Vượt hard cap 100% → block new jobs, hiện upgrade CTA.

Stripe Webhooks → Clerk Sync

app/api/webhooks/stripe/route.ts:

Verify signature: stripe.webhooks.constructEvent(body, sig, secret) — reject 401 nếu fail.
Handle events: checkout.session.completed, subscription.updated, invoice.payment_succeeded.
Sync Clerk: Cập nhật publicMetadata.plancredits trên Organization.
Audit log: Ghi audit_logs với actor, target tenant, action, timestamp.

Team — Clerk Organizations

RoleClerk valueQuyền
Adminorg:adminFull access, team/billing/publisher credentials
Memberorg:memberContent creation, publishing
Chức năngQuyền
listMembersorg:admin
invite({ email, role })org:admin
updateRole / revokeInvitationorg:admin

Team dùng Clerk Organizations API trực tiếp. Không lưu members trong Supabase — Clerk là source of truth.

Cấu hình khác

ModuleRouterGhi chú
Brand Voicesettings.getBrandVoice / saveBrandVoiceTone, vocabulary — chỉ org:admin
Content Strategy Profilesettings.getContentStrategyProfile / saveContentStrategyProfileProfile cho Monthly Plans
Generation Rulestenant-ruleslist, create, update, toggle, delete — admin config, tenant dùng
Business ConfigsettingsLưu trong profile, không có page riêng

Lưu ý

  • Không cho phép vượt hard cap — check balance trước khi gọi LLM
  • Failed jobs vẫn bị tính phí nếu đã gọi provider (đã reserve)
  • pricingRules thay đổi theo model — luôn quote trước khi generate hàng loạt

On this page