訂閱帳務週期
System ↔ System用量計量、發票產生、付款處理及收入認列。
6 個節點 · 6 條連接saas
eventsystemapidb
視覺化
帳務週期觸發event
訂閱續約日到期時,排程工作自動觸發。
↓sequential→ 用量計量
用量計量db
查詢帳務週期內 API 呼叫次數、儲存空間及使用席位的用量事件表。
↓sequential→ 發票產生
發票產生system
計算各明細項目、套用折扣並按比例計算週期中變更的費用。
↓sequential→ 付款處理
付款處理api
透過 Stripe/Braintree 扣款,處理信用卡拒絕的重試邏輯。
↓conditional→ 收據寄送
↓fallback→ 付款處理
收據寄送api
將 PDF 發票及收據以電子郵件寄送給帳務聯絡人。
↓sequential→ 收入認列
收入認列db
依 ASC 606 規範過帳分錄至會計系統。
uc-subscription-billing.osop.yaml
osop_version: "1.0"
id: "subscription-billing"
name:"訂閱帳務週期"
description:"用量計量、發票產生、付款處理及收入認列。"
nodes:
- id: "billing_trigger"
type: "event"
name: "帳務週期觸發"
description: "訂閱續約日到期時,排程工作自動觸發。"
- id: "usage_meter"
type: "db"
name: "用量計量"
description: "查詢帳務週期內 API 呼叫次數、儲存空間及使用席位的用量事件表。"
timeout_sec: 60
- id: "invoice_gen"
type: "system"
name: "發票產生"
description: "計算各明細項目、套用折扣並按比例計算週期中變更的費用。"
- id: "payment_process"
type: "api"
subtype: "rest"
name: "付款處理"
description: "透過 Stripe/Braintree 扣款,處理信用卡拒絕的重試邏輯。"
retry_policy:
max_attempts: 3
backoff: "exponential"
security:
risk_level: "high"
- id: "receipt_delivery"
type: "api"
name: "收據寄送"
description: "將 PDF 發票及收據以電子郵件寄送給帳務聯絡人。"
- id: "rev_recognition"
type: "db"
name: "收入認列"
description: "依 ASC 606 規範過帳分錄至會計系統。"
edges:
- from: "billing_trigger"
to: "usage_meter"
mode: "sequential"
- from: "usage_meter"
to: "invoice_gen"
mode: "sequential"
- from: "invoice_gen"
to: "payment_process"
mode: "sequential"
- from: "payment_process"
to: "receipt_delivery"
mode: "conditional"
when: "payment.status == 'succeeded'"
- from: "receipt_delivery"
to: "rev_recognition"
mode: "sequential"
- from: "payment_process"
to: "payment_process"
mode: "fallback"
label: "Retry with updated payment method"