Quick Start Guide
Get your first checkout session running in under 5 minutes
API Reference & Live Testing
Explore the full API documentation and interactively test Checkout Session requests and responses.
Preview Checkout
Calculate pricing, taxes, and totals before creating a session.
Session Validity: Checkout sessions are valid for 24 hours by default. If you pass
confirm=true in your request, the session will only be valid for 15 minutes.Prerequisites
1
Dodo Payments Account
You’ll need an active Dodo Payments merchant account with API access.
2
API Credentials
Generate your API credentials from the Dodo Payments dashboard:
3
Products Setup
Create your products in the Dodo Payments dashboard before implementing checkout sessions.
Creating Your First Checkout Session
- Node.js SDK
- Python SDK
- REST API
API Response
All methods above return the same response structure:1
Get the checkout URL
Extract the
checkout_url from the API response.2
Redirect your customer
Direct your customer to the checkout URL to complete their purchase.
3
Handle the return
After payment, customers are redirected to your
return_url with query parameters including payment/subscription ID, status, customer email, and any license keys. See the return_url parameter docs for the full list.Request Body
Required Fields
Essential fields needed for every checkout session
Optional Fields
Additional configuration to customize your checkout experience
Required Fields
Array of products to include in the checkout session. Each product must have a valid
product_id from your Dodo Payments dashboard.Trường Tùy Chọn
Cấu hình những trường này để tùy chỉnh trải nghiệm thanh toán và thêm logic kinh doanh vào dòng thanh toán của bạn.Customer Information
Customer Information
Thông tin khách hàng. Bạn có thể đính kèm một khách hàng hiện có bằng ID của họ hoặc tạo hồ sơ khách hàng mới trong quá trình thanh toán.
- Attach Existing Customer
- New Customer
Đính kèm một khách hàng hiện có vào phiên thanh toán bằng ID của họ.
Thông tin địa chỉ thanh toán cho tính toán thuế chính xác, phòng chống gian lận và tuân thủ quy định.
Khi
confirm được đặt thành true, tất cả các trường địa chỉ thanh toán trở nên bắt buộc để tạo phiên thành công.Payment Configuration
Payment Configuration
Kiểm soát các phương thức thanh toán nào có sẵn cho khách hàng trong quá trình thanh toán. Điều này giúp tối ưu hóa cho các thị trường hoặc yêu cầu kinh doanh cụ thể.Các tùy chọn có sẵn:
credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, multibanco, bancontact_card, eps, ideal, przelewy24, paypal, sunbitVí dụ:Ghi đè lựa chọn tiền tệ mặc định với một loại tiền tệ thanh toán cố định. Sử dụng mã tiền tệ ISO 4217.Các loại tiền tệ được hỗ trợ:
USD, EUR, GBP, CAD, AUD, INR, và nhiều hơnVí dụ: "USD" cho USD, "EUR" cho EuroTrường này chỉ có hiệu quả khi giá chỉ định là bật. Nếu giá chỉ định bị tắt, tiền tệ mặc định của sản phẩm sẽ được sử dụng.
Hiển thị các phương thức thanh toán đã lưu trước đó cho khách hàng trở lại, cải thiện tốc độ thanh toán và trải nghiệm người dùng.
Session Management
Session Management
URL để chuyển hướng khách hàng sau khi hoàn tất thanh toán. Dodo Payments thêm các tham số truy vấn sau vào URL của bạn khi chuyển hướng:
Ví dụ URL chuyển hướng:
URL để chuyển hướng khách hàng khi họ nhấn nút quay lại hoặc hủy bỏ phiên thanh toán. Nếu không được cung cấp, nút quay lại sẽ không được hiển thị.
Nếu đúng, hoàn tất tất cả các chi tiết phiên ngay lập tức. API sẽ ném ra lỗi nếu dữ liệu cần thiết bị thiếu.
Áp dụng một hoặc nhiều mã giảm giá xếp chồng vào phiên thanh toán. Mã được áp dụng theo thứ tự mảng (mã đầu tiên giảm giá gốc, mã thứ hai giảm giá một mức đã giảm trước đó, và như vậy), lên đến mức tối đa 20 mã mỗi phiên.
Trường
discount_code đơn số dưới đây là ngừng sử dụng nhưng vẫn đang được hỗ trợ đầy đủ — các tích hợp hiện có vẫn hoạt động mà không cần thay đổi. Không thể kết hợp với discount_codes trong cùng một yêu cầu. Chuyển sang discount_codes khi thuận tiện để tận dụng việc xếp chồng.Ngừng sử dụng — ưu tiên
discount_codes cho các tích hợp mới. Trường này vẫn hoạt động nhằm đảm bảo khả năng tương thích ngược, nhưng không thể kết hợp với discount_codes trong cùng một yêu cầu.Cặp khóa-giá trị tùy chỉnh để lưu trữ thông tin bổ sung về phiên.
Ghi đè hành vi mặc định 3DS của thương gia cho phiên này.
Kích hoạt chế độ thu thập địa chỉ tối thiểu. Khi bật, thanh toán chỉ thu thập:
- Quốc gia: Luôn yêu cầu để xác định thuế
- Mã bưu chính/Postal code: Chỉ ở các khu vực cần thiết để tính thuế bán hàng, VAT hoặc GST
UI Customization & Features
UI Customization & Features
Custom Fields
Custom Fields
Thu thập thông tin bổ sung từ khách hàng trong quá trình thanh toán với các trường tùy chỉnh. Bạn có thể định nghĩa tối đa 5 trường tùy chỉnh cho mỗi phiên thanh toán. Phản hồi của khách hàng sẽ được bao gồm trong payload của webhook và có sẵn qua API.
Phản hồi của khách hàng với các trường tùy chỉnh được bao gồm trong:
- Webhooks:
payment.succeeded,subscription.active, và các payload sự kiện liên quan khác chứa mảngcustom_field_responses - API responses: Các đối tượng thanh toán và đăng ký bao gồm
custom_field_responses
Subscription Configuration
Subscription Configuration
Cấu hình bổ sung cho các phiên thanh toán chứa các sản phẩm đăng ký.
Ví dụ Sử dụng
Dưới đây là 10 ví dụ toàn diện trình bày các cấu hình phiên thanh toán khác nhau cho các kịch bản kinh doanh khác nhau:1. Thanh toán Đơn giản với Sản phẩm Đơn lẻ
2. Giỏ hàng Nhiều Sản phẩm
3. Đăng ký với Thời gian Dùng thử
4. Thanh toán đã được Xác nhận Trước
Khi
confirm được đặt thành true, khách hàng sẽ được chuyển trực tiếp đến trang thanh toán, bỏ qua các bước xác nhận.5. Thanh toán với Ghi đè Đơn vị tiền tệ
Mục
billing_currency chỉ có hiệu lực khi đơn vị tiền tệ thích ứng được bật trong cài đặt tài khoản của bạn. Nếu đơn vị tiền tệ thích ứng bị tắt, tham số này sẽ không có hiệu lực.6. Các Phương thức Thanh toán Lưu cho Khách hàng Quay lại
7. Thanh toán B2B với Thu thập ID Thuế
8. Thanh toán Chủ đề Tối với Mã Giảm giá Xếp chồng
9. Phương thức Thanh toán Khu vực (UPI cho Ấn Độ)
Để biết thông tin chi tiết về cấu hình và kiểm tra UPI, hãy xem trang Phương thức Thanh toán Ấn Độ.10. Thanh toán BNPL (Mua Trước Trả Sau)
Để biết thông tin chi tiết về cấu hình và kiểm tra BNPL, hãy xem trang Mua Trước Trả Sau (BNPL).11. Sử dụng Phương thức Thanh toán Hiện có cho Thanh toán Ngay lập tức
Sử dụng phương thức thanh toán đã lưu của khách hàng để tạo phiên thanh toán xử lý ngay lập tức, bỏ qua thu thập phương thức thanh toán:Phương thức thanh toán phải thuộc về khách hàng và tương thích với đơn vị tiền tệ thanh toán. Điều này cho phép mua hàng chỉ với một cú nhấp chuột cho khách hàng quay lại.
12. Liên kết Ngắn gọn cho URL Thanh toán Sạch hơn
Tạo các liên kết thanh toán ngắn hơn, có thể chia sẻ với các slug tùy chỉnh:13. Bỏ Qua Trang Thành công Thanh Toán với Chuyển hướng Ngay lập tức
Chuyển hướng khách hàng ngay lập tức sau khi hoàn tất thanh toán, bỏ qua trang thành công mặc định:Khi
redirect_immediately được bật, khách hàng sẽ được chuyển hướng đến return_url của bạn ngay sau khi hoàn tất thanh toán, bỏ qua toàn bộ trang thành công mặc định.14. Buộc Sử dụng Ngôn ngữ
Buộc hiển thị thanh toán bằng ngôn ngữ cụ thể, ghi đè việc phát hiện ngôn ngữ của trình duyệt khách hàng:ar), tiếng Catalan (ca), tiếng Trung (zh), tiếng Hà Lan (nl), tiếng Anh (en), tiếng Pháp (fr), tiếng Đức (de), tiếng Hebrew (he), tiếng Indonesia (id), tiếng Ý (it), tiếng Nhật (ja), tiếng Hàn (ko), tiếng Mã Lai (ms), tiếng Ba Lan (pl), tiếng Bồ Đào Nha (pt), tiếng Romania (ro), tiếng Nga (ru), tiếng Tây Ban Nha (es), tiếng Thụy Điển (sv), tiếng Thái (th), tiếng Thổ Nhĩ Kỳ (tr)
15. Thu thập Trường Tùy chỉnh
Thu thập thông tin bổ sung từ khách hàng trong quá trình thanh toán bằng cách sử dụng các trường tùy chỉnh:Phản hồi trường tùy chỉnh được tự động bao gồm trong payload của webhook (
payment.succeeded, subscription.active, v.v.) và có thể được truy xuất qua API. Sử dụng chúng để làm giàu CRM của bạn, kích hoạt luồng onboarding hoặc tùy chỉnh trải nghiệm khách hàng.text, number, email, url, date, dropdown, boolean
Xem trước Các Phiên Thanh toán
Trước khi tạo một phiên thanh toán, bạn có thể xem trước phân tích giá cả bao gồm thuế, giảm giá và tổng số. Điều này hữu ích cho việc hiển thị giá cả chính xác cho khách hàng trước khi họ tiến hành thanh toán.- Node.js SDK
- Python SDK
Preview API Reference
Xem toàn bộ tài liệu về endpoint xem trước.
Di chuyển từ Liên kết Động đến Phiên Thanh toán
Khác biệt Chính
Trước đây, khi tạo một liên kết thanh toán với Liên kết Động, bạn phải cung cấp địa chỉ thanh toán đầy đủ của khách hàng. Với Phiên Thanh toán, điều này không còn cần thiết nữa. Bạn chỉ cần truyền thông tin bạn có, và chúng tôi sẽ xử lý phần còn lại. Ví dụ:- Nếu bạn chỉ biết quốc gia thanh toán của khách hàng, chỉ cần cung cấp điều đó.
- Quy trình thanh toán sẽ tự động thu thập các chi tiết còn thiếu trước khi chuyển khách hàng đến trang thanh toán.
- Mặt khác, nếu bạn đã có tất cả thông tin yêu cầu và muốn bỏ qua trực tiếp đến trang thanh toán, bạn có thể truyền toàn bộ dữ liệu và bao gồm
confirm=truetrong yêu cầu của bạn.
Quá trình Di chuyển
Di chuyển từ Liên kết Động sang Phiên Thanh toán rất đơn giản:1
Update your integration
Cập nhật tích hợp của bạn để sử dụng phương pháp API hoặc SDK mới.
2
Adjust request payload
Điều chỉnh payload yêu cầu theo định dạng Phiên Thanh toán.
3
That's it!
Có. Không cần xử lý thêm hay các bước di chuyển đặc biệt nào từ phía bạn.
Tham khảo API liên quan
Create Checkout Session
Tham khảo API đầy đủ để tạo các phiên thanh toán với tất cả các tham số và tùy chọn có sẵn
Preview Checkout Session
Tham khảo API để xem trước giá cả, thuế và tổng số trước khi tạo một phiên