Wallet balance and card allocations
Compares wallet balance to virtual and physical card allocations. Enables partial reconciliation of funds distributed across cards.
81/100ยท๐
WeeklyยทIntermediateCFOController
CardsReconciliationget_wallet_summarylist_cards
๐ฏ Skill purpose
Compares wallet balance to virtual and physical card allocations. Enables partial reconciliation of funds distributed across cards.
๐ What it produces
Wallet balance summary, amounts allocated to cards, and reconciliation gap by currency.
โก Benefit
Before
Manual verification across multiple Spendesk screens to compare balance and allocations.
After
Consolidated wallet vs cards view in seconds, without navigating between screens.
# Instructions โ Wallet balance and card allocations
## โ ๏ธ Inconsistent format: list_cards.availableBalance.amount
All MCP tools use the `{ amount: int, precision }` convention where value = `amount / 10^precision`.
**Exception: `list_cards`** โ the `availableBalance.amount` field returns the decimal value directly:
```json
// list_cards โ value ALREADY in EUR:
"availableBalance": { "amount": 91.38, "currency": "EUR", "precision": 2 }
โ balance = EUR 91.38 (DO NOT divide by 100)
// get_wallet_summary โ standard integer coefficient:
"totalAmount": { "amount": 33224769, "currency": "EUR", "precision": 2 }
โ balance = 33,224,769 / 100 = EUR 332,247.69
```
โ For card balances, use `availableBalance.amount` directly (no division).
## โ ๏ธ Available wallet balance can be negative
`totalAvailableAmount` can be **negative** on demo accounts or in the event of scheduled transfers exceeding the balance. This is a valid state โ interpret it as "allocations exceed the current balance."
## โ ๏ธ allocatedOnCards โ sum of availableBalance of active cards
These two metrics measure different things:
- `allocatedOnCards.totalAllocatedAmount` = amount reserved in the wallet for cards (reserved spending limits)
- `sum(card.availableBalance)` = remaining amount cardholders can still spend
The difference = amount already spent on the cards. This is **not** an inconsistency โ it is expected.
## Step 1 โ Wallet snapshot (get_wallet_summary)
```json
{ "companyId": "..." }
```
Key fields (all in functional currency):
- `totalAmount` โ gross wallet balance (integer coefficient)
- `totalAvailableAmount` โ available after all allocations (can be negative)
- `totalAllocatedAmount` = `allocatedOnCards.totalAllocatedAmount` + `scheduledTransfersAmount.totalScheduledTransferAmount`
- `allocatedOnCards.subscriptionAmount` โ reserved on subscription cards
- `allocatedOnCards.physicalAmount` โ reserved on physical cards
- `allocatedOnCards.singlePurchaseAmount` โ reserved on single-purchase cards
- `scheduledTransfersAmount.scheduledInvoicesAmount` โ scheduled supplier transfers
## Step 2 โ Active cards (list_cards)
```json
{ "companyId": "...", "status": "ACT", "pageSize": 100 }
```
For each active card:
- `availableBalance.amount` โ available balance IN EUROS DIRECTLY (no formula)
- `spendingLimit` โ spending limit (can be null for subscriptions without a fixed limit)
- `type`: subscription | physical | single_purchase | multi_use
- `currency` โ card currency (may differ from the functional currency)
โ ๏ธ Do not sum cards in different currencies.
## Step 3 โ Interpreting the results
Present as follows:
```
SPENDESK Wallet (EUR) as of 2026-07-06:
Total balance : EUR 332,247.69
Available : EUR -511,590.51 โ ๏ธ (allocations > balance)
Allocated to cards : EUR 491,808.95
of which subscription : EUR 402,288.42
of which physical : EUR 28,872.30
of which single-use : EUR 4,601.63
Scheduled transfers : EUR 352,029.25
Active cards (ACT): 2 cards
Subscription #7071: EUR 91.38 available
Subscription #5947: EUR 9.49 available
```
## Live example (real data)
| Metric | Value |
|----------|--------|
| Total balance | EUR 332,247.69 |
| Available | **EUR -511,590.51** (negative โ test) |
| Allocated to cards | EUR 491,808.95 |
| Scheduled transfers | EUR 352,029.25 |
| Active cards | 2 (subscriptions only, ~EUR 101 available) |
## Example prompt
- "What is the wallet status?" โ get_wallet_summary only
- "How much is left on active cards?" โ list_cards status=ACT + sum availableBalance
- "Are there any pending scheduled transfers?" โ wallet_summary.scheduledTransfersAmount
How to install this skill
/
- 1Download the file
s03-wallet-summary-vs-cards.mdusing the button above. - 2Place the file in the
.claude/directory of your project (or~/.claude/for a global install).cp s03-wallet-summary-vs-cards.md .claude/s03-wallet-summary-vs-cards.md - 3Use in Claude Code โ the skill is automatically discovered. Describe your need in natural language and Claude will apply the skill instructions.
๐ก Make sure the Spendesk MCP is configured in your
.claude/settings.json with the tools get_wallet_summary, list_cards.Similar skills
โ
Top