核心用法
xero CLI 是官方提供的命令行工具,基于 PKCE OAuth 认证,覆盖 Xero 会计 API 的完整功能栈。核心工作流遵循"先查询 ID,再执行操作"的模式:通过 list 命令获取 Contact ID、Account Code、Invoice ID 等 GUID,再用于创建或更新操作。
认证机制:首次使用需手动运行 xero login 完成浏览器 OAuth 授权,支持多 Profile 管理(xero profile add/list/set-default)。环境变量 XERO_PROFILE 和 XERO_CLIENT_ID 可实现无交互配置。
数据输入方式:
- 单行内联参数:适合简单创建场景
- JSON 文件输入(
--file):支持多行项目(发票、日记账等),内置前置校验
关键功能模块:
- 账务核心:发票(ACCREC/ACCPAY)、贷项通知单、报价单、付款记录
- 总账管理:会计科目、手动日记账(强制借贷平衡)、银行交易
- 主数据:联系人/联系人群组、商品物料、税率、跟踪类别
- 报表输出:试算平衡表、损益表、资产负债表、账龄分析(AR/AP)
显著优点
1. 官方背书:由 Xero API 团队维护,协议实现严格遵循 OAuth 2.0 PKCE 标准
2. 全功能覆盖:支持写操作(创建/更新)而非只读查询,满足自动化账务处理需求
3. 多格式输出:原生 --json/--csv 支持,便于与 jq/数据处理管道集成
4. 企业级多租户:Profile 机制支持同一终端操作多个 Xero 组织
潜在缺点与局限性
1. 认证门槛:必须人工介入浏览器授权,无法纯 headless 自动化部署
2. ID 依赖严重:几乎所有更新操作需预查询 GUID,批量脚本需额外逻辑层
3. 区域差异敏感:Tax Type、Account Code 因地而异,需运行时动态查询
4. 草稿限制:仅 Draft 状态的发票/报价单可更新,已核准单据需反向操作(贷项通知单)
5. 手动日记账复杂度:强制双线平衡,JSON 结构要求严格
适合人群
- 开发运维团队构建账务自动化流水线
- 财务顾问/代理记账公司批量处理多客户数据
- 需要将 Xero 数据与内部系统(ERP/BI)集成的技术团队
- 熟悉命令行、具备基础会计知识的用户
常规风险
- OAuth Token 安全:
~/.xero/目录存储 Token,需确保文件权限(建议 600) - 生产数据误操作:写命令无二次确认,建议配合
--dry-run逻辑或沙盒组织测试 - 并发写入限制:Xero API 存在速率限制(每分钟 5000 调用),批量脚本需内置退避
- 时区与日期格式:ISO 8601 日期需显式指定,避免月末/年末报表偏差