OFX 格式是什麼?開放金融交換格式說明
OFX 是銀行與軟體之間交換金融資料的開放標準。本文將說明 OFX 檔案的內容以及為何 Xero、MYOB 和 GnuCash 等軟體偏好使用它。
您的會計軟體要求提供 OFX 檔案,但您的銀行卻只提供 PDF。您現在面臨一個前所未聞的格式,並納悶為何試算表無法勝任。
OFX -- 開放金融交換(Open Financial Exchange)-- 是驅動現代金融軟體的隱形標準。這也是 Xero 能在您無需對應欄位的情況下匯入銀行交易的原因,是 GnuCash 能偵測重複交易的基礎,也是 QuickBooks 的 QBO 格式的建構基石。
本指南將深入解析 OFX 的實際內容、它包含的資訊、與 CSV 和 QBO 的比較、支援 OFX 的軟體,以及如何從 PDF 銀行對帳單建立 OFX 檔案。

OFX 一句話說明
開放金融交換是一種基於 XML 的資料格式,用於在金融機構、軟體應用程式和最終使用者之間交換金融資訊。它是 Intuit 的 QBO 格式的基礎,也是大多數非 QuickBooks 會計軟體在匯入銀行交易時偏好的格式。
您可以將 OFX 視為金融資料的通用語言。銀行使用它,會計軟體也讀取它。與 CSV 不同的是(CSV 僅是沒有內在意義的列和欄),OFX 攜帶結構化的中繼資料,能精確告知接收軟體每筆資料的代表意義。
OFX 的歷史
OFX 誕生於 1997 年,由 Microsoft、Intuit 和 CheckFree 共同創立。當時各家公司都有自己的競爭標準:Microsoft 有 OFC(Open Financial Connectivity),Intuit 有自己的交換格式,而 CheckFree 則有其電子帳單協定。OFX 是統一這些標準的折衷方案。
版本時間表
- OFX 1.0 (1997) -- 最初的規格,基於 SGML(Standard Generalized Markup Language)。SGML 允許標籤不關閉,這使得 OFX 1.x 檔案看起來與現代 XML 不同。
- OFX 1.6 (2002) -- 最廣泛部署的版本。仍基於 SGML。大多數提供 OFX 下載的銀行都會產生 1.6 版本檔案。
- OFX 2.0 (2005) -- 重大改寫。從 SGML 改為使用正確的 XML 標籤,需要關閉標籤。
- OFX 2.2 (2016) -- 安全性增強,並改進了投資交易支援。
- OFX 2.3 (目前) -- 最新版本,由金融數據交換(FDX)維護,這是一個行業聯盟,接管了原始創始者的治理權。
從 SGML 到 XML 的轉變很重要,因為它會影響解析。1.x 版本檔案使用未關閉的標籤(例如 <TRNTYPE>DEBIT 而沒有 </TRNTYPE>),而 2.x 版本則使用帶有關閉標籤的標準 XML。大多數現代解析器都能處理兩者,但版本不符仍然是常見的 OFX 匯入錯誤。

