Money Tracker-Expense & Budget 图标

魔法记账个人账本与团队账本数据 API

Horoscope365 · 银行 4.8 ★

Money Tracker-Expense & Budget 是 Horoscope365 的免费个人理财应用(包名 com.freeman.moneymanager,中文产品名「魔法记账」)。家庭与小团队登记收入、支出与账户间转账,附小票照片,设置每月总预算与分类预算,维护多本账——个人、团队、生意、项目与 AA 分摊——并把两个账号合并进同一家庭视图,按周期自动写入房租和工资,再按默认币种换算外币金额。Android 可以把其他应用的支付通知变成待确认流水;会员解锁语音与小票识别、CSV/Excel/PDF/JSON 账单导入、对话助手,以及「设置 → API」下的开发者令牌。Google Play 约 500 万次安装、约 33 万条评价、4.8 星,含广告与年费内购;同一产品在 App Store(id 6444122615)与 RuStore 上架。它和 Wallet、Spendee 等记账应用同场,面向希望把现金、卡片与共享账本放进同一本账、而不是只用银行自家 App 的用户。

个人账本流水把 amount 存在账本默认币种下,分类键为 income_expenditure_category_id;口袋实时余额是带快照时间 amount_time 的 currency_amount。共享账本用 cashbook_id 寻址,外币入账先读 user_default_currency_code 再写 currency_code。家庭损益机器人、共享账本运营台和差旅报销工具吃这些字段;openData Studio 把它们变成可调用的开放数据。

应用截图

  • Money Tracker-Expense & Budget 应用截图 1
  • Money Tracker-Expense & Budget 应用截图 2
  • Money Tracker-Expense & Budget 应用截图 3
  • Money Tracker-Expense & Budget 应用截图 4
  • Money Tracker-Expense & Budget 应用截图 5
  • Money Tracker-Expense & Budget 应用截图 6

API 端点一览

