ClevMoney - Personal Finance 图标

ClevMoney 家庭账本的 Drive 备份 API

Cleveni Inc. · 银行

ClevMoney - Personal Finance 是 Cleveni Inc. 的韩国家庭记账(가계부)应用(包名 com.dencreak.spbook,站点 cleveni.com/clevmoney)。用户登记支出与收入、带额度的现金和卡片账户、按月分类预算、多层支出/收入分类、配合短信自动入账的卡片别名、到期提醒与一键快捷记账;通知监听进程加上短信/彩信权限会把卡片提醒变成确认弹窗,核对商户、金额、时间与卡片月份后再写入。设置里有锁屏、币种、自动分类关键词,可用系统文档选择器备份/恢复 octet-stream 账本,也可备份到 Google Drive 专用文件夹,并支持仅 Wi-Fi 的定时备份。高级会员在 ActivitySubscription 里走 Google Play Billing,由 RevenueCat 承接。客服 [email protected],社区在 cafe.naver.com/clevmoney 与 YouTube @cleveni。姊妹计算器包名为 com.dencreak.dlcalculator。它和其他记账应用同场,面向希望用一本本地韩国家庭账、而不是只用银行自家 App 的用户。

放在名为 ClevMoney 的 Drive 文件夹里的 octet-stream 备份,就是打包后的 SQLite 家庭账本:spendinglist 行带 s_date、s_time、s_where、s_price、s_card、s_cate、s_subcate、s_cardmonth 以及原始短信 s_oraw;earninglist 对应 e_price、e_cate;balacntlist 存账户(ba_title、ba_content、ba_limit、ba_kind),baldatalist 存变动(bd_price);budget 用 b_month 对应 b_cateid 与 b_budget;cardlist 存 d_name、短信匹配码 d_aicode 与模式 d_aistr。每个 Drive 文件用 id、name、createdTime 寻址;自动备份把文件名标记 [attr] 换成 _auto,恢复列表把含 _auto.db 的视为定时转储。

财务与报税工具可从这些文件重建损益和卡片月份账单;短信核对机器人可把 s_oraw 接到 d_aistr;预算监控可把 b_budget 与合计 s_price 比较。openData Studio 把这层接口变成可调用的开放数据。

应用截图

  • ClevMoney - Personal Finance 应用截图 1
  • ClevMoney - Personal Finance 应用截图 2
  • ClevMoney - Personal Finance 应用截图 3
  • ClevMoney - Personal Finance 应用截图 4
  • ClevMoney - Personal Finance 应用截图 5
  • ClevMoney - Personal Finance 应用截图 6
  • ClevMoney - Personal Finance 应用截图 7
  • ClevMoney - Personal Finance 应用截图 8

