Introducción
Autorizar una integración entre Shopify y Contífico implica permitir que una plataforma procese pedidos, datos de clientes y credenciales de conexión. Antes de hacerlo, es razonable preguntar quién puede acceder a esa información, cómo se protege y qué responsabilidades conserva cada empresa.
La respuesta seria no empieza prometiendo riesgo cero. Empieza aclarando qué controla QIntegro, qué datos necesita para operar y qué sigue siendo responsabilidad de la empresa. Si además quieres entender el flujo funcional completo, puedes revisar cómo funciona la integración paso a paso y volver al artículo pilar sobre automatizar la facturación electrónica de Shopify en Ecuador. Si quieres ver cuándo conviene automatizar y qué problemas aparecen cuando el trabajo manual deja de ser sostenible, también tienes la comparación entre facturación manual y automática y la guía de errores frecuentes al facturar pedidos.
Respuesta breve
¿Qué información procesa QIntegro?
En el flujo auditable del proyecto, QIntegro procesa credenciales autorizadas de Shopify y Contífico, identificadores de tienda, pedidos, clientes, productos, cantidades, precios, descuentos, impuestos, estados operativos y resultados de la integración.
La información exacta depende del pedido y de la configuración de cada empresa. La plataforma no necesita inventar datos: trabaja con lo que Shopify y Contífico exponen dentro del alcance autorizado.
- pedido recibido en Shopify;
- cliente y datos mínimos para facturación;
- productos y variantes necesarias para la factura;
- impuestos y totales;
- estado de la conexión y resultado de la operación.
¿Qué información no necesita QIntegro?
QIntegro no necesita la contraseña personal de Shopify de un usuario, ni credenciales bancarias, ni tarjetas, ni información ajena a la operación de facturación. Tampoco necesita que la empresa comparta datos innecesarios de clientes para el flujo básico que ya está confirmado.
La diferencia importante es entre lo que una plataforma podría recibir en teoría y lo que realmente necesita para operar. Si un dato no aporta a la factura, no debería formar parte del intercambio.
¿Cómo se protegen las credenciales?
Las credenciales confirmadas se usan desde el backend, no desde una lógica de navegador. La aplicación valida secretos críticos al arrancar, trabaja con cookies de sesión protegidas y conserva los accesos de cada empresa dentro de su propio contexto.
| Control | Estado | Qué significa para el cliente |
|---|---|---|
| Secreto de aplicación fuera del código | Confirmado | La app falla al arrancar si faltan secretos críticos en producción. |
| Uso de credenciales desde servidor | Confirmado | El navegador no necesita ver las llaves de integración. |
| Sesión con cookies protegidas | Confirmado | La autenticación se administra con cookies de acceso y refresco. |
| Exposición pública de secretos | No observada en los flujos auditados | El frontend no debe mostrar claves completas ni tokens. |
Aislamiento entre empresas
QIntegro trabaja con aislamiento lógico por tenant. Las sesiones contienen `tenant_id`, las rutas protegidas verifican ese dato y las consultas a pedidos, clientes y credenciales se resuelven dentro del contexto de la empresa autenticada.
Eso significa que una empresa no debería operar sobre los datos de otra. No hay evidencia en el repositorio de una base física separada por cliente, así que el lenguaje correcto es aislamiento lógico, no aislamiento físico.
| Contexto | Cómo se controla | Resultado esperado |
|---|---|---|
| Sesión | JWT con `tenant_id` en claims e identidad. | El usuario opera en su propia empresa. |
| Consultas | Filtros por `tenant_id` en pedidos, clientes y POS. | Los datos se recuperan del tenant correcto. |
| Administración | Las rutas revisan que el tenant de la sesión coincida con el solicitado. | Se evita cruzar contexto entre empresas. |
Seguridad de las sesiones
La app usa `SECRET_KEY` y `JWT_SECRET_KEY`, valida las sesiones con JWT y configura cookies con `HttpOnly`, `SameSite=Lax` y `Secure` en producción. También maneja expiración para access y refresh token, y el logout limpia las cookies.
Validación de conexiones
QIntegro no se limita a guardar credenciales. También valida el estado de conexión de Shopify y Contífico y trabaja con estados operativos comprensibles como pendiente, conectado o error. Eso ayuda a que el negocio vea el estado real de la integración sin tener que interpretar mensajes técnicos crudos.
Una validación correcta no garantiza que todos los pedidos futuros estarán libres de incidencias. Solo confirma que, en ese momento, la conexión responde como debe.
Protección de los datos de los clientes
Los datos de clientes se usan para identificar al comprador, preparar la factura, relacionar el pedido y registrar el resultado operativo. Eso implica procesarlos dentro del flujo, pero no significa exponerlos públicamente ni compartirlos entre empresas.
La regla práctica es minimización: usar solo lo necesario para facturar y mantener el contexto separado por tenant. La empresa sigue siendo responsable de recolectar datos correctos y de contar con la base legal que corresponda.
Permisos concedidos y acciones reales
La seguridad no solo depende de qué token existe, sino de qué hace realmente el sistema con ese token. Por eso conviene diferenciar entre permisos concedidos y acciones efectivamente ejecutadas.
| Permiso concedido | Acción real confirmada | Nota |
|---|---|---|
| Shopify autorizado | Leer y procesar pedidos, clientes y productos necesarios para la integración. | No se debe asumir uso de permisos no auditados. |
| Contífico autorizado | Validar conexión y emitir facturas desde el backend. | La operación depende de la configuración de la empresa. |
| Sesión autenticada | Acceder solo al tenant autorizado. | El tenant de la sesión debe coincidir con el contexto solicitado. |
¿Qué ocurre si desconecto la integración?
Si revocas credenciales o desconectas Shopify o Contífico, las nuevas operaciones pueden dejar de procesarse. Los documentos ya creados permanecen en el sistema donde fueron generados.
La integridad del historial no depende de que la integración siga activa. Lo que cambia es la capacidad de seguir automatizando nuevos pedidos.
¿Cómo se protegen los secretos de la aplicación?
Los secretos críticos se gestionan fuera del código y la aplicación valida su presencia en producción con un enfoque fail-fast. Eso evita desplegar una versión que parezca funcionar pero carezca de claves obligatorias para operar.
Este patrón no sustituye todas las prácticas de hardening, pero sí establece una base más segura que tener secretos incrustados en el repositorio.
Logs y mensajes de error
Los mensajes operativos deben servir para diagnosticar sin exponer secretos. En los flujos auditados, el login no devuelve tokens en JSON y la recuperación de contraseña no imprime el enlace ni el token en los logs de salida que se verificaron con pruebas.
Cuando la plataforma muestra un error, debería explicar qué pasó de forma útil para el negocio y reservar los detalles sensibles para la operación interna.
Responsabilidad compartida
| Área | Responsabilidad de QIntegro | Responsabilidad de la empresa |
|---|---|---|
| Cuenta de usuario | Proteger sesiones y rutas privadas. | Usar contraseñas seguras y no compartir accesos. |
| Credenciales | Usarlas únicamente para la integración confirmada. | Generarlas, protegerlas y revocarlas cuando corresponda. |
| Shopify | Procesar operaciones autorizadas. | Mantener tienda, permisos y usuarios configurados. |
| Contífico | Conectarse y enviar información autorizada. | Mantener configuración administrativa y tributaria. |
| Datos de clientes | Procesarlos dentro del flujo. | Solicitar datos correctos y cumplir sus obligaciones legales. |
| Errores | Mostrar estado y mensajes operativos. | Corregir información y configuraciones. |
Buenas prácticas para los clientes
- No compartir credenciales por canales públicos.
- Limitar usuarios administrativos al mínimo necesario.
- Revisar permisos antes de activar una integración.
- Revocar accesos que ya no se utilicen.
- Cerrar sesiones en equipos compartidos.
- Proteger el correo de recuperación.
- Reportar actividad sospechosa cuanto antes.
- No incluir secretos en capturas o tickets públicos.
Qué no promete QIntegro
QIntegro no puede prometer riesgo cero. Ningún sistema serio debería hacerlo. La seguridad depende de controles técnicos, de la configuración de la empresa y de la higiene operativa con la que se administren credenciales y accesos.
La plataforma tampoco sustituye políticas internas, asesoría legal ni decisiones contables o tributarias. Si una credencial se expone, la respuesta correcta es revocarla y volver a validar la conexión.
Controles confirmados
- secretos de aplicación fuera del código y validados en arranque;
- cookies JWT con `HttpOnly` y `SameSite` configurado;
- `Secure` en cookies cuando corresponde al entorno de producción;
- rutas privadas protegidas por JWT y `tenant_id`;
- aislamiento lógico por tenant en consultas y operaciones;
- validación de conexiones y estados operativos;
- HMAC de Shopify en producción según configuración;
- recuperación de contraseña con token temporal y expiración;
- no exposición de tokens en respuestas JSON de login y refresh.
Mejoras continuas
La seguridad no es una tarea cerrada. A medida que la plataforma crece, conviene revisar autenticación, permisos, mensajes de error, dependencias, validaciones de webhook y separación por tenant para mantener el mismo nivel de control.
En otras palabras: la confianza se sostiene con revisión continua, no con una promesa estática.
CTA intermedio
Si quieres ver el flujo operativo detrás de estas protecciones, revisa cómo funciona la integración y vuelve a la página de Shopify + Contífico.
Preguntas frecuentes
¿QIntegro necesita mi contraseña de Shopify?
No. La integración usa accesos autorizados para operar, no la contraseña personal de un usuario.
¿Dónde se utilizan las credenciales?
En el backend, para validar conexiones y procesar la integración dentro del tenant autorizado.
¿Las API keys aparecen en el navegador?
No en los flujos auditados. El navegador recibe sesión, no llaves de integración.
¿Otra empresa puede ver mis datos?
No debería. El acceso está asociado al tenant autenticado y las consultas se filtran por ese contexto.
¿QIntegro almacena datos de clientes?
Procesa y conserva los datos operativos necesarios para facturación y trazabilidad dentro del tenant correspondiente.
¿QIntegro puede ver información de pagos?
La integración confirmada trabaja con los datos necesarios para facturar; no se debe asumir que necesita datos bancarios o de tarjeta.
¿Qué ocurre si una credencial se expone?
Debe revocarse en el origen y revalidarse la conexión. No existe una respuesta automática que sustituya esa acción.
¿Puedo revocar el acceso?
Sí. La revocación en Shopify o Contífico corta la capacidad de seguir procesando nuevas operaciones.
¿Qué pasa si desconecto Shopify o Contífico?
Las nuevas operaciones pueden dejar de procesarse y los documentos ya creados permanecen donde fueron emitidos.
¿QIntegro garantiza seguridad absoluta?
No. Ningún sistema puede garantizar riesgo cero. La seguridad real depende de controles y mantenimiento continuo.
¿Qué responsabilidad tiene mi empresa?
Proteger sus accesos, revisar permisos, mantener datos correctos y reaccionar a tiempo ante cambios o incidencias.
Conclusión
Conectar Shopify con Contífico requiere confianza, pero esa confianza debe construirse con controles verificables, límites claros y responsabilidad compartida. En el estado auditado del producto, QIntegro busca procesar solo lo necesario, separar empresas por tenant, proteger sesiones y evitar que las credenciales aparezcan en el navegador.
La seguridad no depende solo de la plataforma. También depende de cómo la empresa administra sus accesos, sus cambios operativos y la disciplina con la que protege sus credenciales.