如何修改OFX文件以适配Quicken for macOS(v6.12.3)导入?
问题描述
- 使用Quicken for macOS管理投资账户,自动下载仅能获取账户状态,无法同步单笔交易,且不愿手动录入交易
- 平台仅支持导出交易CSV文件,已编写Python代码将其转换为OFX格式,但导入时遇到两类错误:
- 保留OFX中的FI(金融机构)块时,报错:
This FI is inactive, we cannot connect. - 删除FI块后,报错:
Unable to read the selected Web Connect file.
- 保留OFX中的FI(金融机构)块时,报错:
修改OFX文件的解决方案
针对FI块相关错误的调整
1. 匹配Quicken已激活的机构信息
Quicken提示FI未激活,是因为OFX里的FI信息和你Quicken本地已绑定的机构配置不匹配。你需要修改OFX中的<FI>块参数,和Quicken账户设置里的对应机构信息保持一致:
- 找到OFX里的
<FI>标签,修改<ORG>为Quicken中该账户对应的金融机构官方名称(可在账户详情页查看) - 修改
<FID>为该机构在Quicken中的唯一标识符(可以参考同机构其他正常下载的OFX文件,或者在Quicken的机构搜索页查找) - 示例修改后的FI块:
<FI> <ORG>XX证券有限责任公司</ORG> <FID>100123</FID> </FI>
2. 保留极简FI块+补充Web Connect必要标识
如果找不到准确的FID/ORG,可保留简化的FI块,同时确保OFX包含Quicken Web Connect要求的基础结构,避免“无法读取文件”的错误:
- 保留
<FI>块但用通用占位符,同时确保OFX文件顶部有标准声明,且根标签<OFX>包含必要的消息块:
<?OFX OFXHEADER="200" VERSION="220" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?> <OFX> <SIGNONMSGSRSV1> <SONRS> <STATUS> <CODE>0</CODE> <SEVERITY>INFO</SEVERITY> </STATUS> <DTSERVER>20240520153000</DTSERVER> <LANGUAGE>ENG</LANGUAGE> <FI> <ORG>Generic Investment Firm</ORG> <FID>00000</FID> </FI> </SONRS> </SIGNONMSGSRSV1> <INVSTMTMSGSRSV1> <!-- 这里放你的投资交易数据块 --> </INVSTMTMSGSRSV1> </OFX>
检查交易数据块格式
除了FI块,交易部分不符合规范也会导致导入失败,需确认:
- 每个投资交易
<INVTRAN>必须包含必填字段:<DTTRADE>(格式为YYYYMMDDHHMMSS)、<TRNAMT>(数值无千分符,小数点用.)、<INVTRANTYPE>(如BUY、SELL、DIVIDEND等) - 投资工具信息
<INSTRINFO>要包含<TICKER>(股票代码)或<FIID>(机构工具ID) <INVACCTFROM>中的<ACCTID>要和Quicken里已添加的账户ID完全一致
验证OFX格式合法性
用本地的OFX验证工具检查文件是否符合Quicken兼容的OFX 2.2规范,重点排查:
- 所有标签是否正确闭合(Quicken对格式要求严格,避免遗漏闭合标签)
- 日期、数值格式是否符合要求
- 无多余的特殊字符或格式错误
内容的提问来源于stack exchange,提问作者ericg
相关产品推荐
相关产品推荐

