# 预算、费用与对账


这页写给为 Developer 组织付款或对账的人。它说明怎样为一项活动准备资金，怎样看清它预留和花掉了多少，以及到哪里取得单据。这里的每个金额都属于当前 Organization。

## 打开 Billing

点击 Developer 左下角的账户菜单，选择 **Billing & Wallet**（账单与钱包）。打开的页面标题是 **Billing**（账单）。

页面显示的是菜单中当前 Organization 的资金。你属于多个组织时，先切换到要查看的那一个，再读数字或付款。

Billing 有四个视图：

| 视图 | 在这里做什么 |
| --- | --- |
| **Balances**（余额） | 查看组织的 USD 和 USDC 余额，发起 **Add USD**（充值 USD），打开 **Manage USDC**（管理 USDC） |
| **Activity**（账户动态） | 逐笔查看本 UTC 自然月的交易：充值、预留、用量扣费、转换和退款 |
| **Documents**（票据） | 下载月度对账单和每笔付款的收据 |
| **Earnings**（收益） | 查看发布方收入，也就是组织发布的数据资产和 Agent 带来的收入。它与充值用于支出的 USD 分开存放，与活动的资金准备无关 |

原来的 Wallet 页已并入 **Balances**，旧的 Wallet 书签会打开 Billing。

## 两个余额怎么读

**Balances** 里有两张卡片：**USD balance**（USD 余额）和 **USDC balance**（USDC 余额）。两者分开存放，页面从不把它们相加。

| 数字 | 含义 | 怎么用 |
| --- | --- | --- |
| **Available to use**（可用余额） | 现在可以支出、预留或转换的 USD | 发布活动前，拿它和预算比较 |
| **Reserved for campaigns**（为活动预留） | 为运行中或已暂停的活动留出的 USD | 它是已承诺的钱，还没有花掉。活动结束后，未用完的部分回到可用余额 |
| **Held for disputes**（争议冻结） | 银行卡付款处于争议期间被冻结的 USD。只有存在这类金额时才显示这一行 | 等待争议结果。结果对你有利时，这笔钱回到可用余额 |
| **Total USD funds**（USD 资金合计） | 以上各行 USD 的总和，不含 USDC 和发布方收入 | 用来确认以上各行没有漏掉任何一笔 USD |
| **Available USDC**（可用 USDC） | 组织存放在平台上的 USDC。它只有一个数字，没有预留部分 | 判断能否发布时可以略过它，发布不会动用 USDC |

USD 的几个数字由一个等式连在一起：

**Total USD funds** = **Available to use** + **Reserved for campaigns** + **Held for disputes**

卡片上没有 **Held for disputes** 这一行时，这个金额为零。

USD 在这几行之间移动时，合计不变。只有 USD 进入或离开组织的余额时，合计才会变化。

| 发生了什么 | Available to use | Reserved for campaigns | Total USD funds |
| --- | --- | --- | --- |
| 你充值 USD | 增加 | 不变 | 增加 |
| 发布活动，或增加它的预算 | 减少 | 增加 | 不变 |
| 一份被接受的 Submission 完成结算 | 不变 | 减少 | 减少 |
| 活动结束，预算还有剩余 | 增加 | 减少 | 不变 |
| 数据访问或 Agent 调用被扣费 | 减少 | 不变 | 减少 |
| 你把 USD 换成 USDC | 减少 | 不变 | 减少 |

卡片提示余额无法加载时，这个数字是未知而非零，刷新后再决定是否付款。还没有计费账户的组织看到的是一条说明，第一次 **Add USD** 会开通这个账户。

## USDC 是什么，由谁来转换

USDC 是一种数字美元：它是与美元挂钩的代币，1 USDC 的价值设计为等于 1 USD。它发到数字钱包，而不是银行账户，Contributor 就是这样收到报酬的。为活动准备资金时，你不需要自己的钱包，也不需要了解加密货币。

Humanbased 用 USDC 向 Contributor 付款，你用 USD 付款。一份被接受的 Submission 结算时，Humanbased 从 **Reserved for campaigns** 中按 USD 扣除它的费用，再把报酬以 USDC 记给 Contributor。这次转换是结算的一部分，由 Humanbased 完成。

因此，活动在发布时、支付工作时和结束时都不会动用 **Available USDC**。为活动提供资金的只有 USD 余额。

**Manage USDC** 是另一项可选操作，大多数组织用不到它。它把你自己的 USD 换成 USDC，由组织存放在平台上。操作步骤见下文“把 USD 换成 USDC”一节。

## 发布前，先判断要补哪一笔钱

发布活动时，平台预留的是 USD：金额等于这项活动的整笔预算上限，从 **Available to use** 中划出。USDC 余额不计入。

