Introduction
The WAB Engine Motorsoft API follows RESTful architecture standards, offering clear and consistent resource-based endpoints. All requests and responses are transmitted in JSON format, leveraging standard HTTP verbs, status codes, and authentication protocols to enable secure, efficient, and scalable integrations.
API Base URL
Please note that WAB Engine Motorsoft does not provide a sandbox or test environment. All API requests are processed in the live environment, so ensure that all request data and parameters are accurate before making any calls.
https://wab.motorsoft.es/external-api
Authentication
All requests to the WAB Engine Motorsoft API require authentication. Each API request must include a valid client-id and client-secret to the request header, which can be obtained from your WAB Engine Motorsoft Dashboard under Developer Tools.
In addition to credentials, WAB Engine Motorsoft enforces IP-based security. You must register and enable your server’s public IP address in the IP Whitelist section of the dashboard. Requests originating from non-whitelisted IP addresses will be automatically rejected.
Both valid API credentials and an approved IP address are mandatory. Without completing these two steps, authentication will fail and API access will not be granted.
Response Format
All responses from the WAB Engine Motorsoft API are returned in JSON format. Each response follows a consistent structure and includes a status indicator, message, and relevant data payload when applicable. Standard HTTP status codes are used to represent the outcome of each request.
Sample Success Response
{
"status": "success",
"remark": "contact_list",
"message":[
"Contact list fetched successfully"
],
"data": {
...you get all data here
}
}
Respuesta de error de ejemplo
{
"remark": "Unauthorized",
"status": "error",
"message": [
"The client secret is required"
]
}
{
"remark": "Unauthorized",
"status": "error",
"message": [
"Access to this API endpoint is restricted to IP addresses that have been explicitly whitelisted.",
"In order to access this API endpoint, please add your IP address (::1) to the white list from the user dashboard."
]
}
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/contact/list',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Get Contact List
This endpoint allows you to retrieve a complete list of contacts associated with your WAB Engine Motorsoft account.
Query Parameters
Query parameters that allow you to customize the API response.
| Nombre | Descripción | Required | Default |
|---|---|---|---|
page |
Specifies the page number to retrieve. | No | 1 |
paginate |
Defines the number of items returned per page. | No | 20 |
search |
Searches for contacts by firstname, lastname or mobile number. | No | - |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/contact/store',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('firstname' => 'John','lastname' => 'Doe','mobile_code' => '880','mobile' => '01988'),
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Create New Contact
This endpoint allows you to add a new contact to your WAB Engine Motorsoft account. Provide the necessary contact details, and upon successful request, the API returns the created contact’s information in JSON format for easy integration.
Required Fields
The following fields are required to create a new contact in the system.
| Nombre | Required | Default |
|---|---|---|
firstname |
Sí | - |
lastname |
Sí | - |
mobile_code |
Sí | - |
mobile |
Sí | - |
city |
No | - |
state |
No | - |
post_code |
No | - |
address |
No | - |
profile_image |
No | - |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/contact/update/{contactId}',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('firstname' => 'John','lastname' => 'Doe','mobile_code' => '880','mobile' => '01988'),
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Update Contact
This endpoint allows you to update an existing contact. You only need to send the fields you want to modify. Any field not included in the request will remain unchanged.
Required Fields
The following fields are required to create a new contact in the system.
| Nombre | Required | Default |
|---|---|---|
firstname |
Sí | - |
lastname |
Sí | - |
mobile_code |
Sí | - |
mobile |
Sí | - |
city |
No | - |
state |
No | - |
post_code |
No | - |
address |
No | - |
profile_image |
No | - |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/contact/delete/{contactId}',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_POSTFIELDS => array('firstname' => 'John','lastname' => 'Doe','mobile_code' => '880','mobile' => '01988'),
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Delete Contact
This endpoint allows you to delete a contact by its unique ID. Deletion may be restricted if the contact has associated messages or is blocked.
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/inbox/conversation-list',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Conversation List
Retrieve a paginated list of conversations for the authenticated user, including contact info and conversation status.
Query Parameters
| Nombre | Descripción | Default |
|---|---|---|
status |
Filtra conversaciones por estado. Usa el valor de abajo para filtrar la conversación por estado. Done = 1; Pending = 2; Important = 3; Unread = 4; | Todos |
page |
Specifies the page number to retrieve. | 1 |
paginate |
Defines the number of items returned per page. | 20 |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/inbox/change-conversation-status/2',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('status' => '1'),
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Cambiar estado de la conversación
Update the status of a conversation such as pending, done, or important. Here Done = 1, Pending = 2 and Important = 3,UnRead=4
URL Parameters
| Parameter | Type | Descripción |
|---|---|---|
conversation_id |
integer | Unique ID of the conversation |
Request Body
| Campo | Type | Required |
|---|---|---|
status |
integer | YEs |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/inbox/conversation-details/2',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_POSTFIELDS => array('status' => '1'),
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Conversation Details
Retrieve complete details of a conversation including contact information, notes, tags, and list associations.
URL Parameters
| Parameter | Type | Descripción |
|---|---|---|
conversation_id |
integer | Unique ID of the conversation |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/inbox/send-message',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('mobile_code' => '880','mobile' => xxxxxxxxx','message' => 'Hello world'),
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Send Message
Send WhatsApp messages to a mobile number. This endpoint supports text, media, location, interactive lists, CTA URLs, and e-commerce messages. If no existing contact or conversation is found for the provided phone number, a new contact and conversation will be created automatically.
Request Body
| Campo | Type | Required | Descripción |
|---|---|---|---|
mobile_code |
string | yes | Mobile country code. Must be a valid numeric country code without the plus (+) sign. |
mobile |
string | yes | Un número de teléfono móvil válido asociado al código de país proporcionado. |
from_number |
string | conditional | Se requiere un número de teléfono de WhatsApp Business válido registrado en tu cuenta y en el panel de Meta. Si no se proporciona ID, el mensaje se enviará usando tu cuenta de WhatsApp registrada por defecto. |
message |
string | Conditional | Text message body. Required if no media, location, or interactive data is provided |
image |
file | No | Image file (jpg, jpeg, png – max 5MB) |
document |
file | No | Document file (pdf, doc, docx – max 100MB) |
video |
file | No | Video file (mp4 – max 16MB) |
audio |
file | No | Audio file – max 16MB |
latitude |
decimal | Conditional | Latitude for location message |
longitude |
decimal | Conditional | Longitude for location message |
cta_url_id |
integer | No | ID de URL CTA para mensajes de botón interactivo |
interactive_list_id |
integer | No | Interactive list ID |
Notes
Se debe proporcionar al menos un tipo de mensaje.
Interactive messages require an active plan.
Los contactos bloqueados no pueden enviar ni recibir mensajes.
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/inbox/send-template-message',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('mobile_code' => '880','mobile' => 'xxxxxx','testmplate_id' => 'your template id'),
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Send Template Message
Send an approved WhatsApp template message to an existing conversation. Template messages are commonly used for notifications, alerts, and business-initiated communication.
Request Body
| Campo | Type | Required | Descripción |
|---|---|---|---|
mobile_code |
string | yes | Mobile country code. Must be a valid numeric country code without the plus (+) sign. |
mobile |
string | yes | Un número de teléfono móvil válido asociado al código de país proporcionado. |
from_number |
string | conditional | Se requiere un número de teléfono de WhatsApp Business válido registrado en tu cuenta y en el panel de Meta. Si no se proporciona ID, el mensaje se enviará usando tu cuenta de WhatsApp registrada por defecto. |
template_id |
integer | Yes | ID de plantilla de WhatsApp aprobada |
Notes
Only approved WhatsApp templates can be sent.
Template messages are typically used for business-initiated conversations.
Los contactos bloqueados no pueden recibir mensajes de plantilla.
WhatsApp account must be connected before sending messages.
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://wab.motorsoft.es/extern-api/inbox/template-list',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'client-id: YOUR-CLIENT-ID',
'client-secret: YOUR-CLIENT-SECRET',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Get Template List
This endpoint allows you to fetch all WhatsApp templates associated with your account.