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

# v1.113.28 (10 tháng 9, 2026)

> Một tab Reports mới với các bản xuất số dư, phí và đối soát, thời gian gia hạn cho subscription, danh sách chặn customer, thử lại payment thủ công, nhật ký hoạt động trên mọi payment, biểu mẫu discount được xây dựng lại, các tùy chọn hủy được tách riêng, subscription không bắt buộc thẻ khi hôm nay không phát sinh khoản phải trả, cờ Tax ID bắt buộc cho B2B checkout và checkout bằng tiếng Georgian.

## Tính năng mới

### 1. **Reports**

Một tab **Reports** mới trong **Settings** tập hợp báo cáo về số dư, phí và đối soát tại một nơi.

**Theo dõi dòng tiền**

Hai chế độ xem luôn được cập nhật, với mô tả là "Hiểu cách hoạt động, phí và các khoản payout ảnh hưởng đến số dư của bạn":

* **Tóm tắt số dư và payout** — số dư đầu kỳ, phân tích hoạt động và chi tiết theo từng payout trong cùng một chế độ xem
* **Tất cả phí** — phân tích đầy đủ, theo từng mục, về mọi khoản phí được tính trong kỳ

**Tải xuống báo cáo**

Tạo bản xuất CSV hoặc XLSX tùy chỉnh cho bất kỳ khoảng thời gian nào, từ bốn loại báo cáo: **Transactions Report**, **Adjustments Report**, **Payout Report** và **Ledger Reconciliation Report**. Ledger Reconciliation Report ghi một dòng cho mỗi biến động số dư, được thiết kế để đối chiếu với sao kê ngân hàng của bạn.

**Báo cáo đã tạo**

Mọi nội dung bạn đã xuất đều được liệt kê trong **Generated Reports**, cùng với khoảng thời gian, định dạng, số dòng, người tạo và thao tác tải xuống.

<Frame>
  <img src="https://mintcdn.com/dodopayments/wcp2oXUYABdJitHh/images/reports/reports-hub.png?fit=max&auto=format&n=wcp2oXUYABdJitHh&q=85&s=5ca9b31a0a29106dba531c8e1c5a7f9d" alt="Tab Reports hiển thị các mục Theo dõi dòng tiền, Tải xuống báo cáo và Báo cáo đã tạo" style={{ maxHeight: '500px', width: 'auto' }} width="1400" height="700" data-path="images/reports/reports-hub.png" />
</Frame>

Tìm hiểu thêm: [Reports](/features/reports)

### 2. **Subscription Grace Period**

Một subscription có lần gia hạn thất bại giờ đây có thể tiếp tục hoạt động trong một khoảng thời gian có thể cấu hình, thay vì ngay lập tức chuyển sang trạng thái tạm giữ.

Bật **Subscription Grace Period** trong **Settings → Subscriptions** và đặt **Number of days of grace period** — từ 1 đến 30 ngày. Grace period mặc định được tắt.

Trong khoảng thời gian này, subscription chuyển sang trạng thái `past_due` mới: quyền truy cập được duy trì và mức sử dụng tiếp tục được ghi nhận, vì vậy customer có thẻ vừa hết hạn sẽ không bị ngắt dịch vụ trong lúc khắc phục. Một webhook `subscription.past_due` mới được kích hoạt khi khoảng thời gian này bắt đầu.

Chọn điều xảy ra nếu khoảng thời gian kết thúc mà chưa thanh toán trong **Status of subscription after grace period** — **On Hold**, tương ứng với hành vi hiện tại, hoặc **Cancel Subscription**.

<Frame>
  <img src="https://mintcdn.com/dodopayments/S2k6LKmgHYlRKci9/images/subscriptions/subscription-grace-period-settings.png?fit=max&auto=format&n=S2k6LKmgHYlRKci9&q=85&s=4c506116408f7c800bdd13d7561db86c" alt="Cài đặt Subscription Grace Period với số ngày và trạng thái áp dụng sau grace period" style={{ maxHeight: '500px', width: 'auto' }} width="1373" height="184" data-path="images/subscriptions/subscription-grace-period-settings.png" />
</Frame>

