> ## 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.

# Đăng ký

> Payload được gửi đến endpoint webhook của bạn khi một đăng ký được tạo, cập nhật hoặc thay đổi trạng thái.

## Sự kiện Webhook Đăng Ký

Các sự kiện webhook sau đây có sẵn để theo dõi các thay đổi trong vòng đời đăng ký:

| Event                       | Description                                                                        |
| --------------------------- | ---------------------------------------------------------------------------------- |
| `subscription.active`       | Đăng ký được kích hoạt thành công                                                  |
| `subscription.updated`      | Đối tượng đăng ký đã được cập nhật (mọi thay đổi trường đều kích hoạt sự kiện này) |
| `subscription.on_hold`      | Đăng ký bị tạm ngưng do gia hạn thất bại                                           |
| `subscription.renewed`      | Đăng ký được gia hạn cho kỳ thanh toán tiếp theo                                   |
| `subscription.plan_changed` | Kế hoạch đăng ký đã được nâng cấp, giảm cấp hoặc chỉnh sửa                         |
| `subscription.cancelled`    | Đăng ký bị hủy                                                                     |
| `subscription.failed`       | Tạo đăng ký thất bại trong quá trình tạo ủy quyền                                  |
| `subscription.expired`      | Đăng ký đã hết hạn                                                                 |

### Sử dụng `subscription.updated` để đồng bộ thời gian thực

Webhook `subscription.updated` được kích hoạt mỗi khi bất kỳ trường đăng ký nào thay đổi, cho phép bạn giữ trạng thái ứng dụng đồng bộ mà không cần dò hỏi:

```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>
  Đăng ký `subscription.updated` để nhận thông báo thời gian thực về bất kỳ thay đổi đăng ký nào, loại bỏ việc phải truy vấn API để cập nhật.
</Tip>

## Lược Đồ Payload Webhook
