मुख्य सामग्री पर जाएं
Wbiztool

मैसेजिंग API

संदेश भेजें API

अपने कनेक्टेड WhatsApp नंबर से किसी एक फोन नंबर पर WhatsApp टेक्स्ट, इमेज या डॉक्यूमेंट भेजें। इसका इस्तेमाल ऑर्डर कन्फर्मेशन, पेमेंट रिमाइंडर, अलर्ट और सपोर्ट जवाबों के लिए करें।

POSThttps://wbiztool.com/api/v1/send_msg/

बॉडी: JSON, फॉर्म फील्ड, या फाइल अपलोड करते समय multipart/form-data

संदेश कतार में जाता है और कुछ ही पलों में आपके WhatsApp नंबर से भेज दिया जाता है। रिस्पॉन्स में आपको एक msg_id मिलता है, जिससे आप उसका स्टेटस जांच सकते हैं।

छोटा उदाहरण#

curl -X POST https://wbiztool.com/api/v1/send_msg/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 0,
    "country_code": "91",
    "phone": "9876543210",
    "msg": "Hi Aman, your order #4821 has shipped and will arrive on Thursday."
  }'

12345, YOUR_API_KEY और 678 की जगह अपनी वैल्यू डालें। ये कहां मिलेंगी, यह जानने के लिए ऑथेंटिकेशन देखें।

रिक्वेस्ट पैरामीटर#

ऑथेंटिकेशन

client_idintegerआवश्यक

सेटिंग्स → API Keys से आपका API क्लाइंट ID।

api_keystringआवश्यक

उसी पेज से आपकी API की।

whatsapp_clientintegerएक से ज़्यादा नंबर होने पर ज़रूरी

जिस WhatsApp नंबर से भेजना है उसका ID, WhatsApp सेटिंग्स से। अगर आप इसे नहीं भेजते और आपके वर्कस्पेस में ठीक एक कनेक्टेड नंबर है, तो वही नंबर इस्तेमाल होता है।

प्राप्तकर्ता और संदेश

phonestringआवश्यक

प्राप्तकर्ता का WhatsApp नंबर, सिर्फ अंक। स्पेस, +, -, . और ब्रैकेट अपने आप हटा दिए जाते हैं। नंबर या तो कंट्री कोड के साथ (919876543210) भेजें, या कंट्री कोड के बिना (9876543210) country_code के साथ भेजें। फॉर्म फील्ड के साथ शुरुआत का ट्रंक 0 (09876543210) शामिल न करें: country_code जोड़े जाने से पहले यह हटाया नहीं जाता, इसलिए संदेश गलत नंबर पर जाता है। JSON रिक्वेस्ट इसे अपने आप हटा देती हैं।

country_codestringवैकल्पिक

+ के बिना देश का कॉलिंग कोड, जैसे भारत के लिए 91 या अमेरिका के लिए 1। यह phone के आगे जोड़ा जाता है, जब तक कि नंबर पहले से इसी कोड से शुरू न होता हो। अपवाद: 91 के साथ, 10 अंकों वाले नंबर के आगे हमेशा कोड जुड़ता है। दूसरे कोड के साथ, जो लोकल नंबर उन्हीं अंकों से शुरू होता है उसके आगे कोड नहीं जुड़ता, इसलिए उसे कंट्री कोड सहित भेजें।

msg_typeintegerवैकल्पिक

0 टेक्स्ट (डिफ़ॉल्ट), 1 इमेज, 2 फाइल या डॉक्यूमेंट।

msgstringmsg_type 0 होने पर ज़रूरी

संदेश का टेक्स्ट, अधिकतम 3,000 कैरेक्टर। इमेज और फाइलों के लिए यह कैप्शन होता है और खाली भी हो सकता है। WhatsApp फॉर्मेटिंग काम करती है: *bold*, _italic_, ~strikethrough~message को भी इसके दूसरे नाम (alias) के रूप में स्वीकार किया जाता है।

इमेज और फाइलें

img_urlstringmsg_type 1 होने और कोई फाइल अपलोड न होने पर ज़रूरी

इमेज का सार्वजनिक http या https URL।

file_urlstringmsg_type 2 होने और कोई फाइल अपलोड न होने पर ज़रूरी

सार्वजनिक http या https URL, जिससे फाइल सीधे डाउनलोड की जा सके।

filefileवैकल्पिक

URL देने के बजाय इमेज या फाइल अपलोड करें। रिक्वेस्ट को multipart/form-data के रूप में भेजें, और फील्ड का नाम file रखें।

file_namestringवैकल्पिक

प्राप्तकर्ता को दिखने वाला फाइल नाम, जैसे invoice-4821.pdf। इसके एक्सटेंशन से तय होता है कि फाइल कैसे भेजी जाएगी, इसलिए एक्सटेंशन ज़रूर लिखें। यह छोटे अक्षरों (lower case) में भेजा जाता है, & : ? * $ ; जैसे कैरेक्टर _ से बदल दिए जाते हैं, और इसे 150 कैरेक्टर तक काट दिया जाता है। अगर आप इसे नहीं भेजते, तो नाम URL या अपलोड की गई फाइल से लिया जाता है।

