Skip to main content
Webhook Cover Image
Webhooks आपके Dodo Payments account में विशिष्ट घटनाएँ होने पर रीयल-टाइम सूचनाएँ प्रदान करते हैं। वर्कफ़्लो को स्वचालित करने, अपने database को अपडेट करने, सूचनाएँ भेजने और अपने सिस्टम को synchronized रखने के लिए webhooks का उपयोग करें।
हमारा webhook implementation Standard Webhooks specification का पालन करता है, जिससे industry best practices और मौजूदा webhook libraries के साथ compatibility सुनिश्चित होती है।

प्रमुख सुविधाएँ

Real-time Delivery

घटनाएँ होने पर तुरंत सूचनाएँ प्राप्त करें

Secure by Default

HMAC SHA256 signature verification शामिल है

Automatic Retries

exponential backoff के साथ built-in retry logic

Event Filtering

केवल आवश्यक events की सदस्यता लें

शुरुआत करना

1

Access Webhook Settings

DodoPayments Dashboard पर जाएँ और Developer > Webhooks पर जाएँ।
2

Create Webhook Endpoint

नया webhook endpoint बनाने के लिए Add Webhook पर क्लिक करें।
Add Webhook
3

Add Endpoint URL

वह URL दर्ज करें जहाँ आप webhook events प्राप्त करना चाहते हैं।
4

Select Events to Receive

event list से उन्हें चुनकर वे विशिष्ट events चुनें जिन्हें आपका webhook endpoint सुने।
केवल चुने गए events आपके endpoint पर webhooks trigger करेंगे, जिससे अनावश्यक traffic और processing से बचने में सहायता मिलेगी।
5

Get Secret Key

settings page से अपना webhook Secret Key प्राप्त करें। प्राप्त webhooks की authenticity verify करने के लिए इसका उपयोग करेंगे।
अपनी webhook secret key को सुरक्षित रखें और इसे client-side code या public repositories में कभी expose न करें।
6

Rotate Secret (Optional)

आवश्यकता होने पर enhanced security के लिए अपनी webhook secret rotate कर सकते हैं। अपनी webhook settings में Rotate Secret button पर क्लिक करें।
Secret rotate करने पर वह expire हो जाएगी और नई secret से replace हो जाएगी। पुरानी secret केवल अगले 24 घंटों तक valid रहेगी। इसके बाद पुरानी secret से verify करने का प्रयास fail हो जाएगा।
Secret rotation का समय-समय पर उपयोग करें या तुरंत करें यदि आपको संदेह है कि आपकी वर्तमान secret compromise हो गई है।

Subscribed Events कॉन्फ़िगर करना

आप प्रत्येक webhook endpoint के लिए वे विशिष्ट events कॉन्फ़िगर कर सकते हैं जिन्हें आप प्राप्त करना चाहते हैं।

Event Configuration तक पहुँचना

1

Navigate to Webhook Details

अपने Dodo Payments Dashboard पर जाएँ और Developer > Webhooks पर जाएँ।
2

Select Your Endpoint

उस webhook endpoint पर क्लिक करें जिसे आप configure करना चाहते हैं।
3

Open Event Settings

webhook details page पर आपको “Subscribed events” section दिखाई देगा। अपनी event subscriptions को modify करने के लिए Edit button पर क्लिक करें।

Event Subscriptions प्रबंधित करना

1

View Available Events

interface सभी उपलब्ध webhook events को hierarchical structure में प्रदर्शित करता है। Events को category के अनुसार group किया जाता है (जैसे, dispute, payment, subscription)।
2

Search and Filter

event names या keywords टाइप करके विशिष्ट events को जल्दी खोजने के लिए search bar का उपयोग करें।
3

Select Events

जिन events को आप प्राप्त करना चाहते हैं, उनके आगे दिए गए boxes को check करें। आप:
  • अलग-अलग sub-events चुन सकते हैं (जैसे, dispute.accepted, dispute.challenged)
  • सभी संबंधित sub-events प्राप्त करने के लिए parent events चुन सकते हैं
  • अपनी आवश्यकताओं के आधार पर विशिष्ट events का संयोजन कर सकते हैं
4

Review Event Details

event कब trigger होता है, इसका description देखने के लिए प्रत्येक event के आगे information icon (ⓘ) पर hover करें।
5

Save Configuration

अपने changes लागू करने के लिए Save पर क्लिक करें या modifications को discard करने के लिए Cancel पर क्लिक करें।
यदि आप सभी events deselect कर देते हैं, तो आपका webhook endpoint कोई notification प्राप्त नहीं करेगा। कम से कम वे events चुनना सुनिश्चित करें जिनकी आपके application को सही ढंग से काम करने के लिए आवश्यकता है।

Webhook Delivery

Timeouts

