首页
/ Invoice Ninja API 核心接口详解

Invoice Ninja API 核心接口详解

2025-07-06 08:12:50作者:农烁颖Land

概述

Invoice Ninja 是一个功能强大的开源发票和财务管理平台,提供了完善的 RESTful API 接口。本文将深入解析其核心 API 接口的设计和使用方法,帮助开发者更好地集成和使用 Invoice Ninja 的功能。

活动记录接口

获取活动列表

GET /api/v1/activities 接口用于获取与公司相关的所有活动记录。这个接口非常适合用于构建审计日志或活动跟踪功能。

参数说明

  • activity_include:可选,指定需要包含的关联数据
  • index:分页索引
  • per_page_meta:每页显示数量
  • page_meta:分页元数据

响应结构

{
  "data": [
    {
      // 活动记录详情
    }
  ],
  "meta": {
    // 分页元数据
  }
}

下载活动PDF

GET /api/v1/activities/download_entity/{activity_id} 接口允许用户下载特定活动的 PDF 文件。这在需要存档或打印活动记录时非常有用。

路径参数

  • activity_id:活动的唯一哈希ID

认证与授权接口

用户登录

POST /api/v1/login 是系统的核心认证接口,支持以下功能:

  1. 基础认证(邮箱+密码)
  2. 双因素认证(2FA)
  3. 返回用户权限信息

请求体示例

{
  "email": "demo@invoiceninja.com",
  "password": "Password0",
  "one_time_password": "123456" // 可选,2FA验证码
}

最佳实践: 建议在登录时包含 companyuser 对象,可通过查询参数实现:

/api/v1/login?include=company,user

数据刷新

POST /api/v1/refresh 接口用于增量数据同步,特别适合移动应用或需要定期同步数据的场景。

参数说明

  • updated_at:Unix 时间戳,只获取此时间之后更新的数据
  • include:指定需要包含的关联数据

银行集成接口

银行集成管理

Invoice Ninja 提供了完整的银行集成 CRUD 接口:

  1. GET /api/v1/bank_integrations - 获取银行集成列表
  2. POST /api/v1/bank_integrations - 创建新的银行集成
  3. GET /api/v1/bank_integrations/{id} - 获取特定银行集成详情
  4. PUT /api/v1/bank_integrations/{id} - 更新银行集成
  5. DELETE /api/v1/bank_integrations/{id} - 删除银行集成

分页控制: 可以通过 rows 参数控制返回的记录数量,例如 ?rows=50 表示返回50条记录。

Yodlee 集成

POST /api/v1/yodlee/refresh 是专门为 Yodlee 金融数据平台设计的 Webhook 接口,用于接收数据更新通知。

通用设计模式

Invoice Ninja API 遵循了一些优秀的设计实践:

  1. 标准化响应:所有列表接口都采用 data + meta 的结构
  2. 权限控制:通过 X-API-TOKEN 进行认证
  3. 速率限制:响应头中包含 X-RateLimit-RemainingX-RateLimit-Limit
  4. 版本控制:通过 X-MINIMUM-CLIENT-VERSION 确保客户端兼容性
  5. 增量同步:支持基于时间戳的数据刷新机制

错误处理

API 提供了完善的错误响应:

  • 401:未授权
  • 403:禁止访问
  • 422:验证错误
  • 429:请求过多
  • 5XX:服务器错误

总结

Invoice Ninja 的 API 设计遵循了 RESTful 最佳实践,提供了完善的认证、授权、数据访问和错误处理机制。通过合理使用这些接口,开发者可以构建强大的财务管理系统集成方案。