Saltar a contenido

Integración de Lumika con la facturación

Esta guía está dirigida a los desarrolladores del sistema de facturación o del portal de clientes de un operador. Describe el proceso desde la emisión de un token específico hasta el aprovisionamiento del suscriptor, la gestión de sus cámaras y la obtención de datos para emitir facturas. El acceso temporal del instalador se explica como un procedimiento independiente después del aprovisionamiento del suscriptor.

El sistema de facturación mantiene la correspondencia entre sus suscriptores y servicios y los objetos de Lumika. Lumika aplica la configuración y devuelve el consumo real. Envíe las solicitudes a la dirección de su dominio, por ejemplo, https://operator.vsaas.io. Los ejemplos utilizan dos espacios de la API:

  • Client API — /watcher/client-api/v3: organizaciones, asignación de planes, informes y gestión de tokens.
  • Admin API — /watcher/admin-api/v3: creación y modificación de usuarios normales, consulta y configuración de cámaras y listado de planes.

La presencia de admin-api en la ruta no exige conceder privilegios de administrador al sistema de facturación. Un token de integración puede realizar las operaciones indicadas a continuación según sus permisos y solo dentro de su dominio. Contratos completos: Client API y Admin API.

Elija la tarea:

Modelo de datos

Primero, los términos. Un dominio es su instancia aislada de Lumika: la dirección <su-dominio>.vsaas.io, sus organizaciones, usuarios, cámaras y planes. Dentro del dominio hay cuatro tipos de objetos:

  • Organización — la cuenta del suscriptor. Contiene sus usuarios y cámaras.
  • Usuario — la cuenta con la que el suscriptor o su empleado inicia sesión en la interfaz.
  • Cámara — una unidad de servicio; el consumo se contabiliza por cámara. En la API, la cámara se denomina stream, de ahí los métodos /streams y el campo stream_name del informe.
  • Preset — un plan: un conjunto de ajustes de la cámara que determinan el coste de prestar el servicio, como la retención del archivo, el tipo de almacenamiento y la analítica de video.

Un período de consumo es un intervalo continuo durante el que una cámara concreta utilizó un plan concreto. Estos períodos componen el informe de consumo.

La correspondencia con su sistema de facturación es:

Objeto de Lumika Entidad de facturación Campo de correspondencia
Usuario suscriptor external_id — identificador del suscriptor en su sistema; lo define usted
Preset plan billing_external_id — identificador del plan en su sistema; lo define usted
Preset plan en la contabilidad interna de la plataforma external_id — lo define la plataforma; no aparece en Client API y se devuelve en el informe como plan_id
Organización cuenta del suscriptor no tiene identificador externo propio; el informe identifica la cuenta mediante el external_id del propietario de la organización
Cámara servicio name — nombre del stream, generado al crear la cámara; léalo en la respuesta y guárdelo

Warning

Dos reglas son esenciales para la integración:

  • Asigne el external_id al usuario propietario antes de agregar cámaras a su organización. El identificador de la cuenta se registra en el período de consumo de la cámara cuando se abre; un external_id asignado después solo aparecerá en los períodos nuevos.
  • La API no permite buscar por external_id. Guarde en su sistema la correspondencia: suscriptor → id del usuario e id de la organización; servicio → name de la cámara.

El modelo recomendado es un suscriptor — una organización. Incluya las distintas ubicaciones del suscriptor, como la vivienda, la oficina y el almacén, en una organización y agrupe las cámaras en carpetas. Un usuario puede ser propietario de varias organizaciones; en ese caso, el informe devuelve distintos account_id con el mismo external_account_id.

Acceso a la API

Para la integración de servidor, utilice un token de API específico del dominio. Lo crea un administrador de dominio y el sistema de facturación guarda la clave recibida en su configuración de servidor. No necesita la contraseña del administrador ni su clave de API personal.

Prepare los permisos

El procedimiento completo de esta página requiere los siguientes permisos. Si el sistema de facturación solo realiza algunas operaciones, conceda únicamente la parte correspondiente de la lista.

