Skip to content

Wallets

A wallet is where money lives: a bank account, cash, a credit card, or mobile money. Every transaction belongs to a wallet. All routes require a bearer token and live under /api/v1.

MethodPathAction
GET/api/v1/walletsList wallets
POST/api/v1/walletsCreate a wallet
GET/api/v1/wallets/{id}Show one wallet
PUT/api/v1/wallets/{id}Update a wallet
DELETE/api/v1/wallets/{id}Delete a wallet
FieldTypeRequiredNotes
namestringyesUp to 255 characters.
typestringyesbank, cash, credit_card, or mobile.
currencystringyesThree-letter currency code.
descriptionstringnoFree text.
balancenumbernoNumeric balance.
iconstringnoIcon value.
icon_typestringnoRequired with icon: icon, image, or emoji.
client_idstringnoClient-generated ID, {device_uuid}:{entity_uuid}.
created_atstringnoISO 8601.
Terminal window
curl -X POST https://api.your-domain.example/api/v1/wallets \
-H "Authorization: Bearer your-token-here" \
-H "Content-Type: application/json" \
-d '{
"name": "Cash",
"type": "cash",
"currency": "USD"
}'
{
"success": true,
"message": "Wallet created",
"data": {
"id": 1,
"name": "Cash",
"type": "cash",
"description": null,
"currency": "USD",
"balance": 0,
"icon": {
"id": 12,
"path": "wallet.png",
"type": "image"
},
"stats": {
"total_income": 0,
"total_expense": 0
},
"client_generated_id": "device-uuid:entity-uuid",
"last_synced_at": "2026-06-14T09:12:00.000000Z"
}
}

The stats block carries the wallet’s total income and expense. The icon block describes an attached icon, image, or emoji.