API 端点一览

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

  • 查找 ClevMoney 备份文件夹

    GET /v1/backups/folders opendata

    按名称(ClevMoney,未被移入回收站)在云盘根目录查找应用的备份文件夹。取第一条匹配的 id、name、createdTime 作为后续上传与列表的父目录。

    认证方式: 用户自己云盘账号的 OAuth 2.0 访问令牌,权限仅限应用自己创建的文件,以 Authorization: Bearer 发送。设备需有可用的 Google Play 服务。

    • name
    • parent
    • trashed
    • kind
    • incompleteSearch
    • files
    • id
    • mimeType
    • createdTime
    • nextPageToken
    GET /v1/backups/folders?name=ClevMoney&parent=root&trashed=false HTTP/1.1
    Authorization: Bearer <access_token>
    {
      "kind": "backup#folderList",
      "incompleteSearch": false,
      "files": [
        {
          "id": "1AbCdefGhijKlmnoPqrStuVw",
          "name": "ClevMoney",
          "mimeType": "application/vnd.google-apps.folder",
          "createdTime": "2024-03-12T08:14:22.000Z"
        }
      ]
    }
  • 创建 ClevMoney 备份文件夹

    POST /v1/backups/folders opendata

    查找不到时在云盘根目录创建名为 ClevMoney 的文件夹。元数据包含名称、文件夹 mime 类型与根目录父级;返回的 id、name、createdTime 成为之后所有备份使用的文件夹句柄。

    认证方式: 用户自己云盘账号的 OAuth 2.0 访问令牌,权限仅限应用自己创建的文件,以 Authorization: Bearer 发送。设备需有可用的 Google Play 服务。

    • name
    • mimeType
    • parents
    • id
    • createdTime
    POST /v1/backups/folders HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json; charset=UTF-8
    
    {
      "name": "ClevMoney",
      "mimeType": "application/vnd.google-apps.folder",
      "parents": ["root"]
    }
    {
      "id": "1AbCdefGhijKlmnoPqrStuVw",
      "name": "ClevMoney",
      "mimeType": "application/vnd.google-apps.folder",
      "createdTime": "2024-03-12T08:14:22.000Z",
      "parents": ["root"]
    }
  • 上传账本备份

    POST /v1/backups/files/upload openfinance

    把打包后的账本转储以 application/octet-stream 上传到 ClevMoney 文件夹。文件名由年、月、日、时间标记拼出,定时备份加 _auto 后缀。正文是 SQLite 账本(spendinglist 的 s_price/s_where/s_oraw、earninglist 的 e_price、balacntlist 的 ba_content、budget 的 b_budget、cardlist 的 d_aicode/d_aistr)。响应的 id、name、createdTime 标识这份已存储的副本。

    认证方式: 用户自己云盘账号的 OAuth 2.0 访问令牌,权限仅限应用自己创建的文件,以 Authorization: Bearer 发送。设备需有可用的 Google Play 服务。

    • name
    • mimeType
    • parents
    • id
    • createdTime
    • uploadType
    • s_date
    • s_time
    • s_where
    • s_price
    • s_card
    • s_cate
    • s_subcate
    • s_cardmonth
    • s_oraw
    • e_price
    • e_cate
    • ba_content
    • ba_limit
    • bd_price
    • b_budget
    • d_aicode
    • d_aistr
    POST /v1/backups/files/upload?uploadType=multipart HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: multipart/related; boundary=foo_bar_baz
    
    --foo_bar_baz
    Content-Type: application/json; charset=UTF-8
    
    {
      "name": "260320_143015_auto.db",
      "mimeType": "application/octet-stream",
      "parents": ["1AbCdefGhijKlmnoPqrStuVw"]
    }
    --foo_bar_baz
    Content-Type: application/octet-stream
    
    <packed SQLite ledger: spendinglist, earninglist, balacntlist, baldatalist, budget, cardlist, catelist, ecatelist, grouplist, shortcutlist, lastdatelist, favoptionlist, preference>
    --foo_bar_baz--
    {
      "id": "1XyZbackupFileId0001",
      "name": "260320_143015_auto.db",
      "mimeType": "application/octet-stream",
      "createdTime": "2026-03-20T05:30:16.000Z",
      "parents": ["1AbCdefGhijKlmnoPqrStuVw"]
    }
  • 列出账本备份文件

    GET /v1/backups/files opendata

    列出 ClevMoney 文件夹内的 octet-stream 备份,只返回 id、name、createdTime。恢复界面把以 _auto.db 结尾的文件名视为定时备份,由备份周期、仅 Wi-Fi 与上次运行时间等设置驱动。

    认证方式: 用户自己云盘账号的 OAuth 2.0 访问令牌,权限仅限应用自己创建的文件,以 Authorization: Bearer 发送。设备需有可用的 Google Play 服务。

    • folder
    • mimeType
    • trashed
    • fields
    • files
    • id
    • name
    • createdTime
    GET /v1/backups/files?folder=1AbCdefGhijKlmnoPqrStuVw&mimeType=application/octet-stream&trashed=false&fields=files(id,name,createdTime) HTTP/1.1
    Authorization: Bearer <access_token>
    {
      "kind": "backup#fileList",
      "files": [
        {
          "id": "1XyZbackupFileId0001",
          "name": "260320_143015_auto.db",
          "createdTime": "2026-03-20T05:30:16.000Z"
        },
        {
          "id": "1XyZbackupFileId0000",
          "name": "260319_090000.db",
          "createdTime": "2026-03-19T00:00:01.000Z"
        }
      ]
    }
  • 删除账本备份文件

    DELETE /v1/backups/files/{fileId} opendata

    定时上传成功后(或在恢复选择器中)按 id 删除一份备份文件,返回空的 204 响应。fileId 来自列表接口的 id 字段。

    认证方式: 用户自己云盘账号的 OAuth 2.0 访问令牌,权限仅限应用自己创建的文件,以 Authorization: Bearer 发送。设备需有可用的 Google Play 服务。

    • fileId
    DELETE /v1/backups/files/1XyZbackupFileId0000 HTTP/1.1
    Authorization: Bearer <access_token>
  • 读取高级会员状态

    GET /v1/memberships/{appUserId} opendata

    读取高级会员页对应的 Google Play Billing 权益是否有效。subscriber 含 original_app_user_id、entitlements、subscriptions(expires_date、product_identifier、store、period_type、is_sandbox)与 management_url。

    认证方式: 订阅服务的公开 SDK 密钥,由应用内购买库以 Authorization: Bearer 发送。路径参数为匿名或已识别的应用用户 id。

    • request_date
    • subscriber
    • original_app_user_id
    • first_seen
    • management_url
    • original_purchase_date
    • entitlements
    • subscriptions
    • non_subscriptions
    • expires_date
    • product_identifier
    • purchase_date
    • store
    • period_type
    • is_sandbox
    • unsubscribe_detected_at
    • billing_issues_detected_at
    • appUserId
    GET /v1/memberships/anon-ada0001 HTTP/1.1
    Authorization: Bearer <sdk_public_key>
    Content-Type: application/json
    {
      "request_date": "2026-03-20T05:31:00Z",
      "subscriber": {
        "original_app_user_id": "anon-ada0001",
        "first_seen": "2024-01-08T11:02:00Z",
        "management_url": "https://play.google.com/store/account/subscriptions",
        "original_purchase_date": "2024-06-01T09:00:00Z",
        "entitlements": {
          "premium": {
            "expires_date": "2026-04-20T05:31:00Z",
            "product_identifier": "premium_monthly",
            "purchase_date": "2026-03-20T05:31:00Z"
          }
        },
        "subscriptions": {
          "premium_monthly": {
            "expires_date": "2026-04-20T05:31:00Z",
            "original_purchase_date": "2024-06-01T09:00:00Z",
            "purchase_date": "2026-03-20T05:31:00Z",
            "store": "play_store",
            "period_type": "normal",
            "is_sandbox": false,
            "unsubscribe_detected_at": null,
            "billing_issues_detected_at": null
          }
        },
        "non_subscriptions": {}
      }
    }
  • 读取高级会员套餐

    GET /v1/memberships/{appUserId}/plans opendata

    加载高级会员订阅页展示的当前套餐及其 packages。字段为 current_offering_id、offerings、packages、product_identifier。

    认证方式: 订阅服务的公开 SDK 密钥,由应用内购买库以 Authorization: Bearer 发送。路径参数为匿名或已识别的应用用户 id。

    • current_offering_id
    • offerings
    • packages
    • product_identifier
    • appUserId
    GET /v1/memberships/anon-ada0001/plans HTTP/1.1
    Authorization: Bearer <sdk_public_key>
    Content-Type: application/json
    {
      "current_offering_id": "default",
      "offerings": [
        {
          "identifier": "default",
          "description": "ClevMoney Premium",
          "packages": [
            {
              "identifier": "$rc_monthly",
              "platform_product_identifier": "premium_monthly"
            }
          ]
        }
      ]
    }

