floviq logo floviq
← 筆記 · 2026-06-04 · reference

台股股利發放時間軸:董事會決議到現金入帳,四個關鍵日期分散在三個 TWSE 端點

台股存股族與自動化工程師常遇到一個共同問題:「什麼時候真的拿到錢?」直覺上「公告配息」之後應該不久即入帳,但實際上,從董事會決議到現金真正入帳,中間橫跨四個定義各異的關鍵日期,且這四個日期分散在 TWSE OpenAPI 的三個不同端點,沒有任何單一 API 提供完整時間軸。

本文以 TWSE OpenAPI 實際欄位為基礎,釐清這四個日期的定義、各自對應的 API 來源,以及整合時容易踩到的民國日期、空值與欄位遺漏問題。


① 四個關鍵日期的定義與順序

以年度現金股利的標準流程為例,時間軸依序如下:

董事會(擬議)股利分派日
    ↓  決議配發金額(可能尚未股東會確認)
股東會日期
    ↓  確認分派案(或修改)
除息交易日 / 除息基準日
    ↓  股價扣除股利金額;停止過戶期間結束
現金股利實際發放日
    ↓  約 1 個月後入帳(各公司公告)
關鍵日期定義TWSE API 來源
董事會(擬議)股利分派日董事會通過股利分派議案的日期t187ap45_L 欄位 董事會(擬議)股利分派日
股東會日期股東大會確認或修改分派案的日期t187ap45_L 欄位 股東會日期
除息(基準)日停止過戶期間結束當日;此日起具備領息資格的股東名冊確定TWT48U_ALL 欄位 Date(除息日期)
現金股利發放日現金實際匯入股東帳戶的日期不在 TWSE OpenAPI;由各公司另行公告

這四個日期的最大誤解在於:「公告」不等於「到帳」。董事會決議日是最早的決策點,距離現金真正入帳通常間隔數個月;而四個日期來自不同資料來源,無法透過單一端點一次取得。


t187ap45_L — 股利分派決議進度端點

端點資訊

GET https://openapi.twse.com.tw/v1/opendata/t187ap45_L
  • TWSE OpenAPI 官方路徑,位於 opendata 分類,swagger 說明為「上市公司股利分派情形」
  • 回傳上市公司本年度股利分派決議狀態,含決議進度、金額與關鍵日期
  • 實測 2026-06-04:回傳 1,135 筆,無需 query parameter(直接 GET 取全筆)

關鍵欄位

