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

# Mô Hình Thanh Toán Lai

> Kết hợp nhiều chế độ thanh toán để tạo ra các chiến lược định giá tinh vi: đăng ký + sử dụng, ghế + bổ sung, cơ sở + vượt mức, và nhiều hơn nữa.

<Info>
  Thanh toán lai kết hợp hai hoặc nhiều mô hình thanh toán thành một chiến lược định giá duy nhất. Điều này cho phép bạn thu hút giá trị từ các chiều khác nhau—phí định kỳ, sử dụng, ghế và tính năng—trong khi mang lại cho khách hàng sự linh hoạt và dự đoán.
</Info>

<CardGroup cols={2}>
  <Card title="Thanh Toán Dựa Trên Sử Dụng" icon="chart-line" href="/features/usage-based-billing/introduction">
    Nền tảng cho định giá dựa trên tiêu thụ.
  </Card>

  <Card title="Đăng Ký" icon="repeat" href="/features/subscription">
    Nền tảng cho thanh toán định kỳ.
  </Card>

  <Card title="Bổ Sung" icon="puzzle" href="/features/addons">
    Mở rộng đăng ký với các nâng cấp tùy chọn.
  </Card>

  <Card title="Thanh Toán Dựa Trên Ghế" icon="users" href="/features/seat-based-billing">
    Mô hình định giá theo người dùng.
  </Card>
</CardGroup>

***

## Thanh Toán Lai Là Gì?

Thanh toán lai kết hợp nhiều chiều định giá thành một sản phẩm duy nhất. Thay vì chọn giữa đăng ký theo mức cố định HOẶC định giá dựa trên sử dụng, bạn sử dụng cả hai cùng nhau.

### Tại Sao Nên Sử Dụng Thanh Toán Lai?

| Mục Tiêu Kinh Doanh                          | Giải Pháp Lai                                 |
| -------------------------------------------- | --------------------------------------------- |
| Doanh thu dự đoán + tiềm năng tăng trưởng    | Đăng ký cơ bản + phí sử dụng vượt mức         |
| Định giá theo nhóm có thể mở rộng            | Theo ghế + bổ sung tính năng                  |
| Đạt được khách hàng, mở rộng sau             | Phí cơ bản thấp + phí tiêu thụ                |
| Linh hoạt cho doanh nghiệp                   | Chi tiêu cam kết + phí theo yêu cầu           |
| Định giá công bằng cho việc sử dụng biến đổi | Khoản cho phép bao gồm + trả theo mức sử dụng |

### Các Mô Hình Lai Thông Dụng

| Mô Hình                                   | Mô Tả                                               | Ví Dụ                                                                 | Hỗ Trợ Bản Địa        |
| ----------------------------------------- | --------------------------------------------------- | --------------------------------------------------------------------- | --------------------- |
| **1. Đăng Ký + Sử Dụng**                  | Phí cơ bản + phí tiêu thụ                           | \$49/tháng + \$0.01/cuộc gọi API sau 10K miễn phí                     | ✅ Toàn bộ             |
| **2. Đăng Ký + Ghế**                      | Phí nền tảng + phí theo người dùng                  | \$99/tháng + \$15/ghế                                                 | ✅ Toàn bộ             |
| **3. Đăng Ký + Bổ Sung Tính Năng**        | Kế hoạch cốt lõi + nâng cấp tùy chọn                | \$29/tháng + \$19/tháng phân tích + \$9/tháng truy cập API            | ✅ Toàn bộ             |
| **4. Ghế + Sử Dụng**                      | Phí theo người dùng + phí tiêu thụ vượt mức         | \$10/người/tháng + \$0.05/GB sau 5GB/người                            | ⚠️ Giải pháp thay thế |
| **5. Đăng Ký + Ghế + Sử Dụng**            | Nền tảng + người dùng + tiêu thụ (lai ba)           | \$199/tháng + \$20/ghế + phí tiêu thụ vượt mức                        | ⚠️ Giải pháp thay thế |
| **6. Cơ Sở Tầng + Phí Tiêu Thụ Vượt Mức** | Các tầng khác nhau với các khoản cho phép khác nhau | Khởi đầu (5K cuộc gọi) so với Chuyên nghiệp (50K cuộc gọi) + vượt mức | ✅ Toàn bộ             |
| **7. Đăng Ký + Phí Theo Yêu Cầu**         | Phí định kỳ + phí thủ công biến đổi                 | \$99/tháng giữ chỗ + tính phí theo giờ cho công việc                  | ✅ Toàn bộ             |

***

## Mô Hình Lai 1: Đăng Ký + Sử Dụng

Mô hình lai phổ biến nhất. Khách hàng trả một khoản phí đăng ký cơ bản cộng với các khoản phí cho tiêu thụ vượt quá các khoản cho phép bao gồm.

### Cách Thức Hoạt Động

**Kế Hoạch Chuyên Nghiệp: 49 đô la/tháng**

* **Bao gồm**: 10,000 cuộc gọi API/tháng
* **Vượt mức**: 0.005 đô la mỗi cuộc gọi sau 10,000

**Tính toán ví dụ** (khách hàng sử dụng 25,000 cuộc gọi trong tháng này):

* Đăng ký cơ bản: 49.00 đô la
* Vượt mức: (25,000 - 10,000) × 0.005 đô la = 75.00 đô la
* **Tổng: 124.00 đô la**

### Trường Hợp Sử Dụng

* **Nền tảng API**: Truy cập cơ bản + phí theo yêu cầu
* **Dịch vụ AI/ML**: Đăng ký + sử dụng token/generation
* **Dịch vụ lưu trữ**: Kế hoạch cơ bản + phí vượt mức theo GB
* **Nền tảng giao tiếp**: Cơ sở + phí theo tin nhắn/phút

### Triển Khai

