Envía un mensaje por WhatsApp en nombre del business — texto libre, archivo multimedia, o ambos (texto como caption del archivo). La conversación debe estar dentro de la ventana de 24h (último mensaje del cliente < 24h atrás); si está cerrada, la respuesta es WINDOW_CLOSED (422) y el cliente debe enviar un template primero para reabrirla.
Variantes según body:
body sin file_uuid → texto libre puro (max 4096 chars).file_uuid sin body → archivo solo (imagen/video/audio/documento).body + file_uuid → archivo con caption (max 1024 chars). Excepción audio: WhatsApp no soporta captions en audio — si el file_category resuelto es audio y viene body, la API responde INVALID_REQUEST (400) con mensaje explícito. Enviá el audio sin body, o mandá texto libre en un request separado.Flujo para enviar con adjunto:
POST /files/request-upload → obtén upload_url y file_uuid.PUT del binario al upload_url directo a Supabase Storage (no pasa por este server).POST /files/confirm → el archivo queda upload_status='confirmed'.file_uuid. El file_category del archivo determina el tipo de mensaje WhatsApp (image / video / audio / document).El file_uuid solo puede usarse una vez “lógicamente” — nada impide reusarlo en múltiples mensajes (el archivo en Storage es el mismo), pero cada envío genera un message_uuid y wamid distintos.
Guards aplicados:
file_uuid) — si el business no tiene tokens de visión, el AI no podría procesar respuestas que referencien el multimedia y la API rechaza upfront con VISION_WALLET_BLOCKED (402).Documentation Index
Fetch the complete documentation index at: https://docs.1to1ai.com/llms.txt
Use this file to discover all available pages before exploring further.
API token emitido desde Settings → API Token del dashboard 1TO1 AI. Enviar en header Authorization: Bearer sk_1to1_...
Slug del business, case-insensitive. Debe coincidir con el business del token.
"acme"
Identificador de la conversación — al menos UNO de los tres campos debe venir. Orden de resolución: uuid > whatsapp_user_id > phone. El lookup filtra por el business del token (defense in depth cross-tenant).
Contenido del mensaje. Sin file_uuid es texto libre (max 4096 chars). Con file_uuid actúa como caption del adjunto (max 1024 chars). Opcional solo si file_uuid viene — al menos uno de los dos es obligatorio.
1 - 4096"Hola! Gracias por tu compra."
UUID de un archivo ya confirmado via POST /files/confirm. El archivo debe pertenecer al mismo business del token y estar en estado confirmed. El file_category determina el tipo de mensaje (image, video, audio, document). Los stickers (image/webp) no se soportan por esta ruta.
UUID de un mensaje previo para citar (reply). Opcional — se ignora si el mensaje referenciado no pertenece a la conversación o no existe.
Mensaje creado y enviado a Meta. wamid es el id asignado.