以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。

  • 读取个人账本流水

    POST /v1/ledger/entries/search openfinance

    列出当前用户个人账本流水。默认按 server_update_time(秒)倒序最多 50 条;传入 start_date/end_date/offset/type/category_id/account_id 进入查询模式,按 date_time(毫秒)过滤并返回 meta。type 1 收入 2 支出;省略 type 时可能混入转账(3)、余额调整(4) 与 AA 记录(5/6)。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • id
    • user_id
    • type
    • income_expenditure_category_id
    • from_account_id
    • to_account_id
    • date_time
    • year
    • month
    • day
    • amount
    • remark
    • add_time
    • update_time
    • server_add_time
    • server_update_time
    • is_server_delete
    • meta.total
    • meta.has_more
    POST /v1/ledger/entries/search HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN&start_date=2026-01-01&end_date=2026-01-31&limit=500&offset=0&type=2
    {
      "status": "ok",
      "data": [
        {
          "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "user_id": 12345,
          "type": 2,
          "income_expenditure_category_id": "1f7cca17-c34f-4fe2-9f63-01fa494ef008",
          "from_account_id": "",
          "to_account_id": "",
          "date_time": 1737475200000,
          "year": 2026,
          "month": 1,
          "day": 21,
          "amount": 35.5,
          "remark": "Lunch",
          "add_time": 1737500000000,
          "update_time": 1737500000000,
          "server_add_time": 1737500000,
          "server_update_time": 1737500000,
          "is_server_delete": 0
        }
      ],
      "meta": {
        "mode": "query",
        "total": 128,
        "limit": 500,
        "offset": 0,
        "has_more": false,
        "start_date": "2026-01-01",
        "end_date": "2026-01-31"
      }
    }
  • 写入个人账本流水

    POST /v1/ledger/entries/create openfinance

    向个人账本写入一笔收入(type=1)或支出(type=2)。amount 为入账币种金额;可选 currency_code(取自货币列表的 ISO 4217)按用户默认币种换算。不能创建转账、余额调整或 AA 记录。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • id
    • user_id
    • type
    • amount
    • category_id
    • account_id
    • to_account_id
    • date
    • date_time
    • year
    • month
    • day
    • remark
    • currency_code
    • add_time
    • server_add_time
    POST /v1/ledger/entries/create HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN&type=2&amount=35.50&category_id=1f7cca17-c34f-4fe2-9f63-01fa494ef008&date=2026-01-21&remark=Lunch
    {
      "status": "ok",
      "data": {
        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "user_id": 12345,
        "type": 2,
        "to_account_id": "",
        "date_time": 1737475200000,
        "year": 2026,
        "month": 1,
        "day": 21,
        "amount": 35.5,
        "remark": "Lunch",
        "add_time": 1737500000000,
        "update_time": 1737500000000,
        "server_add_time": 1737500000,
        "server_update_time": 1737500000,
        "is_server_delete": 0,
        "category_id": "1f7cca17-c34f-4fe2-9f63-01fa494ef008",
        "account_id": ""
      }
    }
  • 读取个人分类

    POST /v1/ledger/categories/list opendata

    返回个人收入(type=1)与支出(type=2)分类,含系统默认项。title 常为 i18n 键(如 category_food)而非本地化文案;写入/筛选流水请用 id。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • id
    • title
    • type
    POST /v1/ledger/categories/list HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN
    {
      "status": "ok",
      "data": [
        {
          "id": "1f7cca17-c34f-4fe2-9f63-01fa494ef008",
          "title": "category_food",
          "type": 2
        },
        {
          "id": "c9e2b1aa-1111-4aaa-8bbb-0123456789ab",
          "title": "category_salary",
          "type": 1
        }
      ]
    }
  • 读取个人账户余额

    POST /v1/ledger/wallets/list openbanking

    列出个人现金、银行卡、虚拟、投资与债务账户。currency_amount 为实时余额(快照加上 amount_time 之后的流水,公式与 App 一致);响应里的 amount_time 为当前毫秒时间,不会写回。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • id
    • name
    • currency_id
    • currency_code
    • currency_amount
    • amount_time
    POST /v1/ledger/wallets/list HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN
    {
      "status": "ok",
      "data": [
        {
          "id": "acc-uuid-example",
          "name": "Cash",
          "currency_id": "cur-uuid",
          "currency_code": "CNY",
          "currency_amount": 1234.56,
          "amount_time": 1737500000000
        }
      ]
    }
  • 列出已加入账本

    POST /v1/books/list opendata

    返回当前用户已加入的共享账本(家庭、团队、生意、项目、AA)。后续所有账本类调用都需要这里的 cashbook_id。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • id
    • name
    POST /v1/books/list HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN
    {
      "status": "ok",
      "data": [
        {
          "id": "1001",
          "name": "Family"
        },
        {
          "id": "1002",
          "name": "Trip AA"
        }
      ]
    }
  • 读取共享账本流水

    POST /v1/books/entries/search openfinance

    与个人流水查询相同的语义,限定在用户所属的 cashbook_id。省略 type 时可能混入 AA 分摊支出(5) 与 AA 结算(6),其 from_account_id/to_account_id 可能是成员 id。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • cashbook_id
    • id
    • user_id
    • type
    • income_expenditure_category_id
    • from_account_id
    • to_account_id
    • date_time
    • amount
    • remark
    • server_update_time
    • is_server_delete
    • meta.total
    • meta.has_more
    POST /v1/books/entries/search HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN&cashbook_id=1001&start_date=2026-01-01&end_date=2026-03-31&limit=500&offset=0
    {
      "status": "ok",
      "data": [
        {
          "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "user_id": 12345,
          "type": 2,
          "income_expenditure_category_id": "1f7cca17-c34f-4fe2-9f63-01fa494ef008",
          "from_account_id": "",
          "to_account_id": "",
          "date_time": 1737475200000,
          "year": 2026,
          "month": 1,
          "day": 21,
          "amount": 35.5,
          "remark": "Lunch",
          "add_time": 1737500000000,
          "update_time": 1737500000000,
          "server_add_time": 1737500000,
          "server_update_time": 1737500000,
          "is_server_delete": 0
        }
      ],
      "meta": {
        "mode": "query",
        "total": 42,
        "limit": 500,
        "offset": 0,
        "has_more": false,
        "start_date": "2026-01-01",
        "end_date": "2026-03-31"
      }
    }
  • 写入共享账本流水

    POST /v1/books/entries/create openfinance

    向用户所属共享账本写入一笔收入或支出。cashbook_id 不在用户已加入账本列表中时返回非账本成员错误。可选 currency_code 按账本默认币种换算。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • cashbook_id
    • id
    • user_id
    • type
    • amount
    • category_id
    • account_id
    • date
    • currency_code
    • date_time
    • remark
    • server_add_time
    POST /v1/books/entries/create HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN&cashbook_id=1001&type=2&amount=120.00&category_id=372f1424-2945-48d4-bf2c-15ede07a725b&date=2026-01-15
    {
      "status": "ok",
      "data": {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "user_id": 12345,
        "type": 2,
        "amount": 120.0,
        "category_id": "372f1424-2945-48d4-bf2c-15ede07a725b",
        "account_id": "",
        "date_time": 1736899200000,
        "year": 2026,
        "month": 1,
        "day": 15,
        "remark": "",
        "server_add_time": 1737500000,
        "server_update_time": 1737500000,
        "is_server_delete": 0
      }
    }
  • 读取共享账本分类

    POST /v1/books/categories/list opendata

    返回某一共享账本的收支分类。title 可能是 i18n 键;写入流水时把 id 作为 category_id。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • id
    • title
    • type
    POST /v1/books/categories/list HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN&cashbook_id=1001
    {
      "status": "ok",
      "data": [
        {
          "id": "372f1424-2945-48d4-bf2c-15ede07a725b",
          "title": "category_shopping",
          "type": 2
        }
      ]
    }
  • 读取共享账本账户余额

    POST /v1/books/wallets/list openbanking

    列出某一共享账本内的账户,供写入共享账本流水时的可选 account_id。currency_amount 仅为该账本内的实时余额;amount_time 为当前毫秒时间,不落库。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • id
    • name
    • currency_id
    • currency_code
    • currency_amount
    • amount_time
    POST /v1/books/wallets/list HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN&cashbook_id=1001
    {
      "status": "ok",
      "data": [
        {
          "id": "acc-cashbook-uuid",
          "name": "Team wallet",
          "currency_id": "cur-uuid",
          "currency_code": "CNY",
          "currency_amount": 860.0,
          "amount_time": 1737500000000
        }
      ]
    }
  • 读取支持的货币

    POST /v1/currencies/list opendata

    返回账本支持的全部 ISO 4217 货币。写入流水时传 code 作为 currency_code,不要传货币表 UUID。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • code
    • currency_name
    • display_symbol
    POST /v1/currencies/list HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN
    {
      "status": "ok",
      "data": [
        {
          "code": "CNY",
          "currency_name": "Chinese Yuan",
          "display_symbol": "¥"
        },
        {
          "code": "USD",
          "currency_name": "US Dollar",
          "display_symbol": "$"
        },
        {
          "code": "EUR",
          "currency_name": "Euro",
          "display_symbol": "€"
        }
      ]
    }
  • 读取默认币种

    POST /v1/currencies/defaults openfinance

    读取用户默认币种;传入 cashbook_id 时同时返回该账本默认币种。写入流水时 amount 存成账本默认币;若需要换算但默认币未配置则请求失败。

    认证方式: 从 App「设置 → API」复制会员 API token(需登录且开通年费会员),以 application/x-www-form-urlencoded 表单字段 token 传递,不要使用 Authorization 头。普通的应用内登录会话不被接受。重新生成后旧 token 立即失效。

    • user_default_currency_id
    • user_default_currency_code
    • cashbook_default_currency_id
    • cashbook_default_currency_code
    POST /v1/currencies/defaults HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    token=YOUR_API_TOKEN&cashbook_id=1001
    {
      "status": "ok",
      "data": {
        "user_default_currency_id": "uuid-or-null",
        "user_default_currency_code": "CNY",
        "cashbook_default_currency_id": "uuid-or-null",
        "cashbook_default_currency_code": "USD"
      }
    }

