01/सिक्योरिटी

हम आपके नंबर और डेटा को कैसे सुरक्षित रखते हैं

इस पेज की हर लाइन वह है जो कोड सच में करता है, साथ में वह वैल्यू जो इसे साबित करती है। opt-in वाली लाइनें तब तक बंद रहती हैं जब तक आप उन्हें चालू न करें। हमारे पास कोई सिक्योरिटी सर्टिफ़िकेशन नहीं है, और हम इसका दावा भी नहीं करते।

आपके WhatsApp नंबर

हर अकाउंट पर। opt-in वाली लाइनें तब तक बंद रहती हैं जब तक आप उन्हें चालू न करें।
  • exit

    हर नंबर अपने देश में अपने ख़ुद के residential IP से कनेक्ट होता है। Proxy डाउन है? नंबर ऑफ़लाइन रहता है, datacenter IP पर कभी नहीं जाता।

    egress: residential or refuse

  • sticky

    Restart के बाद भी exit वही रहता है। यह सिर्फ़ 3 बार कनेक्ट फ़ेल होने के बाद बदलता है, दिन में ज़्यादा से ज़्यादा 4 बार, या 8 बार अगर नंबर डाउन ही रहे।

    sticky · rotate_after=3 · max 8/day

  • opt-in

    Pacing, जब आप इसे चालू करें: पहले typing दिखता है, फिर एक मिनट में ज़्यादा से ज़्यादा 12 मैसेज, और नए कॉन्टैक्ट को एक मिनट में 5। डिफ़ॉल्ट रूप से बंद।

    messagesPerMinute 12 · firstContactPerMinute 5

  • check

    किसी को पहला मैसेज भेजने से पहले हम WhatsApp से पूछते हैं कि वह नंबर WhatsApp पर है या नहीं। अगर नहीं है, तो कुछ नहीं भेजा जाता।

    message.failed · not_on_whatsapp

  • stop

    जिस नंबर को WhatsApp ने logout या ban किया हो, उसे बार-बार reconnect नहीं किया जाता, क्योंकि इससे हालत अक्सर और बिगड़ती है।

    disconnectReason temporary_ban · logged_out

  • drops

    Proxy कटने पर कनेक्शन अपने आप वापस जुड़ जाता है। Queue में पड़े मैसेज नंबर का इंतज़ार करते हैं और उसके लौटते ही चले जाते हैं।

    queued → ready → sent

आपका डेटा और आपकी API

हर अकाउंट पर। कुछ भी सेट करने की ज़रूरत नहीं।
  • signed

    हर webhook एक timestamp और body पर HMAC-SHA256 से signed होता है, ताकि आपका endpoint नकली या दोहराई गई request को रिजेक्ट कर सके।

    Wuapi-Signature: t=…,v1=…

  • retries

    आपके endpoint से 2xx नहीं आया? हम दोबारा कोशिश करते हैं, कुल 6 बार। हर event की एक id होती है, जिससे आप duplicate हटा सकते हैं।

    retries 30s · 2m · 10m · 1h · 6h

  • idempotent

    हर POST एक Idempotency-Key लेता है, इसलिए timeout के बाद retry करने पर मैसेज दो बार नहीं जाता।

    Idempotency-Key · replayed 24h

  • scoped

    हर कस्टमर को उसकी अपनी keys वाला एक प्रोजेक्ट दें। एक प्रोजेक्ट की key दूसरे प्रोजेक्ट को नहीं देख सकती: उन ids पर 404 मिलता है।

    project key → one project · 404 not_found

  • at rest

    API keys hash के रूप में स्टोर होती हैं। हर नंबर को जो session चाहिए, वह encrypted स्टोर होता है।

    sha256(key) · AES-GCM session snapshots

  • cards

    पेमेंट Stripe से होते हैं। कार्ड का डेटा कभी wuapi तक नहीं पहुँचता।

    Stripe Checkout · Stripe Tax

एक्सेस और अकाउंट

कौन क्या कॉल कर सकता है, और लोग साइन इन कैसे करते हैं।
  • authz

    हर कॉल कुछ भी पढ़ने या लिखने से पहले आपके ऑर्गनाइज़ेशन, role और प्रोजेक्ट के हिसाब से चेक होती है, और अगर कोई function यह चेक छोड़ दे तो एक test फ़ेल हो जाता है।

    customer builders · publicSurface.test.ts

  • rate limit

    हर API key को एक मिनट में 600 requests मिलती हैं। इससे ज़्यादा होने पर Retry-After के साथ 429 मिलता है।

    429 rate_limited · RateLimit-Remaining

  • rotate

    कभी भी API key revoke करें या webhook secret rotate करें, API से या Dashboard से।

    POST webhook-endpoints/{id}/rotate-secret

  • outbound

    Webhooks सिर्फ़ public HTTPS URLs पर जाते हैं, redirects फ़ॉलो नहीं करते, और 10 सेकंड में time out हो जाते हैं।

    https only · redirect: manual · 10s

  • साइन इन

    Google और GitHub से साइन इन के लिए verified ईमेल ज़रूरी है। Disposable inbox से साइन अप नहीं हो सकता।

    email_verified · one email, one user

  • staff

    जब हमारी टीम मदद के लिए आपका ऑर्गनाइज़ेशन खोलती है, तो उसे वजह बतानी पड़ती है, और वह जो भी बदलाव करती है उसका audit होता है।

    impersonation · reason required · audited

हम क्या स्टोर करते हैं

वही लिस्ट जो प्राइवेसी पॉलिसी में है।
  • आपका अकाउंट: ईमेल और आपके पासवर्ड का hash, या आपकी Google या GitHub पहचान।
  • हर नंबर के लिए: फ़ोन नंबर, उसका प्रोफ़ाइल नाम, कनेक्शन status और logs, और वह session जिससे नंबर लिंक रहता है।
  • API से भेजे और पाए गए मैसेज, मीडिया समेत, ताकि API, Dashboard और webhook retries उन्हें लौटा सकें।
  • Webhook endpoints और deliveries का log। API keys, hash के रूप में।
  • बिलिंग के लिए हर नंबर का proxy ट्रैफ़िक। Stripe के बिलिंग रेफ़रेंस, कार्ड का डेटा कभी नहीं।

कनेक्टेड अकाउंट डिलीट करने पर वह फ़ोन से unlink हो जाता है। अपना ऑर्गनाइज़ेशन और उसका डेटा डिलीट करवाने के लिए सपोर्ट को लिखें।

प्राइवेसी पॉलिसी

जिसका वादा कोई सेटअप नहीं कर सकता

wuapi आपके नंबर को WhatsApp Web की तरह एक डिवाइस के रूप में लिंक करता है, और यह एक स्वतंत्र सर्विस है, WhatsApp से जुड़ी नहीं। कौन-से नंबर restrict होंगे, यह WhatsApp तय करता है। Proxy एक नेटवर्क सिग्नल हटा देता है, पर आप क्या भेजते हैं और लोग उस पर कैसे रिएक्ट करते हैं, इस पर उसका कोई असर नहीं होता। इसलिए सहमति लेने की ज़िम्मेदारी आपकी है।

अपने नंबर की सेहत बनाए रखें

ख़ुद जाँच लें

Status पेज हर मिनट API, engine और webhooks को चेक करता है। Docs में signature verify करने का तरीका है, और SLA बताता है कि पेड सपोर्ट प्लान किन चीज़ों का वादा करते हैं।