Ámbito (scope) Indicadores Operaciones
config/users write Crear un usuario normal; cambiar sus datos, contraseña o bloqueo
config/organizations write Crear una organización; cambiar su propietario y sus límites
config/presets list, write Obtener los planes del dominio; habilitar o revocar un plan de una organización
config/streams read, list, write Obtener cámaras y consumo; crear una cámara; cambiar su plan o deshabilitarla
config/organization-users write Agregar un usuario normal a una organización, concederle acceso a las cámaras y eliminarlo de la organización; necesario para el procedimiento del instalador

El indicador de la operación y el ámbito deben estar en el mismo elemento de permissions. Por ejemplo, write en config/users no permite modificar una organización. Disponer de read no sustituye a list.

Un token con estos ámbitos no proporciona acceso directo al video, a las imágenes de las cámaras ni al archivo. Tampoco permite iniciar sesión como un usuario ni crear otros tokens. Sin embargo, la gestión de usuarios, propietarios de organizaciones y permisos de instaladores permite a la integración conceder acceso a cuentas de usuario. Guarde este token en el servidor de facturación; el instalador trabaja con su propio nombre de usuario.

Emita y compruebe el token

Elija un método de emisión: la interfaz o la API. El nombre billing debe estar disponible en el dominio. Si ese token ya existe, compruebe su acceso y utilice la gestión del token; no emita otro con el mismo nombre.

Emisión mediante la interfaz

Inicie sesión en la dirección de su dominio como administrador de dominio. Abra Configuraciones → Tokens de API.

  1. Pulse Emitir token e introduzca billing en Nombre.
  2. Para el procedimiento completo de esta página, active Modificación para Usuarios, Organizaciones y Miembros de organizaciones, y active Lectura y Modificación para Preajustes y Cámaras. Estas siete casillas conceden los cinco ámbitos de la tabla anterior. Para una parte de las operaciones, seleccione solo los permisos necesarios.

    Formulario de emisión con permisos para el procedimiento completo de facturación

  3. Pulse Emitir. En la ventana, use el botón de copia junto a Clave y guarde el valor en el servidor de facturación. La clave solo se muestra en esta ventana; no puede volver a abrirse desde la lista después de cerrarla.

    Visualización única de la clave tras emitir el token

  4. Pulse Listo. Compruebe que aparece la fila billing y que Acceso muestra los permisos seleccionados.

    Lista después de crear billing con cinco ámbitos de acceso

Complete la configuración con la consulta que comprueba el acceso a los planes. El token ya está emitido; no repita la solicitud de creación del método mediante API.

Emisión mediante API

  1. El administrador de dominio obtiene una sesión de usuario mediante POST /watcher/client-api/v3/login con Authorization: Basic base64(login:password). Tome el access_token de la respuesta. Utilice esta sesión únicamente para gestionar el token.
  2. Envíe la solicitud de creación como administrador. El nombre billing debe estar disponible en el dominio:

    POST /watcher/client-api/v3/api_tokens
    Authorization: Bearer <access_token del administrador>
    Content-Type: application/json
    
    {
      "name": "billing",
      "permissions": [
        {"scopes": ["config/users"], "write": true},
        {"scopes": ["config/organizations"], "write": true},
        {"scopes": ["config/presets"], "list": true, "write": true},
        {"scopes": ["config/streams"], "read": true, "list": true, "write": true},
        {"scopes": ["config/organization-users"], "write": true}
      ]
    }
    
  3. Guarde el key de la respuesta correcta en la configuración de facturación. Todos los ejemplos siguientes, salvo la gestión del propio token, utilizan Authorization: Bearer <key> en este mismo dominio.

  4. Compruebe el token consultando los planes. En Bash, defina la dirección del dominio y la clave y ejecute:

    export LUMIKA_URL='https://operator.vsaas.io'
    read -r -s -p 'API token: ' LUMIKA_TOKEN
    echo
    export LUMIKA_TOKEN
    curl --fail-with-body -sS \
      -H "Authorization: Bearer $LUMIKA_TOKEN" \
      "$LUMIKA_URL/watcher/admin-api/v3/presets"
    

    Se espera 200 y un objeto con el array presets. Un array vacío indica que la solicitud se ha completado, pero no hay planes; acuerde los planes con soporte antes de dar de alta a los suscriptores. 401 indica un problema de autenticación; 403, permisos insuficientes o una operación no disponible para este token. Compruebe la dirección del dominio, el ámbito y el indicador de la operación.

