Skip to main content

आवश्यकताएँ

Dodo Payments API को एकीकृत करने के लिए, आपको आवश्यकता होगी:
  • एक Dodo Payments merchant account
  • dashboard से API Credentials (API key और webhook secret key)

Dashboard सेटअप

  1. Dodo Payments Dashboard पर जाएँ
  2. उत्पाद बनाएँ (one-time payment या subscription)। Subscription products की कीमत कम से कम $1 (या आपकी चुनी हुई currency में इसके समतुल्य) होनी चाहिए; इससे कम राशि समर्थित नहीं है।
  3. अपनी API key जनरेट करें:
  4. Webhooks कॉन्फ़िगर करें:
    • Developer > Webhooks पर जाएँ
    • payment notifications के लिए एक webhook URL बनाएँ
    • env में webhook secret key कॉपी करें

एकीकरण

अपने उपयोग-केस के लिए उपयुक्त integration path चुनें:
  • Checkout Sessions (recommended): अधिकांश integrations के लिए सर्वोत्तम। अपने server पर एक session बनाएँ और customers को सुरक्षित, hosted checkout पर redirect करें।
  • Overlay Checkout: जब आपको अपनी site पर in-page अनुभव चाहिए, जो checkout को modal overlay के रूप में खोले।
  • Inline Checkout: पूरी तरह integrated और branded checkout अनुभवों के लिए checkout को सीधे अपने page layout में embed करें।
  • Static Payment Links: तेज़ी से payment collection के लिए no-code, तुरंत share किए जा सकने वाले URLs।
  • Dynamic Payment Links: Programmatically बनाए गए links। हालाँकि, Checkout Sessions recommended हैं और अधिक flexibility प्रदान करते हैं।
  • Mobile Checkout SDKs: native Android, iOS, React Native और Flutter apps के लिए। ऊपर बताए अनुसार अपने server पर session बनाएँ, फिर checkout_url को SDK को दें।
Overlay और Inline Checkout केवल browser पर काम करते हैं — ये checkout को web page में embed करते हैं। यदि आप native mobile app बना रहे हैं, तो अपने server पर checkout session बनाएँ और इसके बजाय उसे Mobile Checkout SDKs से खोलें।

1. Checkout Sessions

One-time payments या subscriptions के लिए सुरक्षित, hosted checkout अनुभव बनाने हेतु Checkout Sessions का उपयोग करें। अपने server पर एक session बनाएँ, फिर customer को लौटाए गए checkout_url पर redirect करें।
Checkout sessions डिफ़ॉल्ट रूप से 24 घंटे तक valid रहते हैं। यदि आप confirm=true pass करते हैं, तो sessions 15 मिनट तक valid रहते हैं और सभी आवश्यक fields प्रदान किए जाने चाहिए।
1

Create a checkout session

अपना पसंदीदा SDK चुनें या REST API call करें।
2

Redirect customer to checkout

Session बनाने के बाद, hosted flow शुरू करने के लिए checkout_url पर redirect करें।
Payments लेना शुरू करने के लिए सबसे तेज़ और विश्वसनीय तरीके के रूप में Checkout Sessions को प्राथमिकता दें। Advanced customization के लिए, पूरी Checkout Sessions guide और API Reference देखें।

2. Overlay Checkout

Seamless in-page checkout अनुभव के लिए हमारा Overlay Checkout integration देखें, जो customers को आपकी website छोड़े बिना payments पूरा करने देता है।

3. Inline Checkout

अपने page में सीधे embedded पूरी तरह integrated checkout अनुभवों के लिए हमारा Inline Checkout integration उपयोग करें। इससे आप custom order summaries बना सकते हैं और checkout layout पर पूरा control रख सकते हैं, जबकि Dodo Payments payment collection को सुरक्षित रूप से संभालता है। Static payment links आपको एक सरल URL share करके तेज़ी से payments स्वीकार करने देते हैं। Customer details को pre-fill करने, form fields को नियंत्रित करने और custom metadata जोड़ने के लिए query parameters pass करके checkout अनुभव को customize कर सकते हैं।
1

Construct your payment link

Base URL से शुरू करें और अपना product ID जोड़ें:
2

Add core parameters

आवश्यक query parameters शामिल करें:
  • integer
    डिफ़ॉल्ट:"1"
    खरीदी जाने वाली items की संख्या।
  • string
    आवश्यक
    Payment पूरा होने के बाद redirect करने के लिए URL।
Redirect URL में query parameters के रूप में payment details शामिल होंगी, उदाहरण के लिए:
https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.com

यदि product में license keys enabled हैं, तो एक license_key parameter भी जोड़ा जाता है (multiple keys के लिए comma-separated):
https://example.com/?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com
3

Pre-fill customer information (optional)

Checkout को सरल बनाने के लिए customer या billing fields को query parameters के रूप में जोड़ें।
  • string
    Customer का पूरा नाम (यदि firstName या lastName प्रदान किया गया हो तो ignore किया जाता है)।
  • string
    Customer का first name।
  • string
    Customer का last name।
  • string
    Customer का email address।
  • string
    Customer का country।
  • string
    Street address।
  • string
    City।
  • string
    State या province।
  • string
    Postal/ZIP code।
  • boolean
    true या false
4

Control form fields (optional)

आप specific fields को disable करके उन्हें customer के लिए read-only बना सकते हैं। यह तब उपयोगी है जब आपके पास customer की details पहले से हों (जैसे logged-in users)।
किसी field को disable करने के लिए उसका value दें और संबंधित disable… flag को true पर set करें:
Fields को disable करने से accidental changes रोकने और data consistency सुनिश्चित करने में मदद मिलती है।
showDiscounts=false set करने से checkout form में discounts section disable और hide हो जाएगा। यदि आप checkout के दौरान customers को coupon या promo codes enter करने से रोकना चाहते हैं, तो इसका उपयोग करें।
5

