台股股利發放時間軸:董事會決議到現金入帳,四個關鍵日期分散在三個 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 | 見下方枚舉值 |
董事會(擬議)股利分派日 | string | 7 位民國日期,如 1150311 |
股東會日期 | string | 7 位民國日期;董事會決議階段此欄為空字串 |
股利年度 | 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 筆;筆數隨近期公告事件滾動更新
日期欄位
| 欄位名稱 | 類型 | 說明 |
|---|---|---|
Date | string | 除權息日期(本表以除息為主),7 位民國日期(如 1150617 = 民國 115 年 6 月 17 日) |
Code | string | 股票代號 |
Exdividend | string | 除權息類型:息(現金股利)/ 權(股票股利);同時配發現金與股票時亦可能出現混合值(滾動表當期不一定有樣本) |
CashDividend | string | 每股現金股利;尚未公告時為空字串 "",不是 null |
CashDividend 空值坑
TWT48U_ALL 的 CashDividend 欄位有兩種空值情況:
- 除息日期已公告,但配息金額尚未公告:此時
Date有值、CashDividend為空字串。這是正常的資料分段公告機制:日期先行公告,金額待股東會或董事會確認後補上。 - 股票股利(權)類型:僅有
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_ALL 的 Date(除息日)為同一天或相差一個交易日(停止過戶結束後翌日股價才開始除息)。若需同時追蹤「停止過戶窗口」與「除息日」,需橫跨此端點與 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,但需注意:
t187ap45_L的公司代號含特別股(後綴字母,如####B),TWT48U_ALL的Code亦可能含後綴;join 時不可只用前四位數字t187ap45_L的同一公司可能出現多筆(年度股利 + 季配 + 下半年度),需用股利所屬期間+期別進一步篩選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
- 台股除權息機制與散戶三大誤解 — 最後買進日、填息與稅務的完整說明
- 台股 T+2 交割制度 — 停止過戶計算與交割期關係
- 台股停券預告 BFI84U 端點 — 除息前停止融券的相關事件端點
- TWSE OpenAPI 日期格式混亂全解析 — 跨端點日期格式差異完整對照
- TWSE OpenAPI Swagger:openapi.twse.com.tw —
t187ap45_L/TWT48U_ALL/t187ap38_L端點官方規格 - floviq 台股 n8n 自動化模板(盤前情報、外資進出、漲跌停監控):portaly.cc/floviq
想把 TWSE t187ap45_L 等公開資料自動整理、每個交易日或股東會季節送到自己的 Telegram?floviq 提供台股盤前情報的 n8n 自動推播工具 — 純資料整理,不推股、不帶單。詳見 portaly.cc/floviq。
※ 本文描述 TWSE OpenAPI t187ap45_L、TWT48U_ALL、t187ap38_L 三端點的股利分派日期欄位機制與整合注意事項,屬資訊整理,不構成投資建議,投資請自行評估風險。
資料來源:TWSE OpenAPI(/opendata/t187ap45_L、/exchangeReport/TWT48U_ALL、/opendata/t187ap38_L 端點,swagger 版本截至 2026-06-04 確認;實測資料取自同日即時 fetch)
如果這篇對你有用: