Referencia de API
API de solo lectura para integrar NEXTISP PRO con sistemas externos (portales de autogestion, IVR, bots de WhatsApp propios, etc.). Todas las respuestas son JSON. La URL base es:
https://nextisp.pro/api/v1Cada token de API queda ligado a una sola empresa (multi-tenant): nunca puede leer datos de otra cuenta que use la plataforma, sin importar que parametros de busqueda le mandes.
Autenticacion
Genera un token desde Usuarios → Tokens de API en tu cuenta. Mandalo en el header Authorization de cada solicitud, con el prefijo Bearer:
Authorization: Bearer <tu_token>Si el header falta, esta mal formado, o el token es invalido/expirado, todas las rutas devuelven 401:
{ "error": "Invalid or expired token" }Errores
Todos los errores usan codigos HTTP estandar con un cuerpo JSON { "error": "..." }:
| Codigo | Significado |
|---|---|
| 400 | Faltan parametros requeridos, o alguno tiene un formato invalido. |
| 401 | Falta el header Authorization, o el token es invalido/expirado. |
| 404 | No se encontro ningun cliente con esos parametros de busqueda (dentro de tu empresa). |
/api/v1/clients/statusConsultar estado de un cliente
Datos del cliente y su servicio principal: estado (activo/suspendido/cortado), IP, plan contratado, y si tiene una factura vencida. Util para IVRs y bots que necesitan resolver 'esta este numero/IP al dia' en una sola llamada.
Parametros
| Parametro | Tipo | Requerido | Descripcion |
|---|---|---|---|
| document | string | Uno de estos 6 | Cedula/RUC del cliente. |
| id | integer | Uno de estos 6 | ID interno del cliente. |
| string | Uno de estos 6 | Email del cliente. | |
| phone | string | Uno de estos 6 | Telefono del cliente. |
| ipv4 | string | Uno de estos 6 | IP v4 asignada a alguno de sus servicios. |
| ipv6 | string | Uno de estos 6 | IP v6 asignada a alguno de sus servicios. |
Solicitud de ejemplo
curl "https://nextisp.pro/api/v1/clients/status?document=1710010002" \
-H "Authorization: Bearer <tu_token>"Respuesta 200
{
"found": true,
"client": {
"id": 128,
"document": "1710010002",
"name": "Juan Perez",
"email": "juan@example.com",
"phone": "0991234567",
"address": "Av. Siempre Viva 123",
"zone": "Norte",
"installDate": "2025-03-14T00:00:00.000Z"
},
"service": {
"status": {
"code": 1,
"label": "ACTIVO",
"description": "Servicio activo y funcionando"
},
"ipv4": "10.20.30.40",
"ipv6": null,
"plan": {
"name": "PREMIUM 600 MEGAS",
"downloadMbps": 600,
"uploadMbps": 300
},
"routerId": 3
},
"billing": {
"hasOverdue": false,
"pendingInvoice": null
},
"meta": {
"queriedAt": "2026-08-16T15:30:00.000Z",
"tokenName": "Integracion IVR"
}
}Respuesta 404 (no encontrado)
{ "found": false, "error": "Client not found" }/api/v1/clients/invoicesConsultar facturas de un cliente
Historial de facturas y pagos del cliente (hasta 100, mas recientes primero), mas su saldo pendiente y saldo a favor (billetera).
Parametros
| Parametro | Tipo | Requerido | Descripcion |
|---|---|---|---|
| document | string | Uno de estos 3 | Cedula/RUC del cliente. |
| id | integer | Uno de estos 3 | ID interno del cliente. |
| string | Uno de estos 3 | Email del cliente. | |
| status | string | Opcional | Filtra por estado: pending, overdue, partial, paid. |
Solicitud de ejemplo
curl "https://nextisp.pro/api/v1/clients/invoices?document=1710010002&status=overdue" \
-H "Authorization: Bearer <tu_token>"Respuesta 200
{
"found": true,
"client": { "id": 128, "document": "1710010002", "name": "Juan Perez" },
"balance": {
"pendingAmount": 25.00,
"walletBalance": 0
},
"invoices": [
{
"id": 4501,
"period": "Agosto 2026",
"amount": 25.00,
"dueDate": "2026-08-05T00:00:00.000Z",
"status": "overdue",
"paidDate": null,
"payments": []
}
],
"meta": {
"queriedAt": "2026-08-16T15:30:00.000Z",
"tokenName": "Integracion IVR"
}
}Respuesta 404 (no encontrado)
{ "found": false, "error": "Client not found" }