Add advanced controls (optional)

  • string
    भुगतान की currency निर्दिष्ट करता है। डिफ़ॉल्ट रूप से billing country की currency का उपयोग होता है।
  • boolean
    डिफ़ॉल्ट:"true"
    currency selector दिखाएँ या छिपाएँ।
  • number
    चार्ज की जाने वाली राशि को major currency units में निर्धारित करता है (जैसे, $12.50 के लिए 12.5)। केवल Pay What You Want products के लिए। यदि value product की minimum price से कम है, तो इसे अनदेखा कर दिया जाता है।
  • string
    Custom metadata fields (जैसे, metadata_orderId=123)।
Payment link पर paymentAmount, Checkout Sessions API में मौजूद amount field की तरह समान unit नहीं है। Link parameter में major currency units लिए जाते हैं (12.5 = 12.50),जबकिAPIकाproductcart[].amountसबसेछोटीdenominationलेताहै(1250=12.50), जबकि API का `product_cart[].amount` सबसे छोटी denomination लेता है (`1250` = 12.50)। API field के लिए Dynamic Pricing देखें।
6

Share the link

पूर्ण किए गए payment link को अपने customer को भेजें। उनके इसे खोलने पर, सभी query parameters एकत्र करके session ID के साथ store किए जाते हैं। इसके बाद URL को सरल बनाकर केवल session parameter शामिल किया जाता है (जैसे, ?session=sess_1a2b3c4d)। Store की गई जानकारी page refresh होने पर भी बनी रहती है और पूरे checkout process के दौरान accessible रहती है।
अब customer का checkout experience आपके parameters के आधार पर streamlined और personalized है।
अधिकांश use cases के लिए Checkout Sessions को प्राथमिकता दें; ये अधिक flexibility और control प्रदान करते हैं।
customer details के साथ API call या हमारे SDK के माध्यम से बनाया गया। यहाँ एक उदाहरण है: Dynamic payment links बनाने के लिए दो APIs हैं:
दोनों link-creation endpoints deprecated हैं। POST /payments और POST /subscriptions मौजूदा integrations के लिए काम करते रहेंगे, लेकिन नए integrations में इसके बजाय Checkout Sessions (POST /checkouts) का उपयोग करना चाहिए।
नीचे दिया गया guide one-time payment link बनाने के लिए है। Subscriptions को integrate करने के विस्तृत निर्देशों के लिए यह Subscription Integration Guide देखें।
Payment link प्राप्त करने के लिए payment_link = true pass करना सुनिश्चित करें
Payment link बनाने के बाद, अपने customers को payment पूरा करने के लिए redirect करें।

Webhooks लागू करना

Payment notifications प्राप्त करने के लिए एक API endpoint सेट अप करें। यहाँ Next.js का उपयोग करने वाला एक उदाहरण है:
हमारा webhook implementation Standard Webhooks specification का पालन करता है। Webhook type definitions के लिए हमारी Webhook Event Guide देखें।

सुनने योग्य Events

payload.type को enable करें और one-time payment flow से संबंधित events को handle करें। कम से कम, इन events को listen करें:
Browser redirect पर नहीं, बल्कि webhook से payment.succeeded पर हमेशा fulfill करें — यदि customer tab बंद कर देता है, तो redirect miss हो सकता है, जबकि webhook को acknowledge किए जाने तक retry किया जाता है।
यदि आप license keys वाले digital products बेचते हैं, तो license_key.created को भी handle करें। Events की पूरी सूची — जिसमें subscription, entitlement, credit, recovery और dunning events शामिल हैं — के लिए Webhook Event Guide देखें। आप Next.js और TypeScript का उपयोग करने वाले demo implementation वाले इस project को GitHub पर देख सकते हैं। Live implementation यहाँ देखें।

Checkout और Currency के बारे में जानने योग्य मुख्य बातें

Dynamic (Pay-What-You-Want) amounts product की base currency में होते हैं — किसी arbitrary local currency में नहीं — और base currency केवल USD, INR, GBP और EUR तक सीमित है। किसी दूसरी currency (जैसे PHP) में fixed amount collect करने के लिए इसे सीधे pass नहीं किया जा सकता: Adaptive Pricing (आपकी base amount को live FX पर convert करता है) या Localized Pricing (हर currency के लिए fixed price, लेकिन Pay-What-You-Want के साथ compatible नहीं) का उपयोग करें।
Currency को explicitly fix करें। Checkout session पर billing_currency और billing_address.country pass करें। यदि इन्हें छोड़ दिया जाता है, तो customer के IP से currency और country detect किए जाते हैं (Adaptive Currency), जो उस राशि से मेल नहीं खा सकते जिसे आप charge करना चाहते हैं।
Checkout sessions 24 घंटे में expire हो जाते हैं (जब confirm: true हो, तब 15 मिनट में), और प्रत्येक checkout_url single-use होता है — link को reuse करने के बजाय प्रत्येक customer और प्रत्येक payment attempt के लिए नया session generate करें।
One-click repeat purchase। Saved payment method वाले returning customer के लिए, तुरंत charge करने और method selection को पूरी तरह skip करने हेतु payment_method_id को confirm: true के साथ pass करें।

संबंधित API Reference

Create Checkout Session

One-time payments और subscriptions के लिए secure, hosted checkout sessions बनाने हेतु API reference

Create Payment Link

Programmatically dynamic payment links बनाने हेतु API reference
अंतिम संशोधन 6 अगस्त 2026