OFX 可包含的內容
OFX 不僅僅是銀行對帳單格式。該規格涵蓋廣泛的金融資料:
- 銀行帳戶對帳單 -- 支票、儲蓄和貨幣市場帳戶交易。最常見的用途。
- 信用卡對帳單 -- 交易歷史記錄,支援商家類別代碼和購買詳細資訊。
- 投資和經紀帳戶對帳單 -- 股票購買、股息支付、基金轉帳,以及具有批次成本基礎數據的投資組合部位。
- 帳單支付資訊 -- 支付對象列表、預定支付和支付確認。
- 稅務資訊 -- 在金融機構和稅務軟體之間傳輸的 1099 表格和其他稅務文件。
- 貸款對帳單 -- 抵押貸款、汽車貸款和個人貸款的交易記錄及餘額資訊。
對於大多數會計師和簿記員而言,OFX 意味著一件事:將銀行和信用卡交易匯入會計軟體,無需欄位對應或猜測日期格式。
OFX 檔案內部結構
以下是一個完整的 OFX 1.6 銀行對帳單檔案的樣子。這是您最常遇到的格式 -- 大多數銀行和轉換工具產生的基於 SGML 的版本:
OFXHEADER:100
DATA:OFXSGML
VERSION:160
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE
<OFX> <SIGNONMSGSRSV1> <SONRS> <STATUS> <CODE>0 <SEVERITY>INFO </STATUS> <DTSERVER>20260228120000 <LANGUAGE>ENG </SONRS> </SIGNONMSGSRSV1> <BANKMSGSRSV1> <STMTTRNRS> <TRNUID>0 <STATUS> <CODE>0 <SEVERITY>INFO </STATUS> <STMTRS> <CURDEF>USD <BANKACCTFROM> <BANKID>021000021 <ACCTID>123456789 <ACCTTYPE>CHECKING </BANKACCTFROM> <BANKTRANLIST> <DTSTART>20260201120000 <DTEND>20260228120000 <STMTTRN> <TRNTYPE>CREDIT <DTPOSTED>20260201120000 <TRNAMT>3500.00 <FITID>20260201001 <NAME>DIRECT DEP PAYROLL <MEMO>ACME CORP PAYROLL </STMTTRN> <STMTTRN> <TRNTYPE>DEBIT <DTPOSTED>20260203120000 <TRNAMT>-87.50 <FITID>20260203001 <NAME>POS PURCHASE GROCERY <MEMO>WHOLE FOODS #10847 </STMTTRN> <STMTTRN> <TRNTYPE>CHECK <DTPOSTED>20260210120000 <TRNAMT>-1200.00 <FITID>20260210001 <NAME>CHECK 1045 <CHECKNUM>1045 </STMTTRN> </BANKTRANLIST> <LEDGERBAL> <BALAMT>4712.50 <DTASOF>20260228120000 </LEDGERBAL> <AVAILBAL> <BALAMT>4712.50 <DTASOF>20260228120000 </AVAILBAL> </STMTRS> </STMTTRNRS> </BANKMSGSRSV1>
</OFX>檔案結構解析
檔案包含三個主要部分:
1. 標頭區塊 -- 頂端的純文字行(在 <OFX> 之前)聲明 OFX 版本、編碼和安全設定。這不是 XML -- 它是一個簡單的鍵值標頭,解析器在處理 SGML/XML 主體之前會讀取它。
2. 登入回應 (SIGNONMSGSRSV1) -- 驗證和伺服器中繼資料。CODE 為 0 表示成功。大多數匯入的檔案在此處使用預設值。
3. 對帳單回應 (BANKMSGSRSV1) -- 實際的金融資料:
BANKACCTFROM-- 交易所屬的帳戶(路由號碼、帳戶號碼、帳戶類型)BANKTRANLIST-- 交易列表,由開始和結束日期界定STMTTRN-- 個別交易記錄LEDGERBAL和AVAILBAL-- 特定日期的結帳餘額和可用餘額
請注意 SGML 語法:像 <TRNTYPE>CREDIT 這樣的標籤沒有關閉標籤 </TRNTYPE>。解析器從下一個標籤的開始推斷值的結束 -- 這是有效的 SGML,但無效的 XML,這也是 OFX 2.x 加入關閉標籤的原因。
主要 OFX 標籤
以下是銀行對帳單 OFX 檔案中最常遇到的標籤參考表:
| 標籤 | 說明 | 範例 |
|---|---|---|
STMTTRN |
對帳單交易包裝器 | 包含一筆交易的所有欄位 |
TRNTYPE |
交易類型 | DEBIT(借記)、CREDIT(貸記)、CHECK(支票)、DEP(存款)、ATM、POS(刷卡)、XFER(轉帳)、FEE(費用)、SRVCHG(服務費)、INT(利息) |
DTPOSTED |
過帳日期 | 20260215120000(年年月月日日時時分分秒秒) |
TRNAMT |
交易金額(帶符號) | -87.50(負數=借記),3500.00(正數=貸記) |
FITID |
金融機構交易 ID | 20260215001 -- 用於重複偵測的唯一識別碼 |
NAME |
支付對象或商家名稱 | POS PURCHASE GROCERY |
MEMO |
其他描述 | WHOLE FOODS #10847 AUSTIN TX |
CHECKNUM |
支票號碼 | 1045(僅限支票交易) |
REFNUM |
參考號碼 | 銀行分配的交易參考號碼 |
BANKACCTFROM |
來源帳戶資訊 | 包含 BANKID(路由)、ACCTID(帳戶)、ACCTTYPE |
LEDGERBAL |
結帳餘額 | 包含 BALAMT 和 DTASOF |
AVAILBAL |
可用餘額 | 包含 BALAMT 和 DTASOF |
CURDEF |
貨幣代碼 | USD、GBP、EUR、AUD、CAD |
FITID -- 為何重要
從會計角度來看,FITID(金融機構交易 ID)是 OFX 檔案中最重要的標籤。它是分配給每筆交易的唯一識別碼,也是實現重複偵測的關鍵。
當您將 OFX 檔案匯入 Xero、GnuCash 或任何其他相容軟體時,該軟體會儲存它見過的每一個 FITID。再次匯入相同檔案時,軟體會將每個 FITID 與其資料庫進行比對,並悄悄跳過重複的項目。
這是 OFX 相較於 CSV 的主要優勢。CSV 沒有唯一的識別碼 -- 如果重複匯入相同檔案,您將需要手動清理重複的條目。
OFX 與 CSV 比較
兩種格式都能將銀行交易匯入會計軟體。OFX 在結構上佔優勢;CSV 在靈活性上勝出。
為何 OFX 更適合匯入會計軟體
| 功能 | OFX | CSV |
|---|---|---|
| 欄位對應 | 自動 -- 標籤定義意義 | 手動 -- 您指定每個欄位 |
| 重複偵測 | 是(基於 FITID) | 否 -- 重新匯入會產生重複項 |
| 日期格式 | 明確(年年月月日日時時分分秒秒) | 因地區而異 -- 日/月/年 vs 月/日/年 |
| 金額處理 | 帶符號的值和 TRNTYPE | 必須解析符號、數字和分隔符 |
| 帳戶識別 | 內嵌(路由+帳戶號碼) | 不包含 |
| 餘額驗證 | 包含結帳餘額 | 通常不包含 |
| 交易類型 | 已分類(DEBIT、CREDIT、CHECK 等) | 文字或缺失 |
| 多帳戶檔案 | 單一檔案支援 | 需要獨立檔案 |
僅日期格式的差異就能節省數小時的故障排除時間。使用 CSV 時,01/02/2026 是模糊的 -- 是 1 月 2 日還是 2 月 1 日?OFX 使用 YYYYMMDDHHMMSS 消除了這種歧義。20260201120000 始終是 2026 年 2 月 1 日。
何時 CSV 是更好的選擇
CSV 也有其合理優勢:
- 資料編輯 -- 您可以在 Excel 中開啟 CSV,修正錯誤,添加分類,然後重新儲存。OFX 檔案需要文字編輯器和對標籤結構的了解。
- Excel 分析 -- 如果您需要對交易資料執行公式、樞紐分析表或圖表,CSV 是自然的中間格式。
- 自訂處理 -- 程式化腳本和資料管道比 OFX 的巢狀標籤結構更容易處理 CSV。
- 通用相容性 -- 每個讀取表格資料的應用程式都能讀取 CSV。並非所有應用程式都能讀取 OFX。
實用建議:使用 OFX 匯入會計軟體,其他情況則使用 CSV。
OFX 與 QBO 比較
這是最常讓人困惑的問題 -- 而答案比您想像的要簡單。
QBO(QuickBooks Web Connect)是 OFX 的變體,只是檔案副檔名不同,並包含一些 Intuit 特有的標籤。底層資料結構是相同的。QBO 檔案就是 QuickBooks 識別為其自身的 OFX 檔案。
主要差異
| 方面 | OFX | QBO |
|---|---|---|
| 檔案副檔名 | .ofx |
.qbo |
| 規格 | 開放標準(FDX) | Intuit 的品牌子集 |
| 金融機構識別碼 | 可選的 FI 區塊 |
INTU.BID 標籤(Intuit 銀行 ID) |
| 目標軟體 | Xero、MYOB、GnuCash、Wave 等 | QuickBooks(桌面版和線上版) |
| 相容性 | 較廣泛 -- 大多數會計軟體 | 僅限 QuickBooks |
INTU.BID 標籤是 Intuit 的主要新增內容 -- 這是一個銀行識別碼,用於告知 QuickBooks 檔案來自哪個金融機構,從而能在匯入時自動對應到正確的銀行帳戶。
實際上,您可以將 .ofx 檔案重新命名為 .qbo,QuickBooks 通常也能讀取。反之亦然 -- 大多數讀取 OFX 的軟體也能處理 .qbo 檔案。但為了乾淨的匯入,請使用每個應用程式預期的格式。
還有 QFX(Quicken Financial Exchange)-- 相同的 OFX 基礎,不同的品牌,不同的檔案副檔名,針對 Quicken 設計。
支援 OFX 的軟體
OFX 在會計和個人理財軟體中享有廣泛支援:
Xero(推薦格式)
Xero 明確建議使用 OFX 而非 CSV 進行手動銀行對帳單匯入。OFX 檔案無需欄位設定即可自動對應,包含基於 FITID 的重複偵測,並攜帶帳戶中繼資料。
匯入方式: 前往 會計 > 銀行帳戶,選擇帳戶,點擊 管理帳戶 > 匯入對帳單,然後選擇您的 .ofx 檔案。每個檔案最多支援 1,000 筆交易。
MYOB(完全支援)
MYOB 接受 OFX 用於銀行串流匯入。流程與 Xero 類似 -- 將檔案上傳到相關銀行帳戶,交易就會出現在銀行串流中以供比對和分類。
GnuCash(免費、開源)
GnuCash 透過 libofx 函式庫內建 OFX 匯入功能。這是處理 OFX 檔案的最佳免費選項之一。
匯入方式: 前往 檔案 > 匯入 > 匯入 OFX/QFX,選擇您的檔案,並將其對應到正確的帳戶。GnuCash 的重複偵測使用 FITID 來防止重複輸入。
其他相容軟體
- Wave -- 免費會計軟體,支援 OFX 匯入
- Sage Business Cloud -- 接受 OFX 用於銀行交易匯入
- FreeAgent -- 支援 OFX 和 QIF 檔案上傳
- Moneydance -- 個人理財軟體,支援 OFX 直接連線和檔案匯入
- KMyMoney -- 開源個人理財管理器,透過
libofx支援 OFX - Microsoft Money -- 已停產但仍有人使用;內建 OFX 支援是其核心功能之一
- Reckon (澳洲) -- 在其銀行串流匯入工作流程中接受 OFX 檔案
QuickBooks 是較為顯著的缺席者 -- 它偏好使用其 QBO 品牌變體,並且更可靠地處理包含 INTU.BID 識別碼的 .qbo 檔案。
從 PDF 銀行對帳單建立 OFX 檔案
大多數銀行不直接提供 OFX 下載。它們提供 PDF -- 格式化用於列印,而非資料交換。有些銀行提供 CSV 匯出(通常是最近 90 天的交易),但對於歷史資料、已關閉的帳戶或沒有數位匯出選項的銀行,您只能使用 PDF。
PDFSub 的銀行對帳單轉換器 可從 PDF 銀行對帳單中提取交易,並建立具有正確結構的有效 OFX 檔案。輸出包含每筆交易的唯一 FITID、正確的年年月月日日日期格式、帶有適當交易類型的帶符號金額,以及帳戶中繼資料 -- 這一切都是會計軟體進行乾淨匯入所需的。
該轉換器支援 130 多種語言、超過 20,000 家銀行的對帳單。數位 PDF(基於文字的對帳單)會在您的瀏覽器中處理 -- 檔案永不離開您的裝置。掃描或圖像較多的對帳單則透過伺服器端 AI 提取。
全方位方案為每月每位使用者 20 美元(年繳)或 25 美元(月繳),包含每位使用者每月 500 頁銀行對帳單。所有付費方案均包含 7 天免費試用。如需匯入產生的 OFX 檔案到 Xero 的詳細教學,請參閱 Xero 銀行對帳單匯入指南。
常見 OFX 問題及解決方法
OFX 檔案結構化,但並非萬無一失。以下是最常見的問題及解決方法:
1. 無效的 XML/SGML 語法
症狀: 您的軟體以解析錯誤拒絕該檔案。
原因: 標籤格式錯誤、缺少關閉標籤(在 2.x 檔案中),或描述中存在非法字元。字元 & 是最常見的罪魁禍首 -- 在 XML 中必須編碼為 &,但常在 "AT&T." 等名稱中直接出現。
解決方法: 在文字編輯器中開啟檔案,將單獨的 & 替換為 &。如果檔案是 2.x 版本,也請檢查未關閉的標籤。
2. 遺失或重複的 FITID
症狀: 匯入產生重複交易,或軟體報告缺少識別碼。
原因: 某些轉換工具為每筆交易產生相同的 FITID(例如 0 或 1),或完全省略該標籤。
解決方法: 每個 FITID 在檔案內必須是唯一的。常見的模式是結合日期和順序計數器:20260215001、20260215002 等。匯入前在文字編輯器中編輯預設的 FITID。
3. 日期格式錯誤
症狀: 交易顯示在錯誤的日期,或軟體顯示 1900 年或 2099 年的日期。
原因: DTPOSTED 值不符合 YYYYMMDDHHMMSS 格式。僅有 YYYYMMDD(無時間)是可以的,但 DD/MM/YYYY 或 MM-DD-YYYY 會導致解析錯誤。
解決方法: 確保所有 DTPOSTED 值使用 YYYYMMDD 或 YYYYMMDDHHMMSS。20260215 和 20260215120000 均有效。
4. 字元編碼問題
症狀: 交易描述顯示亂碼、問號或遺失重音符號。
原因: 檔案標頭聲明了一種編碼(通常是 USASCII 或 UTF-8),但實際內容使用了不同的編碼。這在包含非 ASCII 字元的國際銀行對帳單中尤其常見。
解決方法: 將 ENCODING 標頭更改為符合實際檔案編碼。對於帶有重音符號的國際對帳單,UTF-8 是最安全的選擇。一些舊軟體需要 USASCII 且不含特殊字元。
5. 版本相容性(1.x vs 2.x)
症狀: 預期 OFX 2.x 的軟體拒絕 1.x 檔案,反之亦然。
原因: OFX 1.x 使用 SGML 標記(標籤無需關閉),而 2.x 使用標準 XML(所有標籤必須開啟和關閉)。為一個版本建構的解析器可能會在另一個版本上出錯。
解決方法: 大多數現代會計軟體都能處理這兩個版本。如果您的軟體不行,可以透過添加關閉標籤(1.x 到 2.x)或移除它們(2.x 到 1.x)來在版本之間進行轉換。對於小型檔案,文字編輯器的搜尋替換功能可以處理。
常見問題解答
OFX 代表什麼意思?
OFX 代表 Open Financial Exchange(開放金融交換)-- 一種由金融數據交換(FDX)維護的開放標準,用於金融機構與終端使用者應用程式之間的金融數據電子交換。
OFX 和 QBO 是相同的嗎?
幾乎相同。QBO 是 Intuit 為 QuickBooks 設計的 OFX 品牌版本。資料結構相同 -- QBO 添加了 INTU.BID 標籤用於銀行識別,並使用 .qbo 副檔名。您通常可以將 .ofx 重新命名為 .qbo,QuickBooks 就會接受。
我可以在 Excel 中開啟 OFX 檔案嗎?
不能直接作為結構化資料開啟。Excel 會將檔案作為純文字檔案開啟,顯示原始的 SGML/XML 標記。要在 Excel 中查看 OFX 資料,您需要先將其轉換為 CSV 或 XLSX,或者使用第三方外掛程式將 OFX 標籤解析為試算表欄位。
對於 Xero,OFX 或 CSV 哪個更好?
OFX 對於 Xero 更好。它無需欄位對應即可自動匯入,包含基於 FITID 的重複偵測,使用明確的日期格式,並攜帶帳戶中繼資料。Xero 自己的文件建議手動匯入銀行對帳單時使用 OFX 而非 CSV。
銀行是否提供 OFX 下載?
有些銀行提供,但並不一致。美國、英國和澳洲的主要銀行可能會提供最近交易(通常是過去 90 天)的 OFX 或 QFX 下載。許多小型銀行、信用合作社和國際機構僅提供 PDF 對帳單。對於超出下載期限的歷史資料,PDF 轉換通常是唯一的選擇。
OFX 安全嗎?
OFX 規格包含用於傳輸期間 SSL/TLS 加密以及直接連線的憑證式驗證的條款。然而,儲存在磁碟上的 OFX 檔案是純文字 -- 它以可讀形式包含帳戶號碼和交易詳細資訊。請像對待任何金融文件一樣謹慎處理 OFX 檔案。
OFX 1.x 和 2.x 有何區別?
OFX 1.x 使用 SGML 標記(標籤無需關閉),而 OFX 2.x 使用標準 XML(所有標籤必須開啟和關閉)。資料內容相同 -- 區別在於語法。1.6 版本仍然是最廣泛生成的格式。大多數現代會計軟體都能處理這兩個版本。
我可以手動編輯 OFX 檔案嗎?
可以。OFX 檔案是純文字,可以在任何文字編輯器中編輯。您可以修正描述、更正金額、添加遺失的 FITID 或調整日期。只需保持標籤結構 -- 未關閉或不匹配的標籤將導致匯入失敗。對於 OFX 2.x 檔案,請確保每個開啟的標籤都有對應的關閉標籤。