Skip to content
Daaysorn
Esc
navigateopen⌘Jpreview
On this page

Wallet & Ledger

Interact with the double-entry ledger to manage pockets, holds, and transfers.

Wallet & Ledger

daayOS includes a built-in double-entry ledger for managing funds. At signup, a primary wallet is created for every user with an initial balance of 0 in an available pocket.

Core Concepts

  • Wallets: The top-level container for a user or organization’s funds.
  • Pockets: Sub-balances within a wallet (e.g., available, reserved).
  • Holds: Temporary reservations of funds that can be captured or voided later.
  • Transfers: Moving funds between wallets or between pockets within a wallet.

API Endpoints

All wallet operations sit under /v1/api/wallet. (Note: The legacy /v1/api/user/wallets endpoints delegate to these newer paths).

Method Path Description
GET /v1/api/wallet List wallets for the authenticated user
GET /v1/api/wallet/:id Get details for a specific wallet and its pockets
POST /v1/api/wallet/transfer Transfer funds between wallets or pockets
POST /v1/api/wallet/holds Place a hold on funds (reserve them)
POST /v1/api/wallet/holds/:id/capture Capture a previously placed hold
POST /v1/api/wallet/holds/:id/void Void a hold and return funds to the available pocket

Using the Ledger

Viewing Balances

To see a user’s current balances, fetch their wallets:

GET /v1/api/wallet
Authorization: Bearer <token>

Holds and Escrow

When a transaction needs to be authorized before it is finalized, you can place a hold. This moves funds from the available pocket to a reserved state. Once the condition is met, you capture the hold to finalize the transfer, or void it to return the funds.

Note: Live money-rail wiring (e.g., payouts to external bank accounts) is currently deferred until a payout provider is finalized. The system currently tracks internal ledger movements only.

Was this page helpful?