El token de integración no permite listar usuarios u organizaciones, obtener claves de usuario ni eliminar usuarios o cámaras. Guarde en el sistema de facturación los id y name recibidos. Para la conciliación administrativa, utilice una sesión independiente del administrador de dominio sin compartirla con el sistema de facturación.

Cambio de permisos, rotación y revocación

Gestión mediante la interfaz

El administrador de dominio abre Configuraciones → Tokens de API y busca la fila billing.

  • Renovación — pulse Renovar clave (el icono de flechas circulares). Lea el aviso y pulse Renovar. Copie la nueva clave de la ventana y sustitúyala en la configuración de facturación. La clave anterior deja de funcionar de inmediato; coordine el cambio de antemano.

    Confirmación de renovación con aviso sobre la desactivación de la clave anterior

  • Revocación — pulse Revocar (el icono de papelera) y confirme Revocar en la ventana. El token revocado desaparece de la lista; su clave no se puede recuperar. Compruebe que el acceso ha terminado consultando los planes: se espera un rechazo de autenticación.

    Revocación irreversible: ventana antes de confirmar

Cambie los permisos de un token existente mediante API; esta página no tiene un formulario independiente para editarlos.

Gestión mediante API

El administrador de dominio realiza estas solicitudes con su propia sesión:

  • Consultar los tokens de integración — GET /watcher/client-api/v3/api_tokens.
  • Cambiar los permisos — PUT /watcher/client-api/v3/api_tokens/billing con name: "billing" y el nuevo array completo de permissions. Sustituye los permisos anteriores; la clave se conserva.
  • Rotar la clave — POST /watcher/client-api/v3/api_tokens/billing/rotate. Guarde el key de la respuesta y actualice la configuración de facturación. La clave anterior deja de autenticar solicitudes inmediatamente, por lo que debe coordinar el cambio de antemano.
  • Revocar el token — DELETE /watcher/client-api/v3/api_tokens/billing. Tras recibir 204, la clave anterior deja de funcionar. Compruebe la revocación volviendo a consultar los planes: se espera un rechazo de autenticación.

El nombre del token se conserva al actualizarlo. Si una respuesta 409 indica ambiguous_name, detenga la modificación y contacte con el administrador: en el dominio hay tokens con el mismo nombre. Las claves de conexión de NVR y los enlaces para ver cámaras se gestionan mediante sus propios mecanismos y no son los tokens de esta integración.

Planes (presets)

Prepare los planes con soporte antes de poner en marcha la facturación. Un preset determina la retención del archivo, el almacenamiento local o en la nube y la analítica. Configure billing_external_id en Lumika: Ajustes preestablecidos de cámara → plan → ID externo de facturación.

Plan con el campo ID externo de facturación

El token de integración consulta los planes con GET /watcher/admin-api/v3/presets. Guarde id, title, billing_external_id y los parámetros del servicio de cada elemento. Si la respuesta contiene next, envíelo como cursor en la siguiente solicitud. Este token no permite modificar los campos del propio preset.

La asignación de planes a las organizaciones se realiza por separado:

  • Habilitar un plan de una organización — PUT /watcher/client-api/v3/organizations/{id}/presets con el cuerpo {"preset_id": 7}. La solicitud agrega un plan, sin sustituir el conjunto completo.
  • Revocar un plan — DELETE /watcher/client-api/v3/organizations/{id}/presets/{preset_id}.
  • Plan predeterminado — un preset con is_default: true está disponible automáticamente para las organizaciones.

Planes de la organización

Con is_adjustable: false, los parámetros del archivo los determina el preset. Para cambiar el servicio, asigne otro preset disponible; compruebe el plan guardado de la cámara y la grabación real después del cambio.

Aprovisionamiento del suscriptor

