Skip to main content

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: +5491126032641 o 5491126032641
  • Argentinos con o sin el 9 móvil: +5491126032641 o +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)
Devuelve la conversación más reciente que matchea cualquiera de las variantes generadas. Si tenés dudas, pasá el formato canónico E.164 con + y código país.

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. Resetea unreadCount a 0 y manda read receipt (doble check azul) a Meta para el último mensaje entrante con waMessageId. Scope requerido: conversations:write
Respuesta:
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:
Cuando deliveredToMeta: false, la response incluye un campo reason con el motivo: Si la conversationId no existe, devuelve 404 (no un 200 silencioso).