如何将Stripe Subscription的账单周期日期设置为每月1日?
Stripe订阅固定每月1日出账操作方法
1 新建订阅时设置
- 核心是指定
billing_cycle_anchor参数为你首次要锚定的当月1日对应零点的Unix时间戳,同时搭配proration_behavior参数设置首月按天折算费用的规则即可,设置完成后Stripe会自动按锚定日期循环出账,无需额外配置。 - Node.js侧代码示例:
const subscription = await stripe.subscriptions.create({ customer: 'cus_你的用户ID', items: [{ price: 'price_你的订阅商品ID' }], // 示例值为2024年6月1日0点UTC时间戳,需要根据你实际需要的首次出账月换算对应时间戳 billing_cycle_anchor: 1717209600, // 首月费用按实际使用天数折算,若不需要折算直接收全额可改为'none' proration_behavior: 'create_prorations', });
- 后台手动新建操作:在创建订阅的表单页面找到「账单周期锚点」选项,手动选择为下一个1日,保存即可。
2 修改已有订阅的出账日期为每月1日
- 需要更新订阅的
billing_cycle_anchor参数,同时配置proration规则避免产生不必要的折算账单。 - Node.js侧代码示例:
const subscription = await stripe.subscriptions.update( 'sub_你的订阅ID', { billing_cycle_anchor: 1717209600, proration_behavior: 'none', payment_behavior: 'default_incomplete', expand: ['latest_invoice.payment_intent'], } );
- 后台手动修改操作:进入对应订阅的详情页,点击「编辑」按钮,找到账单周期设置项,修改锚定日期为下一个月的1日,保存后生效。
注意事项
billing_cycle_anchor使用的是UTC时间,如果你需要按北京时间的每月1日出账,记得把时间换算成UTC对应时间戳,比如北京时间1日0点对应UTC前一天的16点,调整锚点时间时要对应换算。- 如果设置锚点时当前日期已经过了当月1日,锚点会自动跳到下一个月的1日,首月费用按你配置的proration规则计算。
内容的提问来源于stack exchange,提问作者Deepak_iise
相关产品推荐
相关产品推荐

