Saltar al contenido principal

User Management API

Manage user profiles, documents, settings, and personal information.

Get User Profile

Retrieve the authenticated user's profile information.

Endpoint: GET /user/profile

Authentication: JWT Bearer Token

Query Parameters: None

Response:

{
"success": true,
"statusCode": 200,
"data": {
"id": "user_123",
"email": "user@example.com",
"firstName": "John",
"lastName": "Doe",
"phone": "+14155552671",
"verified": true,
"profileImage": "https://...",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-20T15:45:00Z"
},
"error": null
}

Error Responses:

  • 401 - Unauthorized
  • 404 - User not found

Update User Profile

Update user's profile information.

Endpoint: PUT /user/profile

Authentication: JWT Bearer Token

Request Body:

{
"firstName": "John",
"lastName": "Doe",
"phone": "+14155552671"
}

Parameters:

ParameterTypeRequiredDescription
firstNamestringNoUser's first name
lastNamestringNoUser's last name
phonestringNoPhone number in E.164 format

Response:

{
"success": true,
"statusCode": 200,
"data": {
"id": "user_123",
"firstName": "John",
"lastName": "Doe",
"phone": "+14155552671",
"updatedAt": "2024-01-20T16:00:00Z"
},
"error": null
}

Error Responses:

  • 400 - Invalid input data
  • 401 - Unauthorized

Upload Profile Picture

Upload or update user's profile picture.

Endpoint: POST /user/profilePicture

Authentication: JWT Bearer Token

Request Type: multipart/form-data

Parameters:

ParameterTypeRequiredDescription
filefileYesImage file (JPG, PNG, max 5MB)

Response:

{
"success": true,
"statusCode": 200,
"data": {
"url": "https://storage.googleapis.com/...",
"updatedAt": "2024-01-20T16:15:00Z"
},
"error": null
}

Error Responses:

  • 400 - Invalid file format or size
  • 401 - Unauthorized

Get Credit Score

Retrieve user's credit score information.

Endpoint: GET /user/creditScore

Authentication: JWT Bearer Token

Query Parameters: None

Response:

{
"success": true,
"statusCode": 200,
"data": {
"score": 750,
"rating": "Good",
"accountAge": 24,
"lastUpdated": "2024-01-15T10:30:00Z"
},
"error": null
}

Error Responses:

  • 401 - Unauthorized
  • 404 - Credit information not available

Upload Document

Upload a user document (ID, proof of address, etc.).

Endpoint: POST /user/documents

Authentication: JWT Bearer Token

Request Type: multipart/form-data

Parameters:

ParameterTypeRequiredDescription
filefileYesDocument file (PDF, JPG, PNG)
documentTypestringYesType: ID, PROOF_ADDRESS, INCOME_STATEMENT, BANK_STATEMENT

Response:

{
"success": true,
"statusCode": 200,
"data": {
"documentId": "doc_123",
"documentType": "ID",
"url": "https://storage.googleapis.com/...",
"verified": false,
"uploadDate": "2024-01-20T16:30:00Z"
},
"error": null
}

Error Responses:

  • 400 - Invalid file or document type
  • 401 - Unauthorized

Get User Documents

List all documents uploaded by the user.

Endpoint: GET /user/documents

Authentication: JWT Bearer Token

Query Parameters:

ParameterTypeDescription
documentTypestringFilter by document type
pagenumberPage number (default: 1)
limitnumberItems per page (default: 20)

Response:

{
"success": true,
"statusCode": 200,
"data": [
{
"documentId": "doc_123",
"documentType": "ID",
"url": "https://storage.googleapis.com/...",
"verified": true,
"uploadDate": "2024-01-15T10:30:00Z"
}
],
"error": null
}

Error Responses:

  • 401 - Unauthorized

Delete Document

Delete a user document.

Endpoint: DELETE /user/documents/:documentId

Authentication: JWT Bearer Token

Path Parameters:

ParameterTypeDescription
documentIdstringDocument ID to delete

Response:

{
"success": true,
"statusCode": 200,
"data": {
"message": "Document deleted successfully"
},
"error": null
}

Error Responses:

  • 401 - Unauthorized
  • 404 - Document not found

Get Notifications Preferences

Retrieve user's notification settings.

Endpoint: GET /user/notificationPreferences

Authentication: JWT Bearer Token

Response:

{
"success": true,
"statusCode": 200,
"data": {
"emailNotifications": true,
"pushNotifications": true,
"loanUpdates": true,
"paymentReminders": true,
"promotions": false
},
"error": null
}

Error Responses:

  • 401 - Unauthorized

Update Notification Preferences

Update user's notification settings.

Endpoint: PUT /user/notificationPreferences

Authentication: JWT Bearer Token

Request Body:

{
"emailNotifications": true,
"pushNotifications": true,
"loanUpdates": true,
"paymentReminders": true,
"promotions": false
}

Parameters:

ParameterTypeRequiredDescription
emailNotificationsbooleanNoEnable email notifications
pushNotificationsbooleanNoEnable push notifications
loanUpdatesbooleanNoEnable loan update notifications
paymentRemindersbooleanNoEnable payment reminder notifications
promotionsbooleanNoEnable promotional notifications

Response:

{
"success": true,
"statusCode": 200,
"data": {
"message": "Preferences updated successfully"
},
"error": null
}

Error Responses:

  • 400 - Invalid preference data
  • 401 - Unauthorized

Get User Gamification Stats

Retrieve user's gamification/rewards information.

Endpoint: GET /user/gamification

Authentication: JWT Bearer Token

Response:

{
"success": true,
"statusCode": 200,
"data": {
"points": 1500,
"level": "Gold",
"achievements": [
{
"id": "first_loan",
"name": "First Loan",
"unlockedAt": "2024-01-15T10:30:00Z"
}
],
"rewards": 250
},
"error": null
}

Error Responses:

  • 401 - Unauthorized

Delete User Account

Delete the authenticated user's account.

Endpoint: DELETE /user/account

Authentication: JWT Bearer Token

Request Body:

{
"password": "userPassword123",
"reason": "No longer needed"
}

Parameters:

ParameterTypeRequiredDescription
passwordstringYesUser's password for confirmation
reasonstringNoReason for deletion

Response:

{
"success": true,
"statusCode": 200,
"data": {
"message": "Account deleted successfully"
},
"error": null
}

Error Responses:

  • 400 - Invalid password
  • 401 - Unauthorized