← All BaaS products
Digital Wallet

Wallet

Kanject.Wallet

A complete digital wallet backend — Chart-of-Accounts, attribute-driven posting profiles, balances, escrow, multi-currency. Fully auditable, double-entry by construction, deploys into your PCI-scoped AWS. It records the movements your payment stack makes — Kanject keeps the books, it never touches the money.

CHART OF ACCOUNTS · KANJECT-LTD · double-entry by construction
1100asset
Stripe Clearing
₦12,450
SettlementClearing
2001liability
Customer Wallet
₦48,820
WalletLiability
2002liability
Escrow
₦5,300
EscrowLiability
POSTING EVENT
CustomerPaymentPosting
Post
topic""
source""
amount
ref"ord_9xk2"
JOURNAL · POSTED
CustomerPayment · ord_9xk2
balanced
ACCOUNTNARRATIONDEBITCREDIT
6
CAPABILITIES
YOUR ACCOUNT
NATIVE C#
LAMBDA OR CONTAINER

Money moves. We do the accounting.

01

Double-entry ledger

Every movement posts balanced debit and credit lines. The generated ValidateBalance() refuses an unbalanced posting before anything is written.

ValidateBalance()
02

Attribute-driven posting

Declare the chart of accounts and each posting profile as attributes. Rules target account roles, not numbers, and analyzers check them as you build.

ControlRole.WalletLiability
03

Per-country ledgers

Wallets and ledgers carry their currency code, and ledger accounts are set up per country, or for several countries at once.

ILedgerAccountManager
04

Holds on log, settle on commit

Logging a transaction places a hold on the wallet’s outflow; committing settles it. Available balance is the ledger less holds and liens.

AvailableBalance
05

Transaction lifecycle

Log, post, commit, reverse or cancel a transaction. Repeating a transaction reference returns the original instead of posting twice.

ITransactionManager
06

Audit trail

Query transaction logs, ledger transactions and posting entries, and rebuild a ledger from its logs, with a dry run first.

BackfillLedgerAsync()
Lambda or container

Inside your service.
On Lambda or in any container.

Wallet is a .NET library, not a service you call. Add the package, register it in Program.cs, and it runs inside your own service, in process. Ship that service as a Lambda function or as your own container on ECS, EKS or App Runner — the module goes wherever your code goes.

  • ✓ In process: your code calls the module directly — no sidecar, no extra network hop
  • ✓ Built from your code: your image or Lambda package, patched on your schedule
  • ✓ Configured in Program.cs, with values from your own settings
One NuGet install. Zero glue code.

Kanject.Wallet ships into your AWS, registers itself with one line in Program.cs, and exposes a typed API the rest of your service can use immediately.

Read the deployment guide →
Ready to ship?

Simplify your cloud
journey today.

Join forward-thinking developers and businesses who trust Kanject to eliminate cloud complexity and accelerate innovation.