Documentación
API de la plataforma.md

Consultar estado de tickets

Este endpoint permite que un agente de IA consulte el estado actual de uno o varios tickets de soporte cuando un contacto pregunta por su caso durante una conversación.


¿Para qué sirve?

Cuando un contacto menciona su número de caso, su nombre o su teléfono durante una llamada o chat, el agente puede consultar este endpoint en tiempo real y responderle con el estado actualizado del ticket: si está abierto, en proceso, resuelto o cerrado, junto con el último mensaje registrado por el equipo de soporte.


Obtener el token del agente

Cada agente tiene su propio API Token, que autoriza el acceso a los datos de tu cuenta. Para obtenerlo:

  1. Ve a Agentes de Llamada (o WhatsApp) en el menú lateral.
  2. Selecciona el agente que quieres usar.
  3. En la sección Resumen, encontrarás el API Token.
  4. Cópialo para incluirlo en las solicitudes.

🔒 Trata el token como una contraseña. No lo compartas públicamente ni lo incluyas en código que suba a repositorios públicos.


Endpoint

POST https://panel.anunzi.net/api/ticket-status.php

Encabezados requeridos

Authorization: Bearer TU_TOKEN_DE_AGENTE
Content-Type: application/json

También podés autenticarte con tu API Key de cuenta (anz_live_…), que cubre toda tu cuenta con una sola credencial — ver API Keys de cuenta.


Cuerpo de la solicitud (JSON)

Debes indicar al menos uno de los siguientes criterios de búsqueda:

Campo Tipo Descripción
case_number texto Número de caso. Acepta CAS-000042, CAS-42 o simplemente 42.
phone texto (solo dígitos) Teléfono del contacto. Devuelve todos sus tickets. El sistema prueba automáticamente variantes con y sin prefijo de país.
contact_name texto Nombre parcial del contacto (búsqueda flexible). Devuelve todos los tickets que coincidan.

Campo opcional

Campo Tipo Descripción
status texto Filtra por estado: abierto, en_proceso, resuelto o cerrado.

Ejemplos de solicitud

Consultar por número de caso

curl -X POST "https://panel.anunzi.net/api/ticket-status.php" \
  -H "Authorization: Bearer TU_TOKEN_AQUÍ" \
  -H "Content-Type: application/json" \
  -d '{"case_number": "CAS-000042"}'

Consultar por teléfono del contacto

curl -X POST "https://panel.anunzi.net/api/ticket-status.php" \
  -H "Authorization: Bearer TU_TOKEN_AQUÍ" \
  -H "Content-Type: application/json" \
  -d '{"phone": "5491123456789"}'

Consultar por nombre (solo tickets abiertos o en proceso)

curl -X POST "https://panel.anunzi.net/api/ticket-status.php" \
  -H "Authorization: Bearer TU_TOKEN_AQUÍ" \
  -H "Content-Type: application/json" \
  -d '{"contact_name": "María García", "status": "en_proceso"}'

Respuesta — 200 OK

{
  "ok": true,
  "count": 1,
  "tickets": [
    {
      "case_number": "CAS-000042",
      "ticket_id": 42,
      "title": "Producto recibido con daños",
      "status": "en_proceso",
      "status_label": "En proceso",
      "category": "reclamo",
      "category_label": "Reclamo",
      "priority": "alta",
      "priority_label": "Alta",
      "contact_name": "María García",
      "contact_phone": "5491123456789",
      "created_at": "2026-05-20T10:30:00Z",
      "updated_at": "2026-05-25T14:15:00Z",
      "last_message": {
        "author_type": "staff",
        "author_name": "Carlos (Soporte)",
        "body": "Ya derivamos el caso al equipo de logística. Te contactamos antes del viernes.",
        "created_at": "2026-05-25T14:15:00Z"
      }
    }
  ]
}

Respuesta cuando no se encuentran tickets

{
  "ok": true,
  "count": 0,
  "tickets": []
}

Descripción de los campos de respuesta

Campo Descripción
count Cantidad de tickets encontrados.
case_number Número de caso en formato CAS-XXXXXX.
ticket_id ID interno del ticket.
title Título o asunto del ticket.
status Estado actual en inglés técnico (clave interna).
status_label Estado en texto legible: Abierto, En proceso, Resuelto, Cerrado.
category Categoría interna.
category_label Categoría en texto legible.
priority Prioridad interna.
priority_label Prioridad en texto legible: Baja, Normal, Alta, Urgente.
contact_name Nombre del contacto asociado al ticket.
contact_phone Teléfono del contacto (solo dígitos).
created_at Fecha y hora de creación del ticket (ISO 8601, UTC).
updated_at Fecha y hora de la última actualización (ISO 8601, UTC).
last_message.author_type Quién escribió el último mensaje: agent (IA), staff (equipo), system (automático).
last_message.author_name Nombre del autor del último mensaje.
last_message.body Texto del último mensaje en el hilo.
last_message.created_at Fecha y hora del último mensaje (ISO 8601, UTC).

Códigos de estado

Código Descripción
200 Consulta exitosa. El array tickets puede estar vacío si no se encontraron resultados.
400 No se proporcionó ningún parámetro de búsqueda, o el número de caso es inválido.
401 Token ausente o inválido.
403 El agente no tiene un usuario asociado. Contacta a soporte.
500 Error interno del servidor.

Ejemplo de uso en un agente de voz

Cuando el contacto diga algo como "quiero saber el estado de mi reclamo, el número es CAS-000042", el agente puede:

  1. Extraer el número de caso de la conversación.
  2. Llamar a GET /v1/ticket-status?case_number=CAS-000042.
  3. Leerle al contacto la respuesta: "Tu caso CAS-000042 sobre Producto recibido con daños está actualmente En proceso. El último mensaje de nuestro equipo fue: 'Ya derivamos el caso al equipo de logística. Te contactamos antes del viernes.'"

Si el contacto no recuerda su número de caso, el agente puede buscarlo por teléfono usando el número desde el que llama.

Esc