Skip to main content
你可以为任何交易添加并丰富一个备注、一个类别,以及/或者一个附件(例如收据、发票、采购订单)。可在原始交易时添加注释,或在事后通过 updateTransactionMetadata 变更进行更新。 对于启用了 ERP 集成且已连接 QuickBooks Online 的账户,你还可以管理 ERP 交易元数据:会计类别、供应商、客户、可计费状态,以及 ERP 专属备注。ERP 元数据与注释相互独立。 支持注释的交易:
  • 入金(depositCashBalance)
  • 礼品卡购买(purchaseGiftCard)
  • 钱包转账(createTransfer、transferInternalBalance)
  • 虚拟卡创建(createVirtualCard)
    • 不支持 attachment
支持 ERP 元数据的操作:
  • 已有交易(updateTransactionMetadata.input.erpTransactionMetadata)
  • 批量交易更新(bulkUpdateErpTransactionMetadata)
  • 交易读取(Transaction.erpMetadata、erpTransactionMetadata、erpTransactionMetadataList)

工作原理

  1. 可选:如果你想附加文件,请先通过 REST 上传端点上传。你将获得一个 attachmentId。
  2. 在交易时或之后通过 updateTransactionMetadata,将 memo、transactionCategory,以及/或者 attachmentId 传入你的变更输入。
  3. 对于 ERP 元数据,先查询已导入的 QuickBooks Online 参考项,或直接传入需要在 QuickBooks Online 中解析或创建的名称。
  4. 使用 updateTransactionMetadata.input.erpTransactionMetadata 更新单笔交易的 ERP 元数据,或用 bulkUpdateErpTransactionMetadata 一次更新最多 100 笔交易。
  5. 通过 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 → DepositCashBalanceInput
  • purchaseGiftCard → PurchaseGiftCardInput
  • createTransfer → CreateTransferInput
  • transferInternalBalance → 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 元数据

当账户没有启用 ERP 连接,或该交易没有 ERP 元数据时,erpMetadata 为 null。

读取单笔交易的 ERP 元数据

当交易没有 ERP 元数据或账户没有激活的 ERP 连接时,此查询返回 null(不是错误)。

列出 ERP 元数据记录

ERP 元数据列表过滤器


ERP 同步状态


批量更新 ERP 元数据

使用 bulkUpdateErpTransactionMetadata 在一次请求中更新最多 100 笔交易的 ERP 元数据。 每个条目使用与 UpdateErpTransactionMetadataInput 相同的字段。省略的字段保持不变;可为空的参考字段、memo 与 isBillable 可传 null 以清空。

变更

变量

示例响应

对于单项的 ERP 校验失败,会在 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 分页上限限制。