> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 订阅

> 当订阅被创建、更新或状态发生变化时，发送到您的 webhook 端点的有效负载。

## 订阅 Webhook 事件

以下 webhook 事件可用于跟踪订阅生命周期的变化：

| 事件                          | 描述                     |
| --------------------------- | ---------------------- |
| `subscription.active`       | 订阅成功激活                 |
| `subscription.updated`      | 订阅对象已更新（任何字段更改都会触发此事件） |
| `subscription.on_hold`      | 由于续订失败，订阅被暂停           |
| `subscription.renewed`      | 订阅续订至下一个计费周期           |
| `subscription.plan_changed` | 订阅计划已升级、降级或修改          |
| `subscription.cancelled`    | 订阅已取消                  |
| `subscription.failed`       | 在创建授权时订阅创建失败           |
| `subscription.expired`      | 订阅已到期                  |

### 使用 `subscription.updated` 进行实时同步

当任何订阅字段发生更改时，`subscription.updated` webhook 会触发，从而使您无需轮询即可保持应用程序状态同步：

```javascript theme={null}
app.post('/webhooks/dodo', async (req, res) => {
  const event = req.body;
  
  if (event.type === 'subscription.updated') {
    const subscription = event.data;
    
    // Sync subscription changes to your database
    await syncSubscription(subscription.subscription_id, {
      status: subscription.status,
      next_billing_date: subscription.next_billing_date,
      metadata: subscription.metadata,
      // ... other fields you want to track
    });
    
    console.log(`Subscription ${subscription.subscription_id} updated`);
  }
  
  res.json({ received: true });
});
```

<Tip>
  订阅 `subscription.updated` 以获取有关任何订阅更改的实时通知，从而无需轮询 API 以获取更新。
</Tip>

## Webhook 有效负载架构
