{
  "ok": true,
  "currency": "TESTPAYSAN",
  "timezone": "Europe/Zurich",
  "generated_at": "2026-08-19T16:49+02:00",
  "generated_at_human": "2026-08-19 16:49 CEST",
  "generated_at_unix": 1787150945,
  "source": "host collect_bank_stats.py stage TESTPAYSAN shared",
  "bank_url": "http://127.0.0.1:9032",
  "scan": {
    "tx_page": 500,
    "max_tx_pages": 0,
    "accounts_delta": -10000,
    "skip_users": [
      "exchange"
    ],
    "accounts_listed": 873,
    "accounts_scanned_ok": 70,
    "accounts_empty_tx": 802,
    "accounts_scan_fail": 0,
    "accounts_scanned": 872,
    "note": "all accounts except skip_users; full tx pagination; empty includes HTTP 204"
  },
  "bank_accounts": {
    "total": 873,
    "users": 871,
    "with_withdraws": 62
  },
  "wallets": {
    "unique_reserves": 122,
    "note": "unique reserve pubs from Taler withdrawals (one per wallet withdraw)"
  },
  "balance_explorer": "TESTPAYSAN:30.00954297",
  "balance_explorer_alt": "TESTPAYSAN:30.00954297",
  "balance_explorer_full": "TESTPAYSAN:30.00954297",
  "flow": {
    "incoming": {
      "label": "Incoming bank credits",
      "count": 183,
      "amount": "TESTPAYSAN:6626.09",
      "amount_alt": "TESTPAYSAN:6626.09",
      "amount_full": "TESTPAYSAN:6626.09",
      "value": 6626.09,
      "value_str": "6626.09"
    },
    "withdraw": {
      "label": "Taler withdrawals to wallets",
      "count": 122,
      "amount": "TESTPAYSAN:3920.09045703",
      "amount_alt": "TESTPAYSAN:3920.09045703",
      "amount_full": "TESTPAYSAN:3920.09045703",
      "value": 3920.09045703,
      "value_str": "3920.09045703"
    },
    "other_out": {
      "label": "Other debits (non-withdraw)",
      "amount": "TESTPAYSAN:4989.9",
      "amount_alt": "TESTPAYSAN:4989.9",
      "amount_full": "TESTPAYSAN:4989.9",
      "value": 4989.9,
      "value_str": "4989.9"
    },
    "total_in": "TESTPAYSAN:6626.09",
    "total_in_alt": "TESTPAYSAN:6626.09",
    "total_in_value": 6626.09,
    "total_out": "TESTPAYSAN:8909.99045703",
    "total_out_alt": "TESTPAYSAN:8909.99045703",
    "total_out_value": 8909.99045703,
    "note": "incoming=credits; withdraw=Taler withdrawal debits; skip_users excluded (default exchange)",
    "total_in_full": "TESTPAYSAN:6626.09",
    "total_out_full": "TESTPAYSAN:8909.99045703"
  },
  "withdraws": {
    "count": 122,
    "total_amount": "TESTPAYSAN:3920.09045703",
    "total_amount_alt": "TESTPAYSAN:3920.09045703",
    "total_amount_full": "TESTPAYSAN:3920.09045703",
    "total_value": 3920.09045703,
    "total_value_str": "3920.09045703",
    "last_amount": "TESTPAYSAN:50",
    "last_amount_alt": "TESTPAYSAN:50",
    "last_at": "2026-07-26 11:55 CEST",
    "last_at_iso": "2026-07-26T11:55+02:00",
    "last_at_unix": 1785059747,
    "last_subject": "Taler withdrawal 11E3GYNX1FBARF59G9YH939GSBZN034GXV71E9BY04WNR5RZP9D0",
    "last_24h": {
      "count": 0,
      "amount": "TESTPAYSAN:0",
      "amount_alt": "TESTPAYSAN:0",
      "amount_full": "TESTPAYSAN:0",
      "value": 0.0,
      "value_str": "0"
    },
    "last_7d": {
      "count": 0,
      "amount": "TESTPAYSAN:0",
      "amount_alt": "TESTPAYSAN:0",
      "amount_full": "TESTPAYSAN:0",
      "value": 0.0,
      "value_str": "0"
    }
  },
  "recent_withdraws": [
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:50",
      "amount_alt": "TESTPAYSAN:50",
      "amount_full": "TESTPAYSAN:50",
      "at": "2026-07-26 11:55 CEST",
      "at_iso": "2026-07-26T11:55+02:00",
      "at_unix": 1785059747,
      "account": "mon59742",
      "reserve": "11E3GYNX1FBARF59G9YH939GSBZN034GXV71E9BY04WNR5RZP9D0",
      "value": 50.0,
      "value_str": "50"
    },
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:20",
      "amount_alt": "TESTPAYSAN:20",
      "amount_full": "TESTPAYSAN:20",
      "at": "2026-07-26 11:55 CEST",
      "at_iso": "2026-07-26T11:55+02:00",
      "at_unix": 1785059745,
      "account": "mon59742",
      "reserve": "12P6X0Q44YH5NS7NA6QD440QHJ04E6ZMMD5KAZG3GXRWHQ54XE5G",
      "value": 20.0,
      "value_str": "20"
    },
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:50",
      "amount_alt": "TESTPAYSAN:50",
      "amount_full": "TESTPAYSAN:50",
      "at": "2026-07-26 07:55 CEST",
      "at_iso": "2026-07-26T07:55+02:00",
      "at_unix": 1785045346,
      "account": "mon45340",
      "reserve": "P022TES8P9KAJT5KJRV4D33NPPQYDXKP73578F3RPTJQFH6FB7W0",
      "value": 50.0,
      "value_str": "50"
    },
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:20",
      "amount_alt": "TESTPAYSAN:20",
      "amount_full": "TESTPAYSAN:20",
      "at": "2026-07-26 07:55 CEST",
      "at_iso": "2026-07-26T07:55+02:00",
      "at_unix": 1785045344,
      "account": "mon45340",
      "reserve": "NVVATVNB3HGMCSZ520M9S9HY05DT9DGCQ1JKNYR8EGJYF11W19YG",
      "value": 20.0,
      "value_str": "20"
    },
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:50",
      "amount_alt": "TESTPAYSAN:50",
      "amount_full": "TESTPAYSAN:50",
      "at": "2026-07-26 03:55 CEST",
      "at_iso": "2026-07-26T03:55+02:00",
      "at_unix": 1785030940,
      "account": "mon30934",
      "reserve": "J6HMW106N3QKTM464RBNF4S4344MKP8G5G2QRWC4SSCYKX7W49P0",
      "value": 50.0,
      "value_str": "50"
    },
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:20",
      "amount_alt": "TESTPAYSAN:20",
      "amount_full": "TESTPAYSAN:20",
      "at": "2026-07-26 03:55 CEST",
      "at_iso": "2026-07-26T03:55+02:00",
      "at_unix": 1785030938,
      "account": "mon30934",
      "reserve": "F5V0NXD00N16KM18599VFXJNJXX2M0XJYYXWSGWNS38D2Q8D88PG",
      "value": 20.0,
      "value_str": "20"
    },
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:50",
      "amount_alt": "TESTPAYSAN:50",
      "amount_full": "TESTPAYSAN:50",
      "at": "2026-07-25 23:55 CEST",
      "at_iso": "2026-07-25T23:55+02:00",
      "at_unix": 1785016539,
      "account": "mon16533",
      "reserve": "HHH2HKWAFPB53FSHQZCFD68D6BD5P0K9T3RSCGHDA4WMASFS38RG",
      "value": 50.0,
      "value_str": "50"
    },
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:20",
      "amount_alt": "TESTPAYSAN:20",
      "amount_full": "TESTPAYSAN:20",
      "at": "2026-07-25 23:55 CEST",
      "at_iso": "2026-07-25T23:55+02:00",
      "at_unix": 1785016537,
      "account": "mon16533",
      "reserve": "E8V9RZ13A6P5CM8FRZCPTEMJTKCCZTS6XRWQSYPZHH1ZMEZ6MM8G",
      "value": 20.0,
      "value_str": "20"
    },
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:50",
      "amount_alt": "TESTPAYSAN:50",
      "amount_full": "TESTPAYSAN:50",
      "at": "2026-07-25 19:55 CEST",
      "at_iso": "2026-07-25T19:55+02:00",
      "at_unix": 1785002136,
      "account": "mon02129",
      "reserve": "SYSVB2JTYR8994AXJ0MRE5JNBCA5G4HXC4E8Y1GB5JJH0SAB4W70",
      "value": 50.0,
      "value_str": "50"
    },
    {
      "kind": "withdraw",
      "amount": "TESTPAYSAN:20",
      "amount_alt": "TESTPAYSAN:20",
      "amount_full": "TESTPAYSAN:20",
      "at": "2026-07-25 19:55 CEST",
      "at_iso": "2026-07-25T19:55+02:00",
      "at_unix": 1785002133,
      "account": "mon02129",
      "reserve": "Q6CC5AYY92YAZKS7PN2AD32HAHNMVAFEKHCQT7PZNXAR25A6XQ4G",
      "value": 20.0,
      "value_str": "20"
    }
  ],
  "recent_incoming": [
    {
      "kind": "incoming",
      "amount": "TESTPAYSAN:17",
      "amount_alt": "TESTPAYSAN:17",
      "amount_full": "TESTPAYSAN:17",
      "at": "2026-07-26 11:57 CEST",
      "at_iso": "2026-07-26T11:57+02:00",
      "at_unix": 1785059867,
      "account": "fermes-des-collines",
      "value": 17.0,
      "value_str": "17"
    },
    {
      "kind": "incoming",
      "amount": "TESTPAYSAN:4.5",
      "amount_alt": "TESTPAYSAN:4.5",
      "amount_full": "TESTPAYSAN:4.5",
      "at": "2026-07-26 11:57 CEST",
      "at_iso": "2026-07-26T11:57+02:00",
      "at_unix": 1785059867,
      "account": "jardin-du-creux",
      "value": 4.5,
      "value_str": "4.5"
    },
    {
      "kind": "incoming",
      "amount": "TESTPAYSAN:80",
      "amount_alt": "TESTPAYSAN:80",
      "amount_full": "TESTPAYSAN:80",
      "at": "2026-07-26 11:55 CEST",
      "at_iso": "2026-07-26T11:55+02:00",
      "at_unix": 1785059742,
      "account": "mon59742",
      "value": 80.0,
      "value_str": "80"
    },
    {
      "kind": "incoming",
      "amount": "TESTPAYSAN:20.5",
      "amount_alt": "TESTPAYSAN:20.5",
      "amount_full": "TESTPAYSAN:20.5",
      "at": "2026-07-26 07:57 CEST",
      "at_iso": "2026-07-26T07:57+02:00",
      "at_unix": 1785045445,
      "account": "fermes-des-collines",
      "value": 20.5,
      "value_str": "20.5"
    },
    {
      "kind": "incoming",
      "amount": "TESTPAYSAN:5",
      "amount_alt": "TESTPAYSAN:5",
      "amount_full": "TESTPAYSAN:5",
      "at": "2026-07-26 07:57 CEST",
      "at_iso": "2026-07-26T07:57+02:00",
      "at_unix": 1785045445,
      "account": "jardin-du-creux",
      "value": 5.0,
      "value_str": "5"
    }
  ],
  "demo": {
    "uri": null,
    "amount": null,
    "created": null,
    "withdrawal_id": null,
    "status": null,
    "ready": false
  },
  "performance": {
    "config_http": "200",
    "config_ms": 5,
    "integration_http": "200",
    "integration_ms": 4,
    "webui_http": "200",
    "webui_ms": 4,
    "loadavg": "",
    "memory": {
      "container_rss_human": "—",
      "container_rss_label": "—",
      "note": "filled by collect_container_resources.sh (in-container /proc + cgroup)"
    }
  },
  "alt_unit_names": {
    "0": "TESTPAYSAN",
    "-2": "ct"
  }
}
