Bridge - Customer
Endpoints para gestión de customers y KYC en Bridge.
1. Generar ToS (Términos de Servicio)
GET /bridge/generate-tos
Genera un enlace de términos de servicio para Bridge.
Headers:
Authorization: Bearer <JWT_TOKEN>
Respuesta Exitosa (200):
{
"tos_link": "https://api.bridge.xyz/customers/tos_links/abc123?redirect_uri=...",
"user_token": "uuid-token-123"
}
Respuesta de Error (409):
{
"message": "El usuario ya tiene un customer activo en Bridge con ID: bridge_customer_123",
"error": "Conflict",
"statusCode": 409
}
2. Estado del Customer
GET /bridge/customer-status
Obtiene el estado del customer de Bridge del usuario actual.
Headers:
Authorization: Bearer <JWT_TOKEN>
Respuesta Exitosa (Sin Customer) (200):
{
"hasCustomer": false,
"customerId": null,
"customer": null,
"message": "El usuario no tiene un customer activo en Bridge"
}
Respuesta Exitosa (Con Customer) (200):
{
"hasCustomer": true,
"customerId": "bridge_customer_123",
"customer": {
"id": "bridge_customer_123",
"status": "active",
"email": "user@example.com",
"first_name": "Juan",
"last_name": "Pérez",
"created_at": "2024-01-15T10:30:00Z"
},
"message": "Customer encontrado en Bridge"
}
3. Datos Completos del Customer
GET /bridge/customer-data
Obtiene los datos completos del customer de Bridge del usuario actual.
Headers:
Authorization: Bearer <JWT_TOKEN>
Respuesta Exitosa (200):
{
"success": true,
"customer": {
"id": "bridge_customer_123",
"status": "active",
"email": "user@example.com",
"first_name": "Juan",
"last_name": "Pérez",
"birth_date": "1990-01-15",
"address": {
"street_line_1": "Av. Corrientes 1234",
"street_line_2": "Piso 5",
"city": "Buenos Aires",
"state": "CABA",
"postal_code": "1043",
"country": "AR"
},
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"message": "Datos del customer obtenidos exitosamente"
}
Respuesta de Error (404):
{
"message": "El usuario no tiene un customer asociado en Bridge",
"error": "Not Found",
"statusCode": 404
}
4. Datos de Customer por ID
GET /bridge/customer-data/:customerId
Obtiene los datos de un customer específico de Bridge.
Parámetros:
customerId(string): ID del customer
Headers:
Authorization: Bearer <JWT_TOKEN>
Respuesta Exitosa (200):
{
"success": true,
"customer": {
"id": "bridge_customer_123",
"status": "active",
"email": "user@example.com"
},
"message": "Datos del customer obtenidos exitosamente"
}
5. Reintentar Subida de KYC a Bridge
POST /bridge/retry-kyc-upload
Reintenta la subida de documentos KYC a Bridge.
Headers:
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json
Body (opcional):
{
"forceReupload": false
}
Respuesta Exitosa (200):
{
"success": true,
"data": {
"success": true,
"message": "Customer y documentos KYC actualizados exitosamente en Bridge",
"uploaded": {
"customer": true
},
"customer": {
"id": "bridge_customer_123",
"status": "pending"
}
},
"message": "Customer y documentos KYC actualizados exitosamente en Bridge"
}
🔄 Flujo de Onboarding
Paso 1: Generar ToS
GET /bridge/generate-tos
El usuario será redirigido al enlace de términos de servicio.
Paso 2: Firmar Términos
El usuario firma los términos en el portal de Bridge.
Paso 3: Verificar Estado
GET /bridge/customer-status
Paso 4: Obtener Datos Completos
GET /bridge/customer-data
👤 Estados del Customer
Estados Principales
- pending - Documentos en revisión
- active - Verificado y activo
- rejected - Documentos rechazados
- suspended - Cuenta suspendida
Verificación KYC
- unverified - Sin documentos
- pending - En proceso de verificación
- verified - Verificado completamente
- failed - Verificación fallida
📋 Datos del Customer
Información Personal
- Nombre y apellido
- Fecha de nacimiento
- Teléfono
Dirección
- Línea de dirección 1 y 2
- Ciudad
- Estado/Provincia
- Código postal
- País
Metadatos
- Fecha de creación
- Fecha de última actualización
- Estado de verificación
- ID único del customer
🔗 Redirecciones
Éxito
- URL:
/bridge/success - Parámetros:
signed_agreement_id,user_token - Destino: Frontend con customer_id
Fallo
- URL:
/bridge/failed - Destino: Página de error en frontend
⚠️ Errores Comunes
- 409 Conflict: Customer ya existe para el usuario
- 404 Not Found: Customer no encontrado
- 401 Unauthorized: Token JWT inválido
- 400 Bad Request: Datos de KYC incompletos
📝 Notas Importantes
- Un usuario solo puede tener un customer activo en Bridge
- Los ToS deben firmarse antes de usar cualquier servicio
- La verificación KYC puede tomar 1-3 días hábiles
- Los datos del customer se sincronizan automáticamente