BTCPay Server怎么收BTC?建店、发票与对账

 / 
2

BTCPay Server 收 BTC 的核心逻辑是:你不需要把币提到任何第三方账户,买家付的 BTC 直接进入你自己控制的钱包。整个流程围绕三个环节展开:建一个 Store 把收款参数固定下来,生成 Invoice 让买家付款,最后用内置报表和钱包记录完成对账。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

建店:Store 是收款参数的容器

BTCPay Server 的 Store 不是一个"店铺页面",而是把一组收款设置打包在一起的管理单元。一个实例可以创建任意数量的 Store,每个 Store 独立拥有自己的钱包、发票、用户权限和集成配置。

注册完管理员账户后,系统会引导你创建第一个 Store。需要填的核心字段只有两个:Store 名称(自己识别用)和默认计价货币(发票以什么法币单位标价,BTC 金额由系统按汇率折算)。

Store 建好后,关键动作是配置钱包。没有钱包的 Store 无法接收链上付款。BTCPay Server 接受两种方式:导入一个已有的扩展公钥(xPub),或者用内置钱包生成新钱包。导入 xPub 的路径是 Store Settings → Wallet → Setup → Connect an existing wallet → Enter extended public key。如果你用 Wasabi、Sparrow 等外部钱包,把它们生成的 xPub 填进去即可;BTCPay 会基于这个公钥为每张发票派生新的收款地址,私钥始终在你自己的钱包里,BTCPay 碰不到。

一个实际的建议:如果你打算把 BTCPay 当作长期收款工具,用内置钱包会比外接钱包省事。内置钱包和你的全节点直接通信,不会遇到"gap limit"问题——外部轻钱包通常只跟踪 20 个连续未使用地址,而 BTCPay 每张发票都生成新地址,连续 20 张未付款发票之后,外部钱包就可能看不到后续收款了。

发票:买家付什么、付多少、付到哪

在 Store 下进入 Payments → Invoices,点 Create Invoice。需要填的字段:金额、货币、可选的订单 ID 和商品描述。至少保留一个已配置的支付方式(链上或闪电),然后创建。

创建后系统会生成一个 Checkout 页面,买家在上面看到收款地址、二维码和倒计时。链上发票默认 15 分钟过期,这是为了防止 BTC 价格波动导致你实际收到的法币价值偏离报价。

付款状态分三个阶段,不要混淆:

  • Processing(处理中):交易已经出现在区块链或内存池里,BTCPay 检测到了,但还没有达到你设定的确认数。默认策略通常是 1 个确认。
  • Settled(已结算):达到了你设定的确认数。这是可以发货的状态。
  • Expired(已过期):在 15 分钟窗口内没有付满。如果之后收到了付款,状态会带上 Paid Late 标记,但基础状态仍是 Expired,需要你手动判断是否接受。

手动标记要谨慎。你可以把一张发票标记为 Settled,但这不是区块链确认的证明。如果误标了一张实际没有足额到账的发票,后续对账会发现缺口。

对账:两个数据源要分开看

BTCPay Server 的对账有两条线,用途不同。

发票报表(Invoices Export)是给会计和税务用的。进入 Invoices 页面,点 Export → CSV,下载的文件包含每张发票的付款日期、BTC 金额和当时折算的法币价值。这个 CSV 的字段包括订单 ID、商品描述、买家信息(如果你填了的话)和税务相关字段。税务软件(如 CoinTracking)可以直接导入这个格式,自动按收款时的市价计算收入,并追踪后续卖出或花费时的资本利得。

钱包交易(Wallet Transactions)是给资金管理用的。进入 Wallets 页面,这里显示的是链上实际发生的每一笔转入和转出,按日期排序,绿色是收入、红色是支出、灰色是未确认。每笔交易可以点进去看区块浏览器详情,也可以自己加标签和备注。

两个数据源对不上的常见原因:

  • 没有通过发票收到的转账。如果有人直接往你的 Store 钱包地址转了 BTC,但没有走 Invoice 流程,这笔钱会出现在 Wallet 交易里,但不会出现在发票报表里。BTCPay 的发票只追踪由它自己生成的付款请求。
  • 部分付款(Partial Payment)。买家付的金额少于发票要求,发票状态会带 Paid partial 标记。这笔钱在 Wallet 里是实际到账的,但在发票层面可能不会被算作"已结清"。
  • 网络费扣除。BTCPay 默认在发票金额上加一笔"网络成本"(Network Fee),这不是矿工费,而是为了防止买家把一笔付款拆成很多小额输出、增加你未来花费时的成本。买家在 Checkout 页面展开详情可以看到这笔费用。如果你觉得它会引起客户困惑,可以在 Store Settings 里关掉。

对账的完成标准

一张发票从"发出"到"可以忽略"的完整判断链是:Checkout 页面显示 → 买家付款 → 发票状态从 New 变为 Processing → 达到确认数后变为 Settled → 该发票的金额和订单 ID 能在 Wallet 交易或 CSV 报表中找到对应记录。走完这条链,这笔收款就算闭环了。如果发票停在 Expired 或带异常标记,需要回到发票详情页确认底层付款的实际情况,再决定是标记、退款还是放弃。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

参考资料