订阅结账时能否为Stripe发票设置自定义页脚值?
解决Stripe订阅发票页脚自定义问题
方案1:设置账户级默认发票页脚
如果所有订阅的发票都需要统一页脚文本,直接在Stripe仪表盘的「设置」>「发票设置」里配置「发票页脚」,之后所有订阅生成的发票都会自动带上这个文本,无需在API额外设置。
方案2:用订阅元数据+Webhook动态修改
如果要给特定订阅设置专属页脚:
- 创建结账会话时,把自定义页脚存到
subscription_data.metadata里:
const session = await stripe.checkout.sessions.create({ mode: 'subscription', payment_method_types: ['card'], line_items: [{ /* 你的订阅商品配置 */ }], subscription_data: { metadata: { custom_invoice_footer: '这里是你的专属页脚文本' } } });
- 监听
invoice.createdWebhook事件——此时发票还处于草稿状态,还未定稿,可通过API更新footer字段:
// Webhook事件处理示例 if (event.type === 'invoice.created') { const invoice = event.data.object; const subscription = await stripe.subscriptions.retrieve(invoice.subscription); if (subscription.metadata.custom_invoice_footer) { await stripe.invoices.update(invoice.id, { footer: subscription.metadata.custom_invoice_footer }); } }
注意:一旦触发
invoice.finalized事件,发票就会定稿,无法再修改页脚。
方案3:直接在订阅创建时指定页脚(隐藏API字段)
其实Stripe的subscription_data.invoice_settings支持footer字段,只是公开文档未完全展示。你可以直接在创建结账会话时传入:
const session = await stripe.checkout.sessions.create({ mode: 'subscription', payment_method_types: ['card'], line_items: [{ /* 你的订阅商品配置 */ }], subscription_data: { invoice_settings: { issuer: { /* 你的issuer配置 */ }, footer: '自定义页脚文本' } } });
这个字段是有效的,后续该订阅生成的所有发票都会自动使用这个页脚内容。
内容的提问来源于stack exchange,提问作者user16530561
相关产品推荐
相关产品推荐

