GET /conversations
Lista conversaciones ordenadas por más recientes. Paginación cursor-based. Scope requerido:conversations:read
Parámetros
Request
Response 200
GET /conversations/by-phone/:phone
Buscar una conversación por número de teléfono. Scope requerido:conversations:read
Tolerancia de formato: este endpoint normaliza el input antes de buscar. Acepta:
- Con o sin
+inicial:+5491126032641o5491126032641 - Argentinos con o sin el
9móvil:+5491126032641o+541126032641 - Solo dígitos sin código país: lo prepende según el contexto del tenant
- Argentinos con prefijo viejo
15:+5411 15 26032641(lo elimina automáticamente)
+ y código país.GET /conversations/resolve
Abrí un chat sin conocer el id interno. Sirve para linkear desde un CRM: pasá teléfono, usuario de Instagram o email (cualquiera de los tres, o varios). La búsqueda queda en el tenant de la API key y respeta la visibilidad de conversaciones si el token es de un usuario. Scope requerido:conversations:read
El mismo recurso existe en el panel como https://waspytech.com/inbox/open con los mismos query params (pide login y vuelve a esa URL).
Parámetros
Request
Response 200
conversationId es el chat que más coincide (el más reciente, priorizando line y channel si vinieron). alternatives son los otros matches, para que el CRM pueda ofrecerlos. Si no hay ninguno, conversationId es null y alternatives queda vacío.
GET /api/v1/conversations/resolve (sin el objeto meta).
GET /conversations/:id
Obtener una conversación por ID. Scope requerido:conversations:read
PATCH /conversations/:id
Actualizar estado o asignación de una conversación. Scope requerido:conversations:write
Body (todos opcionales)
Request
GET /conversations/:id/messages
Listar mensajes de una conversación. Paginación cursor-based, orden: más antiguos primero. Scope requerido:conversations:read
Parámetros
Response
POST /conversations/:id/read
Marca la conversación como leída. ReseteaunreadCount a 0 y manda read receipt (doble check azul) a Meta para el último mensaje entrante con waMessageId.
Scope requerido: conversations:write
deliveredToMeta: false significa que se reseteó unreadCount pero no había un mensaje inbound elegible para read receipt (o falló el llamado a Meta).
POST /conversations/:id/typing
Muestra “escribiendo…” al contacto. Meta auto-clarea el indicador a los ~25s o cuando el negocio envía un mensaje. Scope requerido:conversations:write
Response:
deliveredToMeta: false, la response incluye un campo reason con el motivo:
Si la conversationId no existe, devuelve
404 (no un 200 silencioso).