数据类别

  • 支出与收入
  • 账户
  • 预算
  • 备份
  • 订阅

数据使用场景与案例

  • 从 Drive 备份重建家庭损益

    税务或家办任务从 ClevMoney 文件夹下载 octet-stream 文件,打开 spendinglist 与 earninglist,按 s_cate、s_cardmonth、e_date 汇总 s_price / e_price,使年报与设备上的账本一致。

  • 把卡片短信对上流水

    卡片运营机器人把 spendinglist.s_oraw 与自动入账字段(whereStr、price、cardId、cardMonth)关联到 cardlist.d_aicode / d_aistr,找出从未被确认写入的提醒。

  • 对照分类预算与实际支出

    现金流监控读取 budget.b_month、b_cateid、b_budget,与同 s_cate 的 s_price 合计比较,在月底前发出超支提醒。

  • 盘点账户与卡片别名

    财富看板列出 balacntlist.ba_title、ba_kind、ba_content、ba_limit 以及 cardlist.d_name,恢复备份后净资产视图仍与家庭账本对齐。

常见问题

ClevMoney 的 Drive 备份里有什么?

设备上 SQLite 账本的 application/octet-stream 转储:spendinglist 与 earninglist(s_price、s_where、s_oraw、e_price),账户 balacntlist(ba_content、ba_limit),变动 baldatalist(bd_price),月度预算,多层 catelist/ecatelist,cardlist 短信模式(d_aicode、d_aistr),快捷方式、提醒与 preference 键值。本地暂存文件名为 clevmoney.tmp。

