Resumen de Wallet y Tarjetas
Entidades
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Cardholder │─1 N►│ Card │─1 N►│ Movements │
│ │ │ │ │ │
│ authUserId │ │ cardId │ │ transfers │
│ profile │ │ maskedPan │ │ statements │
│ permissions │ │ balance │ │ refunds │
└─────────────┘ └─────────────┘ └─────────────┘
▲
│
│ linked-cards (external cards)
│
┌─────────────┐
│ Third-party │
│ card │
└─────────────┘
Tipos de tarjeta
| Tipo | Cómo se obtiene | Caso de uso |
|---|---|---|
| Física (emitida por Migo) | POST /users/{userId}/cards/virtuals | Tarjeta emitida por Migo, financiable dentro del wallet |
| Vinculada / de terceros | POST /users/{userId}/linked-cards | Tarjeta externa que el titular ya posee |
POST /users/{userId}/cards (con un parámetro de consulta clientId requerido) vincula una tarjeta existente a un usuario — consulta Ciclo de vida de la tarjeta. El endpoint de emisión de tarjetas físicas es POST /users/{userId}/cards/virtuals.
Modelo de fondos
Cada tarjeta tiene:
- Saldo — disponible para gastar (Decimal, hasta 4 decimales, almacenado en la moneda de la tarjeta)
- Débitos pendientes — autorizados pero aún no capturados
- Créditos pendientes — reembolsos aún no liquidados
El saldo cambia únicamente a través de:
POST /cards/{cardId}/funds— agregas / retiras fondos como emisor- Pagos con tarjeta capturados — reducen el saldo
- Reembolsos acreditados — aumentan el saldo
- Transferencias tarjeta a tarjeta — mueven dinero entre dos tarjetas
Las operaciones de fondos son atómicas. No puedes sobregirar; los intentos de sobregasto devuelven 7303 INSUFFICIENT_FUNDS.
Permisos del titular
Los permisos por tarjeta y por usuario controlan quién puede hacer qué. Los valores reales de CardPermissionType son:
checkCard— ver detalles de la tarjetacheckCvv— revelar el CVVupdateAlias— renombrar la tarjetaupdateStatus— bloquear / desbloquear la tarjetaassignPIN— establecer el PIN de la tarjetagetCards— listar tarjetasgetAllTransfersByDate— leer el feed de movimientostransferBetweenCards— mover dinero a otra tarjetaactivation— activar la tarjeta
Una sola tarjeta puede tener múltiples usuarios autorizados (por ejemplo, una pareja compartiendo una tarjeta). Los permisos de cada usuario se otorgan de forma independiente.
Endpoints de gestión de permisos:
POST /cards/{cardId}/users/{authUserId}/permissions— otorgar permisosPATCH /cards/users/permissions/{id}— actualizar un registro de permisoGET /cards/users/{authUserId}/permissions— listar los permisos de tarjeta de un usuarioGET /cards/{cardId}/users/permissions— listar todos los permisos de una tarjetaGET /cards/{cardId}/users/{authUserId}/permissions— listar los permisos de un usuario sobre una tarjeta específica
Resumen de tarjetas
La app del wallet obtiene un resumen agregado por titular sobre un rango de fechas:
GET /users/{userId}/cards/summary?startDate=2026-04-01&endDate=2026-04-30
startDate y endDate son requeridos. Esto difiere de GET /users/{userId}/cards, que lista las tarjetas del usuario; el resumen devuelve cifras agregadas del período.