訂閱帳務週期

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"