Webhooks में connection और read operations दोनों के लिए 15-second timeout window होती है। Timeouts से बचने के लिए सुनिश्चित करें कि आपका endpoint तुरंत response दे।
Webhooks को asynchronously process करें: पहले 200 status code के साथ receipt को तुरंत acknowledge करें, फिर actual processing को background में handle करें।

Automatic Retries

यदि webhook delivery fail होती है, तो Dodo Payments आपके system को overload होने से बचाने के लिए exponential backoff के साथ automatically retry करता है।
प्रत्येक webhook event के लिए अधिकतम 8 retry attempts। उदाहरण के लिए, यदि सफल होने से पहले webhook तीन बार fail होता है, तो पहले प्रयास से कुल delivery time लगभग 35 मिनट और 5 सेकंड होता है।
किसी भी समय अलग-अलग messages को manually retry करने या सभी failed messages को bulk में recover करने के लिए Dodo Payments dashboard का उपयोग करें।

Idempotency

प्रत्येक webhook event में एक unique webhook-id header शामिल होता है। Idempotency लागू करने और duplicate processing रोकने के लिए इस identifier का उपयोग करें।
हमेशा idempotency checks लागू करें। Retries के कारण आपको एक ही event कई बार प्राप्त हो सकता है।

Event Ordering

Retries या network conditions के कारण webhook events क्रम से बाहर आ सकते हैं। अपने system को किसी भी sequence में events handle करने के लिए design करें।
आपको delivery के समय का latest payload प्राप्त होगा, चाहे webhook event मूल रूप से कभी भी emit किया गया हो।

Webhooks सुरक्षित करना

अपने webhooks की security सुनिश्चित करने के लिए payloads को हमेशा validate करें और HTTPS का उपयोग करें।

Signatures verify करना

प्रत्येक webhook request में एक webhook-signature header शामिल होता है, जो webhook payload और timestamp का HMAC SHA256 signature है और आपकी secret key से signed है। सभी official SDKs incoming webhooks को securely validate और parse करने के लिए built-in helpers शामिल करते हैं। दो methods उपलब्ध हैं:
  • unwrap(): आपकी webhook secret key का उपयोग करके signatures verify करता है
  • unsafe_unwrap(): verification के बिना payloads parse करता है
Dodo Payments client को initialize करते समय अपनी webhook secret DODO_PAYMENTS_WEBHOOK_KEY के माध्यम से दें।

Manual verification (alternative)

यदि आप SDK का उपयोग नहीं कर रहे हैं, तो Standard Webhooks spec का पालन करके signatures को स्वयं verify कर सकते हैं:
  1. webhook-id, webhook-timestamp और exact raw stringified payload को periods (.) से अलग करके concatenate कर signed message बनाएँ।
  2. Dashboard से प्राप्त अपनी webhook secret key का उपयोग करके उस string का HMAC SHA256 compute करें।
  3. Computed signature की तुलना webhook-signature header से करें। यदि वे match करते हैं, तो webhook authentic है।
हम Standard Webhooks specification का पालन करते हैं। Signatures verify करने के लिए आप उनकी libraries का उपयोग कर सकते हैं: https://github.com/standard-webhooks/standard-webhooks/tree/main/libraries। Event payload formats के लिए Webhook Payload देखें।

Webhooks का response देना

  • आपका webhook handler event की receipt acknowledge करने के लिए 2xx status code return करना चाहिए।
  • किसी अन्य response को failure माना जाएगा और webhook retry किया जाएगा।

सर्वोत्तम practices

Webhook endpoints के लिए हमेशा HTTPS URLs का उपयोग करें। HTTP endpoints man-in-the-middle attacks के प्रति vulnerable होते हैं और आपके webhook data को expose करते हैं।
Webhook प्राप्त होते ही तुरंत 200 status code return करें। Timeouts से बचने के लिए event को asynchronously process करें।
webhook-id header का उपयोग करके idempotency लागू करें, ताकि एक ही event को side effects के बिना कई बार safely process किया जा सके।
Environment variables या secrets manager का उपयोग करके अपनी webhook secret को securely store करें। Secrets को version control में कभी commit न करें।

Webhook Payload Structure

Webhook payload structure को समझने से आपको events को सही ढंग से parse और process करने में सहायता मिलती है।

Request Format

Headers

string
आवश्यक
इस webhook event के लिए unique identifier। Idempotency checks के लिए इसका उपयोग करें।
string
आवश्यक
Webhook authenticity verify करने के लिए HMAC SHA256 signature।
string
आवश्यक
Webhook भेजे जाने का Unix timestamp (seconds में)।

Request Body

string
आवश्यक
आपका Dodo Payments business identifier।
string
आवश्यक
इस webhook को trigger करने वाला event type (जैसे, payment.succeeded, subscription.active)।
string
आवश्यक
Event होने का ISO 8601 formatted timestamp।
object
आवश्यक
Event के बारे में detailed information वाला event-specific payload।

