API de OXIOLT Smart: conecta tu WISPA (u otro sistema) por X-Token
OXIOLT Smart · Documentación GPON
OXIOLT Smart es el ejecutor de red. Tu sistema de facturación (por ejemplo WISPA), un script o cualquier software manejan tus OLTs, ONUs y routers MikroTik llamando a esta API. OXIOLT Smart no guarda clientes ni decide cortes: solo ejecuta comandos por serial de ONU o IP/usuario PPPoE. El match cliente↔ONU vive en quien factura. Los paths y la autenticación imitan a SmartOLT: un cliente escrito para SmartOLT funciona apuntando a OXIOLT Smart cambiando solo la URL base.
1 · Autenticación
Toda petición lleva el header X-Token: TU_TOKEN. El token se genera y se rota en tu panel, en Ajustes → API (/app/api). Se muestra una sola vez; OXIOLT Smart solo guarda su sha256. Sin token válido responde HTTP 401: { "status": false, "error": "Token ausente (header X-Token)." }.
2 · URL base
https://tu-cuenta.oltixa.com/api
La URL exacta también aparece en Ajustes → API.
3 · Formato de respuesta
Éxito y error usan el mismo envoltorio estilo SmartOLT:
{ "status": true, ... }
{ "status": false, "error": "motivo del fallo" }
Códigos: 200 ok · 400 datos inválidos · 401 token · 404 no encontrado · 409 OLT ocupada (lock) · 500 error del equipo. Las mutaciones aceptan una clave de idempotencia (X-Idempotency-Key) para no repetir la acción al reintentar.
4 · Identificar la ONU
La mayoría de endpoints reciben {onu_id} en la ruta. OXIOLT Smart acepta dos formas:
- La interfaz, ej.
gpon-onu_1/2/1:6(URL-encodeada:gpon-onu_1%2F2%2F1%3A6). - El número de serie (SN), ej.
ZTEGD77B968E(en los endpoints*_by_sn).
Los listados devuelven interface, sn y unique_external_id para que WISPA guarde el match cliente↔ONU con la clave que prefiera.
5 · Flujos clave para WISPA
a) Traer el inventario de ONUs
curl "$BASE/api/onu/get_all_onus_details" -H "X-Token: $TOKEN"
Sin autorizar: /api/onu/get_all_unconfigured_onus.
b) Autorizar una ONU nueva
curl -X POST "$BASE/api/onu/authorize_onu" -H "X-Token: $TOKEN" \
-H "Content-Type: application/json" \
-d '{"pon":"1/2/1","sn":"ZTEGD77B968E","onu_type":"ZTE-F670L","vlan":100}'
Body: { olt_id?, pon, onu_id?, sn, onu_type, vlan }. Sin onu_id, el driver elige el índice libre.
c) Cortar y reconectar (mora)
curl -X POST "$BASE/api/onu/disable/12345" -H "X-Token: $TOKEN" # corta, conserva config curl -X POST "$BASE/api/onu/enable/12345" -H "X-Token: $TOKEN" # reconecta
En lote: bulk_disable / bulk_enable con {"onu_ids":[...]}.
d) Cambio de paquete (velocidad)
curl "$BASE/api/system/get_speed_profiles" -H "X-Token: $TOKEN" # 1. catálogo de planes
curl -X POST "$BASE/api/onu/update_onu_speed_profiles/12345" -H "X-Token: $TOKEN" \
-H "Content-Type: application/json" \
-d '{"upload_speed_profile_name":"UP-30M","download_speed_profile_name":"DOWN-30M"}'
Acepta también speed_profile_id (id del catálogo), o los alias tcont_profile/traffic_profile, o upload_speed/download_speed. En lote: bulk_update_speed_profiles.
6 · Referencia — Sistema y catálogos
GET /api/system/get_olts | OLTs de la cuenta |
GET /api/system/get_devices | Equipos de la cuenta (OLT + router) |
GET /api/system/get_speed_profiles | Catálogo de planes de velocidad |
GET /api/system/get_onu_types · get_onu_types_by_pon_type/{pon_type} | Catálogo de tipos de ONU |
GET /api/system/get_olt_cards_details/{olt_id} | Tarjetas del chasis |
GET /api/system/get_olt_uplink_ports_details/{olt_id} | Uplinks |
GET /api/system/get_outage_pons/{olt_id} | Offline por PON (snapshot) |
POST /api/system/save_config | Guardar config (write a flash) |
7 · Referencia — ONU (lectura)
GET /api/onu/get_all_onus_details | Inventario completo |
GET /api/onu/get_all_unconfigured_onus | ONUs sin autorizar |
GET /api/onu/get_onu_signal/{onu_id} · get_onus_signals | Señal óptica (dBm, atenuación, distancia) |
GET /api/onu/get_onu_details/{onu_id} | Detalle de una ONU |
GET /api/onu/get_onu_status/{onu_id} · get_onus_statuses | Estado online/offline |
GET /api/onu/get_onu_speed_profiles/{onu_id} | Plan actual de la ONU |
GET /api/onu/get_onus_details_by_sn/{sn} | Detalle por SN |
GET /api/onu/get_running_config/{onu_id} | Running-config en vivo |
8 · Referencia — ONU (ciclo de vida y servicio)
POST /api/onu/authorize_onu | Autorizar ONU nueva |
POST /api/onu/reboot/{onu_id} | Reiniciar |
POST /api/onu/disable/{onu_id} · enable/{onu_id} | Cortar / reconectar |
POST /api/onu/bulk_disable · bulk_enable | Corte / reconexión en lote |
POST /api/onu/delete/{onu_id} · delete_onus · delete_all_onus | Baja de ONU(s) |
POST /api/onu/resync_config/{onu_id} | Re-aplicar servicio |
POST /api/onu/update_onu_speed_profiles/{onu_id} | Cambio de paquete (ZTE live · Huawei/VSOL/BDCOM/C-Data con fuente · Nokia/Fiberhome stub) |
POST /api/onu/bulk_update_speed_profiles | Cambio de paquete en lote |
POST /api/onu/update_onu_name/{onu_id} | Nombre y datos del cliente → se guardan en la BD de OXIOLT Smart (se ven y se buscan en la lista); nombre y dirección se empujan a la OLT best-effort. Body: { name?, address?, phone?, pppoe_username?, ip? } (al menos uno) |
POST /api/onu/update_main_vlan/{onu_id} | Cambiar VLAN principal |
POST /api/onu/move/{onu_id} | Mover de puerto |
POST /api/onu/change_onu_type · update_sn · update_service_port · update_onu_mode · restore_factory_defaults | Config avanzada de ciclo de vida |
9 · Referencia — CPE avanzado (superficie SmartOLT)
Estos endpoints existen con la firma exacta de SmartOLT: WAN (set_onu_wan_mode_*), IP de gestión (set_onu_mgmt_ip_*), puertos Ethernet/WiFi (set_ethernet_port_*, set_wifi_port_*), CATV (enable_catv…), IPTV (enable_iptv…), VoIP (enable_onu_voip_port…), TR-069 (enable_tr069…), seguridad DHCP (enable_dhcp_option82, *_ip_dhcp_snooping, *_ip_source_guard), change_custom_profile, update_attached_vlans y más. El núcleo está live en ZTE; el CPE avanzado por marca se va habilitando desde nuestros comandos documentados. Un endpoint aún sin builder devuelve un error honesto y no toca el equipo.
10 · Referencia — OLT y Router MikroTik
GET /api/olt/get_vlans · /{olt_id} | VLANs de la OLT |
GET /api/olt/get_olts_uptime_and_env_temperature | Uptime y temperatura |
POST /api/olt/save_config | Guardar config a flash |
GET /api/router/resource · identity · interfaces · network | Estado del router (extra sobre SmartOLT) |
GET /api/router/ppp · ppp/status | Secretos PPPoE |
POST /api/router/ppp/add · ppp/delete | Alta / baja PPPoE |
POST /api/router/vlan/ensure · pool/ensure | Asegurar VLAN / pool de IPs |
POST /api/router/exec | Proxy genérico RouterOS |
11 · Todo queda registrado
Cada comando enviado al OLT y su respuesta cruda quedan en tu registro de comandos (Red → Registro de comandos), etiquetado por marca/modelo y con ok/error. Para las marcas aún sin verificar en laboratorio, la orden viaja igual y su respuesta real queda ahí, para afinar el driver con el comportamiento de tu firmware — sin entrar por SSH.
12 · Cómo lo usa tu WISPA
En WISPA vas a Ajustes → Integración OXIOLT Smart, eliges proveedor oltixa, pegas la URL base y el X-Token, y pruebas la conexión (llama a /api/system/get_olts). WISPA trae el inventario de ONUs, guarda el match cliente↔ONU/IP y llama a esta API: disable/enable para corte por mora, update_onu_speed_profiles para el cambio de paquete, authorize_onu para altas. OXIOLT Smart solo ejecuta la orden contra el equipo — incluso si la OLT está detrás de NAT sin IP pública, porque la alcanza por su Puente (VPN).
¿Cansado de la consola? Gestiona tu OLT con OXIOLT Smart — gratis 30 días.