所以发布前只需要做一次比较：

1. 打开草稿的 **Test & Launch**（试跑与启动）阶段，进入 **Pricing & Budget**（定价与预算）步骤。**Budget cap (USD)**（预算上限（美元））就是发布时要预留的金额。
2. 在 Billing 打开 **Balances**，读 **Available to use**。
3. 可用余额小于预算上限时，差额就是缺口。用 **Add USD** 至少补足这个差额。

发布前无需把资金换成 USDC。转换会减少 **Available to use**，而且门户没有把 USDC 换回 USD 的入口。

门户在 **Launch**（上线）步骤做同一次比较。摘要列出 **Budget cap**（预算上限）和 **Wallet balance**（钱包余额），这里的 Wallet balance 就是 **Available to use**。它低于预算上限时，页面提示 “Wallet balance is below the $500 budget cap. Top up before launching.”，其中的金额是你自己的预算上限。这时 **Promote & Lock**（发布并锁定预算）按钮保持不可用。发布时服务端还会再核一次，余额不足的发布不会预留任何资金。

**示意**：一项活动的预算上限是 500 USD。

| 时刻 | Available to use | Reserved for campaigns | Available USDC |
| --- | --- | --- | --- |
| 充值前 | 300.00 USD | 0.00 USD | 150.00 USDC |
| 用 **Add USD** 充值 200.00 后 | 500.00 USD | 0.00 USD | 150.00 USDC |
| 发布后 | 0.00 USD | 500.00 USD | 150.00 USDC |

缺口是 200 USD。那 150 USDC 抵不了缺口；如果把 300 USD 中的一部分换成 USDC，缺口只会更大。

## 用 Add USD 充值

组织的任何成员都可以充值。无论谁付款，款项都计入组织的 USD 余额。

1. 在 **Balances** 选择 **Add USD**。充值流程会占据整个 Billing 页面，并写明这次为哪个组织充值。
2. 在 **Amount & billing**（金额与开票）选择预设金额，或在 **Amount · USD**（金额 · 美元）填写自定金额，最低 1.00 USD。
3. 在 **Who should we bill?**（账单开给谁）选择收据上显示的法律主体。无论选哪个主体，资金都进入当前组织。然后选择 **Continue to payment**（继续付款）。
4. 在 **Payment method**（付款方式）中，可用的方式是在 Stripe 的页面用银行卡付款。选择 **Review top-up**（确认充值）。
5. 在 **Review & pay**（确认并支付）核对 **Credit to**（入账至）、**USD to add**（充值金额）和 **Bill to**（开票给）。**Fees and tax**（手续费与税费）由 Stripe 在结账页计算。
6. 选择带金额的 **Pay**（付款）按钮，进入 Stripe 付款页并完成付款。Stripe 会把你带回 Billing，页面向服务端查询这笔付款的结果。

随后页面显示以下结果之一：

| 页面显示 | 含义 | 你现在做什么 |
| --- | --- | --- |
| 标题以 **USD added**（已入账）结尾 | 款项已确认计入组织的 USD 余额 | 用 **View payment receipt**（查看付款收据）保存收据，再选 **Done**（完成） |
| **Payment received. Confirming your credit.**（已收到付款，正在确认入账） | 付款成功，余额还没有更新 | 选择 **Check status**（查询状态）。这时再付一次可能造成重复扣款 |
| **Your payment is still being confirmed**（这笔付款仍在确认中） | 暂时无法确定最终结果 | 记下 **Payment reference**（付款单号），稍后再用 Check status 查询。到第二天仍未确认时，把单号发给 hello@humanbased.ai |
| **Payment not completed**（付款尚未完成） | 你在付款完成前离开了付款页 | 选择 **Go back to the payment**（返回该笔付款），继续的是同一笔付款 |
| **Approve the payment with your bank**（请在银行侧确认这笔付款） | 银行要先验证这笔银行卡付款 | 选择 **Return to the payment page**（返回支付页面）完成验证 |
| **Your card wasn't charged**（未对你的银行卡扣款） | 付款没有成功，或付款页在完成前已过期 | 如果付款页打开后隔了很久才回来，它已经过期，与银行无关：直接选 **Try again**（重新支付）发起新的付款。其他情况先与银行确认或换一张卡，再选 **Try again** |

付款确认后，**Activity** 中会出现一条 **Funds added**（充值入账）记录，收据列在 **Documents** 的 **Payment receipts**（付款收据）下。

## 把 USD 换成 USDC

活动直接使用 USD。只有确实需要 USDC 时才转换：

