Chuyển đến nội dung chính

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.

Tính Năng Mới

1. Entitlements

Dodo Payments hiện có Entitlements hợp nhất — một lớp duy nhất thực hiện tự động cung cấp cho mọi tích hợp fulfilment. Một sản phẩm có thể cung cấp nhiều entitlements trên mỗi giao dịch mua thành công hoặc đăng ký hoạt động. Năm tích hợp nền tảng mới Cho đến nay, Dodo Payments đã tự động cung cấp khóa giấy phéptệp kỹ thuật số khi mua. Với Entitlements, phạm vi này mở rộng đến năm nền tảng khác — cho phép người mua trả tiền truy cập cộng đồng, mã nguồn, hoặc nội dung của bạn ngay khi thanh toán thành công, không cần bàn giao thủ công từ phía bạn:
Tích hợpGiao dịchHành vi thu hồi
DiscordGán vai trò đã chọn trong máy chủ Discord của bạn sau khi khách hàng hoàn tất OAuthVai trò bị xóa khi hủy hoàn/tiền lại
GitHubThêm khách hàng làm cộng sự vào kho lưu trữ riêng ở cấp độ quyền mà bạn chọnCộng sự bị xóa khi hủy hoàn/tiền lại
TelegramCung cấp liên kết mời tham gia một lần cho trò chuyện riêng hoặc kênh thông qua bot Telegram của bạnKhách bị đuổi khỏi trò chuyện khi hủy hoàn/tiền lại
FramerMở khóa liên kết remix mẫu Framer bị chặn bằng mã truy cậpMã truy cập bị vô hiệu khi hủy hoàn/tiền lại
NotionSao chép một trang mẫu Notion vào không gian làm việc của khách hàng sau khi họ ủy quyền qua OAuthTrang đã giao được lưu trữ khi hủy hoàn/tiền lại
Những dòng này gia nhập các tích hợp Khóa Giấy Phép (khóa duy nhất với giới hạn kích hoạt và hết hạn) và Tệp Kỹ Thuật Số (URL tải xuống đã ký trước cho sách điện tử, mẫu, tài liệu), tất cả đều được quản lý qua cùng một vòng đời cấp phát. Lợi ích ngay lập tức
Khả năngMô tả
Mẫu dùng lạiXác định một entitlement một lần (giới hạn kích hoạt, gói tệp, vai trò Discord, quyền repo, v.v.) và đính kèm vào bất kỳ sản phẩm nào
Cấp phát tự độngCấp phát khi payment.succeededsubscription.active, đồng nhất qua các lần gia hạn và kích hoạt lại
Thu hồi theo vòng đờiThu hồi khi subscription.cancelled, subscription.on_hold, subscription.expired, refund.succeeded, subscription.plan_changed, hoặc thu hồi thủ công qua API/bảng điều khiển — với revocation_reason đã điền sẵn
Luồng OAuth + gọi trực tiếp nền tảngOAuth cho sự đồng ý người đăng ký Discord, GitHub, và Notion; gọi trực tiếp nền tảng cho Telegram, Framer, và Tệp Kỹ Thuật Số
Phát hiện trôiPhát hiện khi vai trò Discord, cộng sự GitHub, hoặc trang Notion mất đồng bộ ở cấp độ nền tảng và thu hồi với revocation_reason: platform_external
Mã hóa lưu trữTất cả token nền tảng (OAuth, bot, cài đặt ứng dụng) được lưu trữ bằng AES-256-GCM
Webhooks Bốn sự kiện vòng đời mới được kích hoạt cho mỗi cấp phát:
Sự kiệnKích hoạt khi
entitlement_grant.createdMột cấp phát mới được tạo ra cho một khách hàng
entitlement_grant.deliveredQuyền truy cập của khách hàng được cung cấp
entitlement_grant.failedGiao hàng không thể hoàn thành; kiểm tra error_codeerror_message
entitlement_grant.revokedQuyền truy cập bị thu hồi; kiểm tra revocation_reason
Tìm hiểu thêm: Entitlements | Entitlement Grant Webhooks

2. Lý Do Hủy Đăng Ký Trong Cổng Khách Hàng

Khi khách hàng hủy đăng ký từ Cổng Khách Hàng, họ sẽ được nhắc chia sẻ lý do họ hủy trước khi xác nhận. Lý do được lưu trữ trên đăng ký dưới dạng cancellation_feedback, xuất hiện trong API và payload webhook, và có sẵn trong bảng điều khiển để bạn có thể dễ dàng nhận biết mẫu từ bỏ. Tùy chọn lý do
Giá trịNhãn đối diện khách hàng
too_expensiveQuá đắt
missing_featuresThiếu tính năng
switched_serviceChuyển sang dịch vụ khác
unusedKhông sử dụng đủ
customer_serviceDịch vụ khách hàng kém
low_qualityChất lượng kém
too_complexQuá phức tạp
otherKhác
Vị trí xuất hiện
  • Đối tượng Đăng ký: Trường cancellation_feedback mới (một trong các giá trị trên) và cancellation_comment (tùy chọn văn bản tự do), được điền khi khách hàng hủy
  • subscription.cancelled webhook: Cả hai trường đều được bao gồm trong payload
  • API: Chuyển cancellation_feedbackcancellation_comment đến PATCH /subscriptions/{id} khi lập lịch hoặc thực hiện hủy bỏ theo chương trình
