updateTransactionMetadata 变更进行更新。
对于启用了 ERP 集成且已连接 QuickBooks Online 的账户,你还可以管理 ERP 交易元数据:会计类别、供应商、客户、可计费状态,以及 ERP 专属备注。ERP 元数据与注释相互独立。
支持注释的交易:
- 入金(
depositCashBalance) - 礼品卡购买(
purchaseGiftCard) - 钱包转账(
createTransfer、transferInternalBalance) - 虚拟卡创建(
createVirtualCard)- 不支持
attachment
- 不支持
- 已有交易(
updateTransactionMetadata.input.erpTransactionMetadata) - 批量交易更新(
bulkUpdateErpTransactionMetadata) - 交易读取(
Transaction.erpMetadata、erpTransactionMetadata、erpTransactionMetadataList)
工作原理
- 可选:如果你想附加文件,请先通过 REST 上传端点上传。你将获得一个
attachmentId。 - 在交易时或之后通过
updateTransactionMetadata,将memo、transactionCategory,以及/或者attachmentId传入你的变更输入。 - 对于 ERP 元数据,先查询已导入的 QuickBooks Online 参考项,或直接传入需要在 QuickBooks Online 中解析或创建的名称。
- 使用
updateTransactionMetadata.input.erpTransactionMetadata更新单笔交易的 ERP 元数据,或用bulkUpdateErpTransactionMetadata一次更新最多 100 笔交易。 - 通过
getTransactions、getUserPurchases或变更响应读取注释。通过Transaction.erpMetadata、erpTransactionMetadata或erpTransactionMetadataList读取 ERP 详情。attachmentUrl字段返回用于访问文件的短期签名 URL。
步骤 1:上传附件(可选)
这是一个 REST 端点,而非 GraphQL 变更
端点
POST /api/v1/file-upload/transaction-memo-attachment
认证
Authorization: Bearer <YOUR_USER_ACCESS_TOKEN>
请求
以multipart/form-data 发送文件,字段名为 file。
接受的类型: application/pdf、image/png
⚠️ 交易附件不接受 JPEG。
示例请求
响应
attachmentId —— 你将在下一步把它传入变更输入中。
attachmentId 作用域限定在你的账户内。提交变更时,系统会验证该文件存在于你账户的存储中。来自其他账户的 ID 将被拒绝。
上传错误
步骤 2:为交易添加注释
你可以在原始交易发生时提供注释,或在事后更新。选项 A — 交易发生时
以下变更的输入均接受可选字段memo、transactionCategory 和 attachmentId:
depositCashBalance→DepositCashBalanceInputpurchaseGiftCard→PurchaseGiftCardInputcreateTransfer→CreateTransferInputtransferInternalBalance→TransferInternalBalanceInput
注释字段
示例 — 购买礼品卡并添加注释
选项 B — 交易发生后(updateTransactionMetadata)
使用此变更为任意已存在的交易添加或更新注释。
部分更新语义:仅更新你传入的字段。未包含的字段保持不变。传入 null 可清空字段。
变更
UpdateTransactionMetadataInput
必需的权限范围
LIST_PAYMENT 和 LIST_PURCHASES。如果包含 erpTransactionMetadata,还需要 MANAGE_ERP_TRANSACTION_METADATA。
示例 — 添加备注和类别
示例 — 为已有交易附加文件
示例 — 清空备注
示例响应
错误
步骤 3:管理 ERP 元数据
ERP 元数据用于在导出到已连接的会计提供方之前对交易进行分类。目前可用的提供方是 QuickBooks Online。 ERP 元数据字段与注释相互独立:- 注释的
memo最长 255 个字符。 - ERP 的
erpTransactionMetadata.memo最长 4000 个字符。 - 注释的
transactionCategory是 Fluz 的类别标签。 - ERP 的
categoryReferenceItemId指向 QuickBooks Online 会计科目表项。
UpdateErpTransactionMetadataInput
当你不想更新 ERP 元数据时,请不要在请求中包含
erpTransactionMetadata。
示例:同时更新注释与 ERP 元数据
步骤 4:查找 ERP 参考项
在设置categoryReferenceItemId、vendorReferenceItemId 或 customerReferenceItemId 之前,使用以下查询查找已导入的 QuickBooks Online 参考项。
参考项字段
参考项过滤器
示例:搜索会计科目表
示例:搜索供应商与客户
步骤 5:读取 ERP 元数据
可以从交易对象或通过专用的 ERP 元数据查询读取 ERP 元数据。在 getTransactions 中读取 ERP 元数据
erpMetadata 为 null。
读取单笔交易的 ERP 元数据
null(不是错误)。
列出 ERP 元数据记录
ERP 元数据列表过滤器
ERP 同步状态
批量更新 ERP 元数据
使用bulkUpdateErpTransactionMetadata 在一次请求中更新最多 100 笔交易的 ERP 元数据。
每个条目使用与 UpdateErpTransactionMetadataInput 相同的字段。省略的字段保持不变;可为空的参考字段、memo 与 isBillable 可传 null 以清空。
变更
变量
示例响应
failed 中返回,其他有效项仍可成功。
读取注释
以下接口会返回注释:
⚠️ attachmentUrl 是签名 URL。它会在生成后不久过期。请不要存储它 —— 需要展示或访问文件时重新获取交易。
常见错误
说明与限制
recordId是交易查询返回的交易记录 ID。- 注释更新为部分更新:省略的字段保持不变,传
null即清空。 - ERP 元数据更新同样为部分更新:省略的字段保持不变,支持为空的字段可用
null清空。 - 在
updateTransactionMetadata中,erpTransactionMetadata: null是空操作(no-op),不是清空。 - 在
updateTransactionMetadata中,erpTransactionMetadata: {}是无效的。请省略该字段。 - 若同时提供 ERP 参考 ID 与名称,则参考 ID 优先。
categoryName会创建或选择一个 QuickBooks Online、账户类型为Expense的科目。vendorName会创建或选择一个 QuickBooks Online 供应商。customerName会创建或选择一个 QuickBooks Online 客户。- GraphQL 分页使用
OffsetInput,limit默认为 20,并受 API 分页上限限制。