如何通过Stripe API删除关联账户中创建的订阅?
嘿,针对你这个关联账户删除订阅的需求,我给你整理了具体的操作方法,核心就是要明确告诉Stripe API你要操作的是哪个关联账户,不然默认会走主账户的上下文,肯定找不到对应的订阅~
关联账户删除订阅的具体操作步骤
1. 准备必要信息
首先得把两个关键信息备齐:
- 目标订阅ID:就是你提到的
subscription ID,格式一般是sub_xxxxxxx - 关联账户ID:格式为
acct_xxxxxxx,可以在Stripe后台的「关联账户」列表里找到这个ID
2. 调用Stripe API执行删除
Stripe的订阅删除接口是DELETE /v1/subscriptions/{SUBSCRIPTION_ID},重点是要在请求里指定关联账户。下面是几种常用语言的SDK示例,你可以按需参考:
Python SDK示例
import stripe # 填写你的主账户Secret Key stripe.api_key = "sk_live_xxxxxxxxxxxxxx" # 执行删除操作,指定关联账户ID stripe.Subscription.delete( "sub_xxxxxxx", # 替换为你的目标订阅ID stripe_account="acct_xxxxxxx" # 替换为关联账户ID )
Node.js SDK示例
const stripe = require('stripe')('sk_live_xxxxxxxxxxxxxx'); stripe.subscriptions.del( 'sub_xxxxxxx', // 目标订阅ID { stripe_account: 'acct_xxxxxxx' // 关联账户ID } );
cURL直接调用示例
如果不用SDK,直接用cURL请求:
curl -X DELETE https://api.stripe.com/v1/subscriptions/sub_xxxxxxx \ -u sk_live_xxxxxxxxxxxxxx: \ -H "Stripe-Account: acct_xxxxxxx"
3. 验证操作结果
调用成功后,Stripe会返回已删除的订阅对象,其中status字段会变为canceled。你也可以直接去关联账户的Stripe后台(或通过主账户查看关联账户的订阅列表)确认订阅已被移除。
几个重要注意事项
- 必须指定
stripe_account参数:如果订阅是在关联账户下创建的,不指定这个参数的话,API会默认在主账户里查找订阅ID,大概率会返回「找不到订阅」的错误。 - 权限检查:确保你的主账户Secret Key拥有
subscriptions:delete的权限(主账户默认对关联账户具备该权限,除非手动修改过权限配置)。 - 订阅删除后的影响:订阅取消后用户不会再被收费,但已生成的有效发票不会被取消,仍需正常结算。
内容的提问来源于stack exchange,提问作者Deepa
相关产品推荐
相关产品推荐

