smswhatsappservice/API_DOCUMENTATION.md

113 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

# WhatsApp SMS Service API Documentation
This document describes the REST API for the WhatsApp SMS Service, which acts as a gateway to send WhatsApp messages using MSG91 templates.
## Base URL
```
http://betawhatsapp.tradhox.com/api/
```
*(Or your local/production domain accordingly)*
---
## Endpoint: Send WhatsApp Message
Sends a WhatsApp message using a dynamically loaded MSG91 JSON template.
**URL:** `/send/`
**Method:** `POST`
**Content-Type:** `application/json`
### Request Body Parameters
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `mobile_number` | String | Yes | The recipient's mobile number, including the country code (e.g., `"919600494039"`). |
| `otp_code` | String | Yes | The dynamic variable value (e.g., OTP or verification code) to populate in the template. |
| `template_name` | String | No | The name of the MSG91 template to use. Must match a `.json` file located in the `template jsons/` directory. Defaults to `"mobile_number_verification"`. |
### Example Request
```bash
curl -X POST http://betawhatsapp.tradhox.com/api/send/ \
-H "Content-Type: application/json" \
-d '{
"mobile_number": "919600494039",
"otp_code": "123456",
"template_name": "mobile_number_verification"
}'
```
### Example Response (Success)
The API passes through the response from MSG91 directly.
**Status Code:** `200 OK`
```json
{
"status": "success",
"message": "Message successfully submitted."
}
```
### Example Response (Failure/Missing Parameters)
**Status Code:** `400 Bad Request`
```json
{
"error": "mobile_number and otp_code are required"
}
```
### Example Response (Template Not Found)
**Status Code:** `400 Bad Request`
```json
{
"status": "error",
"message": "Template custom_promo not found"
}
```
---
## Adding New Templates
To add support for a new MSG91 template:
1. Create a new `.json` file in the `template jsons/` folder. The filename (without `.json`) will be the `template_name` used in the API request.
2. The JSON file must strictly match the MSG91 payload structure.
3. Keep the `to` and dynamic `value` fields empty in the template file, as the API service will automatically populate them dynamically at runtime!
Example file (`template jsons/mobile_number_verification.json`):
```json
{
"integrated_number": "918610694498",
"content_type": "template",
"payload": {
"messaging_product": "whatsapp",
"type": "template",
"template": {
"name": "mobile_number_verification",
"language": {
"code": "en",
"policy": "deterministic"
},
"namespace": null,
"to_and_components": [
{
"to": [""],
"components": {
"body_1": {
"type": "text",
"value": ""
},
"button_1": {
"subtype": "url",
"type": "text",
"value": ""
}
}
}
]
}
}
}
```