externalReferenceId与accountId。没有每用户上限——使用nextCursor分页,遍历窗口内所有目标用户的每一笔交易。
当未提供日期过滤时,默认取最近 90 天。
破坏性变更。 此查询之前返回
results,每个目标用户一条记录,每条最多包含 20 笔交易。现在改为返回扁平的transactions列表并使用游标分页。参见从按目标的响应迁移。要求
Authorization: Basic <API_KEY>(你的应用程序 API key)- 你的应用具备批量 API 能力
- 每个目标用户授权上具备
LIST_PAYMENT与LIST_PURCHASES范围
查询
变量
响应
参数
日期窗口限定数据范围;
limit限定单页大小。窗口最长可跨 365 天。 交易按月分区存储,窗口内的每个分区都会针对每个目标被扫描,因此更宽的窗口每页成本更高——不是免费的。若需更长历史,请使用导出。
目标选择
targetSpec.mode可为SELECTED(在targets中点名用户,使用你在连接时提供的externalReferenceId)或ALL_CONNECTED(你的应用上拥有有效授权的所有用户)。重复的targets会被去重。
此查询最多接受1,000 个目标用户。超过此数量,请使用异步导出。
响应字段
BulkTransaction
需要注意的四点行为:
transactionType是可读性标签,而非稳定枚举——取值类似"Account Transfer - In",而非TRANSFER。不要在代码中据此分支;用于逻辑请结合recordId与金额/符号,把该字段当作展示文本。- 仅返回
PENDING与SETTLED交易——被拒与其他非基线记录将被排除,与单用户交易界面一致。 - 排序为全局最新在前(
createdAt降序,若相同则按recordId,再按用户打破平局)。 - 共享账户上的一笔交易会按可见授权出现多次——同一
recordId配不同externalReferenceId的两行归属记录。
BulkTransaction是为用途定制的精简类型。它不是单用户交易查询返回的完整Transaction类型——上述字段即为全集。若需更丰富的逐笔数据,请使用异步导出。
BulkTargetFailure
目标失败不会导致请求失败。
同时选择两个标识符。 对任何你在连接时未提供
externalReferenceId的授权,此字段将为null,单独使用时可能无法指明是哪位用户失败。只要目标已解析,accountId就会被填写——这在INSUFFICIENT_SCOPE与ACCOUNT_NOT_PERMITTED情形均成立;仅在TARGET_NOT_CONNECTED与INVALID_TARGET_IDENTIFIER(未解析)时为null。查询errors { externalReferenceId accountId code message }意味着每条记录至少能通过两者之一被识别。
请求级错误
上述均为按目标的错误。以下情况会拒绝整个请求,返回data.getBulkTransactions: null以及一个 GraphQL 错误。基于extensions.code分支,不要基于消息文本——措辞可能改变,代码不会。
这两个日期失败共享同一代码——都表示“你请求的时间范围不可用”——区别在于
message:
APPLICATIONS-0010失败。将其视为“从第一页重新开始”,而非可重试错误。
分页
读取第一页,然后跟随nextCursor直至hasMore为false。跨页保持其他参数完全一致——游标编码的是该特定查询排序中的位置。
从按目标的响应迁移
何时改用导出
getBulkTransactions可通过分页遍历完整历史,因此导出适用于你不想分页的拉取——超过 1,000 名用户、超过一年的窗口、计划任务批处理,或当你需要BulkTransaction之外更丰富的逐笔字段时。通过submitBulkOperation提交GET_TRANSACTIONS_EXPORT,轮询getBulkOperationJob,并从短期有效的resultUrl下载 NDJSON。参见批量操作。