Realice los pasos en este orden con el token de facturación. Los números 314, 501 y 7 son ejemplos: sustitúyalos por los identificadores de las respuestas. Antes de crear una cámara, su organización debe tener un propietario con external_id definido.

  1. Cree la organización del suscriptor. Al trabajar con el token, puede quedar temporalmente sin propietario:

    POST /watcher/client-api/v3/organizations
    
    {"title": "Абонент 1042", "limits": {"streams": 5, "users": 3}}
    

    Guarde el id de la organización, que en adelante será 314. Si se pierde la respuesta, primero pida al administrador que compruebe la creación en la lista de organizaciones; repetir POST puede crear un duplicado. El token no permite consultar la lista de organizaciones.

  2. Cree un usuario normal en esta organización mediante Admin API:

    POST /watcher/admin-api/v3/users
    
    {
      "name": "subscriber-1042",
      "password": "ExamplePassword1042",
      "email": "subscriber-1042@example.com",
      "external_id": "1042",
      "organization_id": 314
    }
    

    Guarde el id del usuario, que en adelante será 501. name es el nombre de inicio de sesión y email es la dirección de notificaciones. Defina una contraseña individual para el suscriptor real. El token solo crea y modifica usuarios normales de su dominio; no tiene acceso a cuentas administrativas ni a usuarios con privilegios especiales.

  3. Asigne al suscriptor como propietario:

    PUT /watcher/client-api/v3/organizations/314
    
    {"owner": {"id": 501}}
    

    Ahora el suscriptor administra su organización y puede activar cámaras. El token de facturación no se convierte en miembro de la organización ni necesita permisos permanentes de usuario sobre sus cámaras.

  4. Habilite el plan del suscriptor si no está disponible de forma predeterminada:

    PUT /watcher/client-api/v3/organizations/314/presets
    
    {"preset_id": 7}
    
  5. Agregue una cámara o facilite al suscriptor los datos para que active el Agent por su cuenta. Compruebe el inicio de sesión del suscriptor y el acceso a su cámara y al archivo según el plan seleccionado. Asegúrese de que no pueda acceder a las cámaras de otros suscriptores. Guarde en el sistema de facturación la correspondencia suscriptor → user_id → organization_id → stream_name.

Un usuario adicional no obtiene acceso de visualización solo por pertenecer a la organización. El propietario o la integración con el ámbito config/organization-users concede los permisos siguiendo el procedimiento independiente. Este ámbito solo admite can_edit_streams, can_view_streams y note; no permite conceder gestión de usuarios ni otros permisos de la organización.

Cámaras

Para crear una cámara RTSP accesible desde la nube, utilice Admin API. La organización y el preset seleccionado deben pertenecer al dominio, y el preset debe estar disponible para la organización:

PUT /watcher/admin-api/v3/streams/new-camera

{
  "title": "Подъезд 1",
  "organization_id": 314,
  "preset_id": 7,
  "inputs": [{"url": "rtsp://camera.example.com/main"}]
}

Guarde el name de la respuesta. El sistema genera el nombre de la cámara; new-camera en la ruta no será su nombre. Si se pierde la respuesta, primero consulte la lista mediante GET /watcher/admin-api/v3/streams?organization_id=314, siguiendo next → cursor. Repetir la creación con un nombre arbitrario puede crear una segunda cámara.

Agregar una cámara

Compruebe la organización y el preset guardados mediante GET /watcher/admin-api/v3/streams/{stream_name}. El suscriptor o el instalador comprueba el video y el archivo reales con su propia cuenta: el token de configuración no proporciona acceso de visualización.

Cámaras con Agent

Las cámaras detrás de NAT se conectan mediante Flussonic Agent. Una vez asignado como propietario, el suscriptor inicia sesión en la aplicación o en la interfaz web de Lumika y activa el dispositivo en su organización. El instalador puede hacerlo con su propia cuenta después de recibir acceso temporal.

El token de integración no puede utilizar el procedimiento de usuario para crear una clave de activación del Agent. Obtiene las cámaras que ya han aparecido mediante GET /watcher/admin-api/v3/streams?organization_id=314 y gestiona sus planes. Para distinguir las organizaciones durante la instalación, el instalador debe seleccionar la del suscriptor correspondiente.

Exportación de los datos de agentes a su facturación

