Skip to Content

Wallet

The wallet command mirrors the /wallet page — your current balance and the per-transaction history (recharges, broadcast deductions, calling minutes, etc.).

Read-only. Recharges go through the web app (Razorpay flow) — the CLI cannot initiate payments.

Quick start

splashify wallet # current balance splashify wallet transactions # transaction history

Command reference

SubcommandBacked by
(none — default)GET /api/v1/app/wallet/info
transactionsGET /api/v1/app/wallet/transactions

Wallet info shape

{ "success": true, "wallet_amount": 1234.56, "currency": "INR", "auto_recharge": { "enabled": true, "threshold_amount": 200.00, "recharge_amount": 1000.00 }, "last_transaction_at": "2026-05-19T13:57:23Z" }

Transactions shape

{ "success": true, "transactions": [ { "id": "uuid", "type": "RECHARGE | DEDUCTION | REFUND", "amount": 1000.00, "currency": "INR", "description": "Wallet recharge via Razorpay", "reference": "order_xxx", "created_at": "2026-05-19T13:57:23Z" } ] }

Preflight gate

Broadcasts, calling, and other send-type commands run a wallet preflight before allowing the send. If the balance is below the cost the call is refused with a recharge prompt. The --yes flag on those commands skips the soft-check (the backend still enforces the hard limit).

Common patterns

# Just the balance splashify wallet | jq .wallet_amount # Total spent last month splashify wallet transactions | jq ' [ .transactions[] | select(.type == "DEDUCTION") | select(.created_at >= "2026-04-01" and .created_at < "2026-05-01") | .amount ] | add ' # Group transactions by type splashify wallet transactions | jq ' .transactions | group_by(.type) | map({(.[0].type): length}) | add '