---
title: "Where the family's money came from and went for a date range"
method: GET
path: "/families/{id}/personal/money-map"
tags: ["Families"]
---

# Where the family's money came from and went for a date range

`GET /families/{id}/personal/money-map`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/families/{id}/personal/money-map`
- Auth: one of:
  - HTTP bearer and API key in header `x-organization-id`
  - HTTP bearer and API key in header `x-organization-id`

Firm-side family relationships only. Select the firm with x-organization-id. Owners, Admins and Staff Admins access all firm families; Staff Members need independent family assignment. Company access does not grant family access. OAuth requires the broad mcp grant, not a narrow banking scope; API keys retain ordinary agent permission scopes. No accounting organizations, portal grants, bank changes, invitations or charges are created. Writes require ordinary firm write entitlement. Cross-firm and inaccessible IDs return 404. Personal accounts never post journals; these operations read delivered bank rows and save household categories, notes and rules. Rows nobody categorized by hand are categorized automatically (rule, then the firm's earlier choice for the merchant, then Plaid, then AI); a person's choice always wins. Rules never hide rows. Settled rows only. A confirmed category wins, then a matching rule, then a transfer match (company draws are income; moves to savings, investment or loan accounts are saving or debt; other moves between the family's own accounts are internal).

## Path parameters

- `id` string, uuid, required

## Query parameters

- `from` string, date
- `to` string, date

## Response `200`

Success

- object
  - `from` string, date
  - `to` string, date
  - `totals` object
    - `inCents` integer
    - `spentCents` integer
    - `taxCents` integer
    - `savedCents` integer
    - `debtCents` integer
    - `toCompaniesCents` integer
    - `movedToBooksCents` integer
    - `internalTransfersCents` integer
    - `leftOverCents` integer
  - `sources` object[]
    - `label` string
    - `cents` integer
    - `source` 'category' | 'company' | 'other'
  - `outflows` object[]
    - `label` string
    - `cents` integer
    - `flow` 'spending' | 'tax' | 'saving' | 'debt' | 'company' | 'moved'
  - `uncategorizedCount` integer
  - `pendingCount` integer
  - `personalAccountCount` integer

## Other responses

- `403`: Firm staff or required permission missing
- `404`: Record not found or not accessible
- `409`: Archived family, last-member removal, identity conflict, already-linked member, explicit owner selection required, or redundant administrator assignment

---

[API](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api.md) · [All operations](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/revisions/9a8269f0a586?raw)
