Skip to content
返回变现与收入

打款调度

如何可靠且合规地向创作者、联盟或市场卖家调度打款。

为什么

如果你做市场、联盟计划或创作者平台,你欠许多小收款人的钱。难点不是发钱 — 而是决定何时、给谁、发多少,同时遵守最低打款门槛、税表(W-9/W-8BEN)和制裁筛查。差的打款系统要么打太频(Stripe 打款费吃掉利润),要么打太稀(创作者拿不到钱而离开)。正确设计是批处理作业累积余额、强制最低门槛(如 50 美元)、首次打款前收税表、筛查 OFAC SDN 名单,然后用 Stripe Connect 或 PayPal Payouts 打款。搞错会创造真实法律责任 — 给制裁实体打款是联邦罪即使无意。

何时使用

当收款人超 10 个(创作者、联盟、卖家)且每人年累计打款超 600 美元(美国 1099 阈值)时。

如何做

1. 选通道:Stripe Connect 打卡/ACH(美/加/英/欧)、PayPal Payouts 全球钱包、Wise 低费国际银行转账
2. 设最低打款门槛(常见 50 美元 — 低于此费率吃太多)和打款节奏(每月 1 日为标准)
3. 首次注册收税表:美国人 W-9、非美 W-8BEN — 存 TIN 和居住地;未收前阻止打款
4. 跑周批处理:(a) 汇总每个收款人可用余额,(b) 跳过低于门槛或缺税表的,(c) 通过 sanctions.io 等 API 用姓名+国家筛查 OFAC SDN 名单
5. 每个合格收款人创建 Stripe Connect transfer 或 PayPal Payout,余额标为 'in_payout'
6. 打款 webhook 确认后余额转 'paid' 记 payout id;失败则转回 'available' 并告警运维
7. 年末通过 Tax1099 或 Stripe 1099-MISC API 为超 600 美元的美国收款人生成 1099-NEC 表
8. 建打款仪表盘让收款人看待结、在途、已付金额 — 透明度砍 80% 支持工单

示例

// 周打款批处理(cron 或 Stripe Sigma 跑)
async function runPayouts() {
  const payees = await db.payee.findMany({ where: { availableBalance: { gte: 50 } } });
  for (const p of payees) {
    if (!p.taxForm) continue;
    if (await isSanctioned(p.name, p.country)) { await flagForReview(p); continue; }
    const transfer = await stripe.transfers.create({
      amount: Math.round(p.availableBalance * 100),
      currency: "usd",
      destination: p.stripeAccountId,
    });
    await db.payout.create({
      data: { payeeId: p.id, amount: p.availableBalance, stripeTransferId: transfer.id, status: "in_payout" },
    });
    await db.payee.update({ where: { id: p.id }, data: { availableBalance: 0 } });
  }
}

常见问题

  • ⚠没收 W-9/W-8BEN 就打款 — IRS 要求无 TIN 时预扣 24% 备用预扣,不扣你担税责。收表前阻止打款。
  • ⚠不筛查 OFAC SDN 名单 — 给制裁个人或实体打款是联邦罪,罚没至 2000 万美元,即使不知情。筛查一次 API 调用,非可选。
  • ⚠每笔交易都打款而非批处理 — Stripe 每笔打款收 0.25 美元,给 100 创作者各打 5 美元费 25 美元打 500 美元。批到月度。

最佳实践

  • ✓用 Stripe Connect Express 账户 — Stripe 替你做 KYC、税表收集和制裁筛查,转移合规负担。
  • ✓在仪表盘给收款人看实时可用余额和预计下次打款日 — 第一大支持工单是"我的钱在哪",仪表盘在问之前就答了。
  • ✓留 5-10% 打款作 30 天托管缓冲覆盖拒付和退款 — 立即打 100% 让你自掏腰包补逆转。