Una integración independiente del servicio de activación puede enviar los datos de los dispositivos activados a una URL del sistema de facturación. Acuerde su configuración y autorización por separado con soporte: esta exportación entrante no utiliza el token de configuración de Lumika.

Cuando la exportación está habilitada, su URL recibe solicitudes POST con registros de agentes activados. Cada registro contiene:

Campo Contenido
agent_serial Número de serie de la cámara: la clave de cruce con su inventario de dispositivos. El agent_id puede cambiar al restablecer la cámara o transferirla a otro suscriptor; el número de serie no cambia
agent_id Identificador del agente
agent_key Clave de autorización de la cámara
agent_model Modelo de la cámara
stream_url, substream_url URL RTSP de los streams principal y adicional
thumbnails, onvif_url, onvif_profile, can_ptz, admin_auth Parámetros de la cámara
registered_at Hora de activación, como marca de tiempo Unix
owner Identificador del suscriptor, si se escribió en la cámara durante la instalación; en caso contrario, vacío
abonent_sign Código de activación, si el suscriptor agregó la cámara mediante la aplicación o la interfaz; en caso contrario, vacío

Al recibir un registro, responda con 200. Ante cualquier otra respuesta, el servidor de activación reintenta el envío varias veces con intervalos crecientes. No se procesa el cuerpo de su respuesta.

Guarde agent_serial para relacionar los registros del inventario de dispositivos y agent_id para la activación actual. Los campos owner y abonent_sign pueden contener datos de vinculación. Tras la notificación, compruebe la cámara y su organización mediante la API de Lumika; el formato del registro exportado no es el cuerpo de una solicitud de creación de cámara.

Si el dispositivo aún no está vinculado, complete la activación de usuario descrita en la sección anterior. Después, guarde en facturación el nombre de cámara recibido. Una notificación repetida del mismo dispositivo no debe crear un segundo servicio.

Cambio de plan

Asigne otro preset disponible a la cámara:

PUT /watcher/admin-api/v3/streams/{stream_name}

{"preset_id": 9}

Para varias cámaras, utilice:

POST /watcher/admin-api/v3/streams/multiedit

{"streams": [{"name": "camera-one", "preset_id": 9}, {"name": "camera-two", "preset_id": 9}]}

Introduzca los nombres guardados. Si no se encuentra uno de ellos, la solicitud se rechaza con 404; si se aplica correctamente, la respuesta es 204. Vuelva a consultar las cámaras y compruebe el nuevo preset; después, compruebe la grabación con una cuenta de usuario. Cambiar la retención del archivo no recupera las grabaciones que ya se han eliminado.

Cambio del plan de la cámara

Eliminación de una cámara

El token config/streams no permite DELETE /streams/{name}. Si la cámara ya no se necesita, un usuario con los permisos correspondientes debe eliminarla mediante la interfaz de Lumika. Para una suspensión temporal, deshabilítela como se describe a continuación. La eliminación y la deshabilitación tienen efectos diferentes sobre la tarificación; compruebe el resultado en el informe.

Acceso temporal del instalador

El instalador es un usuario normal del dominio con su propio nombre de usuario y contraseña. Para conceder acceso, la integración necesita el ámbito config/organization-users con write: true. Prepare la cuenta antes de asignarle permisos; si la crea el sistema de facturación, utilice POST /watcher/admin-api/v3/users como en el aprovisionamiento del suscriptor y guarde su id. No es necesario convertir al instalador en propietario de la organización.

  1. Conceda al usuario 502 acceso a la organización 314 del suscriptor:

    PUT /watcher/client-api/v3/organizations/314/users/502
    
    {"can_edit_streams": true, "note": "Монтаж на объекте"}
    

    Se espera 200 y los datos del usuario en la organización. La cuenta y la organización deben pertenecer al dominio del token. Al agregar un miembro se aplica el límite de usuarios de la organización.

  2. Proporcione al instalador la dirección del dominio y los datos de su propia cuenta de usuario. En la aplicación o en la interfaz web, elige la organización del suscriptor y conecta la cámara. Compruebe que la cámara aparezca para el suscriptor correcto.

  3. Retire el acceso al terminar el trabajo:

    DELETE /watcher/client-api/v3/organizations/314/users/502
    

    Se espera 204. Se eliminan la pertenencia y los permisos en esta organización, incluidos los permisos sobre carpetas y los permisos directos sobre sus cámaras. La cuenta de usuario y su acceso a otras organizaciones se conservan. Compruebe que el instalador ya no pueda abrir la cámara ni su configuración. Las conexiones de medios existentes pueden finalizar más tarde.

