ClevMoney 家庭账本的 Drive 备份 API
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 把这层接口变成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
查找 ClevMoney 备份文件夹
GET
/v1/backups/foldersopendata按名称(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/foldersopendata查找不到时在云盘根目录创建名为 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/uploadopenfinance把打包后的账本转储以 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/filesopendata列出 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}/plansopendata加载高级会员订阅页展示的当前套餐及其 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 天交付
- 验收通过后才付款
- 仅在授权范围内作业