Ejemplos de integración con MiSender API
Ejemplos prácticos en PHP, Node.js y Python para enviar mensajes y consultar estados.
PHP con cURL
$payload = [
"to" => "5215555555555",
"type" => "text",
"text" => ["body" => "Tu pedido está listo.", "preview_url" => false],
"external_id" => "pedido-84721"
];
$ch = curl_init("https://misender.com/api/v1/messages");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("MISENDER_API_KEY"),
"Content-Type: application/json",
"Idempotency-Key: pedido-84721-listo"
],
CURLOPT_POSTFIELDS => json_encode($payload)
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);Node.js con fetch
const response = await fetch("https://misender.com/api/v1/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MISENDER_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "pedido-84721-listo"
},
body: JSON.stringify({
to: "5215555555555",
type: "text",
text: {body: "Tu pedido está listo.", preview_url: false},
external_id: "pedido-84721"
})
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.code || "misender_error");Python con requests
import os, requests
response = requests.post(
"https://misender.com/api/v1/messages",
headers={
"Authorization": f"Bearer {os.environ['MISENDER_API_KEY']}",
"Content-Type": "application/json",
"Idempotency-Key": "pedido-84721-listo"
},
json={
"to": "5215555555555",
"type": "text",
"text": {"body": "Tu pedido está listo.", "preview_url": False},
"external_id": "pedido-84721"
},
timeout=15
)
response.raise_for_status()
print(response.json())Patrón recomendado
- Genera una Idempotency-Key desde el evento de negocio.
- Envía desde tu backend.
- Guarda el
msg_...devuelto. - Actualiza tu registro con webhooks.
- Usa la consulta GET sólo para conciliación o diagnóstico.
Resultado profesional
Tu sistema conserva su identificador en external_id, MiSender conserva el mensaje en Inbox y ambos sistemas pueden correlacionar el estado sin exponer IDs internos.
¿Este artículo te resultó útil?
Tu respuesta nos ayuda a mejorar el centro de ayuda.