ClevMoney 如何找到自己的 Drive 文件夹?

它按 mimeType 为 application/vnd.google-apps.folder、父目录 root、trashed 为 false、name 为 ClevMoney 列出文件。若不存在就在根目录创建该文件夹,再把 octet-stream 备份作为子文件上传,列表投影 id、name、createdTime。

ClevMoney 会调用银行接口吗?

没有自有银行主机。卡片提醒来自短信/彩信和通知监听(AutoInput_SMS / AutoInput_Push,content://sms/inbox),确认后写入本地 spendinglist。云端副本落到用户自己的 Drive(scope drive.file);会员状态从 RevenueCat subscriber entitlements 读取。

定时备份如何命名?

文件名模板替换 [yyyy]、[mm]、[dd]、[time];定时备份再把 [attr] 换成 _auto。恢复列表把文件名含 _auto.db 的视为自动备份。偏好 gd_autobackup_cycle、gd_autobackup_wifi、gd_autobackup_lastbackup 控制周期、仅 Wi-Fi 与上次运行时间。

与 ClevMoney - Personal Finance 相似的应用

  • Money Manager Expense & Budget — Money Manager Expense & Budget(편한가계부)是 Realbyte 的个人理财应用,用于登记收支、生成支出报表,并查看日、周、月汇总。
  • Monefy: Money & Budget App — Monefy 是支出记录与家庭预算应用,买东西时随手入账,并整理日常开销。
  • Bank Salad — 뱅크샐러드(Bank Salad)是韩国理财应用,除卡片对比、贷款与消费画像外,还带家庭记账(가계부)功能。
  • Wallet: Budget Expense Tracker — BudgetBakers 的 Wallet 是个人理财应用,用于跟踪支出、连接银行账户并设定自定义预算。
  • AndroMoney — AndroMoney 覆盖 Android、iOS 和网页,用于记录支出并管理预算。
  • Spendee — Spendee 是预算与支出跟踪应用,可同步银行账户、电子钱包和加密钱包,并按分类做预算。
  • Money Lover - Money Manager — Money Lover 是记账与理财应用,用于跟踪支出、收入、账单和负债,并按历史消费设定预算。
  • Cash Book- daily expenses — Cash Book 是简易支出记录与电子现金账本,用于登记每日收支并查看现金流。

相关主题

  • ClevMoney API
  • Cleveni 家庭账本
  • ClevMoney Drive 备份
  • spendinglist s_price
  • earninglist e_price
  • 가계부 백업
  • cardlist d_aicode
  • clevmoney.tmp

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

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

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

获取报价