Example Payload

Event Types

सभी उपलब्ध webhook event types ब्राउज़ करें

Event Payloads

प्रत्येक event के लिए detailed payload schemas देखें

Handle Payment Failures

payment.failed पर प्रतिक्रिया दें और declined payments recover करें

Webhooks का परीक्षण

आप live होने से पहले यह सुनिश्चित करने के लिए कि आपका endpoint सही ढंग से काम कर रहा है, सीधे Dodo Payments dashboard से अपने webhook integration का परीक्षण कर सकते हैं।
Endpoint Details

Testing Interface तक पहुँचना

1

Navigate to Webhooks

अपने Dodo Payments Dashboard पर जाएँ और Developer > Webhooks पर जाएँ।
2

Select Your Endpoint

अपने webhook endpoint के details page तक पहुँचने के लिए उस पर क्लिक करें।
3

Open Testing Tab

webhook testing interface तक पहुँचने के लिए Testing tab पर क्लिक करें।

अपने Webhook का परीक्षण

Testing interface आपके webhook endpoint का परीक्षण करने का एक व्यापक तरीका प्रदान करता है:
1

Select Event Type

उस विशिष्ट event type को चुनने के लिए dropdown menu का उपयोग करें जिसका आप परीक्षण करना चाहते हैं (जैसे, payment.succeeded, payment.failed आदि)।
Dropdown में सभी उपलब्ध webhook event types शामिल होते हैं जिन्हें आपका endpoint receive कर सकता है।
2

Review Schema and Example

Interface चुने गए event type के लिए Schema (data structure) और Example (sample payload) दोनों प्रदर्शित करता है।
3

Send Test Event

अपने endpoint पर test webhook भेजने के लिए Send Example button पर क्लिक करें।
महत्वपूर्ण: Testing interface के माध्यम से भेजे गए failed messages को retry नहीं किया जाएगा। यह केवल testing purposes के लिए है।

अपने Test को verify करना

1

Check Your Endpoint

यह confirm करने के लिए अपने webhook endpoint logs monitor करें कि test event प्राप्त हुआ।
2

Verify Signature

सुनिश्चित करें कि आपकी signature verification test payload के साथ सही ढंग से काम कर रही है।
3

Test Response

Confirm करें कि receipt acknowledge करने के लिए आपका endpoint 2xx status code return करता है।

Implementation Example

यहाँ webhook verification और handling दिखाने वाला complete Express.js implementation है:
Production events process करने से पहले dashboard testing interface का उपयोग करके अपने webhook handler का thoroughly परीक्षण करें। इससे issues को जल्दी identify और fix करने में सहायता मिलती है।

CLI के साथ Webhooks का परीक्षण

Dodo Payments CLI local development के दौरान terminal छोड़े बिना webhooks test करने के लिए दो commands प्रदान करता है।

Locally Live Webhooks सुनना

