/dealsObtener negocios
Obtiene los negocios de la cuenta, filtrados y paginados.
GET https://api.getincloud.ai/v1/dealsObtiene los negocios de la cuenta, filtrados y paginados. Por defecto devuelve los negocios abiertos.
Los agentes restringidos solo reciben sus propios negocios, igual que en las reglas de visibilidad de la bandeja de entrada.
La marca de tiempo de actividad de un negocio se actualiza con cualquier cambio en el negocio Y con la nueva actividad de conversación reflejada desde su chat, que se refresca como máximo cada 15 minutos. Es el campo updatedAt del negocio, de modo que quien consume la API puede comprobar el filtro con lo que devuelve este endpoint.
Prueba este endpoint en el probador de API en vivo
>¿Necesitas ayuda? Explora todos los tutoriales, más de 100 ejemplos de casos de uso y juega con el probador de API en vivo con ejemplos de código listos para usar en más de 15 lenguajes de programación, incluidos JavaScript/Node.js, PHP, Python, C#, Java, Ruby, Swift, Kotlin, Powershell, cURL y más.
Autenticación
Envía tu API key en el encabezado Token en cada petición.
Parámetros
| Campo | Dónde | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
pipeline | query | string | No | Filtra por ID de embudo |
stage | query | string | No | Filtra por ID de etapa |
status | query | string | No | Estado del negocio: open (por defecto), won, lost o archived |
agent | query | string | No | Filtra por ID del agente asignado |
contact | query | string | No | Filtra por ID de WhatsApp del contacto, abarcando la equivalencia de identidad @c.us/@lid |
device | query | array | No | Filtra por IDs de dispositivo |
stalled | query | string | No | Solo negocios estancados en su etapa. Requiere un embudo. sla (o true) = fuera del SLA de la etapa en la que se encuentra el negocio. 1w, 1m, 3m y 6m = al menos una semana, un mes, tres meses o seis meses en la misma etapa: también funcionan en embudos sin SLA de etapa, y ordenan la página por fecha de entrada a la etapa de forma ascendente (primero los que llevan más tiempo estancados) en lugar de por última actualización descendente. false = sin filtro. enum: ['true', 'false', 'sla', '1w', '1m', '3m', '6m'] |
closedAfter | query | string | No | Solo negocios CERRADOS en este instante o después. Filtra por closedAt, no por updatedAt, por lo que coincide con la ventana que el resumen del embudo informa en won30d y lost30d. Solo tiene sentido junto con status=won o status=lost: un negocio abierto no tiene fecha de cierre y queda excluido. format: date-time |
updatedAfter | query | string | No | Solo negocios cuya última actividad ocurrió en este instante o después (ISO 8601). Ejemplo: 2026-08-01T00:00:00.000Z format: date-time |
updatedBefore | query | string | No | Solo negocios cuya última actividad ocurrió antes de este instante (ISO 8601). Combínalo con updatedAfter para un periodo acotado: el rango es semiabierto, [updatedAfter, updatedBefore), de modo que periodos consecutivos encajan sin devolver el mismo negocio dos veces. Usa cualquiera de los dos límites junto con stage en embudos grandes. Ambos usan la clave final del índice de etapa, y una llamada a todo el embudo sin etapa no puede aprovecharlo para el rango. format: date-time |
dueAfter | query | string | No | Solo negocios con una tarea pendiente que vence en este instante o después (ISO 8601). format: date-time |
dueBefore | query | string | No | Solo negocios con una tarea pendiente que vence en este instante o antes (ISO 8601). Una tarea es una nota del negocio con fecha dueAt; las tareas completadas nunca cuentan. Vencido es solo este límite, establecido en el momento actual, y un solo día son los límites de ese día en la zona horaria del propio lector: la ventana es absoluta, así que quien llama decide qué significa "hoy". Se resuelve primero a partir de las notas, por lo que es el único filtro aquí que lee una segunda colección. Es exacto hasta 5000 negocios con tareas pendientes por cuenta y subestima el resultado a partir de ahí. format: date-time |
chatStatus | query | string | No | Solo negocios cuya conversación de WhatsApp está en este estado: removed, banned, archived, muted, pending, active, resolved, none. Requiere un embudo y solo se aplica a negocios abiertos. none = el negocio aún no tiene conversación (se creó a partir de un número de teléfono). removed = tuvo una y la conversación fue eliminada. El estado se refleja en el negocio desde su chat cuando el negocio se lee o se refresca, así que un negocio que nadie ha abierto ni procesado todavía no tiene ningún estado y no lo devuelve ningún valor de este filtro. |
unassigned | query | string | No | Solo negocios sin agente asignado. No se puede combinar con agent. Los agentes restringidos siempre quedan limitados a sus propios negocios, por lo que esto no cambia nada para ellos. enum: ['true', 'false'] |
unread | query | string | No | Solo negocios cuya conversación tiene mensajes sin leer enum: ['true', 'false'] |
lostReason | query | string | No | Solo negocios perdidos por este motivo. Requiere un embudo y status=lost. Se compara ignorando los espacios alrededor, igual que el resumen del embudo agrupa los motivos, de modo que un motivo guardado dos veces con un espacio final sobrante devuelve los mismos negocios que el resumen contó bajo él. Pasa un valor vacío para los negocios cerrados sin motivo registrado, que es la entrada reason: null de lostReasonStats. |
page | query | number | No | Número de página, empieza en 1 |
size | query | number | No | Tamaño de página, por defecto 50, máximo 100 |
Respuestas
| Código | Descripción |
|---|---|
200 | Lista de negocios |
400 | Filtros no válidos |
401 | No autorizado: token de API no válido o ausente |
403 | Faltan los permisos necesarios |
404 | Embudo no encontrado |
409 | Conflicto |
429 | Demasiadas solicitudes: inténtalo de nuevo más tarde |
500 | Error inesperado |
501 | No implementado |
503 | Servicio no disponible temporalmente: inténtalo de nuevo más tarde |