Skip to main content

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
  • Email
  • 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