El permiso can_edit_streams incluye la visualización de todas las cámaras de la organización y de su archivo. Para permitir la visualización sin configuración, envíe can_view_streams: true sin el permiso de edición. El acceso no caduca automáticamente: debe revocarlo el sistema de facturación o el administrador responsable.

El token no permite gestionar mediante este procedimiento al propietario de la organización, a un administrador del sistema, al propietario del dominio ni a un usuario con privilegios de dominio. Otros campos, como can_edit_users, están prohibidos para este token. Ante un 403, compruebe los campos permitidos y el tipo de usuario de destino; ante un 404, los identificadores y el dominio.

Suspensión del servicio por falta de pago

Siempre que modifique un usuario mediante PUT /watcher/admin-api/v3/users/{id}, envíe el valor actual de disabled. Si se omite, toma el valor false y la solicitud puede desbloquear al usuario. El token de facturación no puede consultar la ficha del usuario: guarde el estado de bloqueo en su facturación o pida a un administrador que lo compruebe previamente.

Para bloquear a un suscriptor normal, utilice Admin API:

PUT /watcher/admin-api/v3/users/501

{"disabled": true}

Se eliminan las sesiones activas del usuario; deben rechazarse el nuevo inicio de sesión y las nuevas solicitudes de video. La respuesta de la API no confirma la finalización inmediata de todas las conexiones de medios ya abiertas. Se conservan la organización, las cámaras y el archivo. Para restablecer el servicio, envíe {"disabled": false} y compruebe un nuevo inicio de sesión del suscriptor.

Bloqueo de un usuario

Para detener una cámara para todos sus usuarios:

PUT /watcher/admin-api/v3/streams/{stream_name}

{"disabled": true}

Después de guardar, vuelva a consultar la cámara y compruebe que el video y la grabación se han detenido. Para habilitarla, envíe disabled: false.

Configuración de la cámara: deshabilitación

Deshabilitar un usuario o una cámara no detiene por sí solo la tarificación del servicio. Si se necesita otro plan durante la suspensión, prepárelo con soporte y asígnelo a las cámaras. Los enlaces de acceso compartido a la cámara ya emitidos tienen sus propios permisos: compruebe su revocación por separado del bloqueo del usuario.

Informe de consumo

El método que proporciona los datos para emitir las facturas de los suscriptores es:

GET /watcher/client-api/v3/usage/cameras?from=2026-07-01&to=2026-07-31

Para esta solicitud, el token necesita config/streams y list: true. El método solo devuelve los datos del dominio del token. Cada entrada de la respuesta es un período de consumo: el intervalo durante el que la cámara utilizó un plan, recortado según los límites del rango solicitado:

{
  "usage": [
    {
      "stream_name": "Подъезд.1-k3n8f2p1qa",
      "plan_id": "cloud-7d",
      "billing_plan_id": "plan-hd-7d",
      "account_id": 314,
      "external_account_id": "1042",
      "license_id": "12345",
      "from": "2026-07-01",
      "to": "2026-07-18"
    },
    {
      "stream_name": "Подъезд.1-k3n8f2p1qa",
      "plan_id": "cloud-30d",
      "billing_plan_id": "plan-hd-30d",
      "account_id": 314,
      "external_account_id": "1042",
      "license_id": "12345",
      "from": "2026-07-19",
      "to": "2026-07-31"
    }
  ]
}

En el ejemplo, el informe contiene dos períodos: hasta el 18 de julio, la cámara se contabiliza con un plan; desde el 19 de julio, con otro. Para facturar, utilice las fechas exportadas, no la hora de la solicitud de cambio de preset.

