API डॉक्यूमेंटेशन
वर्चुअल नंबर, ऑर्डर्स, और अकाउंट बैलेंस तक प्रोग्रामैटिक एक्सेस।
⟩ ऑथेंटिकेशन
सभी API रिक्वेस्ट के लिए Bearer token ज़रूरी है। डैशबोर्ड में Account Settings से एक जनरेट करें, फिर हर रिक्वेस्ट में शामिल करें:
बिना वैध token वाली रिक्वेस्ट को 401 UNAUTHORIZED रिस्पॉन्स मिलता है।
⟩ Base URL
नीचे दिए गए सभी endpoint पाथ इसके रिलेटिव हैं:
⟩ रिस्पॉन्स फ़ॉर्मेट
हर रिस्पॉन्स एक कंसिस्टेंट एन्वेलप के साथ JSON लौटाता है। सभी रिस्पॉन्स में डीबगिंग के लिए x-request-id हेडर शामिल होता है।
{
"success": true,
"data": { ... }
} {
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable message"
}
} /catalog/countries सभी उपलब्ध देशों की सूची लौटाता है।
पैरामीटर्स
कोई नहीं
एग्ज़ांपल रिक्वेस्ट
curl -s https://api.smscode.gg/v1/catalog/countries \
-H "Authorization: Bearer YOUR_API_TOKEN" const res = await fetch("https://api.smscode.gg/v1/catalog/countries", {
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.get("https://api.smscode.gg/v1/catalog/countries",
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": [
{
"id": 6,
"code": "ID",
"name": "Indonesia",
"dial_code": "+62",
"emoji": "🇮🇩",
"active": true
}
]
} /catalog/services उपलब्ध सर्विसेज़ (प्लेटफ़ॉर्म) की सूची लौटाता है। वैकल्पिक रूप से देश के अनुसार फ़िल्टर करें।
Query Parameters
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
country_id | integer | नहीं | इस देश के लिए उपलब्ध सर्विसेज़ फ़िल्टर करें |
एग्ज़ांपल रिक्वेस्ट
curl -s "https://api.smscode.gg/v1/catalog/services?country_id=6" \
-H "Authorization: Bearer YOUR_API_TOKEN" const res = await fetch("https://api.smscode.gg/v1/catalog/services?country_id=6", {
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.get("https://api.smscode.gg/v1/catalog/services",
params={"country_id": 6},
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": [
{
"id": 3,
"code": "wa",
"name": "WhatsApp",
"active": true
}
]
} /catalog/products उपलब्ध प्रोडक्ट्स की पेजिनेटेड सूची लौटाता है। देश और/या प्लेटफ़ॉर्म के अनुसार फ़िल्टर करें।
Query Parameters
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
country_id | integer | नहीं | कंट्री ID से फ़िल्टर करें |
platform_id | integer | नहीं | प्लेटफ़ॉर्म/सर्विस ID से फ़िल्टर करें |
sort | string | नहीं | सॉर्ट ऑर्डर: price_asc (डिफ़ॉल्ट), price_desc, available_asc, available_desc, name_asc, name_desc |
limit | integer | नहीं | प्रति पेज रिज़ल्ट (1-10,000, डिफ़ॉल्ट 1,000) |
page | integer | नहीं | पेज नंबर (न्यूनतम 1, डिफ़ॉल्ट 1) |
एग्ज़ांपल रिक्वेस्ट
curl -s "https://api.smscode.gg/v1/catalog/products?country_id=6&platform_id=3&limit=10&page=1" \
-H "Authorization: Bearer YOUR_API_TOKEN" const params = new URLSearchParams({
country_id: "6", platform_id: "3", limit: "10", page: "1",
});
const res = await fetch(`https://api.smscode.gg/v1/catalog/products?${params}`, {
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.get("https://api.smscode.gg/v1/catalog/products",
params={"country_id": 6, "platform_id": 3, "limit": 10, "page": 1},
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": [
{
"id": 142,
"name": "WhatsApp Indonesia",
"country_id": 6,
"platform_id": 3,
"available": 42,
"price": 15000,
"active": true
}
],
"meta": { "page": 1, "limit": 10, "count": 1 }
} /catalog/exchange-rate करेंसी पेयर के लिए वर्तमान एक्सचेंज रेट लौटाता है। कीमतें कन्वर्ट करने के लिए उपयोगी।
Query Parameters
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
pair | string | नहीं | करेंसी पेयर (डिफ़ॉल्ट: USD/IDR) |
एग्ज़ांपल रिक्वेस्ट
curl -s "https://api.smscode.gg/v1/catalog/exchange-rate?pair=USD/IDR" \
-H "Authorization: Bearer YOUR_API_TOKEN" const res = await fetch("https://api.smscode.gg/v1/catalog/exchange-rate?pair=USD/IDR", {
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.get("https://api.smscode.gg/v1/catalog/exchange-rate",
params={"pair": "USD/IDR"},
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"pair": "USD/IDR",
"base_currency": "USD",
"quote_currency": "IDR",
"rate": 16250
}
} /balance ऑथेंटिकेटेड यूज़र का अकाउंट बैलेंस IDR में लौटाता है।
पैरामीटर्स
कोई नहीं
एग्ज़ांपल रिक्वेस्ट
curl -s https://api.smscode.gg/v1/balance \
-H "Authorization: Bearer YOUR_API_TOKEN" const res = await fetch("https://api.smscode.gg/v1/balance", {
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.get("https://api.smscode.gg/v1/balance",
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"currency": "IDR",
"balance": 500000
}
} /orders ऑथेंटिकेटेड यूज़र के ऑर्डर्स की सूची लौटाता है, सबसे हाल के पहले। स्टेटस और offset के ज़रिए पेजिनेशन द्वारा फ़िल्टरिंग सपोर्ट करता है।
Query Parameters
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
limit | integer | नहीं | अधिकतम रिज़ल्ट (1-100, डिफ़ॉल्ट 20) |
offset | integer | नहीं | स्किप करने के लिए रिज़ल्ट की संख्या (डिफ़ॉल्ट 0) |
status | string | नहीं | स्टेटस से फ़िल्टर करें: ACTIVE, OTP_RECEIVED, COMPLETED, CANCELED, EXPIRED (केस-इनसेंसिटिव) |
एग्ज़ांपल रिक्वेस्ट
curl -s "https://api.smscode.gg/v1/orders?limit=5&status=ACTIVE" \
-H "Authorization: Bearer YOUR_API_TOKEN" const params = new URLSearchParams({
limit: "5", status: "ACTIVE", offset: "0",
});
const res = await fetch(`https://api.smscode.gg/v1/orders?${params}`, {
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.get("https://api.smscode.gg/v1/orders",
params={"limit": 5, "status": "ACTIVE", "offset": 0},
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": [
{
"id": 1001,
"status": "ACTIVE",
"created_at": "2026-02-25T10:00:00Z",
"product_id": 142,
"phone_number": "+6281234567890",
"amount": 15000,
"otp_code": null,
"otp_received_at": null,
"expires_at": "2026-02-25T10:20:00Z",
"canceled_at": null,
"failed_reason": null
}
]
} /orders/{id} ID के अनुसार एक ऑर्डर लौटाता है। सिर्फ़ ऑथेंटिकेटेड यूज़र के ऑर्डर लौटाता है।
Path Parameters
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
id | integer | हाँ | ऑर्डर ID (path parameter) |
एग्ज़ांपल रिक्वेस्ट
curl -s https://api.smscode.gg/v1/orders/1001 \
-H "Authorization: Bearer YOUR_API_TOKEN" const res = await fetch("https://api.smscode.gg/v1/orders/1001", {
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.get("https://api.smscode.gg/v1/orders/1001",
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"id": 1001,
"status": "OTP_RECEIVED",
"created_at": "2026-02-25T10:00:00Z",
"product_id": 142,
"phone_number": "+6281234567890",
"amount": 15000,
"otp_code": "123456",
"otp_received_at": "2026-02-25T10:05:00Z",
"expires_at": "2026-02-25T10:20:00Z",
"canceled_at": null,
"failed_reason": null
}
} /orders/active सभी वर्तमान एक्टिव ऑर्डर्स (ACTIVE + OTP_RECEIVED) की सूची। OTP स्टेटस अपडेट के लिए पोल करने हेतु इसका उपयोग करें।
पैरामीटर्स
कोई नहीं
एग्ज़ांपल रिक्वेस्ट
curl -s https://api.smscode.gg/v1/orders/active \
-H "Authorization: Bearer YOUR_API_TOKEN" const res = await fetch("https://api.smscode.gg/v1/orders/active", {
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.get("https://api.smscode.gg/v1/orders/active",
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": [
{
"id": 1001,
"status": "OTP_RECEIVED",
"otp_code": "123456",
"otp_message": "Your verification code is 123456",
"otp_received_at": "2026-02-25T10:05:00Z",
"expires_at": "2026-02-25T10:20:00Z",
"failed_reason": null
},
{
"id": 1002,
"status": "ACTIVE",
"otp_code": null,
"otp_message": null,
"otp_received_at": null,
"expires_at": "2026-02-25T10:50:00Z",
"failed_reason": null
}
]
} /orders/create एक नया वर्चुअल नंबर ऑर्डर बनाता है। बैलेंस ऑटोमैटिकली कटता है। नेटवर्क रिट्राई पर डुप्लिकेट ऑर्डर रोकने के लिए वैकल्पिक Idempotency-Key हेडर सपोर्ट करता है।
Request Body
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
product_id | integer | हाँ | ऑर्डर करने के लिए प्रोडक्ट की ID |
quantity | integer | नहीं | आइटम की संख्या (1-100, डिफ़ॉल्ट 1) |
रिक्वेस्ट को सुरक्षित रूप से रिट्राई करने के लिए Idempotency-Key हेडर (कोई भी यूनिक स्ट्रिंग) पास करें, बिना डुप्लिकेट ऑर्डर बनाए।
एग्ज़ांपल रिक्वेस्ट
curl -s -X POST https://api.smscode.gg/v1/orders/create \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: unique-request-id-123" \
-d '{"product_id":142,"quantity":1}' const res = await fetch("https://api.smscode.gg/v1/orders/create", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json",
"Idempotency-Key": "unique-request-id-123",
},
body: JSON.stringify({ product_id: 142, quantity: 1 }),
});
const data = await res.json(); import requests
res = requests.post("https://api.smscode.gg/v1/orders/create",
json={"product_id": 142, "quantity": 1},
headers={
"Authorization": "Bearer YOUR_API_TOKEN",
"Idempotency-Key": "unique-request-id-123",
})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"orders": [
{
"id": 1002,
"status": "ACTIVE",
"phone_number": "+6281234567891",
"otp_code": null,
"otp_received_at": null,
"expires_at": "2026-02-25T10:50:00Z",
"failed_reason": null
}
],
"failed_count": 0
}
} /orders/cancel एक एक्टिव ऑर्डर कैंसल करता है। रेंटल कॉस्ट आपके अकाउंट बैलेंस में रिफंड हो जाती है।
Request Body
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
id | integer | हाँ | कैंसल करने के लिए ऑर्डर ID |
एग्ज़ांपल रिक्वेस्ट
curl -s -X POST https://api.smscode.gg/v1/orders/cancel \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id":1001}' const res = await fetch("https://api.smscode.gg/v1/orders/cancel", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ id: 1001 }),
});
const data = await res.json(); import requests
res = requests.post("https://api.smscode.gg/v1/orders/cancel",
json={"id": 1001},
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"order_id": 1001,
"status": "CANCELED",
"refund_amount": 15000,
"new_balance": 515000
}
} /orders/finish OTP प्राप्त होने के बाद ऑर्डर को कम्प्लीट मार्क करता है। एक्सपायरी का इंतज़ार करने के बजाय नंबर तुरंत रिलीज़ होता है।
Request Body
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
id | integer | हाँ | फ़िनिश करने के लिए ऑर्डर ID |
एग्ज़ांपल रिक्वेस्ट
curl -s -X POST https://api.smscode.gg/v1/orders/finish \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id":1001}' const res = await fetch("https://api.smscode.gg/v1/orders/finish", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ id: 1001 }),
});
const data = await res.json(); import requests
res = requests.post("https://api.smscode.gg/v1/orders/finish",
json={"id": 1001},
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"order_id": 1001,
"status": "COMPLETED"
}
} /orders/resend रेंटेड नंबर पर SMS दोबारा भेजने का अनुरोध करता है। सभी प्लेटफ़ॉर्म रीसेंड सपोर्ट नहीं करते — रिस्पॉन्स में resent फ़ील्ड चेक करें।
Request Body
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
id | integer | हाँ | SMS रीसेंड करने के लिए ऑर्डर ID |
एग्ज़ांपल रिक्वेस्ट
curl -s -X POST https://api.smscode.gg/v1/orders/resend \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id":1001}' const res = await fetch("https://api.smscode.gg/v1/orders/resend", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ id: 1001 }),
});
const data = await res.json(); import requests
res = requests.post("https://api.smscode.gg/v1/orders/resend",
json={"id": 1001},
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"order_id": 1001,
"status": "ACTIVE",
"resent": true
}
} /webhook आपकी वर्तमान webhook नोटिफ़िकेशन कॉन्फ़िगरेशन लौटाता है।
पैरामीटर्स
कोई नहीं
एग्ज़ांपल रिक्वेस्ट
curl -s https://api.smscode.gg/v1/webhook \
-H "Authorization: Bearer YOUR_API_TOKEN" const res = await fetch("https://api.smscode.gg/v1/webhook", {
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.get("https://api.smscode.gg/v1/webhook",
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"webhook_url": "https://example.com/webhook",
"webhook_secret": "a1b2c3d4e5f6..."
}
} /webhook अपना webhook URL और/या secret अपडेट करें। पहली बार URL सेट करने पर secret ऑटो-जनरेट होता है। क्लियर करने के लिए खाली स्ट्रिंग भेजें। URL HTTPS होना चाहिए।
Request Body
| नाम | टाइप | ज़रूरी | विवरण |
|---|---|---|---|
webhook_url | string | नहीं | Webhook इवेंट प्राप्त करने के लिए HTTPS URL (क्लियर करने के लिए खाली स्ट्रिंग) |
webhook_secret | string | नहीं | HMAC-SHA256 सिग्नेचर के लिए शेयर्ड secret (पहली बार सेट पर छोड़ने पर ऑटो-जनरेट) |
कम से कम एक फ़ील्ड ज़रूरी है।
एग्ज़ांपल रिक्वेस्ट
curl -s -X PATCH https://api.smscode.gg/v1/webhook \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"webhook_url":"https://example.com/webhook"}' const res = await fetch("https://api.smscode.gg/v1/webhook", {
method: "PATCH",
headers: {
Authorization: "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ webhook_url: "https://example.com/webhook" }),
});
const data = await res.json(); import requests
res = requests.patch("https://api.smscode.gg/v1/webhook",
json={"webhook_url": "https://example.com/webhook"},
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"webhook_url": "https://example.com/webhook",
"webhook_secret": "a1b2c3d4e5f6..."
}
} /webhook/test आपके कॉन्फ़िगर किए गए webhook URL पर एक टेस्ट इवेंट भेजता है। आपके सर्वर से HTTP स्टेटस कोड लौटाता है। लाइव होने से पहले endpoint वेरिफाई करने के लिए उपयोगी।
पैरामीटर्स
कोई नहीं
एग्ज़ांपल रिक्वेस्ट
curl -s -X POST https://api.smscode.gg/v1/webhook/test \
-H "Authorization: Bearer YOUR_API_TOKEN" const res = await fetch("https://api.smscode.gg/v1/webhook/test", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_TOKEN" },
});
const data = await res.json(); import requests
res = requests.post("https://api.smscode.gg/v1/webhook/test",
headers={"Authorization": "Bearer YOUR_API_TOKEN"})
data = res.json() एग्ज़ांपल रिस्पॉन्स
{
"success": true,
"data": {
"status_code": 200
}
} ⟩ Webhook नोटिफ़िकेशन
पोलिंग के बजाय ऑर्डर इवेंट्स के लिए रियल-टाइम पुश नोटिफ़िकेशन प्राप्त करने हेतु webhook URL कॉन्फ़िगर करें। बॉट स्क्रिप्ट्स के लिए यह रेकमेंडेड तरीक़ा है।
इवेंट्स
| इवेंट | ट्रिगर |
|---|---|
order.otp_received | रेंटेड नंबर पर OTP कोड डिलीवर हुआ |
order.completed | ऑर्डर कम्प्लीट मार्क हुआ (मैन्युअली या एक्सपायरी द्वारा) |
order.expired | ऑर्डर बिना OTP के एक्सपायर हुआ (बैलेंस रिफंड) |
order.canceled | यूज़र द्वारा ऑर्डर कैंसल (बैलेंस रिफंड) |
Payload
{
"event": "order.otp_received",
"timestamp": "2026-02-25T12:00:00Z",
"data": {
"order_id": 1001,
"phone_number": "+628123456789",
"otp_code": "1234",
"otp_message": "Your verification code is 1234",
"product_id": 42,
"country": "Indonesia",
"platform": "WhatsApp"
}
} सिग्नेचर वेरिफ़िकेशन
हर webhook रिक्वेस्ट में X-Webhook-Signature हेडर शामिल होता है जिसमें रिक्वेस्ट बॉडी का HMAC-SHA256 सिग्नेचर होता है, आपके webhook_secret को key के रूप में उपयोग करते हुए:
रिक्वेस्ट ऑथेंटिक है यह सुनिश्चित करने के लिए अपने सर्वर पर इस सिग्नेचर को वेरिफाई करें। डिलीवरी फ़ायर-एंड-फ़ॉरगेट है जिसमें 3-सेकंड टाइमआउट और कोई रिट्राई नहीं।
⟩ Rate Limits
API रिक्वेस्ट प्रति endpoint ग्रुप rate-limited हैं। लिमिट पार करने पर 429 Too Many Requests रिस्पॉन्स मिलता है जिसमें Retry-After हेडर बताता है कितने सेकंड इंतज़ार करना है।
| Endpoint ग्रुप | लिमिट | विंडो |
|---|---|---|
| Catalog (countries, services, products, exchange-rate) | 1,200 रिक्वेस्ट | 60 सेकंड |
| Balance | 600 रिक्वेस्ट | 60 सेकंड |
| Order reads (list, get, active) | 1,200 रिक्वेस्ट | 60 सेकंड |
| Order create | 1,200 रिक्वेस्ट | 60 सेकंड |
| Order cancel | 600 रिक्वेस्ट | 60 सेकंड |
| Order actions (finish, resend) | 600 रिक्वेस्ट | 60 सेकंड |
| Webhook config (get, update, test) | 120 रिक्वेस्ट | 60 सेकंड |
⟩ एरर कोड
एरर रिस्पॉन्स में error.code में इनमें से एक कोड शामिल होता है:
| कोड | HTTP | विवरण |
|---|---|---|
UNAUTHORIZED | 401 | API token गायब या अमान्य |
FORBIDDEN | 403 | एक्सेस अस्वीकृत |
NOT_FOUND | 404 | रिसोर्स नहीं मिला (ऑर्डर, एक्सचेंज रेट, आदि) |
CONFLICT | 409 | डुप्लिकेट रिक्वेस्ट या रिसोर्स कॉन्फ़्लिक्ट |
INSUFFICIENT_BALANCE | 409 | ऑर्डर बनाने के लिए पर्याप्त बैलेंस नहीं |
VALIDATION_ERROR | 422 | रिक्वेस्ट पैरामीटर्स वैलिडेशन में फ़ेल |
RATE_LIMIT_EXCEEDED | 429 | बहुत ज़्यादा रिक्वेस्ट (Retry-After हेडर देखें) |
INTERNAL_ERROR | 500 | इंटरनल सर्वर एरर |
PROVIDER_ERROR | 422 | अपस्ट्रीम SMS प्रोवाइडर ने रिक्वेस्ट रिजेक्ट की |
CANCEL_TOO_EARLY | 409 | ऑर्डर कैंसल करने के लिए बहुत नया — 2 मिनट इंतज़ार करें |
SERVICE_UNAVAILABLE | 503 | सर्विस अस्थायी रूप से अनुपलब्ध (मेंटेनेंस) |