Skip to content

API REST

9.1 Vision General

Voki ofrece una API REST completa para la integracion con sistemas externos. La API permite gestionar llamadas, clientes, departamentos, enlaces de acceso y mucho mas de forma programatica.

URL base: https://voki.avanter.com.br/api

Formato: JSON (Content-Type: application/json)

9.2 Autenticacion

Todas las solicitudes autenticadas deben incluir el token JWT en el encabezado:

Authorization: Bearer {access_token}

Para obtener un token:

bash
curl -X POST https://voki.avanter.com.br/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "usuario@empresa.com.br",
    "password": "suContrasena",
    "tenant": "nombre-de-la-empresa"
  }'

Respuesta:

json
{
  "access_token": "eyJhbGciOi...",
  "refresh_token": "eyJhbGciOi...",
  "user": {
    "id": "uuid",
    "name": "Nombre del Usuario",
    "email": "usuario@empresa.com.br",
    "role": "manager"
  }
}

9.3 Endpoints Principales

Autenticacion

MetodoEndpointDescripcion
POST/api/auth/loginInicio de sesion
POST/api/auth/refreshRenovar token
POST/api/auth/mfa/verifyVerificar codigo MFA
POST/api/auth/logoutCerrar sesion
POST/api/auth/forgot-passwordSolicitar restablecimiento de contrasena
POST/api/auth/reset-passwordRestablecer contrasena

Usuarios

MetodoEndpointDescripcion
GET/api/v1/users/meDatos del usuario autenticado
GET/api/v1/usersListar usuarios
GET/api/v1/users/:idDetalles de un usuario
POST/api/v1/usersCrear usuario
PUT/api/v1/users/:idActualizar usuario

Departamentos

MetodoEndpointDescripcion
GET/api/v1/departmentsListar departamentos
GET/api/v1/departments/:idDetalles de un departamento
POST/api/v1/departmentsCrear departamento
PUT/api/v1/departments/:idActualizar departamento
DELETE/api/v1/departments/:idEliminar departamento
POST/api/v1/departments/:id/usersAgregar agente al departamento
DELETE/api/v1/departments/:id/users/:user_idRemover agente del departamento
GET/api/v1/departments/:id/usersListar agentes del departamento

Llamadas

MetodoEndpointDescripcion
GET/api/v1/callsListar llamadas
GET/api/v1/calls/:idDetalles de una llamada
POST/api/v1/calls/:id/assignAsignar llamada a un agente
POST/api/v1/calls/:id/startIniciar llamada
POST/api/v1/calls/:id/completeCompletar llamada
POST/api/v1/calls/:call_id/uploadSubir archivo a la llamada
GET/api/v1/calls/:call_id/recordingObtener grabacion
POST/api/v1/calls/:call_id/recording/uploadSubir grabacion

Clientes

MetodoEndpointDescripcion
GET/api/v1/customersListar clientes
GET/api/v1/customers/:idDetalles de un cliente
POST/api/v1/customersCrear cliente
PUT/api/v1/customers/:idActualizar cliente
DELETE/api/v1/customers/:idEliminar cliente
POST/api/v1/customers/mergeFusionar clientes duplicados

Enlaces de Acceso

MetodoEndpointDescripcion
GET/api/v1/access-linksListar enlaces
GET/api/v1/access-links/:idDetalles de un enlace
POST/api/v1/access-linksCrear enlace
POST/api/v1/access-links/batchCrear enlaces por lotes
POST/api/v1/access-links/:id/cancelCancelar enlace

Citas

MetodoEndpointDescripcion
GET/api/v1/appointmentsListar citas
GET/api/v1/appointments/:idDetalles de una cita
POST/api/v1/appointmentsCrear cita
PUT/api/v1/appointments/:idActualizar cita
GET/api/v1/appointments/conflictsVerificar conflictos de horario
POST/api/v1/appointments/:id/confirmConfirmar cita
POST/api/v1/appointments/:id/cancelCancelar cita
POST/api/v1/appointments/:id/completeMarcar como completada
POST/api/v1/appointments/:id/no-showMarcar como no-show

Tags

MetodoEndpointDescripcion
GET/api/v1/tagsListar tags
GET/api/v1/tags/treeArbol de tags
POST/api/v1/tagsCrear tag
PUT/api/v1/tags/:idActualizar tag
DELETE/api/v1/tags/:idEliminar tag
GET/api/v1/calls/:call_id/tagsTags de una llamada
POST/api/v1/calls/:call_id/tagsAplicar tag a una llamada
DELETE/api/v1/calls/:call_id/tags/:tag_idRemover tag de una llamada

Analytics

MetodoEndpointDescripcion
GET/api/v1/analytics/overviewVision general de metricas
GET/api/v1/analytics/hourlyMetricas por hora
GET/api/v1/analytics/agentsMetricas por agente
GET/api/v1/analytics/trendsTendencias
POST/api/v1/analytics/refresh-viewsActualizar materialized views

Webhooks

MetodoEndpointDescripcion
GET/api/v1/webhooksListar webhooks
GET/api/v1/webhooks/:idDetalles de un webhook
POST/api/v1/webhooksCrear webhook
PUT/api/v1/webhooks/:idActualizar webhook
DELETE/api/v1/webhooks/:idEliminar webhook
GET/api/v1/webhooks/:id/deliveriesHistorial de entregas
POST/api/v1/webhooks/:id/testProbar webhook

Exportacion

MetodoEndpointDescripcion
GET/api/v1/export/calls.csvExportar llamadas en CSV
GET/api/v1/export/customers.csvExportar clientes en CSV
GET/api/v1/export/links.csvExportar enlaces en CSV

Acceso Publico (Clientes)

MetodoEndpointDescripcion
GET/api/v1/call/:token/validateValidar token de acceso
POST/api/v1/call/:token/joinEntrar en la cola de atencion
GET/api/v1/call/status/:call_idEstado de la llamada
POST/api/v1/call/evaluate/:call_idEnviar evaluacion posatencion

9.4 Limitacion de Solicitudes (Rate Limiting)

Tipo de EndpointLimiteIntervalo
Autenticacion5 solicitudesPor minuto
API publica30 solicitudesPor minuto

Al exceder el limite:

  • Codigo HTTP: 429 Too Many Requests
  • Encabezado Retry-After: segundos hasta poder intentar nuevamente

9.5 Codigos de Respuesta

CodigoSignificado
200Exito
201Recurso creado con exito
400Solicitud invalida (parametros faltantes o incorrectos)
401No autenticado (token ausente o expirado)
403Sin permiso (rol insuficiente o limite de plan)
404Recurso no encontrado
422Error de validacion (datos invalidos)
429Limite de solicitudes excedido
500Error interno del servidor

9.6 Documentacion Interactiva

La documentacion completa de la API con ejemplos de solicitud y respuesta esta disponible en:

https://voki.avanter.com.br/docs

Manual de Uso — Voki v4.0