// Reading the captured feedback
const subscription = await client.subscriptions.retrieve('sub_123');
console.log(subscription.cancellation_feedback); // e.g., "too_expensive"
console.log(subscription.cancellation_comment);  // e.g., "Switching to a competitor"
Tìm hiểu thêm: Cổng Khách Hàng | Subscription Webhooks

3. Số Tiền Tối Thiểu Cấu Hình Cho Ủy Quyền INR E-Mandates

Giờ đây bạn có thể cấu hình sàn ủy quyền cho các ủy quyền INR e-mandates trên các đăng ký thẻ Ấn Độ định kỳ. Trước đây, mọi đăng ký thẻ Ấn Độ dưới ₹15,000 sử dụng một ủy quyền on-demand cố định ₹15,000. Giờ đây bạn có thể ghi đè sàn này ở mức độ thương nhân — và từng phiên thanh toán hoặc đăng ký nếu cần. Số tiền ủy quyền được đăng ký với ngân hàng của khách hàng là max(mandate_min_amount_inr_paise, billing_amount), do đó giá trị này đóng vai trò là trần ủy quyền đối diện khách hàng mỗi khi thanh toán thấp hơn sàn.
// Per-subscription override
const subscription = await client.subscriptions.create({
  product_id: 'prod_inr_monthly',
  customer: { email: 'customer@example.in' },
  billing: { country: 'IN' /* ... */ },
  mandate_min_amount_inr_paise: 2_000_000 // ₹20,000 ceiling for this subscription
});

// Or via a checkout session
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_inr_monthly', quantity: 1 }],
  mandate_min_amount_inr_paise: 2_000_000,
  return_url: 'https://yoursite.com/return'
});
Độ ưu tiên giải pháp
  1. Ghi đè theo yêu cầu (mandate_min_amount_inr_paise trên phiên thanh toán, thanh toán, hoặc đăng ký)
  2. Cài đặt mức độ thương nhân trong cài đặt doanh nghiệp
  3. Mặc định của hệ thống là ₹15,000 (1,500,000 paise)
TrườngLoạiPhạm viÁp dụng cho
mandate_min_amount_inr_paiseinteger (INR paise)>= 1Đăng ký INR thẻ Ấn Độ trên các kết nối không phải Airwallex
Tìm hiểu thêm: Phương thức Thanh Toán Ấn Độ | Đăng Ký Với Ủy Quyền RBI

4. Cấu Hình Phí Tiền Tệ Thích Ứng Bao Gồm

Tiền Tệ Thích Ứng là tính năng cho phép bạn thu phí khách hàng theo đơn vị tiền tệ địa phương. Theo mặc định, phí 2–4% cho tiền tệ thích ứng sẽ do khách hàng chi trả và được thêm vào giá hiển thị của bạn. Với cài đặt Phí Bao Gồm mới, bạn có thể thay đổi điều này: giữ nguyên giá hiển thị cho khách hàng và tự chịu phí. Nơi cấu hình Đi tới Cài đặt → Doanh nghiệp, đảm bảo Định Giá Thích Ứng đã được kích hoạt và bật Phí Bao Gồm trong phần Tiền Tệ Thích Ứng. Ghi đè theo yêu cầu Bạn cũng có thể ghi đè mặc định thương nhân cho các phiên thanh toán, thanh toán, và đăng ký on-demand riêng lẻ bằng adaptive_currency_fees_inclusive boolean:
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
  adaptive_currency_fees_inclusive: true, // override business default
  return_url: 'https://yoursite.com/return'
});
Chế độKhách hàng thấyThương nhân giải quyết
Độc quyền (mặc định)Giá địa phương + phí 2–4% trên cùngGiá cơ bản đầy đủ
Bao gồmGiá địa phương (không đổi)Giá cơ bản trừ đi phí 2–4%
Tìm hiểu thêm: Tiền Tệ Thích Ứng

5. Ứng Dụng Dodo Payments Desktop

