Ir al contenido

Wallet de identidad y verificaciones reutilizables

En Digital Jungle, la verificación KYC no le pertenece al tenant que la generó. Le pertenece al usuario final. Esa decisión arquitectónica habilita algo poco común en LATAM: que tu próximo cliente llegue ya verificado, si ya pasó por otro tenant del ecosistema.

Cada persona tiene un wallet de identidad custodiado por Bmonkey. Los tenants pueden solicitar presentaciones del wallet con consentimiento explícito del usuario, pagando 60 % menos que un KYC desde cero.

Está inspirado en estándares vigentes en otras geografías:

ProgramaGeografía
myInfo SingaporeSingapur (gobierno como hub)
eIDAS Wallet 2.0Unión Europea (regulación 2024-2026)
DigiLockerIndia
Stripe Identity Reusable VerificationsGlobal (vendor)

Cada usuario tiene un único wallet_id global (UUID). El wallet contiene credenciales verificables emitidas por Bmonkey cuando un KYC se completa:

{
"wallet_id": "wal_01J8H7K9...",
"subject": {
"document_type": "CC",
"document_id": "1023456789"
},
"credentials": [
{
"credential_id": "vc_01J8H8...",
"type": "identity-kyc-loa3",
"issued_by": "cashpaya",
"issued_at": "2026-03-12T15:00:00Z",
"expires_at": "2027-03-12T15:00:00Z",
"evidence_hash": "sha256:9b3c...",
"claims": {
"full_name": "Camila Rodríguez",
"document": "1023456789",
"biometric_score": 0.97,
"address": "Calle 100 #15-22, Bogotá"
}
}
]
}

Bmonkey nunca expone las credenciales completas a un tenant que no las solicitó. Lo que viaja en una transacción es una presentation firmada — un subconjunto de claims acordado en el consentimiento.

NivelCómo se alcanzaVigencia
LoA1usuario + contraseñasesión
LoA2+ MFA (SMS / TOTP / push)sesión + 90 días
LoA3+ biometría + KYC documental12 meses
LoA4+ verificación presencial / firma calificada24 meses

Cada tenant configura el LoA mínimo por flujo (login, transferencia, originación). Bmonkey hace step-up automático cuando el usuario intenta una acción que exige más nivel del que tiene en su sesión actual.

  1. Tenant B quiere onboardear a Camila. Llama POST /v1/wallet/discover con document_id. Bmonkey responde si hay wallet activo (sin exponer claims).

  2. Si hay match, Tenant B llama POST /v1/wallet/request-presentation especificando qué claims necesita (full_name, document, address) y qué LoA mínimo exige.

  3. Bmonkey notifica a Camila (push / email / SMS) con un enlace al consentimiento. Costo: 5 Açaí.

  4. Camila abre el enlace, revisa qué pide Tenant B, aprueba o rechaza la presentación, define vigencia (single-use / 30 días / hasta revocar).

  5. Si aprueba, Bmonkey emite la presentation a Tenant B y debita 32 Açaí del tenant. Internamente: 20 Açaí para bmonkey, 12 Açaí de crédito para el tenant que originó la verificación (Cashpaya en este caso).

  6. Webhook bmonkey.presentation.granted notifica a Tenant B con los claims acordados. Tenant B persiste un subject local y continúa el onboarding como si hubiera hecho KYC propio.

ConceptoAçaí
Costo total del reuso para Tenant B32
Bjungle (custodia + operación)20
Tenant origen (quien hizo el KYC primero)7
Usuario (data dividend)5

Los 5 Açaí al usuario son el diferencial estructural de bjungle frente a Stripe Identity / Persona / Trulioo: el sujeto verificado participa del valor que su identidad genera cuando se reusa. A la tasa pública (~ COP 60 / Açaí), son aproximadamente COP 300 por aprobación — pequeño en absoluto, pero recurrente sin esfuerzo y único en LATAM. Ver Data dividends para el modelo completo y el encuadre legal (retribución por consentimiento informado, no venta de datos).

Cuatro cosas concretas, en orden de impacto percibido:

  1. Tiempo. Onboardear en un comercio nuevo con wallet = 30 segundos (consent + face match 1:1). Sin wallet = 8-12 minutos (subir documento, selfie, OTP, datos). Este es el único beneficio que un usuario común valora sin que se lo expliquen.

  2. No volver a fotografiar el documento. La cédula está rayada, el flash refleja, “documento ilegible, repita”. El usuario odia ese flujo. El wallet lo elimina.

  3. Cashback automático. 5 Açaí (≈ COP 300) por cada aprobación. Visible antes de aprobar, acreditado al instante después. Acumula en /v1/wallet/me/balance; redimible en servicios del ecosistema (modo loyalty) o eventualmente transferible a banco (Fase 2).

  4. Visibilidad y control. Pantalla /grants lista qué comercios tienen acceso ahora, qué claims compartieron, cuándo aprobó, cuánto ganó. Botón “Revocar” con confirmación irreversible. GDPR / Ley 1581 ya dan este derecho — el wallet lo vuelve ejercible con un toque.

El usuario puede en cualquier momento:

  • Listar qué tenants tienen acceso vigente (GET /v1/wallet/grants)
  • Revocar un grant individual (DELETE /v1/wallet/grants/{id})
  • Borrar el wallet completo (DELETE /v1/wallet) — invalida todos los grants futuros pero no afecta las decisiones ya tomadas por los tenants en base a verificaciones pasadas (eso queda en su record propio).

Cumple con artículos 16-18 del GDPR y el régimen colombiano de protección de datos (Ley 1581 / 1266).

  • No es portabilidad entre proveedores RegTech. Una credencial emitida por Bmonkey solo se reusa entre tenants Bmonkey. Para portabilidad cross-vendor habrá que esperar a OpenID Federation / eIDAS bridges.
  • No reemplaza notificación regulatoria. SARLAFT exige que cada entidad haga su propio análisis de riesgo (eso lo cubre Bhawk). El reuso de identidad acelera el “quién eres”, no el “qué riesgo representas”.