डिलीवरी विकल्प

expire_after_secondsintegerवैकल्पिक

अगर संदेश इतने सेकंड में नहीं भेजा गया, तो उसे एक्सपायर (स्टेटस 4) मार्क करें, जैसे एक घंटे के लिए 3600। डिलीवरी ETA जैसे समय-संवेदनशील संदेशों के लिए उपयोगी। यह काम एक बैकग्राउंड जॉब डेडलाइन के कम से कम 30 सेकंड बाद करता है, इसलिए एक मिनट से छोटी डेडलाइन के लिए इस पर भरोसा न करें।

webhookstringवैकल्पिक

वह URL जिसे संदेश भेजे जाने या फेल होने पर एक POST मिलता है। वेबहुक देखें।

इमेज और फाइलें भेजना#

img_url और file_url के लिए डाउनलोड सीमाएं:

  • URL सार्वजनिक होना चाहिए: http या https, और इंटरनेट से पहुंच योग्य। ज़्यादा से ज़्यादा 5 रीडायरेक्ट फॉलो किए जाते हैं, और हर रीडायरेक्ट भी किसी सार्वजनिक पते पर ही ले जाना चाहिए।
  • लिंक की गई फाइलें 100 MB तक की हो सकती हैं। सर्वर को 45 सेकंड के अंदर जवाब देना शुरू करना चाहिए और इससे ज़्यादा देर तक रुकना नहीं चाहिए।
  • फाइल API कॉल करते समय ही डाउनलोड की जाती है, इसलिए टूटा हुआ लिंक तुरंत Invalid file url के साथ फेल हो जाता है।

समर्थित एक्सटेंशन: .pdf, .xlsx, .xls, .txt, .docx, .png, .jpg, .jpeg, .webp, .mp3, .mpga, .m4a, .mp4, .webm

ये जांचें API कॉल करते समय नहीं, बल्कि संदेश भेजते समय होती हैं, इसलिए ये फेल सिर्फ संदेश स्टेटस और वेबहुक में दिखते हैं:

समस्यासंदेश स्टेटस में error
16 MB से बड़ी इमेज (msg_type 1)File exceeds WhatsApp size limit (16MB max)
64 MB से बड़ा वीडियो (.mp4, .webm), या खाली फाइलFile exceeds WhatsApp size limit (…)
.ogg फाइल, या इमेज (msg_type 1) के रूप में भेजी गई .wav फाइलFile type not supported

WAV और OGG ऑडियो सपोर्ट नहीं होते। फाइल (msg_type 2) के रूप में भेजी गई .wav फाइल रिजेक्ट नहीं होती, लेकिन recording.wav.pdf के रूप में पहुंचती है। पहले ऑडियो को .mp3 या .m4a में बदलें।

URL से इमेज
curl -X POST https://wbiztool.com/api/v1/send_msg/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "msg_type": 1,
    "country_code": "91",
    "phone": "9876543210",
    "img_url": "https://example.com/offers/diwali-sale.jpg",
    "msg": "Our Diwali sale starts today 🎉"
  }'
फाइल अपलोड करें
curl -X POST https://wbiztool.com/api/v1/send_msg/ \
  -F client_id=12345 \
  -F api_key=YOUR_API_KEY \
  -F whatsapp_client=678 \
  -F msg_type=2 \
  -F country_code=91 \
  -F phone=9876543210 \
  -F "msg=Your invoice for order #4821 is attached." \
  -F file_name=invoice-4821.pdf \
  -F file=@./invoice-4821.pdf

आधिकारिक क्लाइंट का इस्तेमाल#

Python और Node.js क्लाइंट आपके लिए यह एंडपॉइंट कॉल करते हैं।

from wbiztool_client import WbizToolClient

client = WbizToolClient(api_key="YOUR_API_KEY", client_id="12345")

result = client.send_message(
    phone="9876543210",
    country_code="91",
    msg="Hi Aman, your order #4821 has shipped.",
    whatsapp_client=678,
)
print(result)

एरर होने पर requests.HTTPError रेज़ होता है। वजह e.response.json()["message"] से पढ़ें।

रिस्पॉन्स#

सफल रिक्वेस्ट HTTP 200 लौटाती है:

{
  "status": 1,
  "message": "Created",
  "msg_id": 9817263
}
फील्डटाइपविवरण
statusintegerसंदेश कतार में चला गया हो तो 1, रिक्वेस्ट फेल हुई हो तो 0
messagestringसफल होने पर Created, वरना एरर।
msg_idintegerकतार में गए संदेश का ID। बाद में स्टेटस जांचने के लिए इसे सेव करें। केवल सफल होने पर मौजूद होता है।