1. 在 **USDC balance** 卡片选择 **Manage USDC**。
2. 在 **Amount · USD** 填写金额：大于零，最多两位小数。只能转换 **Available to use** 中的 USD，已预留的部分排除在外；超出这个数的金额在报价之前就会被拒绝。
3. 选择 **Review conversion**（确认转换详情），查看汇率、费用、**USDC you receive**（你将收到的 USDC）以及转换后的两个余额。选 **Change amount**（修改金额）可回去改金额。
4. 在五分钟内选择 **Confirm conversion**（确认转换），窗口会为报价倒计时。完成页给出 **Reference**（凭证号）和转换后的两个余额。

五分钟用完后，**Confirm conversion** 会换成 **Get a new quote**（重新获取报价），按同一金额重新报价，汇率可能已经变化。如果确认失败，窗口会说明没有发生任何转换，并提供 **Try again**（重试）。如果只是回复在途中丢失，转换可能已经完成。重试发出的是同一个请求，所以只会取回那次转换，不会再转换一次。新报价则是一个新请求：确认失败后，先在 **Available USDC** 和 **Activity** 里查看有没有一笔你没看到完成的转换，再确认新报价。

转换只有一个方向。同一窗口里的 **USDC → USD**（把 USDC 换回 USD）和 **Withdraw to a bank account**（提现到银行账户）显示为锁定，两项都无法使用。

## 活动预算：设置与增加

草稿阶段，在 **Pricing & Budget** 步骤填写 **Budget cap (USD)**。同一步骤列出每个人工步骤的报酬；要改报酬，回到 Builder 中对应的人工步骤。适用平台服务费时，页面把它单独列为一行，加在报酬之上，预算需要同时覆盖两者。[正式发布](/zh/tasks/launch)时预留整笔预算上限，发布页把这一步称为锁定预算。

活动运行后，打开 **Setup**（配置）中的 **Budget & costs**（预算与成本）。**Overview**（概览）里的 **Increase budget**（追加预算）通向同一处。

1. 在 **Total budget**（总预算）旁读 **Wallet available**（钱包可用），它就是组织的 **Available to use**。
2. 在 **Budget (USD)**（预算（USD））填写新的总预算，它必须高于当前预算。
3. 选择 **Increase budget**。平台只预留新旧预算之间的差额。

可用余额小于这个差额时，增加会被拒绝，也不会预留任何资金。先用 Add USD 补足差额，再保存。

发布后预算只增不减，活动运行或暂停期间，预留一直留在这项活动上。预留的钱不够支付下一份工作时，活动会自动暂停。要继续工作，先增加预算，再选择 **Resume**（恢复）；在此之前活动一直保持暂停。结束的活动完成收尾后，未用完的预留回到 **Available to use**。暂停与收尾见[测试、发布与运行状态](/zh/tasks/launch)。

## 核对一项活动的资金

一项活动的钱会移动三次：发布时预留，工作被接受时支出，结束时退回剩余部分。**Activity** 把每次移动记为一行，每一行在名称下方标出类型。

| Activity 中的类型和状态 | 发生了什么 | 怎么算 |
| --- | --- | --- |
| **Campaign reservation**（活动预留），状态 **Reserved**（已预留）。金额为负，并标注 **Moved to reserved**（已划入预留） | 发布或增加预算时，USD 从可用余额划入预留 | 算作留出的预算。它还不是支出 |
| **Reservation released**（预留释放），状态 **Settled**（已结算），金额为负 | 一份被接受的 Submission 完成结算，它的费用从预留中支出：Contributor 报酬加平台服务费，以 USD 计。可用余额不变 | 这就是活动的实际支出，把这些行加起来 |
| **Refund**（退款），状态 Settled，金额为正，名称以 “Refund from locked balance” 开头 | 活动结束，未用完的预留退回可用余额 | 算作预算退回，不算收入 |

因此 **Reserved for campaigns** 会在三种情况下变化：发布或增加预算时增加，Submission 结算时减少，活动结束时再减少。只有中间一种是支出。

把这些记录连起来的标识是 Campaign ID，也就是门户里这项活动地址中 `/campaigns/` 后面的那一段。预留记录和单笔结算记录的名称里都带有它。退回记录的详情中，**Reference**（关联编号）写作 `close:` 加 Campaign ID。导出文件用 `campaign_id` 一列记录它。

汇总一项活动：

1. 从活动的地址复制 Campaign ID。
2. 在 Billing 打开 **Activity**，筛选器保持 **All activity**（全部活动），再选择 **Export all CSV**（导出全部 CSV）。文件逐笔列出本 UTC 自然月至今的全部交易；活动跨月运行时，在每个月结束前导出一次。
3. 只保留 `campaign_id` 等于这项活动的行。
4. 按 `type` 分别合计 `amount`：`lock` 是预留，`release` 是支出，`refund` 是退回。

