ApiConecta WhatsApp API

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.

URL base: https://apiconecta.educandolatam.org.pe/api

Autenticación

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.

Formato de números

El campo number debe incluir el código de país, sin el signo +.

PaísFormato correctoIncorrecto
Perú51913496756913496756 / +51913496756
Colombia5730012345673001234567
México52155123456785512345678

POST /api/send-text

Envía un mensaje de texto a un número de WhatsApp.

Request body (JSON)
CampoTipoRequeridoDescripción
apikeystringAPI Key de autenticación
instancestringNombre de la instancia (ej: Educandolatam_01)
numberstringNúmero con código de país
textstringTexto del mensaje. Soporta *negrita*, _cursiva_ y emojis
Ejemplo de request
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 ✅"
}
Respuesta exitosa (200)
{
  "success": true,
  "message": "Mensaje enviado exitosamente",
  "data": {
    "key": {
      "remoteJid": "51913496756@s.whatsapp.net",
      "fromMe": true,
      "id": "3EB0..."
    }
  }
}

POST /api/send-media

Envía un archivo (PDF, imagen, video, audio) por URL pública.

Request body (JSON)
CampoTipoRequeridoDescripción
apikeystringAPI Key de autenticación
instancestringNombre de la instancia
numberstringNúmero con código de país
mediastringURL pública del archivo
mediatypestringdocument / image / video / audio
captionstringNoTexto que acompaña al archivo
filenamestringNoNombre del archivo al recibirlo (ej: Recibo_001.pdf)
Ejemplo — enviar 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"
}
Tipos de media soportados
mediatypeExtensiones comunesUso típico
document.pdf, .docx, .xlsxRecibos, certificados, reportes
image.jpg, .png, .webpImágenes, banners, badges
video.mp4Videos cortos
audio.mp3, .oggMensajes de voz

Formato de respuestas

Todas las respuestas son JSON. El campo success indica si la operación fue exitosa.

Éxito
HTTP 200
{
  "success": true,
  "message": "Mensaje enviado exitosamente",
  "data": { ... }
}
Error
HTTP 400 / 401 / 500
{
  "success": false,
  "message": "Descripción del error"
}

Códigos de error

HTTPCausa
400Faltan campos obligatorios (apikey, instance, number, text o media)
401API Key incorrecta
500Error interno al comunicarse con Evolution API o instancia desconectada

Ejemplos en PHP

Función helper reutilizable
<?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'
);