mcpField
P
payout-split-management

payout-split-management

github.com/finsilabs其他6092 次安装5 天前更新
代码仓库

关于 payout-split-management

面向运营多卖家的电商平台开发者与运营者,介绍如何设计卖家分账、佣金、预留金和定期打款流程。内容涵盖 Stripe Connect 及 Shopify、WooCommerce、BigCommerce 和定制平台的配置与合规注意事项。

主要功能

  1. 01规划多平台分账架构
  2. 02配置 Stripe Connect 卖家账户
  3. 03设置佣金与打款周期
  4. 04管理滚动预留金与退款风险
  5. 05跟踪卖家收入及 1099-K

适用场景

  1. 01为独立卖家搭建自动打款流程
  2. 02按比例或固定金额收取平台佣金
  3. 03为新卖家设置退款预留金
  4. 04准备卖家 1099-K 申报数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill payout-split-management

安装后在 Claude Code 中输入/payout-split-management确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

tile.json
evals/1099-k-tax-reporting-and-rolling-reserve/
criteria.json
task.md
evals/order-earnings-calculation-with-deductio/
criteria.json
task.md
evals/stripe-connect-disbursement-processor/
criteria.json
task.md

详细介绍

分账管理

概述

市场平台或多卖家平台必须将每笔付款拆分给平台(佣金)和一个或多个卖家(净结算款),在需要时预扣税款,管理用于退款保障的滚动准备金,并按计划拨付资金。Stripe Connect 是处理这类事务的行业标准方案——它会依法将资金转入关联卖家账户,处理税款预扣和 1099 申报,并消除将卖家资金存放在汇总银行账户中所带来的合规风险。

对于以多供应商市场形式运营的 Shopify、WooCommerce 和 BigCommerce 商店,专用市场应用(例如 WooCommerce 的 Dokan)会在 Stripe Connect 之上处理分账逻辑。

何时使用此技能

  • 构建有独立卖家且需要向其拨付收入的市场平台时
  • 平台需要按交易收取百分比佣金或固定佣金时
  • 需要遵守 IRS 对卖家的 1099-K 申报要求时
  • 管理高风险或新卖家的滚动准备金时
  • 卖家要求加快拨款速度(每日/每周,而非每月)时

核心说明

步骤 1:选择合适的市场平台和拨款架构
平台推荐方案说明
ShopifyShopify Marketplace Kit + Stripe Connect,或 Multi-Vendor Marketplace 应用Shopify 原生不支持多卖家拨款;市场应用负责处理卖家账户和分账
WooCommerceDokan Multivendor Marketplace 或 WCFM Marketplace + Stripe ConnectDokan 是使用最广泛的 WooCommerce 市场插件;原生集成 Stripe Connect,支持分账
BigCommerceMulti-Seller Marketplace 应用 + Stripe ConnectBigCommerce App Marketplace 上的第三方市场应用
自定义/无头架构Stripe Connect(Express 或 Custom 账户)构建完整的分账逻辑;Stripe 负责合规、税务表单和资金路由
步骤 2:设置 Stripe Connect 以向卖家拨款

如果你希望自动将资金转给卖家(而非将所有款项收至自己的账户后再手动转账),就需要使用 Stripe Connect。

选择合适的 Connect 账户类型:

  • Express 账户:卖家通过 Stripe 托管的表单完成入驻;Stripe 负责身份验证(KYC);最适合大多数市场平台
  • Custom 账户:你可完全控制入驻体验;配置更复杂;适用于有特定体验要求的平台
  • Standard 账户:卖家关联已有的 Stripe 账户;他们会在 Stripe 控制面板中看到你的平台

对于大多数市场平台,Express 账户是合适的选择。

