Prácticas recomendadas
Usa estos patrones para que las integraciones de socios sean predecibles, observables y seguras para las instalaciones.
Identifica las instalaciones de forma coherente
Elige el método de vinculación configurado para tu cuenta de socio y úsalo de forma coherente:
- Direct Link: usa el
facility_iddel Performance Hub que devuelve el endpoint de instalaciones. - Linking Identifier: usa tu propio identificador de ubicación, como un ID de sucursal, un código de ubicación o un número de tienda.
No envíes ambos identificadores en la misma solicitud. El Performance Hub resuelve las solicitudes con el método de vinculación configurado para tu cuenta de socio.
Consulta Métodos de vinculación de socios para obtener instrucciones de configuración.
Escribe por lotes con cuidado
La Partner API acepta cuerpos de solicitud JSON y está diseñada para flujos de sincronización por lotes, donde así se documenta. Mantén los lotes acotados y reintentables.
Pautas predeterminadas:
- Usa hasta 1000 elementos por solicitud por lotes para un rendimiento óptimo.
- Mantén las cargas útiles por debajo de 10MB.
- No superes 5 solicitudes por segundo por endpoint.
Los límites de frecuencia se pueden ajustar y tu administrador de cuenta de socio del Performance Hub puede configurarlos caso por caso. Si prevés importaciones de gran volumen, tráfico de lanzamiento o cargas retroactivas de informes, acuerda el rendimiento necesario antes de la ventana de cambio.
Si necesitas sincronizar un conjunto de datos grande, divídelo en fragmentos deterministas y registra el ID de cada fragmento en tu sistema. Así es más fácil analizar los reintentos fallidos.
Reintenta de forma segura
Usa el retroceso exponencial para los errores transitorios, como 429, 500, 502, 503 y 504.
Evita los bucles de reintento rápidos. Un buen punto de partida es:
- Reintentar después de 1 segundo.
- Reintentar después de 2 segundos.
- Reintentar después de 4 segundos.
- Detenerse y emitir una alerta si la operación sigue fallando.
En los errores de validación, como 400 o 422, corrige la solicitud antes de reintentar.
Usa la idempotencia donde se admita
El endpoint de desbloqueo del controlador de puertas y portones admite una idempotency_key opcional. Si reutilizas la misma clave para el mismo socio, la misma instalación y la misma puerta, se devuelve el resultado existente cuando hay uno disponible.
Usa una clave estable para la acción que se realiza, por ejemplo, un ID de registro de entrada o un ID de evento de acceso de tu sistema.
No supongas que todos los endpoints de escritura admiten la idempotencia, a menos que esté documentado para ese endpoint.
Mantén limpios los datos de origen
Envía valores estables y normalizados siempre que sea posible:
- Usa ID coherentes de miembros, planes, instalaciones y registros de entrada de tu sistema de origen.
- Usa marcas de tiempo ISO 8601 para las fechas y horas.
- Envía los números de teléfono en formato internacional, si están disponibles.
- Envía las monedas con los campos documentados para cada endpoint.
- Evita sobrecargar los campos de texto libre con datos que corresponden a campos estructurados.
Diseña para sincronizaciones incrementales y completas
La mayoría de las integraciones de socios necesitan ambas:
- Sincronizaciones incrementales para los cambios del día a día.
- Sincronizaciones completas de conciliación para corregir eventos perdidos, importaciones históricas o desviaciones de datos.
Tu integración debe poder reenviar el estado actual de un miembro, un plan de membresía o una instantánea de informe sin depender de que una solicitud anterior se haya completado correctamente.
Publica las Access Time Windows de forma segura
Trata el valor access_time_windows de cada miembro como una instantánea completa con revisiones independientes:
- Coordina una única secuencia de
access_time_windows_revisionmonótonamente creciente entre los procesos incrementales y los de conciliación. - Reintenta una entrega incierta o transitoria con la misma revisión y la misma carga útil normalizada.
- Omite
access_time_windowscuando no lo estés actualizando. - Envía
[]solo después de que una consulta correcta a la fuente autorizada demuestre que no queda ninguna ventana. Nunca conviertas un tiempo de espera agotado, un resultado parcial o un error de análisis de la fuente en una revocación. - Mantén estables
external_idyscope_key, y certifica cada asignación de ámbito antes de pasar a producción. - Supervisa la antigüedad de la fuente con respecto a la política de actualización acordada para esa integración.
Consulta la guía oficial para productores de Access Time Windows para conocer las instantáneas completas, las zonas horarias, el horario de verano, la cancelación y los vectores de prueba.
Trata el control de acceso como algo crítico para la seguridad
En los desbloqueos de controladores de puertas y portones:
- Tu sistema debe decidir si la persona puede entrar antes de llamar al Performance Hub.
- El Performance Hub devuelve
200solo después de que el controlador del sitio confirma que el relé se desbloqueó físicamente. - La mayoría de las confirmaciones se completan en 3-5 segundos.
- Un tiempo de espera agotado es un desbloqueo fallido explícito, no un éxito en segundo plano.
- Reintenta solo según tus propias reglas de acceso y seguridad.
Registra siempre el event_id y el command_id que devuelve el endpoint de desbloqueo.
Supervisa tu integración
Usa los registros de solicitudes de la Partner Console durante el desarrollo y el lanzamiento. En producción, mantén también tus propios registros con:
- Marca de tiempo de la solicitud.
- Endpoint.
- ID del registro de origen.
- Identificador de instalación.
- Código de estado HTTP.
- Cuerpo de la respuesta o mensaje de error del Performance Hub.
Estos campos agilizan mucho el soporte y la conciliación cuando un cliente pregunta qué ocurrió.