Ứng dụng chính thức Dodo Payments Desktop hiện có sẵn rộng rãi cho macOS, Windows, và Linux. Chạy bảng điều khiển thanh toán của bạn như một ứng dụng gốc nhanh, không cần tab trình duyệt.
Nền tảngTải về
macOS (Apple Silicon)Dodo.Payments_<version>_aarch64.dmg
macOS (Intel)Dodo.Payments_<version>_x64.dmg
WindowsDodo.Payments_<version>_x64-setup.exe (hoặc .msi)
Linux (Debian/Ubuntu)Dodo.Payments_<version>_amd64.deb
Linux (Fedora/RHEL)Dodo.Payments-<version>-1.x86_64.rpm
Linux (AppImage, tự cập nhật)Dodo.Payments_<version>_amd64.AppImage
Bên trong có gì
  • Tệp nhị phân gốc nhỏ — được xây dựng với Tauri trên webview gốc của hệ thống, tổng cộng khoảng 5 MB (không gói sẵn Chromium)
  • Được ký và chứng thực — các bản dựng macOS được ký với ID Nhà Phát triển Apple và chứng thực, vì vậy không có cảnh báo Gatekeeper
  • Tự động cập nhật — kiểm tra mỗi 4 giờ và áp dụng cập nhật đã ký tự động từ GitHub Releases (hoạt động trên macOS, Windows, và Linux AppImage)
  • Khay hệ thống + thanh menu — ẩn vào khay trên macOS, đầy đủ menu Tệp/Sửa/Xem/Trợ giúp với phím tắt (⌘⇧H đi đến bảng điều khiển, ⌘L sao chép URL hiện tại, ⌘⌥I công cụ phát triển)
  • Hỗ trợ liên kết sâu — liên kết xác thực magic-link mở thẳng trong ứng dụng
  • Nhiều cửa sổ — mở nhiều bảng điều khiển cạnh nhau

6. Thanh Toán Stablecoin (USDC, USDP, USDG)

Chấp nhận thanh toán stablecoin toàn cầu với thanh toán bằng USD. Khách hàng thanh toán từ ví stablecoin ưa thích của họ trên mạng lưới họ chọn; bạn nhận được USD fiat mà không có rủi ro biến động tiền điện tử, không có chiết khấu và không cần cơ sở hạ tầng ngân hàng từ phía khách hàng. Tiền tệ và mạng lưới hỗ trợ
StablecoinMạng lưới
USDCEthereum, Solana, Polygon, Base
USDPEthereum, Solana
USDGEthereum
Phạm vi
Chi tiếtGiá trị
Tiền tệ thanh toánUSD
Quốc gia hỗ trợToàn cầu (trừ Ấn Độ)
Đăng kýKhông hỗ trợ (chỉ thanh toán một lần)
Số tiền tối thiểu$0.50
Thanh toánUSD
Cấu hình Chuyển crypto trong allowed_payment_method_types khi tạo một phiên thanh toán:
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_123', quantity: 1 }],
  allowed_payment_method_types: ['crypto', 'credit', 'debit'],
  return_url: 'https://example.com/success'
});
Khách hàng sẽ thấy một địa chỉ ví và mã QR với số tiền stablecoin được tính toán theo tỷ giá hối đoái thực tế; khi blockchain xác nhận giao dịch, webhook payment.succeeded của bạn kích hoạt và khách hàng được chuyển hướng đến trang thành công của bạn. Tìm hiểu thêm: Thanh Toán Stablecoin

7. Nhập Khóa Giấy Phép Hiện Có

Giờ đây, bạn có thể nhập khóa giấy phép từ hệ thống khác vào Dodo Payments sử dụng Create License Key API. Điều này mở khóa di chuyển không gián đoạn từ bất kỳ nhà cung cấp khóa giấy phép bên ngoài nào, cho phép khách hàng hiện tại của bạn tiếp tục kích hoạt, xác minh, và hủy kích hoạt các khóa của họ với Dodo Payments mà không cần cấp lại.
const licenseKey = await client.licenseKeys.create({
  customer_id: 'cus_abc123',
  product_id: 'prod_456',
  key: 'YOUR-EXISTING-LICENSE-KEY',
  activations_limit: 5,
  expires_at: '2026-12-31T23:59:59Z',
});
Các khóa nhập vào được gắn thẻ source: "import" (so với source: "auto" cho các khóa được tạo tự động khi thanh toán), vì vậy bạn có thể phân biệt hàng nhập di chuyển từ các khóa cấp phát theo cách tự nhiên khi truy vấn GET /license_keys. Mã payment_id trên các khóa nhập vào là null vì chúng không được liên kết với giao dịch Dodo Payments. Tìm hiểu thêm: Khóa Giấy Phép | Create License Key API

8. require_phone_number cho Phiên Thanh Toán

Buộc khách hàng cung cấp số điện thoại trong quá trình thanh toán bằng cách đặt feature_flags.require_phone_number: true khi tạo một phiên thanh toán. Số điện thoại trở thành trường bắt buộc trên biểu mẫu thanh toán, với dạng xác thực biểu mẫu hiển thị “Cần có số điện thoại” nếu khách hàng để trống.
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
  feature_flags: {
    allow_phone_number_collection: true,
    require_phone_number: true
  },
  return_url: 'https://yoursite.com/return'
});
CờMặc địnhHành vi
allow_phone_number_collectiontrueHiển thị trường số điện thoại trên thanh toán
require_phone_numberfalseLàm cho trường số điện thoại trở thành bắt buộc
Tìm hiểu thêm: Tính Năng Thanh Toán | Create Checkout Session API

Sửa Lỗi & Cải Tiến

  • Sửa lỗi nhỏ và cải tiến tính ổn định trên toàn bộ nền tảng
Last modified on May 22, 2026