在 Stripe 控制面板中设置 Stripe Connect:

  1. 前往 Stripe Dashboard → Connect → Overview 并配置平台
  2. 在 Connect → Settings → Account types 下启用 Express 账户
  3. 配置平台品牌信息(名称、徽标、颜色),用于托管的入驻流程
  4. 在平台设置中配置佣金结构(而不是在 Stripe 中配置——Stripe 会根据你为每笔交易指定的金额路由资金)

WooCommerce(Dokan)
  1. 安装 Dokan Multivendor Marketplace(免费基础版 + 来自 dokan.wedevs.com 的付费扩展)
  2. 前往 Dokan → Settings → Selling Options 并配置:
    • 佣金类型:百分比(例如,每笔销售额的 15% 归平台所有)、固定费用或组合方式
    • 佣金费率:作为市场平台保留的百分比或固定金额
  3. 前往 Dokan → Settings → Withdrawal 并配置付款计划(每周、每两周、每月)和最低提现金额
  4. 启用 Stripe Connect:前往 Dokan → Settings → Payment → Stripe Connect 并输入 Stripe Connect 平台密钥
  5. 卖家前往其供应商控制面板,点击 Payment Settings → Connect with Stripe,连接其 Stripe 账户
  6. 下单后,Dokan 会自动拆分付款:卖家的份额会转入其已连接的 Stripe 账户,佣金则留在平台的 Stripe 余额中

使用 Dokan 进行 1099 申报: Dokan 会跟踪每位卖家的累计付款。前往 Dokan → Reports → Vendor Wise Sales 导出供应商收入报告,用于准备 1099 申报。要自动生成 1099 表单,请使用 TaxBandits 或 Track1099——导入 Dokan 导出文件并生成符合 IRS 要求的 1099-K 表单。

Shopify(Multi-Vendor Marketplace app)
  1. 从 Shopify App Store 安装 Multi-Vendor Marketplace 或 Marketplace Kit(由多个供应商提供)
  2. 在应用的供应商设置中配置供应商佣金费率
  3. 在应用的付款设置中连接 Stripe Connect,以便进行付款
  4. 供应商通过托管表单完成注册,并可在供应商门户中查看收入和申请付款
BigCommerce
  1. 从 BigCommerce App Marketplace 安装多卖家市场应用
  2. 在应用设置中配置佣金费率和付款计划
  3. 连接 Stripe Connect,以自动分配资金

自定义 / 无头架构

对于自定义市场平台构建,请使用 Stripe Connect 实现完整的拆分付款架构:

卖家注册(Express 账户):

// Create an Express Connect account for a new seller
const account = await stripe.accounts.create({
  type: 'express',
  country: 'US',
  email: sellerEmail,
  capabilities: { transfers: { requested: true } },
  metadata: { seller_id: sellerId },
});

// Generate onboarding link — redirect seller to complete Stripe's KYC form
const accountLink = await stripe.accountLinks.create({
  account: account.id,
  refresh_url: `${process.env.PLATFORM_URL}/sellers/onboarding/retry`,
  return_url: `${process.env.PLATFORM_URL}/sellers/onboarding/complete`,
  type: 'account_onboarding',
});

// Save account.id to your database and redirect seller to accountLink.url
await db.sellers.update({ where: { id: sellerId }, data: { stripeAccountId: account.id } });

在结账时拆分付款(目标扣款模式):

// Create a payment intent that automatically routes commission to your platform
// and the seller's share to their connected account
const paymentIntent = await stripe.paymentIntents.create({
  amount: orderTotalCents,
  currency: 'usd',
  payment_method_types: ['card'],
  application_fee_amount: Math.round(orderTotalCents * commissionRate), // Platform commission
  transfer_data: {
    destination: seller.stripeAccountId, // Seller's Connect account
  },
  metadata: { order_id: orderId, seller_id: sellerId },
});

滚动准备金(预留一定比例以保障退款):

