Your App Users/Customers

Manage your App users or your Customers who will have access to Tuku Pay.

Description

App users are individuals or entities interacting with Tuku Pay through a registered app. Each user must be registered with Tuku Pay if they engage in transactions or SMS services. Even users who do not use Tuku Pay directly can be registered for analysis and marketing purposes.

User Types

  1. Individuals

  2. Joint Accounts

  3. Escrows

  4. Organizations

  5. Apps (treated as users)

Registration Requirements

  1. Mandatory Fields:

    • Name

    • Phone number (used as a unique identifier or account number)

    • KYC documents

  2. Optional Fields:

    • Username

    • Profile photo (separate from KYC photo)

  3. Account Numbers:

    • An account number is assigned upon registration.

    • The phone number can also act as the account number.


Endpoints

1. Create User

  • Method: POST

  • URL: /api/users/create

Request Body:

{
  "appId": "app123",
  "name": "Jane Doe",
  "phone": "+254712345678",
  "username": "jdoe",
  "profilePhoto": "https://example.com/photo.jpg",
  "kyc": {
    "type": "National ID",
    "documentUrl": "https://example.com/id.jpg"
  },
  "type": "individual"
}

Response:

{
  "userId": "user123",
  "accountNumber": "1234567890",
  "status": "active",
  "message": "User created successfully."
}

2. Edit User

  • Method: PUT

  • URL: /api/users/edit

Request Body:

{
  "appId": "app123",
  "userId": "user123",
  "name": "Jane Doe Updated",
  "username": "jdoe_updated",
  "profilePhoto": "https://example.com/photo_updated.jpg"
}

Response:

{
  "userId": "user123",
  "status": "updated",
  "message": "User details updated successfully."
}

3. Delete User

  • Method: DELETE

  • URL: /api/users/delete

Request Body:

{
  "appId": "app123",
  "userId": "user123"
}

Response:

{
  "userId": "user123",
  "status": "deleted",
  "message": "User deleted successfully."
}

4. Retrieve User Details

  • Method: POST

  • URL: /api/users/details

Request Body:

{
  "appId": "app123",
  "userId": "user123"
}

Response:

{
  "userId": "user123",
  "name": "Jane Doe",
  "phone": "+254712345678",
  "username": "jdoe",
  "profilePhoto": "https://example.com/photo.jpg",
  "accountNumber": "1234567890",
  "type": "individual",
  "status": "active"
}

Notes

  • App ID in Request Body: All endpoints require the appId to be included in the request body to identify the app context.

  • Normalized Requests: All request and response payloads follow a standardized format for consistency and ease of integration.

  • KYC Verification: Users must have verified KYC to perform transactions.

  • Phone Number as Account Number: The phone number acts as a fallback identifier if the account number is unavailable.