数据类别

  • 流水
  • 账户
  • 余额
  • 分类
  • 账本
  • 货币
  • 默认币种

数据使用场景与案例

  • 家庭月度损益

    预算机器人按 start_date/end_date、limit=500 分页调用个人流水查询(POST /v1/ledger/entries/search),只对 type 为 1 或 2 的 amount 求和,并按 income_expenditure_category_id 分组,从而把转账(3) 与余额调整(4,amount 恒为 0) 排除在损益之外。

  • 共享账本运营台

    家庭或店铺集成先 POST /v1/books/list,再用该 cashbook_id 与 POST /v1/books/categories/list 的 category_id 调用 POST /v1/books/entries/create 记账;持有人不是成员时请求失败。

  • 净资产快照

    财富看板读取 POST /v1/ledger/wallets/list 与 POST /v1/books/wallets/list,把 currency_amount 当作实时口袋余额(快照加上 amount_time 之后的流水),与设备上账户视图一致,而不是用首页流水结余。

  • 外币入账

    差旅报销工具从 POST /v1/currencies/defaults 读取 user_default_currency_code(及 cashbook_default_currency_code),用 POST /v1/currencies/list 核对 ISO 代码,再写入 amount 与 currency_code,由服务端存成账本默认币金额。

常见问题

魔法记账的开发者 API 如何鉴权?

