Tổng Quan
Dodo Payments API sử dụng mã trạng thái HTTP tiêu chuẩn và mã lỗi tùy chỉnh để chỉ ra sự thành công hoặc thất bại của các yêu cầu API. Khi xảy ra lỗi, API sẽ trả về mã trạng thái HTTP phù hợp và một phản hồi JSON chứa thông tin chi tiết về lỗi. Mỗi phản hồi lỗi bao gồm:- Mã trạng thái HTTP chỉ ra danh mục chung của lỗi
- Mã lỗi cụ thể xác định chính xác bản chất của lỗi
- Thông điệp lỗi dễ hiểu giải thích điều gì đã sai
- Thông tin chi tiết bổ sung về lỗi khi có thể
- Gỡ lỗi các vấn đề tích hợp
- Triển khai xử lý lỗi đúng cách trong ứng dụng của bạn
- Cung cấp phản hồi có ý nghĩa cho người dùng cuối
- Duy trì một hệ thống xử lý thanh toán vững chắc
Đây là các lỗi API và logic kinh doanh. Đối với các lý do từ chối thẻ trả về khi thanh toán thất bại (như
INSUFFICIENT_FUNDS hoặc CARD_DECLINED), hãy xem tham khảo Giao Dịch Thất Bại thay thế.Mã Lỗi API Tiêu Chuẩn
| HTTP Status | Tên | Miêu tả |
|---|---|---|
| 400 | Bad Request | Yêu cầu không hợp lệ hoặc chứa tham số không hợp lệ |
| 401 | Unauthorized | Xác thực thất bại hoặc API key không hợp lệ |
| 403 | Forbidden | API key không có quyền truy cập tài nguyên yêu cầu |
| 404 | Not Found | Tài nguyên yêu cầu không tồn tại |
| 405 | Method Not Allowed | Phương thức HTTP không được hỗ trợ cho endpoint này |
| 409 | Conflict | Yêu cầu mâu thuẫn với trạng thái hiện tại của tài nguyên |
| 422 | Unprocessable Entity | Yêu cầu định dạng đúng nhưng chứa lỗi về mặt ngữ nghĩa |
| 429 | Too Many Requests | Vượt quá giới hạn tốc độ |
| 500 | Internal Server Error | Xảy ra lỗi bất ngờ trên máy chủ của chúng tôi |
| 502 | Bad Gateway | Máy chủ nhận được phản hồi không hợp lệ từ máy chủ đầu nguồn |
| 503 | Service Unavailable | Dịch vụ tạm thời không khả dụng |
| 504 | Gateway Timeout | Máy chủ không kịp thời nhận phản hồi từ đầu nguồn |
Định Dạng Phản Hồi Lỗi
Khi xảy ra lỗi, API trả về một phản hồi JSON với cấu trúc sau:Tham Khảo Mã Lỗi
Các mã lỗi dưới đây được nhóm theo khu vực của API mà chúng liên quan. Mỗi mục liệt kê điều kiện kích hoạt và thông điệp API trả về.Authentication & Account
-
UNAUTHORIZED- Kích hoạt: Không có API key hoặc token/phạm vi không hợp lệ
- Thông điệp: Bạn không được phép thực hiện hành động này
-
MERCHANT_NOT_LIVE- Kích hoạt: Doanh nghiệp vẫn đang hoạt động trong chế độ thử nghiệm/sandbox
- Thông điệp: Người bán chưa hoạt động trực tiếp
Payments & Checkout
-
CHECKOUT_SESSION_CONSUMED- Kích hoạt: Phiên thanh toán đã tạo một thanh toán
- Thông điệp: Phiên thanh toán đã được sử dụng
-
NO_ELIGIBLE_PAYMENT_METHODS- Kích hoạt: Sau khi lọc, không còn gì
- Thông điệp: Không tìm thấy phương thức thanh toán đủ điều kiện
-
PAYMENT_NOT_SUCCEEDED- Kích hoạt: Thử hoàn trả/xử lý thanh toán không thành công
- Thông điệp: Thanh toán cung cấp chưa thành công
-
PREVIOUS_PAYMENT_PENDING- Kích hoạt: Thử tạo phí trong khi phí trước đó chưa có trạng thái cuối cùng
- Thông điệp: Không thể tạo phí mới vì thanh toán trước chưa thành công
-
UNSUCCESSFUL_PAYMENT_ID- Kích hoạt: ID thanh toán tham chiếu thanh toán không thành công
- Thông điệp: ID thanh toán có trạng thái không thành công.
Connectors & BYOP
Các lỗi này liên quan đến các đầu nối thanh toán do người bán sở hữu (Đem Theo Máy Xử Lý Của Bạn).-
BYOP_CONNECTOR_DISABLED- Kích hoạt: Cập nhật phương thức thanh toán trên một đăng ký được định tuyến qua đầu nối BYOP bị vô hiệu hóa
- Thông điệp: Đăng ký được định tuyến qua đầu nối BYOP của người bán hiện đang bị vô hiệu hóa
-
BYOP_CUSTOM_INVOICE_ADDRESS_MISSING- Kích hoạt: Thanh toán do người bán định tuyến (BYOP) bị thiếu địa chỉ hóa đơn tùy chỉnh cần thiết
- Thông điệp: Địa chỉ hóa đơn tùy chỉnh BYOP là bắt buộc khi thanh toán được định tuyến qua đầu nối của người bán
-
CONNECTOR_LABEL_ALREADY_EXISTS- Kích hoạt: Tạo đầu nối với nhãn đã tồn tại
- Thông điệp: Một đầu nối với nhãn này đã tồn tại. Vui lòng chọn một nhãn khác.
Refunds
-
EXISTING_REFUND_REQUEST_PROCESSING- Trigger: Yêu cầu hoàn tiền trước vẫn đang được xử lý
- Message: Yêu cầu hoàn tiền với trạng thái “Pending” vẫn đang được xử lý
-
LINE_ITEM_FULLY_REFUNDED- Kích hoạt: Thử hoàn trả một mục dòng đã được hoàn trả toàn bộ
- Thông điệp: Mục dòng đã được hoàn trả đầy đủ không thể hoàn trả thêm.
-
LINE_ITEM_NOT_FOUND- Kích hoạt: ID mục không thuộc thanh toán tham chiếu
- Thông điệp: Mục dòng không được tìm thấy trong thanh toán
-
LINE_ITEM_PRORATED- Kích hoạt: Thử hoàn trả hoặc cập nhật trên dòng được tính toán
- Thông điệp: Mục dòng không thể hoàn trả vì đã được tính toán
-
LINE_ITEM_REFUND_AMOUNT_TOO_HIGH- Kích hoạt: Số tiền hoàn trả > số tiền đã thanh toán (bao gồm cả thuế)
- Thông điệp: Mục dòng yêu cầu số tiền hoàn trả bao gồm thuế là cao hơn số tiền đã thanh toán
-
LINE_ITEM_REFUND_AMOUNT_TOO_LOW- Kích hoạt: Số tiền hoàn trả dưới ngưỡng tối thiểu
- Thông điệp: Mục dòng yêu cầu số tiền hoàn trả là quá thấp
-
NOTHING_TO_REFUND- Kích hoạt: Không còn số tiền có thể hoàn trả; tất cả các mục dòng tích cực đã được hoàn trả đầy đủ
- Thông điệp: Không còn số tiền có thể hoàn trả. Tất cả các mục dòng tích cực đã được hoàn trả đầy đủ.
-
PARTIAL_REFUND_NOT_ALLOWED- Kích hoạt: Thử hoàn trả một phần trên phương thức thanh toán chỉ hỗ trợ hoàn trả toàn bộ
- Thông điệp: Hoàn trả một phần không được phép cho phương thức thanh toán này
-
PAYMENT_ALREADY_REFUNDED- Kích hoạt: Trùng lặp hoàn trả
- Thông điệp: Thanh toán này đã được hoàn trả
-
PAYMENT_HAS_BEEN_REFUNDED- Kích hoạt: Thanh toán đã được hoàn trả đầy đủ
- Thông điệp: ID thanh toán đã được hoàn trả đầy đủ.
-
REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT- Kích hoạt: Tổng số tiền hoàn trả > số tiền đã thanh toán
- Thông điệp: Số tiền hoàn trả tính toán lớn hơn số tiền đã thanh toán
-
REFUND_WINDOW_EXPIRED- Kích hoạt: Ngoài khung thời gian hoàn trả
- Thông điệp: Hoàn trả không thể được thực hiện ngày sau khi tạo thanh toán. Liên hệ support@dodopayments.com.
-
ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED- Kích hoạt: Thử hoàn trả thanh toán có số tiền bằng không
- Thông điệp: Không thể hoàn trả thanh toán với số tiền tiền tệ bằng không
Subscriptions & Add-ons
-
ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED- Kích hoạt: Thử thêm tiện ích vào đăng ký thanh toán theo lượng sử dụng
- Thông điệp: Tiện ích trong Subscriptions không được hỗ trợ cho Billing Dựa trên Lượng Sử Dụng
-
ADDONS_NOT_ALLOWED_FOR_ON_DEMAND- Kích hoạt: Thử thêm tiện ích vào đăng ký theo yêu cầu
- Thông điệp: Không được phép thêm tiện ích vào các đăng ký theo yêu cầu
-
CANCEL_SCHEDULED_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Kích hoạt: Cổng Thông Tin Khách Hàng cố gắng hủy thay đổi kế hoạch đã lên lịch trong khi doanh nghiệp đã vô hiệu hóa hành động đó
- Thông điệp: Hủy thay đổi kế hoạch theo lịch đã bị vô hiệu hóa đối với cổng thông tin khách hàng.
-
CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Kích hoạt: Thử tính phí đăng ký được lên lịch để hủy
- Thông điệp: Đăng ký đã được lên lịch để hủy
-
CUSTOMER_HAS_EXISTING_SUBSCRIPTION- Kích hoạt: Tạo đăng ký cho khách hàng đã có một cái, khi không cho phép nhiều đăng ký cho mỗi khách hàng
- Thông điệp: Khách hàng đã có một đăng ký hiện tại. Để cho phép nhiều đăng ký cho mỗi khách hàng, hãy thay đổi cài đặt doanh nghiệp
-
DO_NOT_BILL_NOT_ALLOWED_IN_CUSTOMER_PORTAL- Kích hoạt:
do_not_billchế độ pro-ratomáy sử dụng trong một thay đổi kế hoạch Cổng thông tin khách hàng - Thông điệp: Không cho phép chế độ pro-bill trong cổng thông tin khách hàng
- Kích hoạt:
-
DUPLICATE_ADDON_IDS_IN_REQUEST- Kích hoạt:
addon_idxuất hiện nhiều lần trong yêu cầu - Thông điệp: Không được phép dùng trùng ID tiện ích
- Kích hoạt:
-
INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED- Kích hoạt: Thay đổi kế hoạch trên đăng ký không hoạt động
- Thông điệp: Thay đổi kế hoạch không được hỗ trợ cho các đăng ký không hoạt động
-
INVALID_PRORATION_MODE_WITH_NEXT_BILLING_DATE- Kích hoạt: Chế độ proration khác
full_immediatelyđược sử dụng vớieffective_at: next_billing_date - Thông điệp: Chỉ được phép chế độ full_immediately với hiệu lực_tại: ngày_thanh_toán_tiếp_theo
- Kích hoạt: Chế độ proration khác
-
MISSING_ADDON_IDS- Kích hoạt: Danh sách
addon_idrỗng hoặc ID không xác định - Thông điệp: Một hoặc nhiều ID sản phẩm không tồn tại:
- Kích hoạt: Danh sách
-
ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED- Kích hoạt: Không cho phép chuyển đổi kế hoạch cho yêu cầu
- Thông điệp: Thay đổi kế hoạch không được hỗ trợ cho các đăng ký theo yêu cầu
-
ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED- Kích hoạt: Thử sử dụng theo yêu cầu với thanh toán dựa trên số lượng dùng
- Thông điệp: Không hỗ trợ các đăng ký theo yêu cầu cho thanh toán dựa trên số lượng dùng
-
ONE_TIME_PRODUCTS_NOT_ALLOWED_FOR_ON_DEMAND- Kích hoạt: Sản phẩm một lần thêm vào một đăng ký theo yêu cầu
- Thông điệp: Không hỗ trợ các sản phẩm một lần cho các đăng ký theo yêu cầu
-
PENDING_PLAN_CHANGE_EXISTS- Kích hoạt: Yêu cầu thay đổi kế hoạch mới trong khi cái trước vẫn đang chờ thanh toán
- Thông điệp: Đang tồn tại việc thay đổi kế hoạch cho đăng ký này. Vui lòng chờ thanh toán hiện tại hoàn tất.
-
PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Kích hoạt: Thay đổi kế hoạch thông qua Cổng thông tin khách hàng trong khi doanh nghiệp đó đã vô hiệu hóa nó
- Thông điệp: Thay đổi kế hoạch đăng ký cho Cổng thông tin khách hàng đã bị vô hiệu hóa.
-
PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Kích hoạt: Thử thay đổi kế hoạch đăng ký được lên lịch để hủy
- Thông điệp: Đăng ký đã được lên lịch để hủy
-
SCHEDULE_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Kích hoạt: Lập lịch thay đổi kế hoạch thông qua Cổng thông tin khách hàng trong khi doanh nghiệp đã vô hiệu hóa nó
- Thông điệp: Lập lịch thay đổi kế hoạch đã bị vô hiệu hóa cho doanh nghiệp này.
-
SCHEDULED_PLAN_CHANGE_EXISTS- Kích hoạt: Tạo một thay đổi kế hoạch đã lên lịch khi có một thay đổi đã tồn tại
- Thông điệp: Đã tồn tại một thay đổi kế hoạch được lên lịch cho đăng ký này. Vui lòng hủy bỏ thay đổi đã được lên lịch trước khi tạo một thay đổi mới.
-
SCHEDULED_PLAN_CHANGE_NOT_FOUND- Kích hoạt: Tham khảo hoặc hủy bỏ một thay đổi kế hoạch được lên lịch không tồn tại
- Thông điệp: Không tìm thấy thay đổi kế hoạch được lên lịch cho đăng ký này.
-
SUBSCRIPTION_EXPIRED- Kích hoạt: Thanh toán quá
ends_at - Thông điệp: Đăng ký đã hết hạn không thể tạo phí mới
- Kích hoạt: Thanh toán quá
-
SUBSCRIPTION_INACTIVE- Kích hoạt: Trạng thái ≠
ACTIVE - Thông điệp: Đăng ký không hoạt động
- Kích hoạt: Trạng thái ≠
-
SUBSCRIPTION_NOT_ON_DEMAND- Kích hoạt: Dự kiến theo yêu cầu nhưng lại nhận được khoảng cố định
- Thông điệp: Đăng ký này đã không còn theo yêu cầu
-
SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED- Kích hoạt: Thanh toán đăng ký vượt quá số lần thử tối đa
- Thông điệp: Giới hạn thử lại tối đa 10 lần vượt quá cho đăng ký này
Products, Cart & Brands
-
BRAND_MISMATCH- Kích hoạt: Các mặt hàng trong giỏ thuộc các thương hiệu khác nhau
- Thông điệp: Tất cả các mặt hàng trong giỏ sản phẩm nên thuộc về cùng một thương hiệu
-
BRAND_NOT_ENABLED- Kích hoạt: Thương hiệu đã bị vô hiệu hóa hoặc không hoạt động
- Thông điệp: Thương hiệu được cung cấp không được bật
-
BRAND_SUBMISSION_NOT_ENABLED- Kích hoạt: Tính năng gửi lại xác minh thương hiệu chưa được kích hoạt
- Thông điệp: Việc gửi lại xác minh thương hiệu chưa được kích hoạt
-
FILE_IN_USE- Kích hoạt: Xóa một tệp sản phẩm kỹ thuật số vẫn còn được tham chiếu bởi các quyền lợi đang hoạt động (chuyển
?force=trueđể ghi đè) - Thông điệp: Tệp kỹ thuật số đang được tham chiếu bởi các quyền lợi đang hoạt động
- Kích hoạt: Xóa một tệp sản phẩm kỹ thuật số vẫn còn được tham chiếu bởi các quyền lợi đang hoạt động (chuyển
-
INVALID_SUGGESTED_PRICE- Kích hoạt: Giá PWYW < giá tối thiểu cho phép
- Thông điệp: Giá đề xuất không thể thấp hơn giá tối thiểu. Trong trường hợp trả những gì bạn muốn, giá được coi là số tiền chấp nhận tối thiểu
-
LOCALIZED_PRICE_ALREADY_EXISTS- Kích hoạt: Giá đã được định địa phương trước đó cho sản phẩm và quốc gia/tiền tệ này
- Thông điệp: Đã có một giá được định địa phương cho sản phẩm và quốc gia/tiền tệ này
-
LOCALIZED_PRICE_DUPLICATES_BASE- Kích hoạt: Giá định địa phương trùng với tiền tệ/quốc gia cơ bản của sản phẩm
- Thông điệp: Giá định địa phương trùng với tiền tệ/quốc gia cơ bản của sản phẩm
-
LOCALIZED_PRICE_SHAPE_MISMATCH- Kích hoạt: Hình dạng giá định địa phương không khớp với
pricing_modecủa sản phẩm - Thông điệp: Hình dạng giá định địa phương không khớp với chế độ giá của sản phẩm
- Kích hoạt: Hình dạng giá định địa phương không khớp với
-
MISSING_PRODUCT_INFORMATION- Kích hoạt: Sản phẩm tồn tại nhưng thông tin bắt buộc thiếu
- Thông điệp: Sản phẩm tồn tại nhưng thông tin bắt buộc khác thiếu hoặc không hợp lệ
-
PAY_AS_YOU_WANT_AMOUNT_REQUIRED- Kích hoạt: Thiếu giá cho sản phẩm PWYW
- Thông điệp: Số tiền là bắt buộc cho sản phẩm “trả những gì bạn muốn”
-
PRODUCT_CART_EMTPY- Kích hoạt: Gửi giỏ sản phẩm trống
- Thông điệp: giỏ_sản_phẩm trống (mã lỗi được viết
EMTPYđể khớp với giá trị chính xác mà API trả về)
-
PRODUCT_COLLECTION_IS_DELETED- Kích hoạt: Vận hành trên bộ sưu tập sản phẩm đã bị xóa
- Thông điệp: Không có thông điệp
-
PRODUCT_COLLECTION_MUST_HAVE_PRODUCTS- Kích hoạt: Xóa sản phẩm cuối cùng (hoặc nhóm cuối cùng có sản phẩm) khỏi bộ sưu tập
- Thông điệp: Không thể xóa sản phẩm cuối cùng khỏi bộ sưu tập. Thay vào đó, hãy lưu trữ bộ sưu tập.
-
PRODUCT_IS_DELETED- Kích hoạt: Sản phẩm được xóa mềm
- Thông điệp: Không có thông điệp
-
PRODUCT_PRICING_MODE_REQUIRED- Kích hoạt: Thêm giá định địa phương trước khi
pricing_modecủa sản phẩm được đặt - Thông điệp: Phải đặt định giá sản phẩm trước khi thêm giá định địa phương
- Kích hoạt: Thêm giá định địa phương trước khi
-
SLUG_ALREADY_TAKEN- Kích hoạt: Slug sản phẩm hoặc URL ngắn được yêu cầu đã được sử dụng
- Thông điệp: Slug đã được sử dụng
-
UNABLE_TO_EDIT_PRIMARY_BRAND- Kích hoạt: Thử cập nhật thương hiệu chính qua API thông thường
- Thông điệp: Không thể cập nhật thương hiệu chính qua endpoint API này.
Discounts
-
DISCOUNT_ALREADY_USED_ON_SUBSCRIPTION- Kích hoạt: Áp dụng lại một mã giảm giá đã được sử dụng trên đăng ký này
- Thông điệp: Mã giảm giá này đã được sử dụng trên đăng ký này
-
DISCOUNT_CODE_ALREADY_EXISTS- Kích hoạt: Tạo mã giảm giá trùng lặp
- Thông điệp: Mã giảm giá đã tồn tại
-
DISCOUNT_CODE_EXPIRED- Kích hoạt: Mã giảm giá vượt quá
expires_at - Thông điệp: Mã giảm giá đã hết hạn
- Kích hoạt: Mã giảm giá vượt quá
-
DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED- Kích hoạt: Giảm giá được tái sử dụng sau khi
usage_limitđạt tới - Thông điệp: Giới hạn sử dụng không thể nhỏ hơn số lần_used / Mã giảm giá đã đạt giới hạn sử dụng
- Kích hoạt: Giảm giá được tái sử dụng sau khi
-
DISCOUNT_NOT_APPLICABLE_TO_NEW_PRODUCT- Kích hoạt: Thay đổi kế hoạch cho sản phẩm mã giảm giá hiện tại không áp dụng
- Thông điệp: Mã giảm giá không áp dụng cho sản phẩm của kế hoạch mới
-
DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND- Kích hoạt: Áp dụng mã cho đăng ký theo yêu cầu
- Thông điệp: Phiếu giảm giá không có sẵn cho các đăng ký theo yêu cầu
-
DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT- Kích hoạt: Áp dụng mã cho sản phẩm không liên quan
- Thông điệp: Phiếu giảm giá không có sẵn cho sản phẩm này
-
INVALID_DISCOUNT_CODE- Kích hoạt: Mã không tồn tại / không thể áp dụng
- Thông điệp: Mã giảm giá không hợp lệ / Mã giảm giá không thể áp dụng cho bất kỳ sản phẩm nào trong giỏ hàng
-
INVALID_PERCENTAGE- Kích hoạt: Số lượng phần trăm > 100% (hoặc 10.000 điểm cơ bản)
- Thông điệp: Số lượng phần trăm không thể nhiều hơn 10000 / Mã giảm giá số tiền không thể nhiều hơn 100%
-
UNSUPPORTED_DISCOUNT_TYPE- Kích hoạt: Giảm giá số tiền cố định, v.v., chưa hoạt động
- Thông điệp: Hiện tại chỉ hỗ trợ các mã giảm giá phần trăm
License Keys
-
ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT- Kích hoạt: Kích hoạt khóa giấy phép: giới hạn mới < số lượng hiện tại
- Thông điệp: Giới hạn kích hoạt mới không thể nhỏ hơn số lượng hiện tại
-
INACTIVE_LICENSE_KEY- Kích hoạt: Trạng thái khóa ≠
ACTIVE - Thông điệp: Khóa giấy phép không hoạt động
- Kích hoạt: Trạng thái khóa ≠
-
LICENSE_KEY_LIMIT_REACHED- Kích hoạt: Kích hoạt = giới hạn
- Thông điệp: Giới hạn kích hoạt khóa giấy phép đã đạt tới
-
LICENSE_KEY_NOT_FOUND- Kích hoạt: ID phiên hoặc ID khóa không hợp lệ
- Thông điệp: Phiên khóa giấy phép không được tìm thấy hoặc không thuộc về khóa giấy phép này
-
NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS- Kích hoạt: Thử đặt ngày hết hạn cho khóa dựa trên đăng ký
- Thông điệp: Không thể đặt ngày hết hạn cho khóa giấy phép dựa trên đăng ký
Usage-Based Billing & Meters
-
DUPLICATE_METER_IDS_IN_REQUEST- Kích hoạt: ID đồng hồ giống nhau xuất hiện nhiều lần trong yêu cầu
- Thông điệp: Không được phép dùng trùng ID đồng hồ
-
INVALID_QUANTITY- Kích hoạt: Số lượng không hợp lệ được chỉ định cho giá sử dụng dựa trên
- Thông điệp: Chỉ được phép 1 số lượng trong các sản phẩm giá dựa trên sử dụng
-
METER_IS_DELETED- Kích hoạt: Thử sử dụng đồng hồ đã bị xóa
- Thông điệp: Đồng hồ đã bị xóa
-
MISSING_METER_IDS- Kích hoạt: Danh sách ID đồng hồ trống hoặc chứa ID không hợp lệ
- Thông điệp: Một hoặc nhiều ID đồng hồ không tồn tại:
Credit-Based Billing
-
CREDIT_ENTITLEMENT_IS_DELETED- Kích hoạt: Vận hành trên quyền hạn tín dụng đã bị xóa
- Thông điệp: Quyền hạn tín dụng đã bị xóa
-
CREDIT_ENTITLEMENT_NAME_ALREADY_EXISTS- Kích hoạt: Tạo quyền hạn tín dụng với tên đã tồn tại
- Thông điệp: Quyền hạn tín dụng với tên này đã tồn tại
-
OVERAGE_LIMIT_EXCEEDED- Kích hoạt: Một lượng sử dụng hoặc khấu trừ tín dụng sẽ vượt quá giới hạn số dư cấu hình
- Thông điệp: Giới hạn số dư vượt quá
Wallet
-
INSUFFICIENT_WALLET_FUNDS- Kích hoạt: Số dư ví < số tiền ghi nợ
- Thông điệp: Không đủ tiền trong ví
-
NEGATIVE_BALANCE_ADJUSTMENT- Kích hoạt: Thử làm cho số dư ví âm
- Thông điệp: Không được phép làm cho số dư ví âm
Currency, Tax & Region
-
EXCHANGE_RATE_NOT_FOUND- Kích hoạt: Không có tỷ giá cho cặp tiền tệ
from → to - Thông điệp: Không tìm thấy tỷ giá để chuyển đổi từ Tiền tệ đến Tiền tệ
- Kích hoạt: Không có tỷ giá cho cặp tiền tệ
-
INVALID_TAX_ID- Kích hoạt: VAT/GST/TIN không vượt qua xác nhận
- Thông điệp: ID thuế không hợp lệ
-
REQUEST_AMOUNT_BELOW_MINIMUM- Kích hoạt: Số tiền < tối thiểu của sản phẩm
- Thông điệp: Số tiền không thể ít hơn số tiền tối thiểu đã chỉ định cho sản phẩm
-
TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT- Kích hoạt: Tổng số tiền giỏ hàng < tối thiểu của cổng thanh toán
- Thông điệp: Yêu cầu số tiền tối thiểu là để xử lý thanh toán
-
UNSUPPORTED_BILLING_CURRENCY- Kích hoạt: Đăng ký bị hạn chế chỉ với USD
- Thông điệp: Không hỗ trợ tiền tệ thanh toán không phải USD cho đăng ký
-
UNSUPPORTED_COUNTRY- Kích hoạt: Khu vực địa lý chưa được hỗ trợ
- Thông điệp: Quốc gia hiện không được hỗ trợ
-
UNSUPPORTED_CURRENCY- Kích hoạt: Tiền tệ của sản phẩm hoặc tiện ích bổ sung không hợp lệ
- Thông điệp: Hiện tại chỉ hỗ trợ USD và INR / Chỉ hỗ trợ USD và INR cho giá tiện ích bổ sung / Chỉ có thể yêu cầu USD hoặc INR cho tiền tệ thanh toán / Không được hỗ trợ tiền tệ / Tiền tệ bất ngờ cho đăng ký thẻ Ấn Độ
-
UNSUPPORTED_TAX_CATEGORY- Kích hoạt: Chuỗi danh mục thuế không nằm trong enum
- Thông điệp: Danh mục hiện không được hỗ trợ
Validation & Requests
-
DUPLICATE_LINE_ITEMS_IN_REQUEST- Kích hoạt:
item_idxuất hiện hai lần trongitems[] - Thông điệp: Đã chỉ định các item_ids trùng nhau trong mảng các mục
- Kích hoạt:
-
INVALID_QUERY_PARAMS- Kích hoạt: Tham số truy vấn loại trừ lẫn nhau / không hợp lệ
- Thông điệp: Tham số truy vấn chỉ nên có time_frame hoặc (bắt đầu, kết thúc)
-
INVALID_REQUEST_BODY- Kích hoạt: JSON không hợp lệ hoặc vi phạm schema
- Thông điệp: Nội dung yêu cầu của bạn không hợp lệ. Vui lòng kiểm tra tiêu đề và đối tượng yêu cầu của bạn.
-
INVALID_REQUEST_PARAMETERS- Kích hoạt: Ngữ nghĩa sai (ví dụ: ngày trong quá khứ)
- Thông điệp: Không thể thay đổi ngày thanh toán tiếp theo về thời gian trong quá khứ
-
MAXIMUM_KEYS_REACHED- Kích hoạt: Metadata / các trường tùy chỉnh vượt quá 50 cặp
- Thông điệp: Vượt quá 50 cặp key-value
General & System
-
INTEGER_CONVERSION_FAILURE- Kích hoạt: Bất kỳ chuyển đổi integer ↔ string/decimal không thành công phía máy chủ
- Thông điệp: Lỗi chuyển đổi số nguyên
-
INTERNAL_SERVER_ERROR- Kích hoạt: Ngoại lệ không bị bắt; bạn nên ghi thông tin chi tiết phía máy chủ
- Thông điệp: Không có thông điệp công khai (500 tổng quát)
-
NOT_FOUND- Kích hoạt: 404 tổng quát cho bất kỳ tài nguyên nào bị thiếu
- Thông điệp: Không tìm thấy mục (hoặc cụ thể hơn)
-
TOO_MANY_REQUESTS- Kích hoạt: Giới hạn tốc độ 429
- Thông điệp: Không có thông điệp
-
UNSUPPORTED_ACTION- Kích hoạt: Hành động không được hỗ trợ cho loại tài nguyên
- Thông điệp: Thay đổi kế hoạch cho các đăng ký dựa trên sử dụng không được hỗ trợ
Best Practices
- Luôn xử lý lỗi một cách khéo léo trong ứng dụng của bạn
- Thực hiện ghi nhật ký lỗi thích hợp
- Sử dụng thông điệp lỗi phù hợp cho người dùng cuối
- Thực hiện logic thử lại cho các lỗi tạm thời
- Liên hệ hỗ trợ cho các vấn đề chưa giải quyết