在页面上也可以分开查看这三类记录：把同一个筛选器改选为 **Reservations**（预留）、**Usage charges**（用量扣费）或 **Refunds**（退款）。**Grouped**（合并）模式下，同一项活动在同一个 UTC 日的多笔结算合成一行，以活动名称显示并标注 **Daily total**（当日合计）。展开后是同一批交易的逐笔明细，合并行和明细只计其一。要找某一份 Submission 的费用，把 Submission ID 粘贴到搜索框。

**示意（续）**：这项 500 USD 的活动接受了共 300 USD 的工作，随后结束。

| Activity 记录 | 金额 | Available to use | Reserved for campaigns |
| --- | --- | --- | --- |
| **Campaign reservation** | -500.00 USD | 0.00 USD | 500.00 USD |
| **Reservation released**，全部合计 | -300.00 USD | 0.00 USD | 200.00 USD |
| **Refund** | +200.00 USD | 200.00 USD | 0.00 USD |

这项活动的支出是 300 USD。如果把预留和结算两类金额相加，会得出 800 USD，超过了它 500 USD 的预算。

不要用单项活动的预算去减组织级的数字。**Activity** 顶部的 Usage charges 合计和 **Balances** 上的余额，包含组织内所有活动、数据访问扣费和 Agent 调用。要看单项活动的现状，打开它的 **Overview**，读 **Budget & obligations**（预算与义务）。其中的 **Campaign funds held**（活动托管资金）、**Outstanding obligations**（未结清义务）和 **Available for new work**（可用于新工作）只针对这一项活动。

## 谁可以做什么

Billing 只核对你是否是这个 Organization 的成员，组织角色不影响结果。把资金投入某项活动则另行核对你在该活动上的角色。

| 操作 | 谁可以做 | 做不了时 |
| --- | --- | --- |
| 打开 Billing，查看 **Balances**、**Activity** 和 **Documents**；导出 CSV；下载对账单和收据 | 组织的任何成员 | 请组织的 Owner 或 Admin 把你加入组织 |
| **Add USD** | 组织的任何成员 | 同上 |
| 在 **Manage USDC** 中把 USD 换成 USDC | 组织的任何成员 | 同上 |
| 发布活动，同时预留预算 | 活动 owner | 发布被拒绝，也不会预留资金。请活动 owner 发布 |
| 对运行中的活动使用 **Increase budget** | 活动 owner | 保存被拒绝，预算保持原样。请活动 owner 修改 |

活动 owner 指创建这项活动的人，以及所属组织的 Owner 和 Admin。组织的其他成员在这项活动上的角色低于 owner，发布和调整预算都需要 owner 来做。活动自身的成员名单里为你登记了角色时，以登记的角色为准。

所以，能在 Billing 里看到全部数字的同事，未必能发布活动或增加预算。组织角色在 [Organization](/zh/collaboration/organization) 的 **Members**（成员）中查看。活动自己的成员列在它的 **Setup** 下的 **Team & access**（团队与权限）。

## 费用、收据与对账单

在活动的 **Budget & costs** 中，**Cost breakdown**（成本明细）分别列出 **Actual cost**（实际成本）、**Platform fee**（平台服务费）和 **Total / record**（每条合计），并显示账户的费用层级。按这条记录显示的费率核对，历史条目的费率只适用于它自己。页面写 **Platform fee (20% of total)** 时，20% 的基数是总额。Contributor 报酬为 1 USDC 时，总额为 `1 ÷ (1 − 20%) = 1.25 USDC`，其中平台费用 0.25 USDC。这是该口径的算法示例，每条记录适用的费率就是它旁边显示的那一个。

**Documents** 提供两类单据：

- **Payment receipts** 逐笔列出付款的日期和金额。**View receipt**（查看收据）打开预览，**Download PDF**（下载 PDF）保存文件。一张收据确认一笔付款。
- 对账单表格按自然年列出各月。当前月标为 **In progress — draft**（进行中——草稿），提供 **Generate PDF**（生成 PDF）。已结束的月份标为 **Available**（可下载），提供 Download PDF。需要比列表更早的月份时，在表格下方的月份输入框选定月份，再选 **Get statement**（获取对账单）。

对账单列出期初和期末余额、充值、合并后的用量、退款和转换，USD 与 USDC 分开显示。已结束月份的对账单只出具一次，之后保持不变；当前月的是截至目前的草稿。**Download underlying transactions as CSV**（下载明细交易 CSV）给出当前月对账单背后的逐笔交易。

仍有无法解释的差异时，向[支持团队](/zh/help/support)提供组织、月份、**Transaction ID**（交易 ID）、类型和 Campaign ID。银行卡完整资料和访问凭据请留在自己手里。