Campo Contenido
stream_name nombre de la cámara: el name guardado al crearla
plan_id external_id del preset: identificador del plan en la contabilidad interna de la plataforma
billing_plan_id billing_external_id del preset: identificador del plan en su sistema de facturación
account_id id interno de la organización
external_account_id external_id del usuario propietario de la organización: identificador de la cuenta del suscriptor en facturación
license_id identificador de su licencia Lumika
from, to límites del período dentro del rango solicitado, ambas fechas inclusive

Reglas de tarificación:

  • El informe utiliza fechas naturales en UTC. Un proceso en segundo plano actualiza los períodos. Una solicitud de cambio de preset no garantiza la apertura inmediata de un nuevo período de tarificación ni la fijación del plan exactamente a medianoche; utilice los valores devueltos de from y to para facturar.
  • El día de creación y el de eliminación de la cámara se incluyen en el informe.
  • Un período abierto se devuelve con to igual a la fecha actual.
  • Los campos sin valor se omiten por completo: si el propietario de la organización no tiene external_id, la entrada no incluye la clave external_account_id.

Sin los parámetros from y to, el método devuelve los datos de ayer en UTC. La respuesta se pagina mediante limit (1000 de forma predeterminada) y cursor, según las reglas generales de la API REST.

Procedimiento recomendado: obtenga una vez al día los datos del día anterior; los valores predeterminados hacen exactamente eso. Agregue los días en su sistema y guarde el resultado del procesamiento de cada rango para que repetir la exportación no produzca cargos duplicados. Otra opción es solicitar todo el mes anterior el primer día del mes siguiente.

Note

Para que aparezca billing_plan_id, defina previamente billing_external_id en cada preset utilizado. Para que aparezca external_account_id, asigne el external_id al usuario propietario de la organización antes de agregar cámaras.

Inicio de sesión del suscriptor

El suscriptor inicia sesión en la dirección de su dominio con el name y la contraseña definidos durante el aprovisionamiento. La aplicación móvil también necesita el ID de operador del dominio. Facilite estos datos al suscriptor; no necesita la clave de la integración de servidor.

Si el suscriptor olvida su contraseña, compruebe primero si su cuenta está bloqueada. Para un suscriptor activo, establezca una nueva contraseña mediante Admin API:

PUT /watcher/admin-api/v3/users/501

{"password": "NewExamplePassword1042", "disabled": false}

Para un suscriptor bloqueado, envíe disabled: true para mantener el bloqueo. Cuando otra cuenta cambia la contraseña de un usuario, se eliminan las sesiones anteriores de este. Compruebe un nuevo inicio de sesión solo después de que se haya autorizado restablecer el acceso.

Preguntas frecuentes

¿Cómo se recupera una correspondencia de objetos perdida? El sistema de facturación debe guardar los identificadores de las respuestas. El token de configuración no consulta las listas de usuarios y organizaciones. Para comprobarlas, el administrador de dominio utiliza la interfaz o su propia sesión de API. Las cámaras pueden consultarse con el token mediante Admin API. No repita las solicitudes de creación a ciegas después de un tiempo de espera agotado.

¿Puede el sistema de facturación cambiar planes sin acceso de usuario al video? Sí. config/streams con write: true permite cambiar el preset de una cámara. El propio token no proporciona acceso de visualización. La gestión de propietarios y permisos de usuario son operaciones independientes que pueden conceder acceso de visualización a la cuenta de usuario correspondiente.

¿Por qué se puede crear un instalador, pero no modificar su cuenta después de concederle permisos? El ámbito config/users está destinado a cuentas normales de suscriptor y no permite modificar usuarios con privilegios especiales. Prepare la cuenta antes de asignarle permisos de organización. Para revocar el acceso del instalador, elimine al miembro de la organización como se describe en esa sección.

¿Por qué falta el identificador externo del suscriptor o del plan en el informe? Defina el external_id del propietario y el billing_external_id del preset antes de iniciar el servicio. Un período ya abierto no recibe estos valores de forma retroactiva. Compruebe el propietario, el preset y las fechas del informe antes de emitir cargos.

¿Por qué el usuario no puede activar un Agent? Compruebe que sea propietario de la organización correspondiente o que tenga permiso para editar sus cámaras. El acceso solo de visualización no permite la conexión. Asigne el propietario o conceda acceso al instalador antes de la activación.