अवलोकन
Dodo Payments API मानक HTTP स्थिति कोड और कस्टम त्रुटि कोड का उपयोग करता है ताकि API अनुरोधों की सफलता या विफलता को इंगित किया जा सके। जब कोई त्रुटि होती है, तो API एक उपयुक्त HTTP स्थिति कोड और त्रुटि के बारे में विस्तृत जानकारी प्रदान करने वाले JSON प्रतिक्रिया को लौटाता है। प्रत्येक त्रुटि प्रतिक्रिया में शामिल हैं:- एक HTTP स्थिति कोड जो त्रुटि की सामान्य श्रेणी को इंगित करता है
- एक विशिष्ट त्रुटि कोड जो त्रुटि की सटीक प्रकृति की पहचान करता है
- एक मानव-पठनीय त्रुटि संदेश जो बताता है कि क्या गलत हुआ
- जब लागू हो, तो त्रुटि के बारे में अतिरिक्त विवरण
- एकीकरण मुद्दों को डिबग करने के लिए
- अपने एप्लिकेशन में उचित त्रुटि हैंडलिंग लागू करने के लिए
- अंतिम उपयोगकर्ताओं को अर्थपूर्ण फीडबैक प्रदान करने के लिए
- एक मजबूत भुगतान प्रसंस्करण प्रणाली बनाए रखने के लिए
ये API और व्यापार-तर्क त्रुटियाँ हैं। किसी असफल भुगतान पर लौटाए गए कार्ड अस्वीकार कारणों के लिए (जैसे
INSUFFICIENT_FUNDS या CARD_DECLINED), लेनदेन विफलताएं संदर्भ देखें।मानक API त्रुटि कोड
त्रुटि प्रतिक्रिया प्रारूप
जब कोई त्रुटि होती है, तो API निम्नलिखित संरचना के साथ JSON प्रतिक्रिया लौटाता है:त्रुटि कोड संदर्भ
नीचे दिए गए त्रुटि कोड उस API क्षेत्र द्वारा समूहित हैं जिससे वे संबंधित हैं। प्रत्येक प्रविष्टि में इसे ट्रिगर करने की स्थिति और API द्वारा लौटाया गया संदेश सूचीबद्ध है।प्रमाणीकरण और खाता
-
UNAUTHORIZED- ट्रिगर: कोई API कुंजी या अमान्य टोकन/स्कोप नहीं
- संदेश: इस क्रिया को करने की आपको अनुमति नहीं है
-
MERCHANT_NOT_LIVE- Trigger: व्यवसाय अभी भी Test Mode में है
- Message: Merchant लाइव नहीं है
-
BUSINESS_ARCHIVED- Trigger: archived किए गए business के लिए कोई भी customer-facing request (checkout, payment link, storefront, Customer Portal, या license key)
- Message: यह business archived है और अब requests स्वीकार नहीं करता
Payments & Checkout
-
CHECKOUT_SESSION_CONSUMED- Trigger: Checkout session ने पहले ही payment generate कर दिया है
- Message: Checkout session का पहले ही उपयोग किया जा चुका है
-
NO_ELIGIBLE_PAYMENT_METHODS- Trigger: Filtering के बाद कुछ भी शेष नहीं रहा
- Message: कोई eligible payment methods नहीं मिले
-
PAYMENT_NOT_SUCCEEDED- Trigger: असफल payment को refund/process करने का प्रयास
- Message: प्रदान किया गया payment सफल नहीं हुआ है
-
PREVIOUS_PAYMENT_PENDING- Trigger: पिछला payment non-terminal state में होने के दौरान charge बनाने का प्रयास
- Message: नया charge नहीं बनाया जा सकता क्योंकि पिछला payment अभी तक सफल नहीं हुआ है
-
UNSUCCESSFUL_PAYMENT_ID- Trigger: Payment ID असफल payment को reference करता है
- Message: Payment ID का status असफल है।
Connectors & BYOP
ये errors merchant-owned payment connectors (Bring Your Own Processor) से संबंधित हैं।-
BYOP_CONNECTOR_DISABLED- Trigger: disabled BYOP connector के माध्यम से routed subscription पर payment method update करना
- Message: यह subscription merchant के अपने (BYOP) connector के माध्यम से routed है, जो वर्तमान में disabled है
-
BYOP_CUSTOM_INVOICE_ADDRESS_MISSING- Trigger: merchant-routed (BYOP) payment में आवश्यक custom invoice address मौजूद नहीं है
- Message: जब payment merchant के connector के माध्यम से routed हो, तो BYOP custom invoice address आवश्यक है
-
CONNECTOR_LABEL_ALREADY_EXISTS- Trigger: पहले से मौजूद label वाले connector को बनाना
- Message: इस label वाला connector पहले से मौजूद है। कृपया कोई अलग label चुनें।
Refunds
-
EXISTING_REFUND_REQUEST_PROCESSING- Trigger: पिछली refund request अभी भी process हो रही है
- Message: “Pending” status वाली refund request अभी भी process हो रही है
-
LINE_ITEM_FULLY_REFUNDED- Trigger: पहले से पूरी तरह refunded line item को refund करने का प्रयास
- Message: Line item पूरी तरह refunded है और इसे आगे refund नहीं किया जा सकता।
-
LINE_ITEM_NOT_FOUND- Trigger: Item ID referenced payment का हिस्सा नहीं है
- Message: Payment में line item नहीं मिला
-
LINE_ITEM_PRORATED- Trigger: prorated line पर refund या update का प्रयास
- Message: Line item को refund नहीं किया जा सकता क्योंकि यह prorated है
-
LINE_ITEM_REFUND_AMOUNT_TOO_HIGH- Trigger: Refund amount > paid amount (tax incl.)
- Message: Line item के लिए tax सहित requested refund amount है, जो paid amount से अधिक है
-
LINE_ITEM_REFUND_AMOUNT_TOO_LOW- Trigger: Refund amount minimum threshold से कम है
- Message: Line item के लिए requested refund amount है, जो बहुत कम है
-
NOTHING_TO_REFUND- Trigger: कोई refundable amount शेष नहीं है; सभी positive line items पहले ही पूरी तरह refunded हैं
- Message: कोई refundable amount शेष नहीं है। सभी positive line items पूरी तरह refunded हो चुके हैं।
-
PARTIAL_REFUND_NOT_ALLOWED- Trigger: केवल full refunds समर्थित करने वाले payment method पर partial refund का प्रयास
- Message: इस payment method के लिए partial refunds की अनुमति नहीं है
-
PAYMENT_ALREADY_REFUNDED- Trigger: Duplicate refund
- Message: यह payment पहले ही refunded हो चुका है
-
PAYMENT_HAS_BEEN_REFUNDED- Trigger: Payment पूरी तरह refunded है
- Message: Payment ID पूरी तरह refunded हो चुका है।
-
REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT- Trigger: Aggregate refund amount > paid amount
- Message: Calculated refund amount paid amount से अधिक है
-
REFUND_WINDOW_EXPIRED- Trigger: अनुमत refund window के बाहर
- Message: Payment creation के दिनों बाद refunds शुरू नहीं किए जा सकते। support@dodopayments.com से संपर्क करें।
-
ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED- Trigger: Zero-amount payment को refund करने का प्रयास
- Message: Zero currency amount वाले payment को refund नहीं किया जा सकता
Subscriptions & Add-ons
-
ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED- Trigger: usage-based billing subscriptions में addons जोड़ने का प्रयास
- Message: Usage Based Billing के लिए Subscriptions में addons समर्थित नहीं हैं
-
ADDONS_NOT_ALLOWED_FOR_ON_DEMAND- Trigger: on-demand subscriptions में addons जोड़ने का प्रयास
- Message: On demand subscriptions में addons की अनुमति नहीं है
-
CANCEL_SCHEDULED_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Trigger: Customer Portal scheduled plan change cancel करने का प्रयास करता है, जबकि business ने यह action disabled किया है
- Message: Customer portal के लिए scheduled plan change cancel करना disabled है।
-
CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Trigger: cancellation के लिए scheduled subscription को charge करने का प्रयास
- Message: Subscription cancellation के लिए scheduled है
-
CUSTOMER_HAS_EXISTING_SUBSCRIPTION- Trigger: ऐसे customer के लिए subscription बनाना जिसके पास पहले से एक subscription है, जबकि प्रति customer multiple subscriptions की अनुमति नहीं है
- Message: Customer के पास existing subscription है। प्रति customer multiple subscriptions की अनुमति देने के लिए business settings बदलें
-
DO_NOT_BILL_NOT_ALLOWED_IN_CUSTOMER_PORTAL- Trigger: Customer Portal plan change में
do_not_billproration mode का उपयोग - Message: Customer portal में do_not_bill proration mode की अनुमति नहीं है
- Trigger: Customer Portal plan change में
-
DUPLICATE_ADDON_IDS_IN_REQUEST- Trigger: वही
addon_idrequest में एक से अधिक बार दिखाई देता है - Message: Duplicate addon IDs की अनुमति नहीं है
- Trigger: वही
-
INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED- Trigger: Inactive subscription पर plan change
- Message: Inactive subscriptions के लिए plans बदलना समर्थित नहीं है
-
INVALID_PRORATION_MODE_WITH_NEXT_BILLING_DATE- Trigger:
full_immediatelyके अलावा किसी proration mode का उपयोगeffective_at: next_billing_dateके साथ - Message: effective_at: next_billing_date के साथ केवल full_immediately proration mode की अनुमति है
- Trigger:
-
MISSING_ADDON_IDS- Trigger:
addon_idlist खाली है या इसमें unknown IDs हैं - Message: एक या अधिक product IDs मौजूद नहीं हैं:
- Trigger:
-
ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED- Trigger: On-demand के लिए plan swap की अनुमति नहीं है
- Message: On demand subscriptions के लिए plans बदलना समर्थित नहीं है
-
ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED- Trigger: Usage-based billing के साथ on-demand का उपयोग करने का प्रयास
- Message: Usage Based Billing के लिए On Demand Subscriptions समर्थित नहीं हैं
-
ONE_TIME_PRODUCTS_NOT_ALLOWED_FOR_ON_DEMAND- Trigger: On-demand subscription में one-time product जोड़ा गया
- Message: On demand subscriptions में one-time products की अनुमति नहीं है
-
PENDING_PLAN_CHANGE_EXISTS- Trigger: पिछला plan change payment की प्रतीक्षा में होने के दौरान नया plan change requested
- Message: इस subscription के लिए pending plan change पहले से मौजूद है। वर्तमान payment पूरा होने तक प्रतीक्षा करें।
-
PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Trigger: Business द्वारा disabled किए जाने के बावजूद Customer Portal के माध्यम से plan change
- Message: Customer portal के लिए subscription plan change disabled है।
-
PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Trigger: Cancellation के लिए scheduled subscription पर plan change का प्रयास
- Message: Subscription cancellation के लिए scheduled है
-
SCHEDULE_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Trigger: Business द्वारा disabled किए जाने के बावजूद Customer Portal के माध्यम से plan change schedule करना
- Message: इस business के लिए plan changes schedule करना disabled है।
-
SCHEDULED_PLAN_CHANGE_EXISTS- Trigger: पहले से मौजूद scheduled plan change बनाना
- Message: इस subscription के लिए scheduled plan change पहले से मौजूद है। नया बनाने से पहले existing scheduled change cancel करें।
-
SCHEDULED_PLAN_CHANGE_NOT_FOUND- Trigger: ऐसे scheduled plan change को reference या cancel करना जो मौजूद नहीं है
- Message: इस subscription के लिए कोई scheduled plan change नहीं मिला।
-
SUBSCRIPTION_EXPIRED- Trigger:
expires_atके बाद billing - Message: Subscription expired है, नए charges नहीं बनाए जा सकते
- Trigger:
-
SUBSCRIPTION_INACTIVE- Trigger: Status ≠
active - Message: Subscription active नहीं है
- Trigger: Status ≠
-
SUBSCRIPTION_NOT_ON_DEMAND- Trigger: On-demand अपेक्षित था, लेकिन fixed interval मिला
- Message: Subscription पहले से on demand नहीं है
-
SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED- Trigger: Subscription payment retries maximum attempts से अधिक हो गए
- Message: इस subscription के लिए 10 attempts की maximum retry limit पार हो गई
Products, Cart & Brands
-
BRAND_ALREADY_ARCHIVED- Trigger: पहले से archived brand को archive करना
- Message: Brand पहले से archived है
-
BRAND_ARCHIVED- Trigger: Archived brand को update करना, verification के लिए submit करना, या उसमें नया product, product collection, या subscription tag करना
- Message: Brand archived है और इसे update नहीं किया जा सकता
-
BRAND_ARCHIVE_TARGET_REQUIRED- Trigger: ऐसे brand को archive करना जिसमें अभी भी products, live subscriptions, या बिना
move_products_totarget वाली product collections हैं - Message: Brand में 12 product(s) हैं। उन्हें re-tag करने के लिए move_products_to को target brand पर set करें।
- Trigger: ऐसे brand को archive करना जिसमें अभी भी products, live subscriptions, या बिना
-
BRAND_MISMATCH- Trigger: Cart items अलग-अलग brands से संबंधित हैं
- Message: Product cart के सभी items एक ही brand से संबंधित होने चाहिए
-
BRAND_NOT_ENABLED- Trigger: Brand disabled या active नहीं है
- Message: प्रदान किया गया brand enabled नहीं है
-
BRAND_SUBMISSION_NOT_ENABLED- Trigger: Brand verification resubmission feature enabled नहीं है
- Message: Brand verification resubmission enabled नहीं है
-
CANNOT_ARCHIVE_PRIMARY_BRAND- Trigger: Primary brand को archive करना, जिसका brand ID business ID है
- Message: Primary brand को archive नहीं किया जा सकता
-
FILE_IN_USE- Trigger: Active entitlement grants द्वारा अभी भी referenced digital product file को delete करना
- Message: Digital file active grants द्वारा referenced है
-
INVALID_BRAND_ARCHIVE_TARGET- Trigger:
move_products_toउस brand का नाम है जिसे archive किया जा रहा है, किसी archived brand का है, या किसी अन्य business का brand है - Message: move_products_to इस business का ऐसा brand होना चाहिए जो archived न हो
- Trigger:
-
INVALID_SUGGESTED_PRICE- Trigger: PWYW price < minimum allowed price
- Message: Suggested Price, minimum price से कम नहीं हो सकती। Pay what you want के मामले में price को minimum accepted amount माना जाता है
-
LOCALIZED_PRICE_ALREADY_EXISTS- Trigger: इस product और country/currency के लिए localized price पहले से मौजूद है
- Message: इस product और country/currency के लिए localized price पहले से मौजूद है
-
LOCALIZED_PRICE_DUPLICATES_BASE- Trigger: Localized price product की base currency/country से duplicate है
- Message: Localized price product की base currency/country से duplicate है
-
LOCALIZED_PRICE_SHAPE_MISMATCH- Trigger: Localized price का shape product के
pricing_modeसे मेल नहीं खाता - Message: Localized price का shape product के pricing_mode से मेल नहीं खाता
- Trigger: Localized price का shape product के
-
MISSING_PRODUCT_INFORMATION- Trigger: Product मौजूद है, लेकिन mandatory info missing है
- Message: Product मौजूद है, लेकिन अन्य mandatory information missing या invalid है
-
PAY_AS_YOU_WANT_AMOUNT_REQUIRED- Trigger: PWYW product के लिए price missing है
- Message: Pay as you want product के लिए amount mandatory है
-
PRODUCT_CART_EMTPY- Trigger: Empty product cart submit किया गया
- Message: product_cart खाली है (error code को जानबूझकर
EMTPYलिखा गया है ताकि API द्वारा लौटाए गए exact value से मेल खाए)
-
PRODUCT_COLLECTION_IS_DELETED- Trigger: Deleted product collection पर operation करना
- Message: कोई message नहीं
-
PRODUCT_COLLECTION_MUST_HAVE_PRODUCTS- Trigger: Collection से अंतिम product (या products वाले अंतिम group) को हटाना
- Message: Collection में अंतिम product को delete नहीं किया जा सकता। इसके बजाय collection को archive करें।
-
PRODUCT_IS_DELETED- Trigger: Product soft-deleted है
- Message: कोई messages नहीं
-
PRODUCT_PRICING_MODE_REQUIRED- Trigger: Product का
pricing_modeset करने से पहले localized prices जोड़ना - Message: Localized prices जोड़ने से पहले product pricing_mode set होना चाहिए
- Trigger: Product का
-
SLUG_ALREADY_TAKEN- Trigger: Requested product slug / short URL पहले से उपयोग में है
- Message: Slug पहले से लिया जा चुका है
-
UNABLE_TO_EDIT_PRIMARY_BRAND- Trigger: Regular API के माध्यम से primary brand को update करने का प्रयास
- Message: Primary brand को इस API endpoint के माध्यम से update नहीं किया जा सकता।
Discounts
-
DISCOUNT_ALREADY_USED_ON_SUBSCRIPTION- Trigger: इस subscription पर पहले से उपयोग किए गए discount को फिर से apply करना
- Message: यह discount इस subscription पर पहले ही उपयोग किया जा चुका है
-
DISCOUNT_CODE_ALREADY_EXISTS- Trigger: Duplicate discount code बनाना
- Message: Discount Code पहले से मौजूद है
-
DISCOUNT_CODE_EXPIRED- Trigger: Discount code की
expires_atdate बीत चुकी है - Message: Discount code expired है
- Trigger: Discount code की
-
DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED- Trigger:
usage_limitतक पहुंचने के बाद discount का पुनः उपयोग - Message: Usage limit, times_used से कम नहीं हो सकती / Discount code ने usage limit पूरी कर ली है
- Note: Terminal — code समाप्त हो चुका है। Retry न करें।
- Trigger:
-
DISCOUNT_CONCURRENT_REDEMPTION- Trigger: उसी code का एक अन्य redemption usage-limit row lock को बहुत देर तक hold करता रहा
- Message: Discount का redemption concurrent रूप से हो रहा है; कृपया retry करें
- Note: Transient। Code में अभी capacity हो सकती है, इसलिए request को सुरक्षित रूप से retry किया जा सकता है। इसे customer को “code exhausted” के रूप में न दिखाएं।
-
DISCOUNT_CURRENCY_OPTION_INVALID- Trigger: Create या update पर invalid
currency_options - Message: Flat discount के लिए resolvable default वाले कम से कम एक currency option की आवश्यकता है / Duplicate currency options की अनुमति नहीं है / केवल एक currency option को default के रूप में mark किया जा सकता है
- Trigger: Create या update पर invalid
-
DISCOUNT_CUSTOMER_NOT_ELIGIBLE- Trigger: Customer code के
customer_eligibilityको पूरा नहीं करता (first_time,existing, याspecificcode की allow list में नहीं है) - Message: Customer इस discount code के लिए eligible नहीं है
- Trigger: Customer code के
-
DISCOUNT_MINIMUM_SUBTOTAL_NOT_MET- Trigger: Cart subtotal checkout currency के लिए configured
minimum_subtotalसे कम है - Message: Cart subtotal discount के minimum required subtotal से कम है
- Trigger: Cart subtotal checkout currency के लिए configured
-
DISCOUNT_NOT_YET_ACTIVE- Trigger: Code को उसकी
starts_atdate से पहले उपयोग किया गया - Message: Discount code अभी active नहीं है (starts_at future में है)
- Trigger: Code को उसकी
-
DISCOUNT_PER_CUSTOMER_USAGE_LIMIT_EXCEEDED- Trigger: Customer पहले ही code को
per_customer_usage_limitबार redeem कर चुका है - Message: इस discount code के लिए per-customer usage limit पार हो गई है
- Trigger: Customer पहले ही code को
-
DISCOUNT_NOT_APPLICABLE_TO_NEW_PRODUCT- Trigger: ऐसे product पर plan change जिस पर existing discount लागू नहीं होता
- Message: Discount नए plan के product पर लागू नहीं है
-
DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND- Trigger: On-demand subscription पर code लागू किया गया
- Message: On demand subscriptions के लिए discount coupon उपलब्ध नहीं है
-
DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT- Trigger: असंबंधित product(s) पर code लागू किया गया
- Message: इस product के लिए discount coupon उपलब्ध नहीं है
-
INVALID_DISCOUNT_CODE- Trigger: Code मौजूद नहीं है / लागू नहीं है
- Message: Invalid Discount Code / Cart के किसी भी product पर Discount Code लागू नहीं किया जा सकता
-
INVALID_PERCENTAGE- Trigger: Percent amount > 100% (या 10,000 basis points)
- Message: Percentage amount 10000 से अधिक नहीं हो सकता / Discount code amount 100% से अधिक नहीं हो सकता
-
UNSUPPORTED_DISCOUNT_TYPE- Trigger: ऐसा discount type जो समर्थित नहीं है।
percentageऔरflatदोनों समर्थित हैं; per-unit amount discounts समर्थित नहीं हैं। - Message: केवल percentage और flat discount codes समर्थित हैं
- Trigger: ऐसा discount type जो समर्थित नहीं है।
License Keys
-
ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT- Trigger: License-key activations: new limit < existing instance count
- Message: New activation limit current instances count से कम नहीं हो सकती
-
INACTIVE_LICENSE_KEY- Trigger: Key status ≠
active - Message: License key active नहीं है
- Trigger: Key status ≠
-
LICENSE_KEY_LIMIT_REACHED- Trigger: Activations = limit
- Message: License key activation limit पहुंच गई है
-
LICENSE_KEY_NOT_FOUND- Trigger: Instance ID या key ID invalid है
- Message: License key instance नहीं मिला या यह इस license key से संबंधित नहीं है
-
NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS- Trigger: Sub-based key पर expiry set करने का प्रयास
- Message: Subscription-based license key के लिए expiry date set नहीं की जा सकती
Usage-Based Billing & Meters
-
DUPLICATE_METER_IDS_IN_REQUEST- Trigger: एक ही meter ID request में कई बार दिखाई देती है
- Message: Duplicate Meter Ids की अनुमति नहीं है
-
INVALID_QUANTITY- Trigger: Usage-based pricing के लिए invalid quantity निर्दिष्ट है
- Message: Usage based price products में केवल 1 quantity की अनुमति है
-
METER_IS_DELETED- Trigger: Deleted meter का उपयोग करने का प्रयास
- Message: Meter पहले ही delete किया जा चुका है
-
MISSING_METER_IDS- Trigger: Meter ID list खाली है या इसमें invalid IDs हैं
- Message: एक या अधिक meter IDs मौजूद नहीं हैं:
Credit-Based Billing
-
CREDIT_ENTITLEMENT_IS_DELETED- Trigger: Deleted credit entitlement पर operation करना
- Message: Credit entitlement पहले ही delete किया जा चुका है
-
CREDIT_ENTITLEMENT_NAME_ALREADY_EXISTS- Trigger: पहले से मौजूद name वाला credit entitlement बनाना
- Message: इस name वाला credit entitlement पहले से मौजूद है
-
OVERAGE_LIMIT_EXCEEDED- Trigger: Usage या credit deduction configured overage limit से अधिक हो जाएगा
- Message: Overage limit पार हो गई
Wallet
-
INSUFFICIENT_WALLET_FUNDS- Trigger: Wallet balance < debit amount
- Message: Wallet में अपर्याप्त funds हैं
-
NEGATIVE_BALANCE_ADJUSTMENT- Trigger: Wallet balance को negative करने का प्रयास
- Message: Wallet balance को negative करने की अनुमति नहीं है
Currency, Tax & Region
-
EXCHANGE_RATE_NOT_FOUND- Trigger:
from → tocurrency pair के लिए कोई FX rate नहीं है - Message: Currency से Currency में convert करने के लिए exchange rate नहीं मिला
- Trigger:
-
INVALID_TAX_ID- Trigger: VAT/GST/TIN validation विफल
- Message: Tax Id invalid है
-
REQUEST_AMOUNT_BELOW_MINIMUM- Trigger: Amount < product minimum
- Message: Amount product के लिए specified minimum amount से कम नहीं हो सकता
-
TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT- Trigger: Combined cart total < gateway minimum
- Message: Payment process करने के लिए की minimum amount आवश्यक है
-
UNSUPPORTED_BILLING_CURRENCY- Trigger: Requested billing currency इस subscription के लिए समर्थित नहीं है
- Message: Subscriptions के लिए Non USD billing currency समर्थित नहीं है
-
UNSUPPORTED_COUNTRY- Trigger: Geo अभी समर्थित नहीं है
- Message: Country वर्तमान में समर्थित नहीं है
-
UNSUPPORTED_CURRENCY- Trigger: Product या addon currency ऐसी currency है जिसमें Dodo Payments charge नहीं कर सकता। Base prices किसी भी chargeable currency में set की जा सकती हैं, इसलिए आमतौर पर इसका अर्थ है कि currency code invalid है या अभी समर्थित नहीं है।
- Message: Currency वर्तमान में समर्थित नहीं है / वर्तमान में केवल USD और INR products समर्थित हैं / Addon price के लिए केवल USD और INR समर्थित हैं / billing_currency के लिए केवल USD या INR request किया जा सकता है / Currency Not Supported / Indian card subscriptions के लिए unexpected currency
-
UNSUPPORTED_TAX_CATEGORY- Trigger: Tax category string enum में नहीं है
- Message: Category वर्तमान में समर्थित नहीं है
Validation & Requests
-
DUPLICATE_LINE_ITEMS_IN_REQUEST- Trigger: वही
item_iditems[]में दो बार दिखाई देता है - Message: items array में duplicate item_ids specified हैं
- Trigger: वही
-
INVALID_QUERY_PARAMS- Trigger: Mutually exclusive / malformed query parameters
- Message: Query params में केवल time_frame या (start, end) होना चाहिए
-
INVALID_REQUEST_BODY- Trigger: Malformed JSON या schema violation
- Message: आपका request body invalid है। कृपया अपने request headers और object की जांच करें।
-
INVALID_REQUEST_PARAMETERS- Trigger: Semantics गलत हैं (जैसे, date past में है)
- Message: next_billing_date को past time में नहीं बदला जा सकता
-
MAXIMUM_KEYS_REACHED- Trigger: Metadata / custom-fields 50 pairs से अधिक हो गए
- Message: 50 key-value pairs से अधिक है
General & System
-
INTEGER_CONVERSION_FAILURE- Trigger: कोई भी integer ↔ string/decimal conversion जो server-side विफल हो
- Message: Integer Conversion Failure
-
INTERNAL_SERVER_ERROR- Trigger: Uncaught exceptions; आपको server-side details log करनी चाहिए
- Message: कोई public message नहीं (generic 500)
-
NOT_FOUND- Trigger: किसी भी missing resource के लिए generic 404
- Message: Item नहीं मिला (या अधिक specific)
-
TOO_MANY_REQUESTS- Trigger: 429 rate-limit
- Message: कोई messages नहीं
-
UNSUPPORTED_ACTION- Trigger: Resource type के लिए unsupported action
- Message: Usage based subscriptions के लिए plans बदलना समर्थित नहीं है
Best Practices
- अपनी application में errors को हमेशा gracefully handle करें
- उचित error logging implement करें
- End users के लिए उपयुक्त error messages का उपयोग करें
- Transient errors के लिए retry logic implement करें
- Unresolved issues के लिए support से संपर्क करें