首页 / 内容指南 / 当前文章

Stripe Subscription、Invoice、Invoice Item、Line Item、PaymentIntent和Credit Note有什么区别?

发布于 2026-08-26 · deliwaimao.cn 编辑部

Subscription描述客户持续购买什么方案以及何时续费;Invoice是某个账期客户应付金额的账单;Invoice Item是可在账单形成前创建的收费或抵扣组成项;Invoice Line Item是Invoice中最终展示的行,可能来自订阅项目、Invoice Item或按比例调整;PaymentIntent跟踪一次实际收款与认证流程;Credit Note用于对已最终确定的Invoice做正式贷项调整。

本文目录(31 节)

直接答案

Subscription描述客户持续购买什么方案以及何时续费;Invoice是某个账期客户应付金额的账单;Invoice Item是可在账单形成前创建的收费或抵扣组成项;Invoice Line Item是Invoice中最终展示的行,可能来自订阅项目、Invoice Item或按比例调整;PaymentIntent跟踪一次实际收款与认证流程;Credit Note用于对已最终确定的Invoice做正式贷项调整。

修改Subscription不等于某次付款已成功,创建Invoice Item也不等于已经扣款,PaymentIntent succeeded也不应脱离Invoice与订阅状态单独解释。正确集成要按对象生命周期处理,并以Webhook确认最终状态。

一、六类对象快速对比

↔ 表格可左右滑动查看完整内容
对象代表什么何时出现是否直接收款
Subscription持续服务关系与计费周期客户订阅方案时不直接
Invoice某次应收账单首次、续费或单次开票触发或等待收款
Invoice Item待计入账单的收费/抵扣草稿或下一张账单前不直接
Line ItemInvoice中的显示与计算行账单生成时不直接
PaymentIntent一次付款状态机需要自动收款时
Credit Note最终账单的贷项凭证账单确定后调整调整应收或退款关系

这些对象通过ID关联,但各自有独立状态和审计意义。

二、Subscription是什么

Subscription把Customer与一个或多个Price关联,保存账期、数量、试用、折扣、收款方式和取消策略。它描述未来重复计费安排。

它不是某张账单,也不是支付交易。一个Subscription在生命周期中会生成多张Invoice和多个PaymentIntent。

三、Subscription Item是什么

Subscription Item是Subscription中的具体Price与数量组合。一个订阅可包含基础套餐、附加席位或多个计价项。

不要把Subscription Item与Invoice Item混用。前者属于持续计划,后者是账单层面的临时收费或抵扣。

四、Invoice是什么

Invoice是客户在某次计费中应付金额的正式账单对象,可由Subscription周期性生成,也可单独创建。它包含行项目、税费、折扣、余额应用和付款状态。

Invoice拥有draftopenpaiduncollectiblevoid等状态,不能用Subscription状态代替。

五、draft与open有什么区别

Draft Invoice仍可调整行项目和部分字段;finalize之后通常进入open,金额与正式账单身份确定并可等待付款。

自动扣款账单可能在创建后由Stripe延迟最终确定,为Webhook和集成留出处理窗口;首张自动扣款订阅账单又可能立即处理,流程需按官方行为验证。

六、Invoice Item是什么

Invoice Item表示一个可加入Invoice的收费或贷项。指定invoice时,它进入该草稿账单;未指定时,常会等待客户的下一张账单。

它适合补收一次性服务费、合并周期费用或给下一账期添加抵扣,但创建成功不表示客户已付款。

七、负数Invoice Item是什么

负数金额可降低账单应付额,适合在账单最终确定前添加抵扣。是否受折扣和税影响需依据字段配置。

账单已经finalized后,不应尝试通过修改原Invoice Item重写历史,应评估Credit Note。

八、Invoice Line Item是什么

Line Item是Invoice中实际呈现和计算的一行。它可能由Invoice Item支持,也可能来自Subscription Item、用量计费或proration。

因此,读取invoice.lines看到一行,并不保证存在可独立删除的同ID Invoice Item。

九、Invoice Item与Line Item为何有两个ID

它们是不同资源视图:Invoice Item描述可被附到账单的组成对象,Line Item描述该Invoice中的行。API版本还可能改变展开和关联字段表现。

系统应保存明确对象类型与ID,不能把ii_il_字符串当成可互换主键。

十、PaymentIntent是什么

PaymentIntent管理一次支付从创建、需要支付方式、需要客户认证、处理中到成功或失败的状态。自动收款Invoice在需要支付时会关联PaymentIntent。

它解决“钱怎么收”,而Invoice解决“为什么应收这些钱”。

十一、一个Invoice是否总有PaymentIntent

不一定。金额为零、客户余额完全抵扣、低于最小可扣金额、手动标记支付或某些收款流程可能没有普通自动扣款PaymentIntent。

代码不能假设invoice.payment_intent永远存在,应该按Invoice收款方式和状态处理。

十二、Subscription怎样生成Invoice和PaymentIntent

创建或续费Subscription时,Stripe根据Price、数量、折扣、税与proration形成Invoice;需要自动收款时,Invoice再生成或关联PaymentIntent。

支付结果反过来影响Invoice与Subscription状态,但三者不会始终使用相同状态名称。

十三、首次订阅为何是incomplete

采用default_incomplete等支付行为时,首张Invoice需要付款而尚未成功,Subscription可处于incomplete。客户完成3DS或换卡后,PaymentIntent成功、Invoice paid,Subscription才进入active。

若超过规定窗口仍未成功,Subscription可能变为incomplete_expired且Invoice void。

十四、active是否代表所有账单已付

不一定。Stripe官方明确指出,Subscription active不表示所有历史Invoice都已付款。异步支付、重试和配置也会造成状态差异。

