MojoVerify Python SDK — per-instance Client for wallet, KYC, identity, and comply endpoints
Project description
mojowallet
Python SDK for MojoWallet — digital wallet operations, sessions, balance management, and financial ledger tools.
Installation
pip install mojowallet
Requirements: Python 3.10+ | Dependencies: requests, pyobjict
Quick Start
import mojowallet
mojowallet.configure("your-api-key", base_url="https://api.example.com")
wallet = mojowallet.Wallet.get(42)
wallet.add_funds(1000, "SC_REAL", source="CREDIT_CARD")
print(wallet.balance("SC_REAL"))
All responses support both dict-style (resp["id"]) and attribute-style (resp.id) access.
Core Concepts
| Concept | Description |
|---|---|
| Wallet | OO wrapper — get a wallet, call actions on it |
| Sessions | Concurrency control for withdrawals (context manager) |
| Error Handling | Exception hierarchy with domain-specific errors |
Usage Examples
# Funds
wallet.add_funds(1000, "SC_REAL", source="CREDIT_CARD", category="deposited")
wallet.purchase(500, "SC_REAL", merchant="Coffee Shop")
wallet.cashout(800, "SC_REAL", reference_id="cashout-001")
# Sessions (context manager for safety)
with wallet.session("game-xyz", expires_in_seconds=3600) as session:
session.withdraw(500, "SC_REAL", reference_id="bet-001")
session.extend(1800)
# Balances
balance = wallet.balance("SC_REAL")
summary = wallet.balance_summary()
# Reserve flow
wallet.reserve(2500, "SC_REAL", "SC_HOLD", reference_id="payout-001")
wallet.confirm_reservation("payout-001")
# Lock/unlock
wallet.lock(reason="Chargeback")
wallet.unlock(reason="Investigation cleared")
Error Handling
from mojowallet.exceptions import InsufficientBalanceError, SessionConflictError
try:
wallet.cashout(10000, "SC_REAL", reference_id="cashout-002")
except InsufficientBalanceError as e:
print(f"Not enough funds: {e.message}")
except SessionConflictError:
print("Another session is already active")
Documentation
Development
pip install poetry
poetry install --with dev
# Run all tests (unit tests only — no API key needed)
pytest -v
# With sandbox credentials
cp .env.example .env
# Edit .env with your sandbox API key
pytest -v
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mojowallet-2.1.1.tar.gz.
File metadata
- Download URL: mojowallet-2.1.1.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68783972406c366bedd4b829c0a31f6e095924d71995e15912cd476dadebf979
|
|
| MD5 |
8582e6152239e652af4f42181971e06e
|
|
| BLAKE2b-256 |
d20795f1006b8206bc641366253b5370575e29e82eaa33f637bb36da85fa390b
|
File details
Details for the file mojowallet-2.1.1-py3-none-any.whl.
File metadata
- Download URL: mojowallet-2.1.1-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7529ef2bdeb1d127b05964ae779738d9f6c4c5865e1d29d335f6a3ff6804c469
|
|
| MD5 |
88c19ba60a025260529606becf20c749
|
|
| BLAKE2b-256 |
4375b23e913e3edfe17795cdc9fe41850bf96241368f2ae2efd998b7273bb199
|