curl -X POST https://api.plixa.app/v1/messages/send \
-H "Authorization: Bearer plixa_pat_…" \
-H "Content-Type: application/json" \
-d '{
"phone": "5511999999999",
"body": "Hi Lucia! Your order shipped"
}' Desarrolladores
Construye sobre Plixa en minutos.
Plixa es API-first. Genera un token en el panel, envía un mensaje por POST y recibe cada entrante mediante webhooks firmados. Sin SDK que instalar, sin protocolo propietario — solo JSON, REST y HMAC.
El acceso a la API se incluye en los planes Professional y Business. Genera tokens en /api-tokens desde el panel.
Envía un mensaje
Envía por POST un número de teléfono y un cuerpo. Resolvemos o abrimos la conversación, lo enviamos a WhatsApp y devolvemos el mensaje en cola.
POST https://api.plixa.app/v1/messages/send
- · Requiere un token con el permiso `write`.
- · Límite: 100 solicitudes / minuto por token.
await fetch('https://api.plixa.app/v1/messages/send', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.PLIXA_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
phone: '5511999999999',
body: 'Hi Lucia! Your order shipped',
}),
}) Recibe cada mensaje
Registra un endpoint de webhook en el panel. Plixa envía por POST cada entrante (y saliente, si quieres) a tu URL en segundos.
Se configura en https://app.plixa.app/webhooks
- · Eventos: message.inbound, message.outbound, conversation.created, conversation.updated, conversation.deleted.
- · Reintentos: backoff exponencial (1m, 5m, 30m, 2h, 12h), 5 intentos en total. Una respuesta 410 / 4xx detiene la cadena de reintentos.
Cada entrega lleva una cabecera X-Plixa-Signature. Vuelve a hashear el cuerpo en crudo con el secreto de tu endpoint y compara en tiempo constante.
X-Plixa-Signature: sha256=<hmac>
import crypto from 'crypto'
app.post('/plixa-webhook', express.raw({ type: 'application/json' }), (req, res) => {
const expected = 'sha256=' + crypto
.createHmac('sha256', process.env.PLIXA_WEBHOOK_SECRET)
.update(req.body)
.digest('hex')
const provided = req.header('X-Plixa-Signature') ?? ''
if (!crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(provided))) {
return res.status(401).send('bad signature')
}
const event = JSON.parse(req.body.toString())
// event.event, event.data — handle and respond 2xx within 10s.
res.status(204).end()
}) Route::post('/plixa-webhook', function (Request $request) {
$body = $request->getContent();
$expected = 'sha256='.hash_hmac('sha256', $body, env('PLIXA_WEBHOOK_SECRET'));
if (! hash_equals($expected, (string) $request->header('X-Plixa-Signature'))) {
abort(401, 'bad signature');
}
$event = json_decode($body, true);
// $event['event'], $event['data'] — handle and respond 2xx in <10s.
return response()->noContent();
}); Referencia completa
Cada endpoint (panel + externo) está documentado con el esquema de la solicitud, ejemplos y los sobres de respuesta.
Abrir la referencia /v1/docsEmpieza ya
Empieza a automatizar WhatsApp hoy.
Conecta tu número en cinco minutos y deja que la IA se encargue de la primera respuesta. Gratis 7 días en Professional — sin tarjeta, cancela cuando quieras.
No se requiere tarjeta.