Fidi X
  1. Fidi X - API's Core Wallet
Fidi X
  • Fidi X - API's Core Wallet
    • Diccionario de Datos – Enumeraciones
    • Auth
      • Login
        • Get Access Token
    • Personas
      • Create Person
        • Create Natural Person (Complete)
        • Create Legal Person (Company)
        • Create Natural Person with Parent
      • Get Person
        • Get Person by ID
        • Get Person Hierarchy
      • List Persons
        • List All Persons
        • List Natural Persons Only
        • List Legal Persons Only
        • List Active Persons Only
      • Update Person
        • Update Natural Person
        • Update Legal Person
        • Update Person Status
      • Block & Unblock Person
        • Block Person and Descendants
        • Unblock Person and Descendants
      • Delete Person
        • Delete Person (Soft Delete)
    • Ledgers
      • Disable Ledger
        • 200 - Disable Ledger Success
        • 400 - Invalid Ledger ID (F006)
        • 404 - Ledger Not Found (F003)
        • 500 - Internal Server Error (T001)
      • Activate Ledger
        • 200 - Activate Ledger Success
        • 400 - Invalid Ledger ID (F006)
        • 400 - Invalid Action (F006)
        • 404 - Ledger Not Found (F003)
        • 500 - Internal Server Error (T001)
    • Assets
      • Create Asset
        • 201 - Create Asset Success (Fiat)
        • 201 - Create Asset Success (Crypto)
        • 201 - Create Asset Success (Points)
        • 400 - Missing Ledger ID (F001)
        • 400 - Missing Code (F001)
        • 400 - Missing Asset Type (F001)
        • 400 - Invalid Asset Type (F001)
        • 400 - Invalid Ledger ID Format (F001)
        • 400 - Code Too Long (F001)
        • 404 - Ledger Not Found (F003)
        • 409 - Duplicate Asset Code (F004)
        • 500 - Internal Server Error (T001)
      • Get Assets by Ledger
        • 200 - Get Assets Success (With Results)
        • 200 - Get Assets Success (Empty)
        • 400 - Missing Ledger ID (F005)
        • 400 - Invalid Ledger ID Format (F002)
        • 500 - Internal Server Error (T005)
      • Get Asset by ID
        • 200 - Get Asset Success
        • 400 - Invalid Asset ID Format (F002)
        • 404 - Asset Not Found (T006)
        • 500 - Internal Server Error (T007)
      • Activate Asset
        • 200 - Activate Asset Success
        • 400 - Invalid Asset ID (F002)
        • 400 - Invalid Action (F002)
        • 404 - Asset Not Found (F003)
        • 409 - Ledger Not Found (F003)
        • 500 - Internal Server Error (T001)
      • Disable Asset
        • 200 - Disable Asset Success
        • 400 - Invalid Asset ID (F002)
        • 404 - Asset Not Found (F003)
        • 409 - Ledger Not Found (F003)
        • 500 - Internal Server Error (T001)
    • Cuentas
      • Create Account
        • 201 - Create Account Success (Without Parent)
        • 201 - Create Account Success (With Parent)
        • 400 - Missing Name (F001)
        • 400 - Invalid Normal Balance (F001)
        • 400 - Invalid Ledger ID Format (F001)
        • 400 - Invalid Parent Account ID (F001)
        • 400 - Parent Account Not Found (F001)
        • 400 - Asset Ledger Mismatch (F001)
        • 500 - Internal Server Error (T001)
      • Get Account by ID
        • 200 - Get Account Success
        • 400 - Invalid Account ID Format (F001)
        • 404 - Account Not Found (F003)
        • 500 - Internal Server Error (T001)
      • Get Accounts by Ledger
        • 200 - Get Accounts Success (With Results)
        • 200 - Get Accounts Success (Empty)
        • 400 - Missing Ledger ID (F005)
        • 400 - Invalid Ledger ID Format (F006)
        • 500 - Internal Server Error (T002)
      • Update Account
        • 200 - Update Account Success
        • 400 - Invalid Account ID Format (F001)
        • 400 - Invalid Request Body (F002)
        • 400 - Name Empty (F005)
        • 404 - Account Not Found (F003)
        • 500 - Internal Server Error (T001)
      • Suspend Account
        • 200 - Suspend Account Success
        • 400 - Invalid Account ID (F002)
        • 400 - Invalid Action (F002)
        • 404 - Account Not Found (F003)
        • 409 - Account Closed (F004)
        • 500 - Internal Server Error (T001)
      • Activate Account
        • 200 - Activate Account Success
        • 400 - Invalid Account ID (F002)
        • 404 - Account Not Found (F003)
        • 409 - Account Closed (F004)
        • 500 - Internal Server Error (T001)
      • Close Account
        • 200 - Close Account Success
        • 400 - Invalid Account ID (F002)
        • 404 - Account Not Found (F003)
        • 500 - Internal Server Error (T001)
      • Get Balance by Account ID
        • 200 - Get Balance Success
        • 400 - Invalid Account ID Format (F001)
        • 404 - Account Not Found (F003)
        • 404 - Balance Not Found (F004)
        • 500 - Internal Server Error (T001)
    • Transacciones
      • Create Transaction
        • 201 - Create Transaction Success
        • 400 - Missing traceparent (F001)
        • 400 - Invalid UUID in payload (F002)
        • 201 - Idempotency: Return stored response (idem-001)
        • 409 - Idempotency conflict: same key, different payload (T002)
        • 409 - Duplicate reference_id for ledger (T003)
        • 400 - Invalid payload: debit/credit mismatch (F003)
        • 403 - Ledger not found or disabled (F004)
        • 403 - Account invalid or inactive (F004)
        • 400 - Asset/Currency mismatch (F005)
        • 409 - Authorization rules not satisfied (T001)
        • 500 - Failed to update balance after retries (T004)
        • 500 - Unexpected internal error (T004)
  1. Fidi X - API's Core Wallet