"status": 1 का मतलब है कि संदेश कतार में चला गया है, यह नहीं कि वह प्राप्तकर्ता तक पहुंच गया है। संदेश भेजा गया या नहीं, यह पक्का करने के लिए वेबहुक या संदेश स्टेटस इस्तेमाल करें।

एरर#

एरर HTTP 400 लौटाते हैं और status की वैल्यू 0 होती है (Account Disabled में status फील्ड नहीं होता):

{ "status": 0, "message": "Msg cant be null" }
संदेशकैसे ठीक करें
Auth Error - Please send correct API key and Client idखाली न हो ऐसा api_key भेजें।
Invalid client id.client_id को नंबर के रूप में भेजें।
Auth Error: invalid api keyजांचें कि की मौजूद है, डिलीट नहीं हुई है और इसी client_id की है।
Either phone or group_name parameter is requiredphone जोड़ें।
Please provide either phone OR group_name, not bothइनमें से एक हटा दें।
Invalid phone numberphone में सिर्फ अंक (6–17 अंक) होने चाहिए, शुरुआत में + हो सकता है।
Invalid Contact Number "…"कंट्री कोड जोड़ने के बाद नंबर 6–15 अंकों का होना चाहिए।
Msg cant be nullटेक्स्ट संदेशों (msg_type 0) के लिए msg ज़रूरी है।
Message length is too longmsg को 3,000 कैरेक्टर या उससे कम रखें।
Image Url Can't be nullmsg_type 1 के लिए img_url भेजें या file अपलोड करें।
File Url Can't be nullmsg_type 2 के लिए file_url भेजें या file अपलोड करें।
Invalid file url, Can't download / Invalid file urlURL सार्वजनिक नहीं है, टाइम आउट हो गया, या फाइल 100 MB से बड़ी है।
Invalid whatsapp clientवह whatsapp_client ID आपके वर्कस्पेस में नहीं है।
Invalid whatsapp client id.whatsapp_client भेजें। जब आपके वर्कस्पेस में एक से ज़्यादा कनेक्टेड नंबर हों, तो यह ज़रूरी है।
Not enough creditsआपके प्लान में कोई संदेश नहीं बचा है।
Demo Account can not access apisसामान्य अकाउंट इस्तेमाल करें।
Account Disabledआपका अकाउंट डिसेबल है। सपोर्ट से संपर्क करें
Invalid JSON format: …JSON बॉडी सही नहीं है, अक्सर आखिर में लगे अतिरिक्त कॉमा या msg में बिना escape किए लाइन ब्रेक की वजह से। नई लाइन के लिए \n इस्तेमाल करें।

कतार में लगा संदेश भेजते समय भी फेल हो सकता है, जैसे File exceeds WhatsApp size limit (…) के साथ। ऐसे एरर इस रिस्पॉन्स में कभी नहीं दिखते। इमेज और फाइलें भेजना देखें और संदेश स्टेटस जांचें।

वेबहुक#

अगर आप webhook पास करते हैं, तो संदेश भेजे जाने या फेल होने पर Wbiztool उस URL पर एक POST भेजता है। बॉडी JSON नहीं, बल्कि form-encoded (application/x-www-form-urlencoded) होती है:

msg_id=9817263&status=SENT
फील्डवैल्यू
msg_idसंदेश भेजते समय लौटाया गया msg_id
statusSENT या FAILED

कोई भी 2xx कोड लौटाएं। अगर आपका एंडपॉइंट टाइम आउट हो जाता है (3 सेकंड के बाद) या 5xx लौटाता है, तो कॉल कुल मिलाकर अधिकतम 3 बार तक दोबारा की जाती है। 4xx रिस्पॉन्स पर दोबारा कोशिश नहीं की जाती। संदेश कैंसल या एक्सपायर होने पर कोई वेबहुक नहीं भेजा जाता; उनके लिए संदेश स्टेटस इस्तेमाल करें।

सुझाव#

  • फोन नंबर: नंबरों को इंटरनेशनल फॉर्मेट में स्टोर करें और भ्रम से बचने के लिए उन्हें country_code के साथ भेजें।
  • JSON में नई लाइन: msg के अंदर इन्हें \n लिखें। सीधा लाइन ब्रेक JSON को अमान्य बना देता है।
  • अपना नंबर कनेक्टेड रखें: संदेश आपके WhatsApp नंबर से भेजे जाते हैं, इसलिए वह WhatsApp सेटिंग्स में कनेक्टेड रहना चाहिए।
  • कई प्राप्तकर्ता: एक ही रिक्वेस्ट में एक ही संदेश कई नंबरों पर भेजने के लिए कई नंबरों पर भेजें इस्तेमाल करें। बड़े कैंपेन के लिए इसके बजाय कैंपेन पेज से स्प्रेडशीट अपलोड करें।