| 線型 | 意義 | 範例 |
|---|---|---|
| 粗實線(━━▶) | 主業務流——事件傳遞、強結果;走這條代表「一筆單真的往那邊跑」 | 入口 → 撮合、撮合事件 → 內帳、報表 → 對外 |
| 虛線(┄┄▶) | 旁路 / 觸發 / 依賴查詢——不是主流資料流,但會互相影響或支援 | 金流收撥款、基礎資料查詢、🆕 多池取貨 |
| 細實線(──▶) | 同一區內部連結——一個 subgraph 裡面的元件關係 | ATMatch 內部:買賣單 → 條件檢查 → 事件 |
下圖把 V2 架構中所有生產線流程串成一張:從幣商客戶接入、撮合決策、進貨池、金流對帳、內帳記錄,一路到對外輸出。六個子區分別對應後面的逐區說明。
| 脈絡 | 路徑 | 特徵 |
|---|---|---|
| A · 撮成功主幹 | 入口 → ATMatch 撮合成功 → 撮合事件分發 → 進銷存/報表/稅務/內帳 → 對外 | 最順的流程,大部分單走這條 |
| B · 撮不完支線 | 入口 → ATMatch 撮不完 → gamepp 撮不完單管理 → 持倉追蹤 / 風險敞口 → 對內/對外兩種呈現 | 有 know-how:對外稱「待撮合」、對內記「預收預付」 |
| C · 進貨旁路 | gamepp 進貨管理 → 進貨池 → 🆕 ATMatch 多池取貨 | 非玩家來源(產包/同業/活動)進來的新管道 |
| 區 | 名稱 | 核心職責 | 對應章節 |
|---|---|---|---|
| ① | 入口層 | 客戶怎麼把單送進來(4 種模式) | §1 |
| ② | ATMatch 撮合 | 買賣單配對、4 條件檢查、事件產出 | §2 |
| ③ | gamepp 經營 | 進貨管理、進銷存、撮不完單、電子發票、報表、稅務 | §3 |
| ④ | 金流層 | EGoPay 收款、網銀對帳(發票改放 gamepp) | §4 |
| ⑤ | 內帳 | 會計分錄、成本毛利、資產負債 / 月結(純內部) | §5 |
| ⑥ | 對外輸出 | 國稅局稅務明細、日報、幣商客戶視圖 | §7 |
V2 上線後,一個幣商客戶要怎麼把訂單送進來?依客戶「有沒有自己的系統、有沒有日報表習慣」分成四種路徑。四條路最終都會匯流到「標準化事件」,再分送去 ATMatch 撮合或 gamepp 進貨池。
| 模式 | 客戶條件 | 接入方式 | 代表動作 |
|---|---|---|---|
| 模式 1 | 有系統 + 有日報 | 原生開單 | 在 gamepp 網頁介面開會員/非會員/快速單 |
| 模式 2 | 沒系統 + 有日報 | 試算表匯入 | 上傳 Excel/CSV,透過客戶專屬解析規則標準化 |
| 模式 3 | 有系統 + 沒日報 | 串接介接 | 第三方系統推送 POST,含簽章+去重防呆 |
| 模式 4 | 都沒有 | 輔導 onboarding | 建檔+教學,上線後轉模式 1 |
四條路最後都會變成標準化事件——不管是手開的單、上傳的表、API 推進來的,系統只認標準格式。這個匯流點之後就進入 ATMatch 撮合或 gamepp 進貨池。
ATMatch 是 V2 的心臟——負責判斷「這筆買單要不要撮、和誰撮、撮不撮得上」。進來的三種來源:買單、玩家賣單、🆕 進貨池。出來兩種結果:撮合事件(成功)或撮不完(失敗)。
只要 4 條件都過,就產出一筆「撮合事件」,自帶三個數字:
這筆事件會同時往 5 個方向廣播:發票開立(gamepp,以撮合公司別)、進銷存、毛利報表、稅務(含發票號碼)、內帳分錄。
任何一個條件過不了就進「待結算池」,四個處理路徑:
ATMatch 不只看單,也看錢:EGoPay/網銀進帳明細進來後,會和撮合前的條件重新確認;對不上就開作業層異常單。
gamepp 是 V2 新建的部分——負責「幣商的日常經營」:怎麼進貨、庫存怎麼算、撮不完的單怎麼追、報表和稅務怎麼出。
| 管道 | 來源 | 入庫方式 | 成本特性 |
|---|---|---|---|
| 玩家 | ATMatch 撮到的賣單 | 自動回流 | 變動成本 |
| 產包 | 跟遊戲商批發 | 手動開進貨單 | 穩定但毛利低 |
| 同業 | 跟同業調貨 | 手動開進貨單 | 應急用,毛利窄 |
| 活動贈送 | 遊戲商活動贈幣 | 手動開進貨單 | 0 成本 |
| 自家持有 | 早期累積/獲利轉持 | 手動開進貨單 | 視成本基礎而定 |
庫存不是一個大數字——而是 公司 × 遊戲 × 遊戲角色 × (幣種 × 管道) 的交叉格子。為什麼要拆這麼細?
收到 ATMatch 送來的「撮不完」訊息後,gamepp 會同時產出兩套視角:
| 視角 | 呈現方式 | 給誰看 |
|---|---|---|
| 服務業表象(對外) | 「待撮合單列表」 | 幣商客戶 / 國稅局 |
| 買賣業內涵(對內) | 預收/預付的風險敞口 | 經營層 / 風控 / 內帳 |
發票不在金流層——而是在 gamepp 這端開立。因為一張發票的開立公司,取決於撮合事件當下落在哪家公司(多公司架構下,一筆撮合可能走 A 公司或 B 公司),這個決策屬於經營面,不屬於金流。
| 買家身分 | 發票類型 | 計稅基礎 | 備註 |
|---|---|---|---|
| 自然人(C2B) | 二聯式 | 差額(C = A − B) | 應稅自留 |
| 營業人(B2B) | 三聯式 | 全額(A) | 買方可向前手取得進項扣抵 |
| 欄位 | 來源 |
|---|---|
| 交易日期 | 撮合事件時間 |
| 買家身分證/統編 | 會員檔 / 基礎資料 |
| 遊戲幣品項 | 撮合事件 |
| 銷售金額 A | 撮合事件 |
| 進貨金額 B | 撮合事件(依管道取成本) |
| 差額 C(課稅基礎) | A − B |
| 發票號碼 | gamepp 電子發票模組 |
| 公司別(開立公司統編) | 撮合公司別路由 |
錢怎麼進來、怎麼出去、怎麼確認對得上——這一段都是金流層。關鍵是「對帳中樞」,由 ATMatch 的對帳引擎負責:把收款明細、撥款明細、撮合事件三邊對起來。
⚠️ 電子發票不在這層——發票以「撮合公司別」開立,屬於經營面決策,放在 gamepp。
撮合成功後,ATMatch 觸發「開發票」的事件,但實際開立、以哪家公司名義開、號碼流水——全在 gamepp。
所有系統事件最後都會寫入內帳——分錄、成本、毛利、月結。這一層純內部使用,對客戶、國稅局、股東都不開放,反映的是「買賣業真相」。
| 項目 | 意義 | 主要來源 |
|---|---|---|
| 應收帳款 | 買家還沒付款的金額 | 買單成立 |
| 銷貨收入 A | 撮合完成的買家付款 | 撮合事件 |
| 銷貨成本 B | 依該筆撮合的進貨管道取值 | 撮合事件 ←→ 進貨池 |
| 應付帳款 | 還沒付給賣方/供應商的錢 | 撮合 / 進貨 |
| 銀行存款 | 實際資金水位 | 金流明細 |
| 庫存 | 還沒賣出去的遊戲幣 | 進貨增加 / 撮合減少 |
這一層的資料不對客戶、國稅局、股東開放——反映的是「買賣業內涵」,和對外的服務業表象要刻意切開。
異常單在 V2 變成兩套系統——因為「撮合對不上」和「KYC 過期」是完全不同層級的問題,給不同角色處理。
| 情境 | 處理角色 |
|---|---|
| 撮合配對失敗 | 客服 / 營運 |
| 銀行對帳對不上 | 客服 / 財務 |
| 轉帳 API 錯誤 | 工程 / 客服 |
| EGoPay 回傳異常 | 工程 / 客服 |
沿用現有 anomaly_reports 資料表——已經針對 egopay 和 ticket 兩個來源實作。
| 情境 | 處理角色 |
|---|---|
| 玩家行為異常 | 風控 / 經營 |
| KYC 過期 | 風控 |
| 4 萬門檻觸發 | 風控 / 稅務 |
| 重複匯款 | 風控 / 財務 |
| 帳戶餘額不連貫 | 經營 / 財務 |
兩層異常會互相牽連——例如同一個玩家短期內重複觸發「對帳對不上」,會從作業面警示升級為「這玩家要風控介入」的經營面異常。反之,風控決定停用某個玩家 → 觸發作業面回沖單據。
最後一張:跟著一筆買單,從客戶下單到對外輸出,看它在哪些系統間跳來跳去、觸發了哪些副作用。