// Instead of immediate transfer, create a manual transfer on a delay
const transfer = await stripe.transfers.create({
  amount: Math.round(sellerNetEarningsCents * (1 - ROLLING_RESERVE_RATE)), // 95% transferred now
  currency: 'usd',
  destination: seller.stripeAccountId,
  transfer_group: `order_${orderId}`,
  metadata: { order_id: orderId, reserve_amount: Math.round(sellerNetEarningsCents * ROLLING_RESERVE_RATE) },
});

// Schedule the reserve release 90 days later via a cron job or job queue
await reserveQueue.add('release-reserve', {
  sellerId: seller.id,
  orderId,
  reserveAmount: Math.round(sellerNetEarningsCents * ROLLING_RESERVE_RATE),
}, { delay: 90 * 24 * 60 * 60 * 1000 });

1099-K 跟踪:

实时跟踪每位卖家的交易总额。对于 2024 年及以后,IRS 规定的 1099-K 门槛为 600 美元。

// Update seller YTD earnings after each order
await db.sellers.update({
  where: { id: sellerId },
  data: { ytdGrossVolume: { increment: orderSubtotal }, ytdTransactions: { increment: 1 } },
});

// Alert when approaching $600 threshold — request W-9 before first payout
const seller = await db.sellers.findUnique({ where: { id: sellerId } });
if (seller.ytdGrossVolume >= 400 && !seller.w9Collected) {
  await sendW9RequestEmail(seller);
}

要生成 1099 表单,请使用 TaxBandits API 或 Track1099 API,而不要从头开始构建 IRS 表单生成流程。

第 3 步:配置付款计划和卖家门户

Stripe Connect 付款计划: 在 Stripe Dashboard 中前往 Connect → Settings → Payouts,配置已连接账户的默认付款计划(每天、每周或每月)。卖家账户可在你的平台设置中申请更改付款计划。

卖家收入控制面板: 卖家需要查看其收入、待付款项和准备金。请构建或使用预先构建的门户:

  • Dokan/WCFM:包含供应商控制面板,可查看收入、申请付款和查看付款历史记录
  • 自定义:使用 Stripe Connect Account Balance API,实时向卖家显示其可用余额

最佳实践

  • 使用 Stripe Connect Express 或 Custom 账户 — 切勿将卖家资金存放在资金池银行账户中;使用 Stripe Connect,确保资金在转账前依法归平台所有
  • 在首次付款前收集 W-9 — 如果没有 W-9,必须按 IRS 规定预扣 24% 的备用税款;将收集 W-9 纳入卖家入驻流程
  • 在订单扣款时计算收入,而非付款时 — 收入记录应不可变,并关联到具体订单;付款是单独的汇总步骤
  • 为新卖家设置滚动准备金 — 扣留 5–10% 的款项 90 天,以防退款和拒付;到期后按计划自动释放
  • 将佣金率保存为快照 — 佣金率会随时间变化;切勿使用当前费率重新计算历史收入;应记录每笔销售发生时的费率

常见问题

问题解决方案
Stripe Connect 转账失败但没有任何提示监听 transfer.failed webhook,并立即通知卖家和运营团队
滚动准备金到期后未释放构建每日 cron 作业,检查释放日期;在预发布环境中使用较短的准备金期限进行测试
1099-K 总额与卖家记录不符1099-K 必须报告扣除平台费用前的支付总额;使用订单总金额,而非卖家净收入
未向没有 W-9 的卖家预扣备用税款如果入驻时未收集 W-9,则在数据库中设置标记;在收到 W-9 前,对该卖家的所有付款预扣 24%
某个周期的退款金额超过销售额,导致付款金额为负将负余额结转至下一个付款周期;切勿要求从卖家的银行账户追回款项
Dokan 佣金拆分不正确确认佣金率设置在供应商级别(而不只是全局默认值);在 Dokan → Logs 下查看 Dokan 日志,检查转账错误

相关技能

  • @stripe-integration
  • @payment-reconciliation-automation
  • @accounts-receivable-automation
  • @tax-compliance-automation
  • @invoice-generation-automation

评论

支持 Markdown