跳转到主要内容

概览

Transactions API 允许你检索与你的账户关联的所有金融交易的完整历史。这包括购买、存款、取款、转账、账单支付以及所有其他金融活动。 端点类型: GraphQL 查询
身份验证: 必需(JWT Bearer Token)
所需范围: LIST_PAYMENT AND LIST_PURCHASES
速率限制: 适用标准 GraphQL 速率限制

快速开始

基本查询



查询结构

参数


响应结构

TransactionConnection


筛选选项

TransactionFilterInput

筛选字段详情

记录与状态筛选

recordId
类型: [UUID]
描述: 按特定交易记录 ID 进行筛选。
示例:
status
类型: [TransactionStatus]
描述: 按交易状态进行筛选。
选项:
  • PENDING - 交易处理中
  • SETTLED - 交易已成功完成
示例:

金额筛选

amount, amountGte, amountLte
类型: Float
描述: 按美元的精确金额或金额区间进行筛选。
  • amount - 精确金额匹配
  • amountGte - 最小金额(大于等于)
  • amountLte - 最大金额(小于等于)
示例:
finalAmount, finalAmountGte, finalAmountLte
类型: Float
描述: 按最终金额(金额 + 手续费)筛选。
示例:

返现筛选

cashbackAmount, cashbackAmountGte, cashbackAmountLte
类型: Float
描述: 按获得的返现金额进行筛选。
示例:
cashbackPercentage, cashbackPercentageGte, cashbackPercentageLte
类型: Float
描述: 按返现比例(百分比)进行筛选。
示例:

手续费筛选

feeAmount, feeAmountGte, feeAmountLte
类型: Float
描述: 按交易手续费金额进行筛选。
示例:

日期筛选

createdGte, createdLte
类型: DateTime
格式: ISO 8601(例如,2025-01-01T00:00:00Z
描述: 按交易创建时间范围筛选。
示例:
updatedGte, updatedLte
类型: DateTime
描述: 按交易最后更新时间范围筛选。

商户筛选

merchantId
类型: [UUID]
描述: 按特定商户 ID 进行筛选。
示例:
merchant
类型: [String]
描述: 按商户名称进行筛选(与 destination 字段匹配)。
示例:

交易属性

transactionType
类型: [String]
描述: 按特定交易类型筛选。
常见值:
  • Add Money - 存款
  • Gift Card Purchase - 礼品卡购买
  • Transfer - In - 转入
  • Transfer - Out - 转出
  • Virtual Card Purchase - 虚拟卡购买
  • Withdrawal

示例:
channel
类型: [String!]
描述: 按平台渠道筛选。
常见值:
  • WEB - 网页
  • MOBILE - 移动应用
  • API - API 请求
示例:
category
类型: [String]
描述: 按交易类别筛选。
示例:

虚拟卡筛选

virtualCardProgram
类型: [String]
描述: 按虚拟卡项目/发卡方筛选。
示例:
virtualCard
类型: [UUID]
描述: 按特定虚拟卡 ID 筛选。
示例:

其他筛选

fundingSource
类型: [String]
描述: 搜索资金来源名称(对来源或去向进行部分匹配)。
示例:
referenceId
类型: String
描述: 按外部参考 ID(例如购买展示 ID)筛选。
示例:
liabilityId
类型: UUID
描述: 按负债 ID 筛选(用于账单支付)。

分页

OffsetInput

示例 - 第 1 页:
示例 - 第 2 页:
示例 - 检查是否存在更多页面:

交易类型

字段描述

核心交易字段

财务明细

余额快照

重要: 所有余额字段均显示此交易应用后的余额。

交易详情

商户信息

虚拟卡信息

货币转换

元数据


示例

示例 1:基础交易列表

查询:
响应:

示例 2:按日期范围筛选

查询:

示例 3:仅购买且包含余额

查询:
响应:

示例 4:高返现交易

查询:

示例 5:金额区间筛选

查询:

示例 6:虚拟卡交易

查询:

示例 7:分页示例

查询 - 获取第一页并检查是否有更多:
响应显示 hasNextPage=true:
查询 - 获取第二页:

错误处理

常见错误

缺失或无效令牌

HTTP 状态: 401 Unauthorized

权限不足

HTTP 状态: 403 Forbidden

无效的筛选参数

HTTP 状态: 400 Bad Request

超出速率限制

HTTP 状态: 429 Too Many Requests

最佳实践

1. 有效使用分页

始终检查 hasNextPage 以判断是否存在更多结果:

2. 仅请求所需字段

仅指定你需要的字段以减少响应大小:

3. 对历史查询使用日期筛选

在查询较早的交易时,务必使用日期筛选:

4. 缓存已结算交易

status: SETTLED 的交易是不可变的,可以进行缓存:

5. 高效组合筛选

使用范围筛选先收窄结果,再应用其他筛选:

速率限制

响应头:
  • X-RateLimit-Limit - 允许的最大请求数
  • X-RateLimit-Remaining - 当前窗口剩余请求数
  • X-RateLimit-Reset - 速率限制重置时间(Unix 时间戳)

代码示例

JavaScript/TypeScript


Python


cURL


常见问题

问:一次请求最多能获取多少笔交易?

答:每次请求的最大数量为 20 笔。使用 hasNextPage 字段实现分页。

问:交易历史能追溯到多久以前?

答:自账户创建以来的所有交易可无限期访问。

问:是否包含待处理交易?

答:是,默认会包含待处理交易。若要排除,请筛选 status: [SETTLED]

问:时间戳使用什么时区?

答:所有时间戳均为 UTC(ISO 8601 格式)。

问:我需要哪些权限范围(scopes)?

答:你需要同时具备 LIST_PAYMENTLIST_PURCHASES 两个范围。

问:我可以按账户内的用户 ID 进行筛选吗?

答:不可以。该 API 始终返回你账户的所有交易,不支持用户级别筛选。

问:amountfinalAmount 筛选有何区别?

答:
  • amount 筛选基础交易金额
  • finalAmount 筛选 金额 + 手续费(向用户收取的总额)

问:如何按日期范围筛选?

答:使用创建时间的 createdGtecreatedLte

支持


变更日志

v1.0.0(分支:13-fluz-15659-add-transactions-query-and-webhook-to-api)

  • 首次发布 Transactions 查询 API
  • 支持全面筛选(15+ 种筛选类型)
  • 使用 TransactionConnection 响应类型的分页
  • 交易记录中包含余额快照
  • 需要 LIST_PAYMENTLIST_PURCHASES 范围
  • 仅账户级交易访问

需要帮助?请联系开发者支持团队:api-support@fluz.app 或访问我们的开发者门户