授予服务时应结合当前权益和业务政策;财务对账则逐张检查Invoice,不能只看Subscription。

十五、send_invoice与charge_automatically区别

charge_automatically使用保存的支付方式自动尝试付款;send_invoice向客户发送账单并等待其在到期日前支付。

两种collection method影响finalize、发送、到期日和PaymentIntent流程,不能在同一个Webhook处理器里假设都立即扣款。

十六、Proration是什么

账期中途升级、降级或改变数量时,Stripe可计算旧方案未使用部分与新方案剩余部分,形成proration行。它们出现在Invoice Lines中。

Proration行为取决于更新参数和计费模式。正式修改前先用预览接口查看金额,避免直接更改后才发现意外账单。

十七、Invoice Preview有什么用

Preview根据拟议订阅变更计算即将产生的账单,但它不是正式Invoice,也不会收款。适合向用户展示升级差额并做测试断言。

预览与实际执行之间若时间、用量、税率或客户余额变化,最终金额仍可能不同。

十八、Credit Note是什么

Credit Note用于减少已finalized Invoice的应收或记录对已支付账单的贷项。它保留正式调整记录,而不是静默改写原账单。

具体结果可能作用于客户余额、账外金额或退款,取决于Invoice已支付金额和参数。

十九、Credit Note与Refund有什么区别

Refund把已支付资金退回原支付路径;Credit Note是账单层面的贷项凭证。对已支付Invoice调整时,两者可能关联,但概念和对象不同。

只做Refund可能没有完整解释Invoice为什么减少;只做Credit Note也不一定自动把钱退回银行卡。

二十、Void与Credit Note怎样选

Void让未支付的最终账单失效,通常表示不再向客户追收;Credit Note用于保留原Invoice并记录部分或全部贷项。已支付账单不能靠void当作退款。

选择取决于账单状态、会计要求和是否已有实际付款。

二十一、Uncollectible是什么

Mark uncollectible表示账单仍是有效应收,但企业判断无法收回,常用于坏账处理。它与void“账单不再有效”的语义不同。

不要为了关闭失败告警把Invoice随意标为uncollectible,这会影响财务报表。

二十二、客户余额何时参与

Stripe在确定Invoice实际应付金额时可应用Customer Credit Balance。金额被完全覆盖时,Invoice可能不需要新的外部扣款。

账单显示金额、amount_due、amount_paid和amount_remaining应分开记录。

二十三、应该监听哪些Webhook

至少根据业务监听Invoice创建、finalized、paid、payment_failed、payment_action_required、voided,以及Subscription创建、更新和删除事件。具体名称以当前Stripe版本为准。

Webhook可能重复或乱序,处理器必须幂等,并主动获取最新对象确认状态。

二十四、何时授予或暂停服务

首次订阅通常在可靠确认Invoice已付或权益激活后授权。续费失败是否立即暂停,应依据宽限期与重试策略,而不是看到一次PaymentIntent失败就删除账户。

异步支付可能先active后失败,因此高风险服务需设计暂时访问和后续撤销策略。

二十五、对账应该以哪个对象为主

产品套餐和周期以Subscription为主,客户应收与税费以Invoice为主,实际支付状态以PaymentIntent及其支付记录为主,正式贷项以Credit Note为主。

建立内部订单与这些外部ID的一对多映射,避免只保存一个“stripe_id”。

二十六、常见实现错误

常见错误包括创建Invoice Item后宣称付款成功、用active判断所有历史账单、修改已finalized Invoice、把Line Item ID当Invoice Item删除、退款后不处理账单贷项、漏掉3DS状态、根据Webhook到达顺序覆盖新状态,以及未绑定Customer归属造成越权查询。

这些错误都源于把多个状态机压成一个布尔字段。

二十七、上线测试清单

测试免费试用、首付成功、3DS、拒付、异步处理中、续费、升级降级proration、下一账期Invoice Item、零金额账单、部分Credit Note、全额Credit Note、Refund、Void和Uncollectible。

每个场景核对Subscription、Invoice、Line、PaymentIntent和内部权限状态,并重放Webhook验证幂等。

常见问题

1. 创建Invoice Item会立即扣款吗?

不会。它只是账单组成项,需被Invoice包含并按收款流程付款。

2. Subscription active就能确认本月已收款吗?

不能一概而论。应检查对应Invoice和支付状态,特别是异步付款与历史欠款。

3. Invoice Line可以直接删除吗?

要看其来源和Invoice状态。草稿期可能修改支持它的Invoice Item;订阅或proration行需从对应来源处理。

4. 已支付账单金额写错应只做Refund吗?

退款处理资金,Credit Note处理正式账单调整。通常要按财务要求协调两类记录。

5. PaymentIntent succeeded后为何Invoice还没更新?

可能存在事件传播或异步处理。不要本地强改,应获取最新对象并以Webhook幂等更新。

结论

Subscription定义持续关系,Invoice形成具体应收,Invoice Item准备收费或抵扣,Line Item呈现账单明细,PaymentIntent执行收款,Credit Note记录最终账单调整。把这些对象按各自状态机建模,才能正确处理订阅、认证、续费、退款与财务对账。

参考来源

  1. Stripe:How subscriptions work,https://docs.stripe.com/billing/subscriptions/overview
  2. Stripe API Reference:Invoices,https://docs.stripe.com/api/invoices
  3. Stripe API Reference:Invoice Items,https://docs.stripe.com/api/invoiceitems
  4. Stripe:Build a subscriptions integration,https://docs.stripe.com/billing/subscriptions/build-subscriptions
  5. Stripe API Reference:Credit Notes,https://docs.stripe.com/api/credit_notes