अपने test mode account से local development server पर real webhook events को real time में forward करें:
CLI Dodo Payments से WebSocket connection खोलता है और प्रत्येक webhook event को आपके local endpoint (जैसे, http://localhost:3000/webhook) पर forward करता है। यह verification testing के लिए signature headers सहित सभी headers को preserve करता है।
Listener केवल test mode API keys के साथ काम करता है। इस command का उपयोग करने से पहले dodo login चलाएँ और Test Mode चुनें।

Mock Webhook Events Trigger करना

Real transactions create किए बिना किसी भी endpoint पर mock webhook payloads भेजें:
यह interactive tool आपको सभी supported event types में से चुनने और realistic mock payloads अपने endpoint पर भेजने देता है। यह loop करता है, इसलिए आप एक session में कई events का परीक्षण कर सकते हैं।
dodo wh trigger से प्राप्त mock webhook payloads signed नहीं होते। केवल testing के दौरान अपने webhook handler में unwrap() के बजाय unsafe_unwrap() का उपयोग करें।

CLI Webhook Testing Docs

पूर्ण CLI webhook testing documentation देखें

Advanced Settings

Advanced Settings tab आपके webhook endpoint के behavior को fine-tune करने के लिए additional configuration options प्रदान करता है।

Rate Limiting (Throttling)

अपने system को overload होने से बचाने के लिए webhook events की आपके endpoint पर delivery rate नियंत्रित करें।
1

Access Rate Limit Settings

Advanced tab में “Rate Limit (throttling)” section खोजें।
2

Configure Rate Limit

Rate limit settings modify करने के लिए Edit button पर क्लिक करें।
Default रूप से webhooks पर “No rate limit” लागू होता है, जिसका अर्थ है कि events होने के तुरंत बाद deliver किए जाते हैं।
3

Set Limits

Webhook delivery frequency नियंत्रित करने और system overload रोकने के लिए इच्छित rate limit configure करें।
Rate limiting का उपयोग तब करें जब आपके webhook handler को events process करने के लिए समय चाहिए या जब आप कई events को एक साथ batch करना चाहते हैं।

Custom Headers

अपने endpoint पर भेजे गए सभी webhook requests में custom HTTP headers जोड़ें। यह authentication, routing या webhook requests में metadata जोड़ने के लिए उपयोगी है।
1

Add Custom Header

“Custom Headers” section में अपने custom header के लिए Key और Value दर्ज करें।
2

Add Multiple Headers

आवश्यकता के अनुसार additional custom headers जोड़ने के लिए + button पर क्लिक करें।
3

Save Configuration

आपके custom headers इस endpoint पर भेजे जाने वाले सभी webhook requests में शामिल किए जाएँगे।

Transformations

Transformations आपको webhook के payload को modify करके किसी अलग URL पर redirect करने देती हैं। यह powerful feature आपको सक्षम बनाता है:
  • Processing से पहले payload structure modify करना
  • Content के आधार पर webhooks को अलग-अलग endpoints पर route करना
  • Payload से fields add या remove करना
  • Data formats transform करना
1

Enable Transformations

Transformation feature activate करने के लिए Enabled switch को toggle करें।
2

Configure Transformation

अपने transformation rules define करने के लिए Edit transformation पर क्लिक करें।
Webhook payload transform करने और अलग target URL specify करने के लिए JavaScript का उपयोग कर सकते हैं।
3

Test Transformation

Live होने से पहले यह verify करने के लिए testing interface का उपयोग करें कि आपका transformation सही ढंग से काम कर रहा है।
Transformations webhook delivery performance को significantly impact कर सकती हैं। Thoroughly test करें और transformation logic को simple और efficient रखें।
Transformations विशेष रूप से इनके लिए उपयोगी हैं:
  • अलग-अलग data formats के बीच convert करना
  • Specific criteria के आधार पर events filter करना
  • Payload में computed fields जोड़ना
  • Events को अलग-अलग microservices पर route करना

Webhook Logs मॉनिटर करना

Logs tab आपके webhook delivery status की comprehensive visibility प्रदान करता है, जिससे आप webhook events को प्रभावी ढंग से monitor, debug और manage कर सकते हैं।
Logs

Activity Monitoring

Activity tab visual analytics के साथ आपके webhook delivery performance की real-time insights प्रदान करता है।
Activity

Email Alerts

Automatic email notifications के साथ अपने webhook health से अवगत रहें। जब webhook deliveries fail होने लगें या आपका endpoint response देना बंद कर दे, तो आपको email alerts प्राप्त होंगे, जिससे आप issues को जल्दी address कर सकेंगे और अपने integrations को सुचारु रूप से चला सकेंगे।
Webhook Alerting Settings showing email notifications configuration

Email Alerts सक्षम करना

1

Navigate to Alerting Settings

अपने Dodo Payments Dashboard पर जाएँ और Dashboard → Webhooks → Alerting पर जाएँ।
2

Enable Email Notifications

Webhook delivery issues के बारे में alerts प्राप्त करना शुरू करने के लिए Email notifications को on करें।
3

Configure Email Address

वह email address दर्ज करें जहाँ आप webhook alerts प्राप्त करना चाहते हैं। जब आपके webhook setup से संबंधित कुछ events हों, जैसे delivery issues जो आपके integrations को प्रभावित कर सकते हैं, तो हम इस address पर notifications भेजेंगे।
Webhook delivery problems को जल्दी पहचानने और reliable integrations बनाए रखने के लिए email alerts enable करें। Deliveries fail होने या आपका endpoint unresponsive होने पर आपको notification दी जाएगी।

Cloud Platforms पर Deploy करना

अपने webhook handler को production पर deploy करने के लिए तैयार हैं? हम popular cloud providers पर webhooks deploy करने में सहायता के लिए platform-specific guides प्रदान करते हैं, जिनमें प्रत्येक platform के लिए best practices शामिल हैं।

Vercel

Vercel पर serverless functions के साथ webhooks deploy करें

Cloudflare Workers

Cloudflare के edge network पर webhooks चलाएँ

Supabase Edge Functions

Webhooks को Supabase के साथ integrate करें

Netlify Functions

Webhooks को Netlify serverless functions के रूप में deploy करें
प्रत्येक platform guide में उस provider के लिए specific environment setup, signature verification और deployment steps शामिल हैं।

संबंधित API Reference

Create Webhook

Webhook endpoints को programmatically create और configure करने के लिए API reference

List Webhooks

अपने webhook endpoints retrieve और manage करने के लिए API reference
अंतिम संशोधन 31 जुलाई 2026