欄位名稱類型說明
公司代號string上市公司代號(4 位數字;特別股附後綴字母,如 ####A####B
決議(擬議)進度string見下方枚舉值
董事會(擬議)股利分派日string7 位民國日期,如 1150311
股東會日期string7 位民國日期;董事會決議階段此欄為空字串
股利年度string民國年,如 114(= 2025 西元年)
股利所屬期間string民國日期範圍,如 1140101~1141231
股利所屬年(季)度string年度 / 下半年 / 第1季 / 第4季
股東配發-盈餘分配之現金股利(元/股)string每股現金股利(盈餘來源);字串型態
股東配發-資本公積發放之現金(元/股)string每股現金(資本公積來源);字串型態

決議(擬議)進度 的枚舉值

實測資料包含以下五種進度值:

進度值含義
董事會擬議董事會提出草案,尚未正式決議通過
董事會決議董事會已決議,尚未進入股東會確認
股東會確認股東大會已確認分派案
現金股利經董事會決議、<br>增資配股經董事會擬議混合型:現金部分先決議,股票部分仍擬議
現金股利經董事會決議、<br>增資配股經股東會確認混合型:各部分進度不同

注意:混合進度值的字串含有 HTML 換行標記 <br>,字串比對時需處理。

空值坑:股東會日期在「董事會決議」階段為空

股東會日期 欄位在進度為「董事會決議」的記錄上回傳空字串(不是 null,是空字串 "",而非 API 異常。實測 2026-06-04 的 1,135 筆中,591 筆(約 52%)此欄位為空字串,全數對應「董事會決議」進度——即已決議分派、但尚未召開股東會確認的記錄。(進度為「董事會擬議」的記錄反而帶有預定股東會日期。)

若程式直接解析 股東會日期 並期待 7 位日期字串,在這些「董事會決議」階段的記錄上會取到空值,而資料並無異常,只是分派流程尚未走到股東會確認。


TWT48U_ALL — 除權除息預告日期

端點資訊

GET https://openapi.twse.com.tw/v1/exchangeReport/TWT48U_ALL
  • TWSE OpenAPI 官方路徑,swagger 說明為「上市股票除權除息預告表」
  • 回傳近期已公告除權除息日期的上市證券清單
  • 實測 2026-06-04:188 筆;筆數隨近期公告事件滾動更新

日期欄位

欄位名稱類型說明
Datestring除權息日期(本表以除息為主),7 位民國日期(如 1150617 = 民國 115 年 6 月 17 日)
Codestring股票代號
Exdividendstring除權息類型:(現金股利)/ (股票股利);同時配發現金與股票時亦可能出現混合值(滾動表當期不一定有樣本)
CashDividendstring每股現金股利;尚未公告時為空字串 "",不是 null

CashDividend 空值坑

TWT48U_ALLCashDividend 欄位有兩種空值情況:

  1. 除息日期已公告,但配息金額尚未公告:此時 Date 有值、CashDividend 為空字串。這是正常的資料分段公告機制:日期先行公告,金額待股東會或董事會確認後補上。
  2. 股票股利(權)類型:僅有 StockDividendRatio 欄位有值,CashDividend 為空字串,因本次無現金股利。

程式取此欄時必須先判斷是否為空字串,否則數值運算會靜默出錯(空字串轉 float 拋出例外,或 n8n Expression 拿到空字串繼續傳下去)。

Date 欄位為民國 7 位格式

Date 欄位格式為 YYYMMDD(7 位),與 t187ap45_L 的日期欄格式相同(如 1150617)。兩個端點在日期格式上是一致的。但 TWSE 其他端點如 BWIBBU_d.Date 則使用西元 8 碼(20260527),跨端點整合時仍需逐端點確認格式,不可假設統一(詳見台股 API 日期格式混亂全解析)。


④ 第三個端點:t187ap38_L 的停止過戶日期

股東會階段還有一個相關端點,包含停止過戶期間的起訖日:

GET https://openapi.twse.com.tw/v1/opendata/t187ap38_L

swagger 說明:「上市公司股東會公告-召集股東常(臨時)會公告資料彙總表(95 年度起適用)」

欄位名稱說明
停止過戶起訖日期-起停止過戶開始日,7 位民國日期
停止過戶起訖日期-訖停止過戶結束日(即除息基準日),7 位民國日期
股東常(臨時)會日期-日期股東大會日期

此端點的停止過戶結束日(停止過戶起訖日期-訖)即為除息基準日:通常與 TWT48U_ALLDate(除息日)為同一天或相差一個交易日(停止過戶結束後翌日股價才開始除息)。若需同時追蹤「停止過戶窗口」與「除息日」,需橫跨此端點與 TWT48U_ALL


⑤ 現金股利實際發放日:不在任何 TWSE OpenAPI 端點

現金股利實際發放日(即現金入帳日)並不存在於 TWSE OpenAPI 的任何端點。

TWSE OpenAPI swagger(openapi.twse.com.tw/v1/swagger.json,截至 2026-06-04 確認)的 143 個路徑中,沒有欄位名稱包含「發放日」「現金發放」「支付日」或「入帳日」。

實際情況:

  • 現金股利發放日由各上市公司在股東會後另行公告,通常透過 MOPS(公開資訊觀測站)揭露
  • 業界常見時間差:股東會確認後約 30–60 個日曆日,但各公司公告不同,無統一規律
  • 若需自動追蹤「什麼時候真的到帳」,目前需串接 MOPS 的公司重大訊息公告,TWSE OpenAPI 無法直接取得此日期

⑥ 三端點整合時的日期比對陷阱

問題:同公司的記錄要橫跨三個端點才完整

以○○公司年度現金股利為例,若要取得完整時間軸:

t187ap45_L
  → 取得: 董事會日期 (1150311) + 股東會日期 (1150522) + 決議進度 + 配發金額

TWT48U_ALL
  → 取得: 除息日期 (1150623) + 現金股利額 (可能晚於 t187ap45_L 公告)

t187ap38_L
  → 取得: 停止過戶起日 (1150324) + 停止過戶訖日 = 除息基準日 (1150522)

三個端點以 公司代號(或 Code)作為 join key,但需注意:

  1. t187ap45_L公司代號 含特別股(後綴字母,如 ####B),TWT48U_ALLCode 亦可能含後綴;join 時不可只用前四位數字
  2. t187ap45_L 的同一公司可能出現多筆(年度股利 + 季配 + 下半年度),需用 股利所屬期間 + 期別 進一步篩選
  3. TWT48U_ALL近期預告表(滾動更新,非全年歷史),長週期回查需另尋歷史資料來源

日期運算:全部統一轉換後再比對

三個端點的日期欄位均為 7 位民國格式(YYYMMDD),但股利年度欄位為民國年(純數字 114),股利所屬期間 為民國日期範圍字串(1140101~1141231)。

推薦做法:進入比對邏輯前,一律先轉為西元 8 碼(YYYYMMDD),轉換方式為民國年加 1911:

// 民國 7 位轉西元 8 位(對齊三端點通用格式)
function rocToAd(rocDateStr) {
  if (!rocDateStr || rocDateStr.length !== 7) return null;
  const rocYear = parseInt(rocDateStr.slice(0, 3), 10);
  const mmdd = rocDateStr.slice(3);       // 4 位月日
  return `${rocYear + 1911}${mmdd}`;      // → "20260311"
}

// 空字串防呆(股東會日期在決議初期必然為空)
function safeParse(dateStr) {
  if (!dateStr) return null;
  return rocToAd(dateStr);
}

⑦ Edge case:季配息公司的多筆記錄

t187ap45_L股利所屬年(季)度 欄位不限年度股利,也包含季配(第1季第4季)與半年配(下半年)。實測 2026-06-04 的分布:

股利所屬年(季)度筆數
年度1,004
下半年73
第1季29
第4季29

季配公司(如部分高股息 ETF)在同一年度可能出現多筆記錄,每筆 期別 不同。若程式預設「每家公司一筆」,在季配情境下會遺漏或重複計算。


⑧ See also


想把 TWSE t187ap45_L 等公開資料自動整理、每個交易日或股東會季節送到自己的 Telegram?floviq 提供台股盤前情報的 n8n 自動推播工具 — 純資料整理,不推股、不帶單。詳見 portaly.cc/floviq


※ 本文描述 TWSE OpenAPI t187ap45_LTWT48U_ALLt187ap38_L 三端點的股利分派日期欄位機制與整合注意事項,屬資訊整理,不構成投資建議,投資請自行評估風險。

資料來源:TWSE OpenAPI/opendata/t187ap45_L/exchangeReport/TWT48U_ALL/opendata/t187ap38_L 端點,swagger 版本截至 2026-06-04 確認;實測資料取自同日即時 fetch)