Versión 1.0 — Educando Latam
ApiConecta es una API REST propia para enviar mensajes de WhatsApp (texto y archivos) desde cualquier proyecto. Funciona como proxy sobre Evolution API instalada en el servidor propio de Educando Latam.
https://apiconecta.educandolatam.org.pe/api
Todas las peticiones requieren el campo apikey en el body JSON.
No se usan headers de autorización.
{
"apikey": "B8950570-9852-4523-9A96-4197F441C25D",
...
}
Este API Key se obtiene en el panel de Evolution API o se configura en
config.php del proyecto ApiConecta.
El campo number debe incluir el código de país, sin el signo +.
| País | Formato correcto | Incorrecto |
|---|---|---|
| Perú | 51913496756 | 913496756 / +51913496756 |
| Colombia | 573001234567 | 3001234567 |
| México | 5215512345678 | 5512345678 |
Envía un mensaje de texto a un número de WhatsApp.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
apikey | string | Sí | API Key de autenticación |
instance | string | Sí | Nombre de la instancia (ej: Educandolatam_01) |
number | string | Sí | Número con código de país |
text | string | Sí | Texto del mensaje. Soporta *negrita*, _cursiva_ y emojis |
POST https://apiconecta.educandolatam.org.pe/api/send-text
Content-Type: application/json
{
"apikey": "B8950570-9852-4523-9A96-4197F441C25D",
"instance": "Educandolatam_01",
"number": "51913496756",
"text": "Hola *Juan*, tu matrícula fue confirmada ✅"
}
{
"success": true,
"message": "Mensaje enviado exitosamente",
"data": {
"key": {
"remoteJid": "51913496756@s.whatsapp.net",
"fromMe": true,
"id": "3EB0..."
}
}
}
Envía un archivo (PDF, imagen, video, audio) por URL pública.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
apikey | string | Sí | API Key de autenticación |
instance | string | Sí | Nombre de la instancia |
number | string | Sí | Número con código de país |
media | string | Sí | URL pública del archivo |
mediatype | string | Sí | document / image / video / audio |
caption | string | No | Texto que acompaña al archivo |
filename | string | No | Nombre del archivo al recibirlo (ej: Recibo_001.pdf) |
POST https://apiconecta.educandolatam.org.pe/api/send-media
Content-Type: application/json
{
"apikey": "B8950570-9852-4523-9A96-4197F441C25D",
"instance": "Educandolatam_01",
"number": "51913496756",
"media": "https://misitioweb.com/recibos/recibo_001.pdf",
"mediatype": "document",
"caption": "📄 Tu recibo de pago adjunto",
"filename": "Recibo_001.pdf"
}
| mediatype | Extensiones comunes | Uso típico |
|---|---|---|
document | .pdf, .docx, .xlsx | Recibos, certificados, reportes |
image | .jpg, .png, .webp | Imágenes, banners, badges |
video | .mp4 | Videos cortos |
audio | .mp3, .ogg | Mensajes de voz |
Todas las respuestas son JSON. El campo success indica si la operación fue exitosa.
HTTP 200
{
"success": true,
"message": "Mensaje enviado exitosamente",
"data": { ... }
}
HTTP 400 / 401 / 500
{
"success": false,
"message": "Descripción del error"
}
| HTTP | Causa |
|---|---|
| 400 | Faltan campos obligatorios (apikey, instance, number, text o media) |
| 401 | API Key incorrecta |
| 500 | Error interno al comunicarse con Evolution API o instancia desconectada |
<?php
define('APICONECTA_URL', 'https://apiconecta.educandolatam.org.pe/api');
define('APICONECTA_KEY', 'B8950570-9852-4523-9A96-4197F441C25D');
define('APICONECTA_INSTANCE', 'Educandolatam_01');
function apiconecta_send_text($number, $text) {
return apiconecta_request('/send-text', [
'number' => $number,
'text' => $text,
]);
}
function apiconecta_send_media($number, $mediaUrl, $mediatype, $caption = '', $filename = '') {
return apiconecta_request('/send-media', [
'number' => $number,
'media' => $mediaUrl,
'mediatype' => $mediatype,
'caption' => $caption,
'filename' => $filename,
]);
}
function apiconecta_request($endpoint, $data) {
$data['apikey'] = APICONECTA_KEY;
$data['instance'] = APICONECTA_INSTANCE;
$ch = curl_init(APICONECTA_URL . $endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// Uso:
$result = apiconecta_send_text('51913496756', 'Hola *Juan*, bienvenido 👋');
$result = apiconecta_send_media('51913496756',
'https://misitioweb.com/cert.pdf',
'document',
'🎓 Tu certificado está listo',
'Certificado_Juan.pdf'
);