https://fluz.app/for-developers/overview/{appId}. Los widgets embebidos usan las mismas pestañas más una pestaña adicional de Instalación: consulta Configurar widget de la app.
Qué hay en cada pestaña
Pestaña Overview
Aquí viven dos cosas que sirven a públicos muy distintos.Tus credenciales
Tu identidad pública
El nombre, subtítulo, descripción, avatar y logomark son lo que ven tus usuarios en la pantalla de consentimiento cuando deciden si entregan a tu aplicación acceso a su dinero. Trátalos como copy de producto, no como etiquetas internas.Pestaña Permissions
Esta pestaña define los permisos que tu aplicación pide. No es lo que te ha otorgado ningún usuario en particular: eso llega en el intercambio de token. Como la pantalla de consentimiento se construye a partir de esta pestaña y no de tu URL de autorización, lo que selecciones aquí es exactamente lo que se le pide aprobar a cada usuario. No hay forma de acotarlo por solicitud. La pestaña contiene dos listas de permisos independientes:
Cómo llegan los alcances seleccionados al usuario
Los usuarios no ven valores enum crudos. Los alcances que seleccionas se agrupan bajo un encabezado legible de nivel superior, y es ese encabezado el que se presenta para aprobación. Un alcance no marcado se omite por completo de lo que se le pide aprobar al usuario — y de lo que tu app podrá solicitar jamás.
Alcances requeridos
Algunos alcances son obligatorios para el tipo de app o widget que estás configurando: sin ellos el flujo físicamente no puede ejecutarse. Estos se reúnen al final de la pestaña. Los verás allí; no los eliges.Business permissions
Si tu aplicación atiende a empresas, completa también la lista Business permissions. Se edita de forma independiente de la lista de consumidor y no tiene restricciones de selección: un permiso puede estar en una lista, en la otra, en ambas o en ninguna.- El permiso para registrar una empresa no se ofrece aquí. Ese lo otorga la cuenta personal — es lo que permite a un usuario crear una empresa en primer lugar — así que pertenece a la lista Permissions. No aparecerá como opción en la lista de empresa.
- Dejar esta lista vacía significa que la app no está habilitada para empresas. No se les ofrecerá a los usuarios la opción de solicitar una cuenta de empresa durante la autorización.
- Las apps que ya existían antes de introducir esta lista se rellenaron con una copia de sus permisos de consumidor. Revísala en lugar de asumir que es lo que quieres.
Capacidades de la app
Elegir tus alcances
Parte de lo que necesita el flujo que tienes delante, no de lo que podrías necesitar algún día.Alcances que no puedes auto-seleccionar
PCI_COMPLIANCE es administrado por Fluz a nivel de aplicación, se otorga a desarrolladores que han demostrado cumplimiento con PCI DSS y no puede solicitarse al generar un token. Si necesitas manejar datos de tarjeta crudos tú mismo, habla con tu account manager de Fluz. Si no quieres hacerlo, para eso están los widgets embebidos: mantienen la captura de tarjeta dentro del alcance PCI de Fluz.
Cambiar alcances más adelante
El modelo de permisos es una intersección del techo a nivel de app y la concesión de cada usuario, lo que tiene dos consecuencias prácticas:- Agregar un alcance aquí no lo otorga retroactivamente a los tokens que los usuarios ya te emitieron. Los usuarios existentes deben volver a autorizar antes de que el nuevo alcance sea efectivo para ellos.
- Quitar un alcance aquí reduce el acceso efectivo de inmediato, para cada usuario, sin importar lo que aprobaron previamente.
Pestaña OAuth
Origin
El dominio que alojará el flujo:example.com, app.example.com. Para widgets embebidos, esta es la página donde se renderiza el widget y debe coincidir o el widget no cargará.
Redirect URIs
A dónde nuestro servidor de autorización puede enviar al usuario después de que apruebe o rechace.Reglas
Reglas
- Debe ser una URL pública a la que nuestros servidores puedan acceder.
- Sin parámetros de consulta en la URI registrada. Usa el parámetro
statepara portar contexto. - Registra tantas como necesites: una por ambiente, una por variante de flujo.
- La URI que uses en
/authorizedebe estar registrada aquí, y la URI que envíes a/token/exchangedebe ser idéntica a nivel de bytes a la que usaste en/authorize.
Idéntica a nivel de bytes significa idéntica a nivel de bytes
Idéntica a nivel de bytes significa idéntica a nivel de bytes
Desarrollo local
Desarrollo local
http://localhost:3035/oauth/finalize. No funcionará a menos que esté en la lista, y las URIs de localhost no deben quedar registradas en una app de producción.Webhook URLs
Endpoints REST públicos que reciben eventos de Fluz: cómo te enteras de que una transferencia se completó, un usuario cerró un modal o una verificación se resolvió, sin hacer polling.- Agrega tantas URLs como quieras.
- Suscribe cada URL a eventos específicos, para que puedas encaminar diferentes familias de eventos a distintos servicios.
- Una URL sin eventos seleccionados se vuelve un catch-all y recibe todo. Conveniente en desarrollo, ruidoso en producción.
Verifica antes de construir
Cinco minutos aquí te ahorran una tarde depurando el flujo de autorización.Las credenciales están fuera del dashboard y en tu almacén de secretos
.env que esté trackeado en git.La pantalla de consentimiento se lee bien
Cada alcance que tu código invoca está marcado en Permissions
No hay nada marcado que no puedas justificarle a un usuario
Tu Redirect URI está registrada en su forma canónica exacta
Construye a mano una URL de autorización y ábrela
/authorize con response_type=code, tu client_id y tu redirect_uri registrada, luego cárgala en un navegador. Si la pantalla de consentimiento se renderiza con tu branding y los alcances que esperas, tu configuración es correcta. Si da error, el mensaje nombra lo que no coincidió — y lo habrás encontrado antes de escribir código.→ Flujo de concesión OAuth de cara al cliente