<Steps>
  <Step title="Tạo Đồng Hồ Sử Dụng">
    Thiết lập một đồng hồ để theo dõi chiều sử dụng có thể tính phí.

    ```bash theme={null}
    Dashboard: Meters → Create Meter
    Event Name: "api.call"
    Aggregation: Count
    This tracks API calls per customer
    ```
  </Step>

  <Step title="Tạo Sản Phẩm Đăng Ký với Định Giá Sử Dụng">
    Tạo một sản phẩm đăng ký và gắn đồng hồ sử dụng với định giá.

    ```bash theme={null}
    Dashboard: Create Product → Subscription
    Name: "Pro Plan"
    Base Price: $49/month

    Then attach usage pricing:
    - Meter: api.call
    - Price per unit: $0.005
    - Free threshold: 10,000 (included in subscription)
    ```

    <Info>
      Đồng hồ sử dụng được gắn trực tiếp vào sản phẩm đăng ký. Các khoản phí sử dụng được tính toán và thêm vào hóa đơn đăng ký tự động.
    </Info>
  </Step>

  <Step title="Tạo Phiên Thanh Toán">
    Tạo một phiên thanh toán với sản phẩm đăng ký của bạn.

    ```typescript theme={null}
    const session = await client.checkoutSessions.create({
      product_cart: [
        { product_id: 'prod_pro_plan', quantity: 1 }
      ],
      customer: { email: 'customer@example.com' },
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Step>

  <Step title="Gửi Sự Kiện Sử Dụng">
    Theo dõi việc sử dụng trong suốt thời gian thanh toán.

    ```typescript theme={null}
    await fetch('https://test.dodopayments.com/events/ingest', {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        events: [{
          event_id: `call_${Date.now()}`,
          customer_id: 'cus_123',
          event_name: 'api.call',
          timestamp: new Date().toISOString(),
          metadata: { endpoint: '/v1/generate' }
        }]
      })
    });
    ```
  </Step>
</Steps>

### Biến Thể Định Giá

<Tabs>
  <Tab title="Khoản Cho Phép Bao Gồm">
    Ngưỡng miễn phí bao gồm việc sử dụng được bao gồm trong đăng ký cơ bản.

    **Kế Hoạch Chuyên Nghiệp: 49 đô la/tháng**

    * Bao gồm: 10,000 cuộc gọi API
    * Vượt mức: 0.005 đô la/cuộc gọi sau 10,000
    * Khách hàng sử dụng 8,000 → Trả 49 đô la (không vượt mức)
  </Tab>

  <Tab title="Cơ Sở Không + Chỉ Sử Dụng">
    Không có phí cơ bản, mỗi đơn vị đều có thể tính phí từ lần sử dụng đầu tiên.

    **Trả Theo Mức Sử Dụng: 0 đô la/tháng cơ bản**

    * Bao gồm: 0 cuộc gọi API
    * Sử dụng: 0.01 đô la/cuộc gọi từ cuộc gọi đầu tiên
    * Khách hàng sử dụng 5,000 → Trả 50 đô la
  </Tab>

  <Tab title="Khoản Cho Phép Tầng">
    Các tầng khác nhau bao gồm các khoản cho phép khác nhau.

    * **Khởi đầu**: 19 đô la/tháng (1,000 cuộc gọi bao gồm)
    * **Chuyên nghiệp**: 49 đô la/tháng (10,000 cuộc gọi bao gồm)
    * **Doanh nghiệp**: 199 đô la/tháng (100,000 cuộc gọi bao gồm)
    * Tất cả các tầng: 0.005 đô la/cuộc gọi vượt mức
  </Tab>
</Tabs>

***

## Mô Hình Lai 2: Đăng Ký + Ghế

Phí nền tảng cộng với phí theo người dùng. Lý tưởng cho các công cụ hợp tác nhóm và B2B SaaS.

### Cách Thức Hoạt Động

**Kế Hoạch Nhóm: 99 đô la/tháng + 15 đô la/ghế**

* **Phí nền tảng cơ bản**: 99 đô la/tháng (bao gồm 3 ghế)
* **Ghế bổ sung**: 15 đô la/ghế/tháng

**Tính toán ví dụ** (nhóm 12 người dùng):

* Phí nền tảng: 99.00 đô la
* Ghế bổ sung: (12 - 3) × 15 đô la = 135.00 đô la
* **Tổng: 234.00 đô la/tháng**

### Trường Hợp Sử Dụng

* **Công cụ hợp tác**: Phí không gian làm việc + theo thành viên
* **Hệ thống CRM**: Giấy phép nền tảng + theo đại diện bán hàng
* **Quản lý dự án**: Kế hoạch nhóm + theo người đóng góp
* **Công cụ phát triển**: Phí tổ chức + theo nhà phát triển

### Triển Khai

<Steps>
  <Step title="Tạo Bổ Sung Ghế">
    Tạo một bổ sung cho các ghế bổ sung.

    ```bash theme={null}
    Dashboard: Products → Add-ons → Create Add-on
    Name: "Additional Seat"
    Price: $15/month
    Description: "Add another team member"
    ```
  </Step>

  <Step title="Tạo Đăng Ký Cơ Bản">
    Tạo sản phẩm đăng ký với phí nền tảng và gắn bổ sung.

    ```bash theme={null}
    Dashboard: Create Product → Subscription
    Name: "Team Plan"
    Price: $99/month
    Description: "Includes 3 team members"

    Then in Add-ons section:
    - Attach: "Additional Seat" add-on
    ```
  </Step>

  <Step title="Tạo Thanh Toán với Ghế">
    Chỉ định số lượng ghế trong quá trình thanh toán.

    ```typescript theme={null}
    const session = await client.checkoutSessions.create({
      product_cart: [{
        product_id: 'prod_team_plan',
        quantity: 1,
        addons: [{
          addon_id: 'addon_seat',
          quantity: 9  // 9 extra seats (12 total with 3 included)
        }]
      }],
      customer: { email: 'admin@company.com' },
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Step>

  <Step title="Điều Chỉnh Ghế Khi Cần Thiết">
    Thêm hoặc xóa ghế trên các đăng ký hiện có.

    ```typescript theme={null}
    // Add 5 more seats
    await client.subscriptions.changePlan('sub_123', {
      product_id: 'prod_team_plan',
      quantity: 1,
      proration_billing_mode: 'prorated_immediately',
      addons: [{
        addon_id: 'addon_seat',
        quantity: 14  // New total: 14 extra seats
      }]
    });
    ```
  </Step>
</Steps>

### Biến Thể Định Giá

<Tabs>
  <Tab title="Ghế Bao Gồm">
    Kế hoạch cơ bản bao gồm một số ghế, tính phí cho các ghế bổ sung.

    **Kế Hoạch Nhóm: 99 đô la/tháng**

    * Bao gồm: 5 ghế
    * Ghế bổ sung: 15 đô la/ghế/tháng
    * 20 người dùng = \$99 + (15 × \$15) = \$324/tháng
  </Tab>

  <Tab title="Chỉ Theo Ghế">
    Không có phí nền tảng, chỉ có phí theo người dùng.

    **Theo Người Dùng: 25 đô la/người/tháng**

    * Không có phí nền tảng
    * 5 người dùng = 125 đô la/tháng
    * 50 người dùng = 1,250 đô la/tháng

    Triển khai: Đặt giá đăng ký cơ bản là 0 đô la, chỉ sử dụng bổ sung ghế.
  </Tab>

  <Tab title="Theo Ghế Tầng">
    Giá theo ghế giảm ở các tầng cao hơn.

    * **Khởi đầu**: 20 đô la/ghế (1-10 ghế)
    * **Tăng trưởng**: 15 đô la/ghế (11-50 ghế)
    * **Doanh nghiệp**: 10 đô la/ghế (51+ ghế)

    Triển khai: Tạo các sản phẩm đăng ký riêng cho mỗi tầng với các mức giá bổ sung khác nhau.
  </Tab>
</Tabs>

***

## Mô Hình Lai 3: Đăng Ký + Bổ Sung Tính Năng

Đăng ký cốt lõi với các nâng cấp tính năng tùy chọn mà khách hàng có thể thêm vào.

### Cách Thức Hoạt Động

**Kế Hoạch Cốt Lõi: 29 đô la/tháng**

**Bổ Sung Tùy Chọn:**

* Phân Tích Nâng Cao: +19 đô la/tháng
* Truy Cập API: +9 đô la/tháng
* Hỗ Trợ Ưu Tiên: +29 đô la/tháng
* Nhãn Trắng: +49 đô la/tháng

**Tính toán ví dụ** (khách hàng chọn Cốt Lõi + Phân Tích + Truy Cập API):

* Kế hoạch cốt lõi: 29.00 đô la
* Phân Tích: 19.00 đô la
* Truy Cập API: 9.00 đô la
* **Tổng: 57.00 đô la/tháng**

### Trường Hợp Sử Dụng

* **Nền tảng SaaS**: Tính năng cốt lõi + mô-đun cao cấp
* **Công cụ tiếp thị**: Công cụ cơ bản + tích hợp
* **Sản phẩm phân tích**: Bảng điều khiển + báo cáo nâng cao
* **Phần mềm bảo mật**: Bảo vệ cơ bản + tính năng nâng cao

### Triển Khai

<Steps>
  <Step title="Tạo Bổ Sung Tính Năng">
    Tạo một bổ sung cho mỗi tính năng tùy chọn.

    ```bash theme={null}
    # Add-on 1: Advanced Analytics
    Dashboard: Products → Add-ons → Create Add-on
    Name: "Advanced Analytics"
    Price: $19/month

    # Add-on 2: API Access
    Name: "API Access"
    Price: $9/month

    # Add-on 3: Priority Support
    Name: "Priority Support"
    Price: $29/month

    # Add-on 4: White-label
    Name: "White-label"
    Price: $49/month
    ```
  </Step>

  <Step title="Tạo Đăng Ký Cốt Lõi">
    Định nghĩa đăng ký cơ bản của bạn và gắn tất cả các bổ sung tính năng.

    ```bash theme={null}
    Dashboard: Create Product → Subscription
    Name: "Core Plan"
    Price: $29/month

    Then in Add-ons section:
    - Attach all feature add-ons
    ```
  </Step>

  <Step title="Để Khách Hàng Chọn">
    Thanh toán với các tính năng đã chọn.

    ```typescript theme={null}
    const session = await client.checkoutSessions.create({
      product_cart: [{
        product_id: 'prod_core_plan',
        quantity: 1,
        addons: [
          { addon_id: 'addon_analytics', quantity: 1 },
          { addon_id: 'addon_api_access', quantity: 1 }
          // Customer didn't select support or white-label
        ]
      }],
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Step>

  <Step title="Thêm Tính Năng Sau">
    Khách hàng có thể thêm tính năng vào các đăng ký hiện có.

    ```typescript theme={null}
    // Customer wants to add Priority Support
    await client.subscriptions.changePlan('sub_123', {
      product_id: 'prod_core_plan',
      quantity: 1,
      proration_billing_mode: 'prorated_immediately',
      addons: [
        { addon_id: 'addon_analytics', quantity: 1 },
        { addon_id: 'addon_api_access', quantity: 1 },
        { addon_id: 'addon_priority_support', quantity: 1 }  // New!
      ]
    });
    ```
  </Step>
</Steps>

***

## Mô Hình Lai 4: Ghế + Sử Dụng

Phí theo người dùng kết hợp với các khoản phí dựa trên tiêu thụ. Mỗi người dùng nhận được một khoản cho phép.

<Warning>
  **Ràng buộc**: Dodo Payments hiện không hỗ trợ việc gắn cả đồng hồ sử dụng và bổ sung vào cùng một sản phẩm đăng ký. Mô hình này yêu cầu một giải pháp thay thế bằng cách sử dụng logic cấp ứng dụng.
</Warning>

<Info>
  **Sắp Có**: Hỗ trợ bản địa cho thanh toán lai Ghế + Sử Dụng đang nằm trong lộ trình của chúng tôi. Điều này sẽ cho phép bạn gắn cả đồng hồ sử dụng và bổ sung ghế vào cùng một sản phẩm đăng ký.
</Info>

### Cách Thức Hoạt Động

**Phân Tích Nhóm: 20 đô la/người/tháng**

**Mỗi người dùng bao gồm:**

* 5 GB xử lý dữ liệu/tháng
* Vượt mức: 2 đô la/GB sau khoản cho phép

**Tính toán ví dụ** (nhóm 10 người dùng sử dụng tổng cộng 80 GB):

* Phí ghế: 10 × 20 đô la = 200.00 đô la
* Dữ liệu bao gồm: 10 × 5 GB = 50 GB
* Vượt mức: (80 - 50) × 2 đô la = 60.00 đô la
* **Tổng: 260.00 đô la/tháng**

### Trường Hợp Sử Dụng

* **Nền tảng phân tích**: Theo nhà phân tích + xử lý dữ liệu
* **Công cụ thiết kế**: Theo nhà thiết kế + lưu trữ/xuất khẩu
* **Môi trường phát triển**: Theo nhà phát triển + giờ tính toán
* **Công cụ giao tiếp**: Theo người dùng + khối lượng tin nhắn/cuộc gọi

### Tùy Chọn Triển Khai

Vì bạn không thể gắn cả đồng hồ sử dụng và bổ sung vào cùng một đăng ký, hãy chọn một trong những cách tiếp cận sau:

<Tabs>
  <Tab title="Tùy Chọn A: Sản Phẩm Sử Dụng + Ghế Quản Lý Ứng Dụng">
    Sử dụng một đăng ký dựa trên sử dụng và quản lý thanh toán ghế trong ứng dụng của bạn.

    <Steps>
      <Step title="Tạo Đồng Hồ Sử Dụng">
        ```bash theme={null}
        Dashboard: Meters → Create Meter
        Event Name: "data.processed"
        Aggregation: Sum
        Property: "bytes"
        ```
      </Step>

      <Step title="Tạo Đăng Ký Dựa Trên Sử Dụng">
        ```bash theme={null}
        Dashboard: Create Product → Subscription
        Name: "Team Analytics"
        Base Price: $0/month

        Attach usage pricing:
        - Meter: data.processed
        - Price per unit: $2/GB
        - Free threshold: 0 (managed by your app)
        ```
      </Step>

      <Step title="Quản Lý Ghế Trong Ứng Dụng Của Bạn">
        Theo dõi số lượng ghế và tính phí ghế riêng biệt.

        ```typescript theme={null}
        // Your application tracks seats and calculates total cost
        async function calculateMonthlyBill(customerId: string) {
          const seatCount = await getSeatCount(customerId);
          const seatFee = seatCount * 20; // $20/seat

          // Usage is billed by Dodo automatically
          // You invoice/charge seat fees separately or include in base price

          // Alternatively, adjust base subscription price when seats change
          const totalBasePrice = seatCount * 2000; // $20/seat in cents
          await client.subscriptions.update('sub_123', {
            // Update subscription to reflect seat-based pricing
          });
        }
        ```
      </Step>

      <Step title="Tính Toán Ngưỡng Miễn Phí Động">
        Điều chỉnh việc sử dụng bao gồm dựa trên số lượng ghế.

        ```typescript theme={null}
        // When checking usage, apply per-seat allowance
        async function checkUsageOverage(customerId: string) {
          const seatCount = await getSeatCount(customerId);
          const includedGB = seatCount * 5; // 5 GB per user

          const currentUsage = await getUsageFromDodo(customerId);
          const overage = Math.max(0, currentUsage - includedGB);

          // Overage is billed by Dodo at $2/GB
          return { included: includedGB, used: currentUsage, overage };
        }
        ```
      </Step>
    </Steps>
  </Tab>

  <Tab title="Tùy Chọn B: Bổ Sung Ghế + Phí Sử Dụng Theo Yêu Cầu">
    Sử dụng các bổ sung cho ghế và tính phí sử dụng thủ công thông qua các khoản phí theo yêu cầu.

    <Steps>
      <Step title="Tạo Bổ Sung Ghế">
        ```bash theme={null}
        Dashboard: Products → Add-ons → Create Add-on
        Name: "Team Member"
        Price: $20/month
        ```
      </Step>

      <Step title="Tạo Đăng Ký với Bổ Sung">
        ```bash theme={null}
        Dashboard: Create Product → Subscription
        Name: "Team Analytics"
        Base Price: $0/month

        Attach add-on:
        - "Team Member" add-on

        Enable on-demand charging
        ```
      </Step>

      <Step title="Theo Dõi Sử Dụng Trong Ứng Dụng Của Bạn">
        ```typescript theme={null}
        // Track usage events in your system
        async function trackDataProcessed(customerId: string, bytes: number) {
          await saveUsageEvent({
            customer_id: customerId,
            event_type: 'data.processed',
            bytes: bytes,
            timestamp: new Date()
          });
        }
        ```
      </Step>

      <Step title="Tính Phí Sử Dụng Vào Cuối Chu Kỳ">
        Tính toán và tính phí các khoản phí sử dụng vượt mức một cách thủ công.

        ```typescript theme={null}
        async function billUsageOverage(subscriptionId: string) {
          const subscription = await getSubscription(subscriptionId);
          const seatCount = subscription.addons.find(a => a.id === 'addon_seat')?.quantity || 0;

          const includedGB = seatCount * 5;
          const usedGB = await calculatePeriodUsage(subscription.customer_id);
          const overageGB = Math.max(0, usedGB - includedGB);

          if (overageGB > 0) {
            const overageCharge = overageGB * 200; // $2/GB in cents
            await client.subscriptions.charge(subscriptionId, {
              product_price: overageCharge,
              product_description: `Data overage: ${overageGB} GB × $2/GB`
            });
          }
        }
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

<Info>
  **Khuyến nghị**: Tùy chọn B (Bổ Sung Ghế + Sử Dụng Theo Yêu Cầu) thường dễ triển khai hơn vì Dodo tự động xử lý thanh toán ghế. Bạn chỉ cần theo dõi và tính phí các khoản phí sử dụng vượt mức.
</Info>

***

## Mô Hình Lai 5: Đăng Ký + Ghế + Sử Dụng (Lai Ba)

Mô hình toàn diện nhất: phí nền tảng + theo người dùng + tiêu thụ.

<Warning>
  **Ràng buộc**: Dodo Payments hiện không hỗ trợ việc gắn cả đồng hồ sử dụng và bổ sung vào cùng một sản phẩm đăng ký. Mô hình này yêu cầu một cách tiếp cận giải pháp thay thế.
</Warning>

<Info>
  **Sắp Có**: Hỗ trợ bản địa cho thanh toán Lai Ba (Cơ Sở + Ghế + Sử Dụng) đang nằm trong lộ trình của chúng tôi. Điều này sẽ cho phép bạn gắn cả đồng hồ sử dụng và bổ sung ghế vào cùng một sản phẩm đăng ký.
</Info>

### Cách Thức Hoạt Động

**Nền Tảng Doanh Nghiệp**

* **Phí Nền Tảng**: 199 đô la/tháng
* **Theo Ghế**: 25 đô la/người/tháng
* **Sử Dụng**: 0.10 đô la/1000 cuộc gọi API (bao gồm 50K)

**Tính toán ví dụ** (công ty có 20 người dùng, 150,000 cuộc gọi API):

* Nền tảng: 199.00 đô la
* Ghế: 20 × 25 đô la = 500.00 đô la
* Sử dụng: (150K - 50K) × \$0.10/1K = \$10.00
* **Tổng: 709.00 đô la/tháng**

### Trường Hợp Sử Dụng

* **SaaS Doanh Nghiệp**: Nền tảng + nhóm + tiêu thụ
* **Nền tảng Dữ Liệu**: Không gian làm việc + nhà phân tích + truy vấn
* **Nền tảng Tích Hợp**: Trung tâm + kết nối + giao dịch
* **Nền tảng AI**: Không gian làm việc + nhà phát triển + suy diễn

### Tùy Chọn Triển Khai

Chọn một trong những cách tiếp cận này để triển khai thanh toán lai ba:

<Tabs>
  <Tab title="Tùy Chọn A: Cơ Sở + Ghế (Bổ Sung) + Sử Dụng Theo Yêu Cầu">
    Sử dụng đăng ký với các bổ sung ghế, tính phí sử dụng một cách thủ công thông qua các khoản phí theo yêu cầu.

    **Đây là cách tiếp cận được khuyến nghị** vì Dodo tự động xử lý phí nền tảng và thanh toán ghế.

    <Steps>
      <Step title="Tạo Bổ Sung Ghế">
        ```bash theme={null}
        Dashboard: Products → Add-ons → Create Add-on
        Name: "User Seat"
        Price: $25/month
        ```
      </Step>

      <Step title="Tạo Sản Phẩm Đăng Ký">
        ```bash theme={null}
        Dashboard: Create Product → Subscription
        Name: "Enterprise Platform"
        Base Price: $199/month

        Attach add-on:
        - "User Seat" add-on

        Enable on-demand charging
        ```
      </Step>

      <Step title="Tạo Thanh Toán với Ghế">
        ```typescript theme={null}
        const session = await client.checkoutSessions.create({
          product_cart: [{
            product_id: 'prod_enterprise_platform',
            quantity: 1,
            addons: [{
              addon_id: 'addon_user_seat',
              quantity: 20  // 20 users
            }]
          }],
          customer: { email: 'enterprise@company.com' },
          return_url: 'https://yourapp.com/success'
        });
        ```
      </Step>

      <Step title="Theo Dõi Sử Dụng Trong Ứng Dụng Của Bạn">
        Lưu trữ các sự kiện sử dụng trong hệ thống của bạn.

        ```typescript theme={null}
        // Track API calls in your system
        async function trackApiCall(customerId: string, endpoint: string) {
          await saveUsageEvent({
            customer_id: customerId,
            event_type: 'api.call',
            endpoint: endpoint,
            timestamp: new Date()
          });
        }
        ```
      </Step>

      <Step title="Tính Phí Sử Dụng Vào Cuối Chu Kỳ">
        Tính toán và tính phí các khoản phí sử dụng vượt mức thông qua phí theo yêu cầu.

        ```typescript theme={null}
        async function billUsageOverage(subscriptionId: string) {
          const usage = await calculatePeriodUsage(subscriptionId);
          const includedCalls = 50000;
          const overageCalls = Math.max(0, usage.totalCalls - includedCalls);

          if (overageCalls > 0) {
            // $0.10 per 1000 calls = $0.0001 per call
            const overageCharge = Math.ceil(overageCalls / 1000) * 10; // cents
            await client.subscriptions.charge(subscriptionId, {
              product_price: overageCharge,
              product_description: `API usage: ${overageCalls.toLocaleString()} calls over 50K included`
            });
          }
        }
        ```
      </Step>
    </Steps>
  </Tab>

  <Tab title="Tùy Chọn B: Cơ Sở + Sử Dụng (Đồng Hồ) + Ghế Quản Lý Ứng Dụng">
    Sử dụng đăng ký với đồng hồ sử dụng, quản lý thanh toán ghế trong ứng dụng của bạn.

    <Steps>
      <Step title="Tạo Đồng Hồ Sử Dụng">
        ```bash theme={null}
        Dashboard: Meters → Create Meter
        Event Name: "api.call"
        Aggregation: Count
        ```
      </Step>

      <Step title="Tạo Sản Phẩm Đăng Ký với Sử Dụng">
        ```bash theme={null}
        Dashboard: Create Product → Subscription
        Name: "Enterprise Platform"
        Base Price: $199/month

        Attach usage pricing:
        - Meter: api.call
        - Price: $0.10 per 1000 calls
        - Free threshold: 50,000
        ```
      </Step>

      <Step title="Quản Lý Ghế Trong Ứng Dụng Của Bạn">
        Theo dõi số lượng ghế và điều chỉnh giá đăng ký cơ bản cho phù hợp.

        ```typescript theme={null}
        // When seats change, update subscription price
        async function updateSeatCount(subscriptionId: string, newSeatCount: number) {
          const basePlatformFee = 19900; // $199 in cents
          const perSeatFee = 2500; // $25 in cents
          const totalPrice = basePlatformFee + (newSeatCount * perSeatFee);

          // Store seat count in your system
          await updateSeatsInDatabase(subscriptionId, newSeatCount);

          // Note: You may need to handle this via plan changes or
          // create multiple tier products for common seat counts
        }
        ```
      </Step>

      <Step title="Gửi Sự Kiện Sử Dụng Đến Dodo">
        ```typescript theme={null}
        await fetch('https://test.dodopayments.com/events/ingest', {
          method: 'POST',
          headers: {
            'Authorization': `Bearer ${apiKey}`,
            'Content-Type': 'application/json'
          },
          body: JSON.stringify({
            events: [{
              event_id: `api_${Date.now()}`,
              customer_id: 'cus_enterprise',
              event_name: 'api.call',
              timestamp: new Date().toISOString()
            }]
          })
        });
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

<Info>
  **Khuyến nghị**: Tùy chọn A (Cơ Sở + Ghế + Sử Dụng Theo Yêu Cầu) thường dễ hơn vì Dodo tự động xử lý phí nền tảng và thanh toán ghế. Bạn chỉ cần theo dõi việc sử dụng và gửi các khoản phí vào cuối mỗi chu kỳ thanh toán.
</Info>

***

## Mô Hình Lai 6: Cơ Sở Tầng + Phí Tiêu Thụ Vượt Mức

Các tầng đăng ký khác nhau với các khoản cho phép và tỷ lệ vượt mức khác nhau.

### Cách Thức Hoạt Động

| Tầng              | Giá             | Cuộc Gọi Bao Gồm | Tỷ Lệ Vượt Mức       |
| ----------------- | --------------- | ---------------- | -------------------- |
| **Khởi đầu**      | 19 đô la/tháng  | 1,000            | 0.02 đô la/cuộc gọi  |
| **Chuyên nghiệp** | 79 đô la/tháng  | 25,000           | 0.01 đô la/cuộc gọi  |
| **Doanh nghiệp**  | 199 đô la/tháng | 100,000          | 0.005 đô la/cuộc gọi |
| **Doanh Nghiệp**  | 499 đô la/tháng | 500,000          | 0.002 đô la/cuộc gọi |

### Triển Khai

Tạo các sản phẩm đăng ký riêng cho mỗi tầng, mỗi sản phẩm có cấu hình sử dụng riêng:

```bash theme={null}
# For each tier, create a subscription product:

# Starter Tier
Dashboard: Create Product → Subscription
Name: "Starter"
Base Price: $19/month
Usage Pricing:
- Meter: api.call
- Price: $0.02/call
- Free threshold: 1,000

# Pro Tier
Name: "Pro"
Base Price: $79/month
Usage Pricing:
- Meter: api.call
- Price: $0.01/call
- Free threshold: 25,000

# ... and so on for Business and Enterprise
```

### Đường Dẫn Nâng Cấp

Khi khách hàng nâng cấp tầng, họ sẽ nhận được:

* Khoản cho phép bao gồm cao hơn
* Tỷ lệ vượt mức thấp hơn
* Giá trị nhiều hơn cho mỗi đô la

```typescript theme={null}
// Customer upgrades from Starter to Pro
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_pro',
  quantity: 1,
  proration_billing_mode: 'prorated_immediately'
});
```

***

## Mô Hình Lai 7: Đăng Ký + Phí Theo Yêu Cầu

Đăng ký định kỳ cộng với các khoản phí thủ công biến đổi cho dịch vụ hoặc vượt mức.

### Cách Thức Hoạt Động

**Kế Hoạch Giữ Chỗ: 199 đô la/tháng**

**Bao gồm:**

* Truy cập nền tảng
* 5 giờ tư vấn/tháng
* Hỗ trợ qua email

**Phí Theo Yêu Cầu (theo nhu cầu):**

* Tư vấn thêm: 150 đô la/giờ
* Phát triển tùy chỉnh: 200 đô la/giờ
* Hỗ trợ khẩn cấp: 100 đô la/sự cố

**Tính toán ví dụ** (tháng này):

* Giữ chỗ: 199.00 đô la
* 3 giờ tư vấn thêm: 450.00 đô la
* 1 hỗ trợ khẩn cấp: 100.00 đô la
* **Tổng: 749.00 đô la**

### Trường Hợp Sử Dụng

* **Dịch vụ tư vấn**: Giữ chỗ + tính phí theo giờ
* **Dịch vụ quản lý**: Phí cơ bản + phí sự cố
* **Dịch vụ đại lý**: Phí hàng tháng + phí dự án
* **Kế hoạch hỗ trợ**: Phí SLA + theo vé hoặc theo giờ

### Triển Khai

<Steps>
  <Step title="Tạo Đăng Ký Theo Yêu Cầu">
    Thiết lập đăng ký với tính phí theo yêu cầu được kích hoạt.

    ```typescript theme={null}
    const subscription = await client.subscriptions.create({
      billing: {
        city: 'San Francisco',
        country: 'US',
        state: 'CA',
        street: '123 Main St',
        zipcode: '94105'
      },
      customer: { customer_id: 'cus_123' },
      product_id: 'prod_retainer',
      quantity: 1,
      payment_link: true,
      return_url: 'https://yourapp.com/success',
      on_demand: {
        mandate_only: false,
        product_price: 19900  // $199 initial charge
      }
    });
    ```
  </Step>

  <Step title="Tính Phí Dịch Vụ">
    Tạo các khoản phí khi dịch vụ được cung cấp.

    ```typescript theme={null}
    // Charge for 3 hours of consulting
    await client.subscriptions.charge('sub_123', {
      product_price: 45000,  // $450.00 (3 × $150)
      product_description: 'Consulting - 3 hours (March 15)'
    });

    // Charge for emergency support incident
    await client.subscriptions.charge('sub_123', {
      product_price: 10000,  // $100.00
      product_description: 'Emergency support - Server outage (March 18)'
    });
    ```
  </Step>

  <Step title="Theo Dõi và Lập Hóa Đơn">
    Tất cả các khoản phí xuất hiện trên hóa đơn của khách hàng.

    ```typescript theme={null}
    // Retrieve subscription charges
    const payments = await client.payments.list({
      subscription_id: 'sub_123'
    });

    // Show itemized breakdown to customer
    payments.items.forEach(payment => {
      console.log(`${payment.description}: $${payment.amount / 100}`);
    });
    ```
  </Step>
</Steps>

***

## Ví Dụ Thực Tế

<Info>
  Những ví dụ này cho thấy các cấu trúc định giá lý tưởng. Do ràng buộc rằng đồng hồ sử dụng và bổ sung không thể được gắn vào cùng một sản phẩm, một số kết hợp yêu cầu các giải pháp thay thế (sử dụng phí theo yêu cầu cho việc sử dụng hoặc ghế quản lý ứng dụng).
</Info>

### Ví Dụ 1: Nền Tảng AI SaaS

**Cấu Trúc Định Giá:**

* **Đăng Ký Cơ Bản**: 99 đô la/tháng (truy cập nền tảng, 5 ghế bao gồm)
* **Bổ Sung Ghế**: 20 đô la/ghế/tháng
* **Bổ Sung Tính Năng**: Mô Hình Tùy Chỉnh (\$49/tháng), Truy Cập API (\$29/tháng), Hàng Đợi Ưu Tiên (\$19/tháng)
* **Vượt Mức Sử Dụng**: 0.02 đô la cho mỗi 1,000 token sau 100K (tính phí qua yêu cầu)

**Triển Khai**: Sử dụng đăng ký với các bổ sung ghế và tính năng. Theo dõi việc sử dụng token trong ứng dụng của bạn và tính phí vượt mức qua phí theo yêu cầu vào cuối chu kỳ thanh toán.

**Khách Hàng Ví Dụ** (12 người dùng, 500K token, Mô Hình Tùy Chỉnh + Truy Cập API):

| Thành Phần        | Tính Toán                       | Số Tiền             |
| ----------------- | ------------------------------- | ------------------- |
| Cơ Bản            | Phí nền tảng                    | 99                  |
| Ghế bổ sung       | 7 × 20 đô la                    | 140                 |
| Mô Hình Tùy Chỉnh | Bổ sung                         | 49                  |
| Truy Cập API      | Bổ sung                         | 29                  |
| Vượt mức token    | 400K × \$0.02/1K (theo yêu cầu) | \$8                 |
| **Tổng**          |                                 | **325 đô la/tháng** |

### Ví Dụ 2: Nền Tảng Công Cụ Phát Triển

**Tùy Chọn Tầng:**

|                | Miễn Phí      | Chuyên Nghiệp  | Doanh Nghiệp    |
| -------------- | ------------- | -------------- | --------------- |
| **Giá**        | 0 đô la/tháng | 29 đô la/tháng | 199 đô la/tháng |
| **Người Dùng** | 1             | 5 bao gồm      | Không giới hạn  |
| **Xây Dựng**   | 100           | 1,000          | 10,000          |
| **Lưu Trữ**    | 1 GB          | 10 GB          | 100 GB          |

**Tùy Chọn Triển Khai**:

**Tùy Chọn A** (Tập trung vào sử dụng): Tạo các sản phẩm với đồng hồ sử dụng cho xây dựng/lưu trữ. Quản lý người dùng trong ứng dụng của bạn.

**Tùy Chọn B** (Tập trung vào ghế): Tạo các sản phẩm với các bổ sung ghế. Theo dõi việc sử dụng xây dựng/lưu trữ và tính phí vượt mức qua yêu cầu.

**Bổ Sung (nếu sử dụng Tùy Chọn B):**

* Người dùng bổ sung: 10 đô la/người/tháng
* Xây dựng ưu tiên: 19 đô la/tháng
* Tên miền tùy chỉnh: 9 đô la/tên miền/tháng

### Ví Dụ 3: Tự Động Hóa Tiếp Thị

**Cấu Trúc Định Giá:**

* **Cơ Bản**: 79 đô la/tháng (các tính năng tự động hóa cốt lõi, 3 ghế bao gồm)
* **Tầng Liên Hệ** (bổ sung): 1K bao gồm, 5K (+\$30), 25K (+\$80), 100K (+\$200)
* **Bổ Sung Tính Năng**: Tiếp Thị SMS (\$29/tháng), Trang Đích (\$19/tháng), Kiểm Tra A/B (\$29/tháng)
* **Ghế Nhóm**: 15 đô la/người/tháng bổ sung
* **Khối Lượng Email**: Theo dõi trong ứng dụng, tính phí vượt mức qua yêu cầu (1 đô la/1,000 email vượt giới hạn)

**Triển Khai**: Sử dụng đăng ký với các bổ sung tầng liên hệ, bổ sung tính năng và bổ sung ghế. Theo dõi việc gửi email trong ứng dụng của bạn và tính phí vượt mức qua yêu cầu.

***

## Thực Hành Triển Khai Tốt Nhất

### Rõ Ràng Trang Định Giá

<Tip>
  Làm cho định giá lai dễ hiểu. Hiển thị rõ ràng các chi phí cơ bản, những gì được bao gồm và cách thức hoạt động của các khoản phí vượt mức trên trang định giá của bạn.
</Tip>

**Tốt**: "\$49/tháng bao gồm 10,000 cuộc gọi API. Các cuộc gọi bổ sung: \$0.005 mỗi cuộc gọi"

**Xấu**: "\$49/tháng + phí sử dụng"

### Dự Đoán Chi Phí

Giúp khách hàng ước lượng chi phí của họ:

```typescript theme={null}
// Provide a cost calculator
function estimateMonthlyCost({
  plan,
  seats,
  expectedUsage,
  addons
}: EstimateParams): number {
  let total = plan.basePrice;

  // Add seat costs
  const extraSeats = Math.max(0, seats - plan.includedSeats);
  total += extraSeats * plan.seatPrice;

  // Add usage overage
  const overage = Math.max(0, expectedUsage - plan.includedUsage);
  total += overage * plan.overageRate;

  // Add feature add-ons
  total += addons.reduce((sum, addon) => sum + addon.price, 0);

  return total;
}
```

### Tính Minh Bạch Sử Dụng

Hiển thị cho khách hàng việc sử dụng của họ theo thời gian thực:

```typescript theme={null}
// Display usage dashboard
async function getUsageSummary(subscriptionId: string) {
  const usage = await client.subscriptions.retrieveUsageHistory(subscriptionId);

  // Each item is a billing period; each meter reports its usage for that period.
  const latestPeriod = usage.items[0];

  return latestPeriod.meters.map((meter) => {
    const consumed = Number(meter.consumed_units);
    const chargeable = Number(meter.chargeable_units);
    return {
      meter: meter.name,
      current: consumed,
      included: meter.free_threshold,
      remaining: Math.max(0, meter.free_threshold - consumed),
      overage: chargeable,
      cost: meter.total_price
    };
  });
}
```

### Tính Minh Bạch Hóa Đơn

Cung cấp hóa đơn chi tiết hiển thị tất cả các thành phần:

| Mục Hóa Đơn                                            | Số Tiền          |
| ------------------------------------------------------ | ---------------- |
| Kế Hoạch Chuyên Nghiệp (Hàng Tháng)                    | 49.00 đô la      |
| Ghế Bổ Sung (7 × 15.00 đô la)                          | 105.00 đô la     |
| Sử Dụng API - Bao Gồm (10,000 cuộc gọi)                | 0.00 đô la       |
| Sử Dụng API - Vượt Mức (15,420 cuộc gọi × 0.005 đô la) | 77.10 đô la      |
| Bổ Sung Phân Tích Nâng Cao                             | 19.00 đô la      |
| **Tổng Cộng**                                          | **250.10 đô la** |
| Thuế (8.5%)                                            | 21.26 đô la      |
| **Tổng Cần Thanh Toán**                                | **271.36 đô la** |

***

## Khắc Phục Sự Cố Thanh Toán Lai

<AccordionGroup>
  <Accordion title="Sử Dụng không được theo dõi chính xác">
    **Triệu Chứng**: Sử dụng hiển thị 0 hoặc giá trị không chính xác.

    **Giải pháp**:

    1. Xác minh việc thu thập sự kiện đang hoạt động (kiểm tra phản hồi API)
    2. Xác nhận `customer_id` khớp với khách hàng đăng ký
    3. Kiểm tra `event_name` khớp với cấu hình đồng hồ đo
    4. Xác minh các sự kiện có dấu thời gian chính xác (không có ngày tương lai)
  </Accordion>

  <Accordion title="Nhầm lẫn về tỷ lệ phân bổ với nhiều thành phần">
    **Triệu Chứng**: Khách hàng bị tính phí số tiền không mong đợi khi thay đổi kế hoạch.

    **Giải pháp**:

    1. Sử dụng `previewChangePlan` API để hiển thị các khoản phí chính xác trước khi xác nhận
    2. Thông báo rằng việc phân bổ áp dụng cho đăng ký VÀ các tiện ích bổ sung
    3. Cân nhắc sử dụng `difference_immediately` để đơn giản hóa việc lập hóa đơn nâng cấp
  </Accordion>

  <Accordion title="Ngưỡng miễn phí không áp dụng chính xác">
    **Triệu Chứng**: Khách hàng bị tính phí cho việc sử dụng mà lẽ ra phải miễn phí.

    **Giải Pháp**:

    1. Xác minh ngưỡng miễn phí đã được cấu hình trên sản phẩm dựa trên sử dụng
    2. Kiểm tra đơn vị ngưỡng khớp với việc tổng hợp sự kiện (cuộc gọi so với yêu cầu)
    3. Xác nhận đồng hồ sử dụng được gắn chính xác vào sản phẩm đăng ký
  </Accordion>

  <Accordion title="Bổ sung không xuất hiện trong thanh toán">
    **Triệu Chứng**: Không thể thêm ghế hoặc tính năng trong quá trình thanh toán.

    **Giải Pháp**:

    1. Xác minh các bổ sung đã được gắn vào sản phẩm đăng ký trong bảng điều khiển
    2. Kiểm tra ID bổ sung có chính xác trong các cuộc gọi API
    3. Đảm bảo tiền tệ bổ sung khớp với tiền tệ sản phẩm đăng ký
  </Accordion>
</AccordionGroup>

***

## Tài Liệu Liên Quan

<CardGroup cols={2}>
  <Card title="Sản Phẩm" icon="box" href="/features/products">
    Tổng quan về tất cả các loại sản phẩm và hướng dẫn.
  </Card>

  <Card title="Hướng Dẫn Thanh Toán Dựa Trên Sử Dụng" icon="chart-line" href="/developer-resources/usage-based-billing-guide">
    Triển khai thanh toán dựa trên sử dụng hoàn chỉnh.
  </Card>

  <Card title="Quản Lý Đăng Ký" icon="repeat" href="/features/subscription">
    Quản lý các đăng ký định kỳ.
  </Card>

  <Card title="Bổ Sung" icon="puzzle" href="/features/addons">
    Mở rộng các đăng ký với các bổ sung.
  </Card>
</CardGroup>