# 🔐 Autenticación – FIDI X (v1)

Introducción#

Para garantizar una integración segura y confiable, FIDI X protege todas sus APIs mediante un mecanismo de autenticación estándar, basado en tecnologías ampliamente adoptadas en la industria financiera.
El objetivo de esta primera versión es verificar la identidad de quien consume las APIs, asegurando que cada solicitud provenga de un cliente, sistema o aplicación previamente autenticada.
📌 Importante:
En esta versión no se aplican reglas de autorización (roles, permisos o restricciones por operación).
El control de acceso avanzado se incorporará en versiones posteriores.

🧩 ¿Cómo funciona la autenticación en FIDI X?#

FIDI X utiliza un modelo de autenticación centralizado, apoyado en un proveedor de identidad externo y tokens de acceso seguros.
El proceso general es el siguiente:
1.
El cliente se autentica contra el proveedor de identidad.
2.
Se obtiene un Access Token.
3.
El token se envía en cada llamada a las APIs de FIDI X.
4.
FIDI X valida el token antes de procesar la solicitud.

🔑 Tecnologías Utilizadas#

La autenticación en FIDI X se basa en los siguientes estándares:
OAuth 2.0: protocolo para la obtención de tokens de acceso.
OpenID Connect (OIDC): extensión de OAuth 2.0 para identidad.
JWT (JSON Web Token): formato seguro del token.
Keycloak: proveedor de identidad (Identity Provider).
Estos estándares permiten una integración sencilla, segura y compatible con múltiples lenguajes y plataformas.

🔐 Proveedor de Identidad#

FIDI X utiliza Keycloak como proveedor de identidad central.
El proveedor de identidad es responsable de:
Autenticar aplicaciones, servicios o usuarios.
Emitir tokens de acceso firmados (JWT).
Gestionar clientes OAuth 2.0.
Publicar claves públicas para validación de tokens.
📌 Las APIs de FIDI X no manejan credenciales directamente.

🔁 Flujos de Autenticación Soportados#

1️⃣ Client Credentials (Recomendado)#

Este es el flujo principal para integraciones con FIDI X.
Está diseñado para:
Integraciones backend a backend.
Partners que consumen las APIs desde sus sistemas.
Procesos automáticos o servicios.
Cómo funciona:
1.
El cliente solicita un token al proveedor de identidad usando su client_id y client_secret.
2.
El proveedor valida las credenciales.
3.
Se emite un Access Token.
4.
El cliente utiliza el token para consumir las APIs de FIDI X.
Este flujo no involucra usuarios finales.

2️⃣ Authorization Code + PKCE (Opcional)#

Este flujo se utiliza únicamente cuando existe interacción directa con usuarios (por ejemplo, portales o backoffice).
Características:
Autenticación interactiva.
Redirección al proveedor de identidad.
Emisión de token tras login exitoso.
📌 Este flujo es opcional y solo se habilita para clientes que lo requieran.

📥 Uso del Token en las APIs#

Todas las llamadas autenticadas a FIDI X deben incluir el token en el siguiente header HTTP:
Sin este header, la solicitud será rechazada.

🔍 Validación del Token#

Antes de procesar una solicitud, FIDI X valida el token recibido.
En esta versión se verifica:
Firma del token.
Fecha de expiración.
Emisor del token.
Audiencia esperada.
📌 La validación es local y automática, sin llamadas adicionales al proveedor de identidad.

⏱️ Vigencia de los Tokens#

Tipo de TokenDescripción
Access TokenToken JWT utilizado para consumir las APIs
DuraciónCorta (entre 5 y 15 minutos)
RenovaciónMediante nueva autenticación
RevocaciónPor expiración del token

🛡️ Recomendaciones de Seguridad para Clientes#

Para una integración segura, se recomienda:
Utilizar siempre HTTPS.
Proteger el client_secret y no exponerlo públicamente.
No almacenar tokens en logs o repositorios.
Renovar los tokens cuando expiren.
Rotar credenciales periódicamente.

🚧 Alcance de la Versión 1#

Esta versión cubre exclusivamente:
Autenticación de clientes y servicios.
Validación de identidad mediante tokens.
Quedan fuera de alcance:
Autorización por roles o permisos.
Restricciones por tipo de operación.
Autenticación multifactor (MFA).
OTP o validaciones adicionales.

✅ Beneficios para el Cliente#

Integración simple y estandarizada.
Seguridad alineada a buenas prácticas fintech.
Bajo acoplamiento técnico.
Preparación para futuras capas de seguridad.

Modificado en 2025-12-23 22:02:32
Anterior
Diccionario de Datos – Enumeraciones
Siguiente
Get Access Token
Built with