To get access to the WhatsApp Business API, Get in touch with support support@textlocal.com
https://api.txtlocal.com/bulk_json
<?php
$messages = array(
// Put parameters here such as force or test
'send_channel' => 'whatsapp',
'messages' => array(
array(
'number' => 447123456789,
'template' => array(
'id' => '12345',
'merge_fields' => array(
'FirstName' => 'Aleisha',
'LastName' => 'Britt',
'Custom1' => 'Custom 1 field test',
'Custom2' => 'Custom 2 field test',
'Custom3' => 'Custom 3 field test',
)
),
array(
'number' => 447987654321,
'template' => array(
'id' => '12345',
'merge_fields' => array(
'FirstName' => 'Kerys',
'LastName' => 'Fletcher',
'Custom1' => 'Custom 1 field test',
'Custom2' => 'Custom 2 field test',
'Custom3' => 'Custom 3 field test',
)
)
)
)
)
);
// Prepare data for POST request
$data = array(
'apikey' => 'Your API key',
'data' => json_encode($messages)
);
// Send the POST request with cURL
$ch = curl_init('https://api.txtlocal.com/bulk_json/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Caution: Some users opt to place their request inside a code loop, while testing we highly recommend setting the test parameter to true, as occasionally an infinite loop can occur and users can consume all their credits very quickly.
| data | The JSON payload, "messages" and "send_channel" are required fields. send_channel must be set to whatsapp and each message array must include a number and template details (Can be found by logging into message under send > Templates and drafts, Please note that if a template has a merge field and no value is given it will default to a space. |
|---|---|
| send_channel | Required parameter, Must be set to whatsapp, If not set defaults to SMS. |
| Login Parameters (Additional Information) | |
| apiKey | You can create these in your Messenger Control Panel (click here) for each application, and limit the usage of them by host IP Address. |
| Data Parameters—Optional parameters that can be included in the JSON data payload | |
| force | If included and set to false, this will not send any messages if 1 or more messages in the send fails for any reason. If not provided defaults to true. |
| test | Set this field to true to enable test mode, no messages will be sent and your credit balance will be unaffected. If not provided defaults to false. |
{
"messages": [
{
"cost": 1,
"balance": 100,
"number": "447123456789",
"template_id": 2530563,
"body": "This is a test template #Custom1# #Custom2#"
},
{
"cost": 1,
"balance": 100,
"number": "447987654321",
"template_id": 2530563,
"body": "This is a test template #Custom1# #Custom2#"
}
],
"balance_pre_send": 100,
"total_cost": 1,
"balance_post_send": 98,
"status": "success"
}
| Error Codes | |
| 4 | No recipients specified. |
|---|---|
| 5 | No message content. |
| 6 | Message too long. |
| 7 | Insufficient credits. |
| 8 | Invalid schedule date. |
| 9 | Schedule date is in the past. |
| 10 | Invalid group ID. |
| 11 | Selected group is empty. |
| 15 | Invalid JSON string. |
| 32 | Invalid number format. |
| 33 | You have supplied too many numbers. |
| 34 | You have supplied both a group ID and a set of numbers. |
| 43 | Invalid sender name. |
| 44 | No sender name specified. |
| 51 | No valid numbers specified. |
| 57 | No messages found. |
| 80 | Invalid Template. The message given didn't match any approved templates on your account. |
| 204 | Invalid message content. |
| 314 | One or more messages failed to send. No messages sent. |
| 600 | Invalid channel |
| 601 | The WhatsApp product is not configured on the account. |