Saltar al contenido principal
Un ID de referencia externa es tu propio identificador para un usuario de Fluz. Te permite operar la API de Fluz usando los IDs que ya tienes en tu sistema, sin almacenar ni pasar el userId y el accountId internos de Fluz para cada usuario. Cuando un usuario autoriza tu aplicación, adjuntas tu identificador a esa concesión. Fluz almacena el emparejamiento entre tu identificador y la cuenta de Fluz del usuario, con alcance a tu aplicación. A partir de ese momento, puedes referenciar al usuario con tu propio ID al generar tokens, enviar transferencias y conciliar eventos de webhooks.
📘 Dónde lo verás El campo aparece como external_id en la URL de autorización OAuth y como externalReferenceId en la API GraphQL y en los payloads de webhooks. Son el mismo valor.

¿Qué puede ser?

⚠️ No uses PII como ID de referencia externa Evita direcciones de email, números de teléfono o nombres. Estos pueden cambiar con el tiempo y romperían tu mapeo, y además transmiten innecesariamente datos personales en URLs y tokens. Un UUID o la clave primaria de tu base de datos es la opción correcta.

¿Dónde lo usamos?

El ID de referencia externa circula por cuatro superficies: También está incrustado en el token de acceso OAuth emitido para el usuario, por lo que la asociación persiste a través de las actualizaciones de token.

¿Cómo lo usamos?

1. Asígnalo durante el flujo de autorización OAuth

Cuando dirijas a tu usuario final a la URL de autorización (ver Client facing OAuth grant flow), agrega tu identificador como el parámetro de query external_id:
Cuando el usuario completa la concesión, Fluz registra usr_8f3d2a91 en esa autorización de tu aplicación por parte del usuario. El mismo parámetro aplica al iniciar un widget embebido — ver Widget Overview.
🚧 Requerido para aplicaciones de widget Todos los tipos de aplicaciones de widget (depósito, pagos de salida, pagos de entrada, tarjeta virtual, catálogo de tarjetas de regalo, pago de facturas y widgets de pago externo) requieren un ID de referencia externa al establecer una sesión de usuario. La solicitud será rechazada con External reference ID is required for <type> applications si se omite. Para aplicaciones OAuth estándar es opcional, pero altamente recomendado.

2. Genera tokens de acceso de usuario con él

Una vez que existe el emparejamiento, generateUserAccessToken acepta externalReferenceId en lugar de userId y accountId:
Autentica esta llamada con las credenciales Basic de tu aplicación como de costumbre — ver Generate a User Access Token. Puedes pasar userId/accountId junto con externalReferenceId, pero deben coincidir con el usuario al que resuelve el ID de referencia externa. Si no coinciden, la solicitud se rechaza.

3. Indica destinos de transferencia con él

Al crear una transferencia de billetera a otra cuenta de Fluz (ver Transfer to Another Fluz Account), el destino puede identificarse por ID de referencia externa en lugar de un ID de cuenta de Fluz:
Proporciona destination.accountId o destination.externalReferenceId — nunca ambos. El usuario de destino debe haber autorizado tu aplicación; de lo contrario, la transferencia se rechaza.

4. Haz coincidir eventos de webhooks con tus usuarios

Los payloads de webhooks incluyen externalReferenceId para que puedas correlacionar eventos de Fluz con tus propios registros de usuarios sin mantener una tabla de consulta de IDs de Fluz:
Consulta Configure App Widget para la configuración y detalles de entrega de webhooks.
📘 Nota de privacidad externalReferenceId se omite de los payloads de webhooks cuando la concesión del usuario no tiene un ID de referencia externa asociado, o cuando el evento está marcado como privado.

Reglas de validación y errores

Agregar un ID de referencia externa a una concesión existente

Si un usuario autorizó tu aplicación antes de que adoptaras IDs de referencia externa, puedes proporcionar uno en una autorización o solicitud de token posterior y Fluz lo incorporará en la concesión existente, siempre que la concesión aún no tenga uno. Un ID de referencia externa existente nunca se sobrescribe.

Lo que no es un ID de referencia externa

  • No es un userId o accountId de Fluz. Esos son UUID emitidos por Fluz; el ID de referencia externa lo emites tú.
  • No es el external_id ni los identificadores de cuenta externa que aparecen en registros de retiros o fuentes de fondos vinculadas en otras partes de la API. Esos hacen referencia a registros bancarios y de procesadores, no a usuarios. [TBD: confirmar si alguno de estos se expone en el esquema público y debería cruzarse aquí]