Introduction
The OvoWpp 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 OvoWpp 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://www.masenvios.net/external-api
Authentication
All requests to the OvoWpp 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 OvoWpp Dashboard under Developer Tools.
In addition to credentials, OvoWpp 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 OvoWpp 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.
Respuesta exitosa de ejemplo
{
"status": "success",
"remark": "contact_list",
"message":[
"Contact list fetched successfully"
],
"data": {
...you get all data here
}
}
Ejemplo de respuesta de error
{
"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://www.masenvios.net/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 OvoWpp account.
Parámetros de consulta
Parámetros para personalizar la respuesta API.
| Nombre | Descripción | Obligatorio | Predeterminado |
|---|---|---|---|
página |
Especifica el número de página. | No | 1 |
paginar |
Define el número de elementos devueltos por página. | No | 20 |
buscar |
Busca contactos por nombre, apellido o número. | No | - |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.masenvios.net/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;
Crear nuevo contacto
This endpoint allows you to add a new contact to your OvoWpp account. Provide the necessary contact details, and upon successful request, the API returns the created contact’s information in JSON format for easy integration.
Campos obligatorios
Los siguientes campos son obligatorios para crear un contacto.
| Nombre | Obligatorio | Predeterminado |
|---|---|---|
nombre |
Sí | - |
apellido |
Sí | - |
código_móvil |
Sí | - |
móvil |
Sí | - |
ciudad |
No | - |
estado |
No | - |
código_postal |
No | - |
dirección |
No | - |
imagen_perfil |
No | - |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.masenvios.net/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;
Actualizar contacto
Este endpoint permite actualizar un contacto existente. Solo envía los campos a modificar.
Campos obligatorios
Los siguientes campos son obligatorios para crear un contacto.
| Nombre | Obligatorio | Predeterminado |
|---|---|---|
nombre |
Sí | - |
apellido |
Sí | - |
código_móvil |
Sí | - |
móvil |
Sí | - |
ciudad |
No | - |
estado |
No | - |
código_postal |
No | - |
dirección |
No | - |
imagen_perfil |
No | - |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.masenvios.net/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;
Eliminar contacto
Este endpoint permite eliminar un contacto por su ID único.
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.masenvios.net/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;
Lista de conversaciones
Obtén una lista paginada de conversaciones del usuario autenticado.
Parámetros de consulta
| Nombre | Descripción | Predeterminado |
|---|---|---|
status |
Filtra conversaciones por estado. Done = 1; Pending = 2; Important = 3; Unread = 4; | Todos |
página |
Especifica el número de página. | 1 |
paginar |
Define el número de elementos devueltos por página. | 20 |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.masenvios.net/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 conversación
Actualiza el estado: Hecho=1, Pendiente=2, Importante=3, Sin leer=4
Parámetros de URL
| Parámetro | Tipo | Descripción |
|---|---|---|
conversation_id |
integer | ID único de la conversación |
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio |
|---|---|---|
status |
integer | YEs |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.masenvios.net/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;
Detalles de conversación
Obtén detalles completos de una conversación.
Parámetros de URL
| Parámetro | Tipo | Descripción |
|---|---|---|
conversation_id |
integer | ID único de la conversación |
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.masenvios.net/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;
Enviar mensaje
Envía mensajes de WhatsApp. Este endpoint soporta texto, medios, ubicación, listas interactivas, URLs CTA y comercio electrónico.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
mobile_code |
string | yes | Código de país móvil sin el signo más (+). |
mobile |
string | yes | Un número de teléfono móvil válido asociado con el código de país proporcionado. |
from_number |
string | conditional | Se requiere un número de teléfono válido de WhatsApp Business registrado en tu cuenta y en el panel de Meta. Si no se proporciona un ID, el mensaje se enviará usando tu cuenta de WhatsApp registrada por defecto. |
message |
string | Conditional | Cuerpo del mensaje de texto. Obligatorio si no hay medios, ubicación o datos interactivos |
image |
file | No | Archivo de imagen (jpg, jpeg, png – máx. 5MB) |
document |
file | No | Archivo de documento (pdf, doc, docx – máx. 100MB) |
video |
file | No | Archivo de video (mp4 – máx. 16MB) |
audio |
file | No | Archivo de audio – máx. 16MB |
latitude |
decimal | Conditional | Latitud para mensaje de ubicación |
longitude |
decimal | Conditional | Longitud para mensaje de ubicación |
cta_url_id |
integer | No | ID de URL CTA para mensajes de botón interactivo |
interactive_list_id |
integer | No | ID de lista interactiva |
Notas
Se debe proporcionar al menos un tipo de mensaje.
Los mensajes interactivos requieren un plan activo.
Los contactos bloqueados no pueden enviar ni recibir mensajes.
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.masenvios.net/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;
Enviar mensaje de plantilla
Envía un mensaje de plantilla WhatsApp aprobado a una conversación existente.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
mobile_code |
string | yes | Código de país móvil sin el signo más (+). |
mobile |
string | yes | Un número de teléfono móvil válido asociado con el código de país proporcionado. |
from_number |
string | conditional | Se requiere un número de teléfono válido de WhatsApp Business registrado en tu cuenta y en el panel de Meta. Si no se proporciona un ID, el mensaje se enviará usando tu cuenta de WhatsApp registrada por defecto. |
template_id |
integer | Yes | ID de plantilla WhatsApp aprobada |
Notas
Solo se pueden enviar plantillas aprobadas.
Los mensajes de plantilla se usan para conversaciones iniciadas por el negocio.
Los contactos bloqueados no pueden recibir mensajes de plantilla.
La cuenta de WhatsApp debe estar conectada.
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.masenvios.net/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;
Obtener lista de plantillas
Este endpoint permite obtener todas las plantillas WhatsApp de tu cuenta.