Tìm hiểu thêm: [Grace Period](/features/subscription#grace-period)

### 3. **Customer Blocklist**

Chặn một customer không được phép mua hàng của bạn lần nữa, theo customer ID hoặc địa chỉ email.

Việc chặn sẽ hủy các subscription đang hoạt động của customer, dừng các checkout session và direct payment trong tương lai, đồng thời chuyển Customer Portal của họ sang chế độ chỉ đọc. Vì các mục được đối chiếu theo địa chỉ email, customer đăng ký lại bằng cùng email vẫn sẽ bị chặn.

Các mục trong blocklist có ghi chú, để bạn có thể lưu lại lý do chặn một người.

<Frame>
  <img src="https://mintcdn.com/dodopayments/c1t35qHSH45TR4GO/images/blocklist/blocklist-settings.png?fit=max&auto=format&n=c1t35qHSH45TR4GO&q=85&s=771eb4a5654fbd22e6a5110cfb1a2e9d" alt="Cài đặt Blocklist liệt kê các customer bị chặn" style={{ maxHeight: '500px', width: 'auto' }} width="2358" height="1554" data-path="images/blocklist/blocklist-settings.png" />
</Frame>

Tìm hiểu thêm: [Customer Blocklist](/features/customer-blocklist)

### 4. **Manual Payment Retry**

Tự mình thử lại lần gia hạn subscription thất bại thay vì chờ lịch automatic retry, bằng cách sử dụng **Retry Payment Manually** trên trang chi tiết payment. Khoản charge được gửi đến payment method đã lưu trên subscription, nên customer không cần thực hiện thao tác nào và thao tác này không sử dụng một lần thử trong lịch automatic retry.

Mỗi renewal invoice cho phép tối đa ba lần manual retry, với thời gian chờ giữa các lần — một giờ trước lần thứ hai và ba giờ trước lần thứ ba — để các lần bị từ chối liên tiếp không làm ảnh hưởng đến authorization rate của bạn.

<Frame>
  <img src="https://mintcdn.com/dodopayments/0duTS18kYi2NwQ3m/images/recovery/manual-retry-transaction-details.png?fit=max&auto=format&n=0duTS18kYi2NwQ3m&q=85&s=5537fa5eff17cbe91a53599f887a26e7" alt="Trang chi tiết payment với thao tác Retry Payment Manually" style={{ maxHeight: '500px', width: 'auto' }} width="1285" height="698" data-path="images/recovery/manual-retry-transaction-details.png" />
</Frame>

Tìm hiểu thêm: [Manual Payment Retry](/features/recovery/manual-retry)

### 5. **Activity Log trên Payment**

Mọi trang chi tiết payment giờ đây đều có **Activity Log** — "Lịch sử các thao tác trên transaction này trong 90 ngày qua".

Nhật ký theo dõi toàn bộ vòng đời theo thứ tự, từ **Payment initiated**, qua authentication và capture, đến **Payment succeeded**, rồi tiếp tục với refund và dispute, để một payment bị tranh chấp được thể hiện như một câu chuyện thống nhất thay vì nhiều bản ghi rời rạc.

<Frame>
  <img src="https://mintcdn.com/dodopayments/YYTuTm3Tnxw8EJWt/images/transactions/payments/activity-log.png?fit=max&auto=format&n=YYTuTm3Tnxw8EJWt&q=85&s=3f60d02d04cf0cef958f0ec18406e9a8" alt="Activity Log trên trang chi tiết payment hiển thị mục Payment succeeded cùng dấu thời gian" style={{ maxHeight: '500px', width: 'auto' }} width="1920" height="962" data-path="images/transactions/payments/activity-log.png" />
</Frame>

### 6. **Biểu mẫu Discount được xây dựng lại**

Việc tạo discount code giờ đây hiển thị cho bạn nội dung đang xây dựng ngay trong quá trình tạo. Một bảng bên cạnh chuyển đổi giữa **Summary**, phần mô tả discount bằng ngôn ngữ dễ hiểu, và **Preview**, hiển thị discount theo cách customer sẽ thấy tại checkout.

**Currency options** cho phép bạn đặt số tiền discount cho từng currency mà bạn bán. **Eligibility & restrictions** tập hợp các quy tắc về product và customer tại một nơi.

Giới hạn redemption, giới hạn billing cycle và **Require a minimum order value** — số tiền tối thiểu của giỏ hàng được áp dụng theo từng currency — giờ đây nằm trong **Advanced**.

<Frame>
  <img src="https://mintcdn.com/dodopayments/28D42lhMYyiRjtpN/images/discount-codes/discount-form-summary.png?fit=max&auto=format&n=28D42lhMYyiRjtpN&q=85&s=1f2c1d04fbbbac53f67d789d81e0a382" alt="Biểu mẫu discount code với bảng bên cạnh Summary và Preview cùng thông tin chi tiết discount" style={{ maxHeight: '500px', width: 'auto' }} width="1920" height="963" data-path="images/discount-codes/discount-form-summary.png" />
</Frame>

Tìm hiểu thêm: [Discount Codes](/features/discount-codes)

### 7. **Các tùy chọn hủy được tách riêng**

Trước đây, việc hủy self-service chỉ có một công tắc. Giờ đây có hai cài đặt độc lập trong **Settings → Subscriptions**:

* **Allow Immediate Cancellation** — "Cho phép customer kết thúc subscription và mất quyền truy cập ngay lập tức."
* **Allow Cancellation at Next Billing Date** — "Cho phép customer hủy vào cuối kỳ mà họ đã thanh toán."

Nhờ đó, bạn có thể cho phép customer sử dụng hết kỳ đã thanh toán trong khi chỉ bạn có quyền hủy ngay lập tức, hoặc ngược lại.

Trong Customer Portal, hai tùy chọn xuất hiện dưới dạng các thao tác riêng biệt, **Cancel now** và **Cancel at next billing date**. Khi một thao tác hủy đã được lên lịch, portal sẽ thay vào đó cung cấp tùy chọn thu hồi thao tác, cùng với **Cancel immediately** — cùng một hành động như **Cancel now**, nhưng được đổi nhãn cho trạng thái này.

<Frame>
  <img src="https://mintcdn.com/dodopayments/kCngKZVrb0rZMS1f/images/customer-portal/cance-sub.png?fit=max&auto=format&n=kCngKZVrb0rZMS1f&q=85&s=66eb6e380c991826c431fd0c563cbfa6" alt="Hộp thoại hủy trong Customer Portal cung cấp tùy chọn hủy ngay hoặc vào ngày billing tiếp theo" style={{ maxHeight: '500px', width: 'auto' }} width="2880" height="1550" data-path="images/customer-portal/cance-sub.png" />
</Frame>

Tìm hiểu thêm: [Cancelling a Subscription](/features/customer-portal#cancelling-a-subscription)

### 8. **Plan Changes được thanh toán trên Checkout Page**

Bật **Collect Plan Change Payments by Payment Link** trong **Settings → Subscriptions** để customer nâng cấp trong Customer Portal thanh toán cho thay đổi trên hosted checkout page thay vì sử dụng mandate đã lưu.

Nút xác nhận hiển thị số tiền phải trả, và khi checkout mở, customer sẽ thấy thông báo: "Hoàn tất payment trong tab mới. Plan hiện tại của bạn vẫn hoạt động cho đến khi payment thành công." Subscription vẫn giữ plan cũ cho đến khi payment thành công, và payment bị từ chối có thể được thử lại trên cùng link.

Customer Portal giờ đây cũng biết bạn có cho phép hủy plan change đã lên lịch hay không, nên sẽ hiển thị hoặc ẩn tùy chọn đó thay vì cung cấp một thao tác sẽ bị từ chối.

<Frame>
  <img src="https://mintcdn.com/dodopayments/LwHMYe4qXgVFVIvC/images/customer-portal/plan-change-checkout.png?fit=max&auto=format&n=LwHMYe4qXgVFVIvC&q=85&s=91bbe7cab1c13809fa9dc240d851015e" alt="Hosted checkout page cho payment của plan change" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1167" data-path="images/customer-portal/plan-change-checkout.png" />
</Frame>

Tìm hiểu thêm: [Plan Changes](/features/customer-portal#plan-changes-upgradedowngrade)

### 9. **Ngân sách thử lại KYC**

Một lần identity verification thất bại giờ đây cho biết lý do thất bại và số lần thử còn lại, thay vì chỉ thông báo thất bại.

Mỗi user có ba lần thử, và thông báo hiển thị "Attempts remaining: 2/3" cùng lý do thực tế từ verification provider. Nút chuyển thành **Try again** khi vẫn còn lượt thử. Nếu đã sử dụng cả ba lần, thông báo giải thích rằng support có thể mở lại quy trình verification.

Tìm hiểu thêm: [Account Verification](/miscellaneous/verification-process)

### 10. **Georgian Checkout**

Checkout giờ đây có sẵn bằng tiếng Georgian, nâng tổng số ngôn ngữ lên 22. Georgian được phát hiện từ browser của customer như mọi ngôn ngữ được hỗ trợ khác, hoặc bạn có thể buộc sử dụng ngôn ngữ này bằng parameter `force_language`.

Tìm hiểu thêm: [Supported Languages](/features/checkout#supported-languages)

### 11. **Không bắt buộc thẻ khi giá là \$0**

Subscription giờ đây có thể bắt đầu mà không cần payment method bất cứ khi nào hôm nay không phát sinh khoản phải trả. Bật checkbox **Card-Optional at \$0 Price** trong phần pricing của product, bên cạnh **Trial Period (Days)** và **Default Discount (%)**.

Có hai trường hợp không phát sinh khoản phải trả hôm nay và một checkbox này áp dụng cho cả hai:

* **Free trial** — trial period không có trial amount, nên khoản charge đầu tiên là `0` trong thời gian trial.
* **Recurring price \$0** — price là `0` ngay từ đầu, hoặc discount đưa price về mức đó, dù là **Default Discount (%)** của product hay các discount code được cộng dồn thành mức giảm 100% tại checkout.

Paid trial vẫn yêu cầu thẻ, vì trial amount đồng nghĩa với việc có khoản phải trả.

Nếu chưa có thẻ được lưu, subscription vẫn được kích hoạt và trả về `payment_method_required: false`. Sau đó, một email nhắc nhở sẽ được gửi trước khi billing thực tế bắt đầu — thời gian gửi trước bao lâu được thiết lập bằng **Payment Method Reminder** trong **Settings → Subscriptions**, từ 1 đến 30 ngày, mặc định là 3 ngày. Nếu thẻ không được thêm, subscription sẽ chuyển sang `on_hold` khi đến hạn charge thực tế đầu tiên, và việc thêm payment method sẽ kích hoạt lại subscription. Hai email customer bao quát trường hợp này, đều được bật mặc định: **Add Payment Method Reminder** và **Subscription On Hold, No Payment Method**.

Thông qua API, checkbox duy nhất này ánh xạ tới hai price field độc lập, `trial_payment_method_optional` và `zero_amount_payment_method_optional`, vì vậy bạn có thể tự bật từng trường hợp nếu quản lý product trực tiếp.

<Frame>
  <img src="https://mintcdn.com/dodopayments/qD0RSXoLZULfSVwD/images/subscriptions/card-optional-at-zero-price-pricing.png?fit=max&auto=format&n=qD0RSXoLZULfSVwD&q=85&s=d76357fda744c461e140675834f25e7b" alt="Biểu mẫu pricing của subscription với checkbox Card-Optional at $0 Price bên cạnh Trial Period và Default Discount" style={{ maxHeight: '500px', width: 'auto' }} width="1814" height="1240" data-path="images/subscriptions/card-optional-at-zero-price-pricing.png" />
</Frame>

Tìm hiểu thêm: [Card-Optional at \$0 Price](/features/subscription#card-optional-at-0-price)

### 12. **Tax ID bắt buộc tại Checkout**

Checkout session chấp nhận một feature flag `require_tax_id` mới dành cho các doanh nghiệp chỉ bán cho doanh nghiệp đã đăng ký. Flag này mặc định là `false`, vì vậy không có gì thay đổi trừ khi bạn yêu cầu.

Khi flag được bật, **Purchasing as a business** được chọn sẵn và khóa trên checkout page, cả **Business Name** và **Tax ID Number** đều trở thành bắt buộc, đồng thời **Continue to Payment** vẫn bị làm mờ khi một trong hai trường còn trống hoặc Tax ID bị từ chối. Tax ID validation vẫn fail-open, nên sự cố khi tra cứu sẽ không hoàn toàn chặn customer.

`allow_tax_id` cũng phải là `true`, nếu không request sẽ bị từ chối với một `400`; session được tạo bằng `confirm: true` phải mang theo `tax_id` vì nó bỏ qua checkout page hoàn toàn.

Yêu cầu này được áp dụng trên checkout page thay vì phía server — một confirmation được gửi trực tiếp đến API vẫn có thể bỏ qua `tax_id`, vì vậy hãy xem flag này là một tùy chọn kiểm soát trải nghiệm checkout, không phải một bảo đảm.

Tìm hiểu thêm: [Making the Tax ID Mandatory](/features/b2b-payments#making-the-tax-id-mandatory)

### 13. **Thông báo Subscription bị tạm dừng và tiếp tục**

Việc tạm dừng và tiếp tục subscription giờ đây tạo ra các notification riêng cho team của bạn và customer.

Thông báo cho team bổ sung **Subscription Paused** và **Subscription Resumed** trong **Subscriptions**, cả hai đều tắt mặc định — đây là những subscription event đầu tiên tại đây không được bật sẵn, vì vậy hãy bật chúng nếu muốn sử dụng. Các email customer tương ứng được bật mặc định, giống như mọi email customer khác.

Tìm hiểu thêm: [Communication Preferences](/features/communication-preferences#subscriptions)
