Skip to content

Developer Documentation

Wallets

Wallets are the fundamental building blocks for holding and moving value in the Nexbit ecosystem. Each wallet is tied to a specific currency.

List Wallets

GET /v1/wallets

Retrieve all wallets associated with the authenticated user, enriched with real-time balances.

Query Parameters
Request Body
{}
Body Parameters
Test Request
Response
{
  "status": "success",
  "data": [
    {
      "wallet_id": 101,
      "currency_code": "KES",
      "wallet_address": "NEX-00000101-KES-AB12",
      "label": "Main Account",
      "status": "active",
      "created_at": "2025-10-26 09:00:00",
      "balance": "15000.00"
    },
    {
      "wallet_id": 102,
      "currency_code": "USD",
      "wallet_address": "NEX-00000101-USD-XY99",
      "label": "Savings",
      "status": "active",
      "created_at": "2025-10-26 09:05:00",
      "balance": "500.00"
    }
  ]
}

Create Wallet

POST /v1/wallets

Create a new wallet for a specific currency.

Request Body
{
  "currency": "EUR",
  "label": "European Trip Fund"
}
Body Parameters
  • currency (string, required): The 3-letter ISO currency code (e.g., 'EUR').
  • label (string, optional): A friendly name for the wallet.
Test Request
Response
{
  "status": "success",
  "wallet_id": 103,
  "address": "NEX-00000101-EUR-CDE3"
}

Get Balance

GET /v1/wallets/balance

Retrieve the real-time balance for a single wallet.

Query Parameters
  • wallet_id (integer, required): The ID of the wallet to query.
Request Body
{
  "wallet_id": 101
}
Body Parameters
Test Request
Response
{
  "status": "success",
  "data": {
    "wallet_id": 101,
    "balance": "14500.00",
    "derived_at": "2025-10-26T14:30:00Z"
  }
}

Get Statement

GET /v1/wallets/statement

Download a transaction statement for a wallet in JSON, CSV, or PDF format.

Query Parameters
  • wallet_id (integer, required): The ID of the wallet.
  • format (string, optional, default: json): The desired output format. Can be json, csv, or pdf.
  • start (string, optional): The start date of the statement period (e.g., 2025-01-01). Defaults to the beginning of the current month.
  • end (string, optional): The end date of the statement period (e.g., 2025-01-31). Defaults to the current date and time.
Request Body
{
  "wallet_id": 101,
  "format": "json"
}
Body Parameters
Test Request
Response (format=json)
{
  "status": "success",
  "range": {
    "start": "2025-10-01 00:00:00",
    "end": "2025-10-26 23:59:59"
  },
  "count": 2,
  "data": [
    {
      "tx_id": "10057",
      "created_at": "2025-10-26 12:05:00",
      "tx_type": "withdrawal",
      "amount": "2500.00",
      "entry_type": "debit",
      "currency_code": "KES",
      "metadata": "{\"gateway\":\"mpesa\"}"
    },
    {
      "tx_id": "10056",
      "created_at": "2025-10-26 12:00:00",
      "tx_type": "transfer",
      "amount": "50.00",
      "entry_type": "debit",
      "currency_code": "KES",
      "metadata": "{\"note\":\"For lunch\"}"
    }
  ]
}
Note on File Formats: For csv and pdf formats, the API will respond with the appropriate Content-Type header and the file content directly in the response body, which typically triggers a file download in a web browser.