NovaCash API

Home
Base URL:https://api.novacash.bi/v1

Wallets API

The Wallets API provides comprehensive management of mobile money wallets within the NovaCash system. This API allows you to create, retrieve, update, and delete wallets, manage wallet balances, perform financial transactions, and handle various wallet-related operations across different mobile money providers.

Wallet Object

The Wallet object represents a mobile money wallet in the NovaCash system. Each wallet is linked to a user and contains financial information, provider details, transaction capabilities, and balance information for mobile money operations.

Key Attributes

AttributeTypeDescription
idstringUnique identifier for the wallet
user_idstringID of the user who owns the wallet
typestringWallet type: mobile_money, bank, card
providerstringMobile money provider: lumicash, econet, orange_money
phone_numberstringPhone number linked to the wallet
balancenumberCurrent wallet balance
available_balancenumberBalance available for transactions
currencystringCurrency code: BIF, USD, EUR
statusstringWallet status: active, inactive, suspended
is_primarybooleanWhether this is the primary wallet
account_numberstringProvider account number
created_atstringTimestamp when the wallet was created
updated_atstringTimestamp when the wallet was last updated
last_sync_atstringTimestamp of the last balance sync

GET /wallets

Description

Retrieve a list of all wallets with advanced filtering

Parameters

NameTypeRequiredDescription
pagenumberOptionalPage number for pagination
limitnumberOptionalNumber of items per page
typestringOptionalFilter by wallet type (mobile_money, bank, card)
providerstringOptionalFilter by provider (lumicash, econet, orange_money)
statusstringOptionalFilter by wallet status (active, inactive, suspended)
user_idstringOptionalFilter by user ID

Possible Errors

StatusError CodeDescription
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenThe request is understood, but it has been refused due to permissions

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Query Parameters

Page number for pagination

Number of items per page

Filter by wallet type (mobile_money, bank, card)

Filter by provider (lumicash, econet, orange_money)

Filter by wallet status (active, inactive, suspended)

Filter by user ID

POST /wallets

Description

Create a new wallet for a user

Possible Errors

StatusError CodeDescription
400Bad RequestInvalid input data
404Not FoundUser not found
409ConflictPhone number already linked to another wallet

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

GET /wallets/{id}

Description

Retrieve a specific wallet by ID

Parameters

NameTypeRequiredDescription
idstringRequiredWallet ID

Possible Errors

StatusError CodeDescription
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenInsufficient permissions to access this wallet
404Not FoundWallet not found

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Path Parameters

Wallet ID

PUT /wallets/{id}

Description

Update wallet information and settings

Parameters

NameTypeRequiredDescription
idstringRequiredWallet ID

Possible Errors

StatusError CodeDescription
400Bad RequestInvalid input data
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenInsufficient permissions to update this wallet
404Not FoundWallet not found

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Path Parameters

Wallet ID

DELETE /wallets/{id}

Description

Delete a wallet

Parameters

NameTypeRequiredDescription
idstringRequiredWallet ID

Possible Errors

StatusError CodeDescription
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenInsufficient permissions to delete this wallet
404Not FoundWallet not found
409ConflictCannot delete wallet with positive balance

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Path Parameters

Wallet ID

GET /wallets/{id}/transactions

Description

Get wallet transaction history

Parameters

NameTypeRequiredDescription
idstringRequiredWallet ID
pagenumberOptionalPage number for pagination
limitnumberOptionalNumber of items per page
typestringOptionalFilter by transaction type
start_datestringOptionalStart date for filtering (ISO format)
end_datestringOptionalEnd date for filtering (ISO format)

Possible Errors

StatusError CodeDescription
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenInsufficient permissions to access this wallet's transactions
404Not FoundWallet not found

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Path Parameters

Wallet ID

Query Parameters

Page number for pagination

Number of items per page

Filter by transaction type

Start date for filtering (ISO format)

End date for filtering (ISO format)

GET /wallets/{id}/balance

Description

Get wallet current balance

Parameters

NameTypeRequiredDescription
idstringRequiredWallet ID

Possible Errors

StatusError CodeDescription
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenInsufficient permissions to access this wallet's balance
404Not FoundWallet not found

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Path Parameters

Wallet ID

POST /wallets/{id}/deposit

Description

Deposit funds into a wallet

Parameters

NameTypeRequiredDescription
idstringRequiredWallet ID

Possible Errors

StatusError CodeDescription
400Bad RequestInvalid amount
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenInsufficient permissions to deposit to this wallet
404Not FoundWallet not found
409ConflictWallet is inactive or suspended

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Path Parameters

Wallet ID

POST /wallets/{id}/withdraw

Description

Withdraw funds from a wallet

Parameters

NameTypeRequiredDescription
idstringRequiredWallet ID

Possible Errors

StatusError CodeDescription
400Bad RequestInvalid amount or insufficient funds
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenInsufficient permissions to withdraw from this wallet
404Not FoundWallet not found
409ConflictWallet is inactive, suspended, or below minimum balance

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Path Parameters

Wallet ID

POST /wallets/{id}/transfer

Description

Transfer funds between wallets

Parameters

NameTypeRequiredDescription
idstringRequiredSource Wallet ID

Possible Errors

StatusError CodeDescription
400Bad RequestInvalid amount, insufficient funds, or same wallet transfer
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenInsufficient permissions to transfer from this wallet
404Not FoundSource or destination wallet not found
409ConflictWallet is suspended, closed, or currencies mismatch

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Path Parameters

Source Wallet ID

GET /wallets/user/{user_id}

Description

Get all wallets for a specific user

Parameters

NameTypeRequiredDescription
user_idstringRequiredUser ID
typestringOptionalFilter by wallet type

Possible Errors

StatusError CodeDescription
401UnauthorizedAuthentication credentials were missing or incorrect
403ForbiddenInsufficient permissions to access this user's wallets
404Not FoundUser not found

API Playground

Simulation
Simulation Mode

You are using simulated data. Switch to real API mode to call actual endpoints.

Query Parameters

User ID

Filter by wallet type

Introduction