会员在「设置 → API」复制长期 token,每次 POST 都以 application/x-www-form-urlencoded 表单字段 token 传递。普通的应用内登录会话不被接受。在 App 内重新生成后旧 token 立即失效。同一 IP 每小时最多 1000 次。

API 能创建转账或 AA 分摊吗?

不能。个人账本与共享账本的写入流水接口都只接受 type 1(收入)或 2(支出)。若流水是在 App 里创建的,流水查询接口仍可能返回 type 3(转账)、4(账户余额调整,amount 恒为 0,应读 account_currency_amount)、5(AA 分摊支出)和 6(AA 结算)。

个人账本和共享账本有何区别?

个人账本接口(流水查询、写入流水、分类列表、账户列表)覆盖当前登录用户自己的账,不要传 cashbook_id。家庭/团队/生意/项目/AA 共享账本先调用账本列表,再走必须带 cashbook_id 的账本类接口。两人数据合并展示的「家庭共享」与多人共维同一账本不是一回事。

实时账户余额在哪些字段?

个人与共享账本的账户列表返回的 currency_amount 是 currency_code 下的实时余额,公式与 App 一致(快照加上 amount_time 之后的流水)。响应里的 amount_time 为当前毫秒时间,不落库。首页的月余额/总余额是流水结余,不是这套账户汇总。

与 Money Tracker-Expense & Budget 相似的应用

  • Wallet: Budget Expense Tracker — BudgetBakers 的 Wallet 是个人与家庭理财应用,把支出记录、预算规划和银行同步放在同一个 App 里。
  • Spendee — Spendee 是理财应用,可记录现金、银行账户、电子钱包和加密钱包,设置分类预算,并为情侣、家庭和室友提供共享钱包。
  • Money Manager Expense & Budget — Realbyte 的 Money Manager Expense & Budget 是个人理财应用,用于记录支出、按分类设置月度预算、保存收据照片,并查看周度和月度汇总。
  • AndroMoney — AndroMoney 是覆盖手机与网页的个人理财工具,可记录日常支出、按分类设置月度预算并在超支时提醒,同时支持多账户与多币种。
  • YNAB — YNAB(You Need a Budget)是基于信封预算法的在线个人预算程序,可通过网页或手机应用使用。
  • Goodbudget — Goodbudget 是覆盖网页、Android 和 iPhone 的家庭预算工具,用虚拟信封法让家庭一起记账、储蓄并共享预算。
  • Toshl Finance — Toshl Finance 是覆盖 Android、iOS 和网页的个人理财应用,可记录支出、整理账单与预算,并能连接金融账户或导入文件。
  • PocketGuard — PocketGuard 是理财应用,通过关联账户跟踪支出、生成个性化预算,并显示支付账单、还债和储蓄之后还剩多少可花。

相关主题

  • 魔法记账 API
  • Money Tracker API
  • 记账流水
  • 账本
  • currency_amount
  • income_expenditure_category_id
  • Horoscope365
  • 开放金融

需要集成这个 App 的数据 API?

我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。

  • 每个项目均签 NDA 与 SOW
  • 3–7 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价