Money Lover - Money Manager icon

Money Lover Data API: wallets, budgets and linked banks

Finsify · Banking

Money Lover - Money Manager is Finsify's personal-finance app for tracking cash, bank and credit-card spending across multiple wallets. Users can record income and expenses, organize transactions with categories and labels, set repeating budgets, track savings goals, scan receipts and share a family wallet. Linked Wallets connect bank accounts through Finsify, while Google Sheets export and AI-assisted transaction entry support day-to-day bookkeeping. The app serves individual budgeters, households and small teams in Vietnam, the United States, India, Indonesia, Thailand and the Philippines who want a combined cash-and-card ledger rather than a single bank's account view.

Wallet ownership and category-linked spending form a connected personal-finance ledger: account_id links booked rows to a wallet, while balance, account_type, is_shared and owner_id describe its balance and access context. Transaction records add display_date, amount, note, cat_id and original_currency. Budget envelopes connect listWalletUUID and listLabelUUID to startDate, endDate and totalSpent, allowing a household budgeting dashboard to compare spending with each envelope's cap. Savings records pair goal_amount with transaction_amount and end_date for progress reporting.

Linked-bank snapshots carry accountId, balance and currency, with provider countryCode supporting market filtering. Receipt suggestions contribute merchant, displayDate, categoryId and confidence; text-based entry suggestions use walletID, labelName and fn to place a proposed expense in the ledger. With user-authorized account access, bookkeeping tools can reconcile local wallets against linked-bank balances, family-ledger integrations can preserve ownership and permissions, and receipt inboxes can prepare entries for confirmation. openData Studio turns these wallet, budget and transaction structures into callable open data.

Screenshots

  • Money Lover - Money Manager screenshot 1
  • Money Lover - Money Manager screenshot 2
  • Money Lover - Money Manager screenshot 3
  • Money Lover - Money Manager screenshot 4
  • Money Lover - Money Manager screenshot 5
  • Money Lover - Money Manager screenshot 6
  • Money Lover - Money Manager screenshot 7
  • Money Lover - Money Manager screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Pull synced wallets

    POST /v1/household-books/wallets/query openfinance

    Pages the signed-in user's cash, bank and credit wallets after last_update, supplying names, balances and sharing flags for the wallet list.

    Auth: Bearer access token for the signed-in account. Wallet synchronization also includes dataformat, platform, appversion and apiversion headers.

    • uuid
    • name
    • balance
    • account_type
    • icon
    • archived
    • is_shared
    • owner_id
    • metadata
    • exclude_total
    • account_id
    • last_update
    POST /v1/household-books/wallets/query HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "last_update": 0,
      "account_id": "example_wallet_01",
      "skip": 0,
      "limit": 50,
      "av": 4,
      "pl": 1
    }
    {
      "status": true,
      "data": [
        {
          "uuid": "example_wallet_01",
          "name": "Cash",
          "balance": 1250000,
          "account_type": 0,
          "icon": "icon_cash",
          "archived": 0,
          "is_shared": 0,
          "owner_id": "example_owner_01",
          "metadata": "",
          "exclude_total": 0
        }
      ]
    }
  • Pull synced transactions

    POST /v1/household-books/entries/query openfinance

    Pages a wallet's ledger after last_update using skip and limit, including amount, display_date, note, category and original_currency.

    Auth: Bearer access token for the signed-in account.

    • uuid
    • account_id
    • amount
    • display_date
    • note
    • cat_id
    • original_currency
    • exclude_report
    • address
    • latitude
    • longtitude
    • flag
    • remind_date
    • user_sync_id
    • last_update
    • skip
    • limit
    POST /v1/household-books/entries/query HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "last_update": 0,
      "account_id": "example_wallet_01",
      "skip": 0,
      "limit": 100,
      "av": 4,
      "pl": 1
    }
    {
      "status": true,
      "data": [
        {
          "uuid": "example_entry_01",
          "account_id": "example_wallet_01",
          "amount": 45000,
          "display_date": 1737475200000,
          "note": "Lunch",
          "cat_id": 12,
          "original_currency": "VND",
          "exclude_report": 0,
          "address": "District 1, HCMC",
          "latitude": 10.7769,
          "longtitude": 106.7009,
          "flag": 1,
          "remind_date": 0,
          "user_sync_id": "example_owner_01"
        }
      ]
    }
  • Push local transactions

    POST /v1/household-books/entries/submit openfinance

    Submits newly created or edited ledger rows so the same account's other devices receive matching amounts, dates and categories.

    Auth: Bearer access token for the signed-in account.

    • account_id
    • uuid
    • amount
    • display_date
    • note
    • cat_id
    • original_currency
    • exclude_report
    • status
    • message
    POST /v1/household-books/entries/submit HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "account_id": "example_wallet_01",
      "transactions": [
        {
          "uuid": "example_entry_01",
          "amount": 45000,
          "display_date": 1737475200000,
          "note": "Lunch",
          "cat_id": 12,
          "original_currency": "VND",
          "exclude_report": 0
        }
      ]
    }
    {
      "status": true,
      "message": "ok",
      "pushed": 1
    }
  • Pull synced budgets

    POST /v1/spending-envelopes/query opendata

    Retrieves budget envelopes with wallet and label UUID lists, period dates and totalSpent so remaining spending allowance can be calculated.

    Auth: Bearer access token for the signed-in account.

    • uuid
    • name
    • amount
    • startDate
    • endDate
    • curId
    • isRepeat
    • budgetType
    • listWalletUUID
    • listLabelUUID
    • totalSpent
    POST /v1/spending-envelopes/query HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "last_update": 0,
      "skip": 0,
      "limit": 50
    }
    {
      "status": true,
      "data": [
        {
          "uuid": "example_budget_01",
          "name": "Food",
          "amount": 3000000,
          "startDate": "2026-10-01",
          "endDate": "2026-10-31",
          "curId": 1,
          "isRepeat": true,
          "budgetType": 1,
          "listWalletUUID": ["example_wallet_01"],
          "listLabelUUID": ["example_label_food"],
          "totalSpent": 1280000
        }
      ]
    }
  • Create global budget

    POST /v1/spending-envelopes/create opendata

    Creates a budget envelope spanning selected wallets and labels, with a spending cap, period dates and optional repetition.

    Auth: Bearer access token for the signed-in account.

    • status
    • uuid
    • name
    • amount
    • startDate
    • endDate
    • curId
    • isRepeat
    • budgetType
    • listWalletUUID
    • listLabelUUID
    • totalSpent
    POST /v1/spending-envelopes/create HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "name": "Food",
      "amount": 3000000,
      "startDate": "2026-10-01",
      "endDate": "2026-10-31",
      "curId": 1,
      "isRepeat": true,
      "budgetType": 1,
      "listWalletUUID": ["example_wallet_01"],
      "listLabelUUID": ["example_label_food"]
    }
    {
      "status": 200,
      "data": {
        "uuid": "example_budget_01",
        "name": "Food",
        "amount": 3000000,
        "startDate": "2026-10-01",
        "endDate": "2026-10-31",
        "curId": 1,
        "isRepeat": true,
        "budgetType": 1,
        "listWalletUUID": ["example_wallet_01"],
        "listLabelUUID": ["example_label_food"],
        "totalSpent": 0
      }
    }
  • Pull synced categories

    POST /v1/household-books/category-tree/query opendata

    Synchronizes per-wallet income and expense categories, including parent_id hierarchies, icons and meta_data flags.

    Auth: Bearer access token for the signed-in account.

    • uuid
    • cat_id
    • cat_name
    • cat_type
    • cat_img
    • parent_id
    • account_id
    • meta_data
    • flag
    • version
    POST /v1/household-books/category-tree/query HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "last_update": 0,
      "account_id": "example_wallet_01"
    }
    {
      "status": true,
      "data": [
        {
          "uuid": "example_category_food",
          "cat_id": 12,
          "cat_name": "Food",
          "cat_type": 2,
          "cat_img": "icon_food",
          "parent_id": 0,
          "account_id": "example_wallet_01",
          "meta_data": "",
          "flag": 1,
          "version": 3
        }
      ]
    }
  • Pull synced labels

    POST /v1/household-books/label-library/query opendata

    Retrieves the global label library used to organize and map categories across wallets.

    Auth: Bearer access token for the signed-in account.

    • status
    • timestamp
    • uuid
    • name
    • type
    • img
    • parent_id
    • meta_data
    • version
    • account_id
    POST /v1/household-books/label-library/query HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "last_update": 0
    }
    {
      "status": true,
      "timestamp": 1737500000000,
      "data": [
        {
          "uuid": "example_label_food",
          "name": "Food",
          "type": 2,
          "img": "icon_food",
          "parent_id": 0,
          "meta_data": "",
          "version": 1,
          "account_id": 0
        }
      ]
    }
  • Pull savings campaigns

    POST /v1/savings-targets/query opendata

    Synchronizes savings and event campaigns with goal_amount, transaction_amount and end_date for progress tracking.

    Auth: Bearer access token for the signed-in account.

    • uuid
    • name
    • icon
    • type
    • start_amount
    • goal_amount
    • status
    • transaction_amount
    • account_id
    • account_name
    • cur_code
    • end_date
    POST /v1/savings-targets/query HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "last_update": 0
    }
    {
      "status": true,
      "data": [
        {
          "uuid": "example_goal_01",
          "name": "Emergency fund",
          "icon": "icon_saving",
          "type": 1,
          "start_amount": 0,
          "goal_amount": 20000000,
          "status": 1,
          "transaction_amount": 3500000,
          "account_id": "example_wallet_01",
          "account_name": "Cash",
          "cur_code": "VND",
          "end_date": "2026-12-31"
        }
      ]
    }
  • List linked-wallet bank providers

    GET /v1/bank-connections/provider-catalog openbanking

    Lists bank providers available to Linked Wallets, including names, icons and countryCode for market filtering.

    Auth: Bearer access token for the signed-in account.

    • status
    • id
    • name
    • icon
    • countryCode
    GET /v1/bank-connections/provider-catalog HTTP/1.1
    Authorization: Bearer <access_token>
    Accept: application/json
    {
      "status": 200,
      "data": [
        {
          "id": "vcb",
          "name": "Vietcombank",
          "icon": "/illustrations/banks/example-provider.svg",
          "countryCode": "VN"
        }
      ]
    }
  • Create linked-wallet connect URL

    POST /v1/bank-connections/sessions/create openbanking

    Starts a bank-connection session for the selected provider and returns linkUrl for user authorization before retrieving a wallet snapshot.

    Auth: Bearer access token for the signed-in account.

    • status
    • linkUrl
    • providerId
    • callbackUrl
    POST /v1/bank-connections/sessions/create HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "providerId": "vcb",
      "callbackUrl": "<callback_url>"
    }
    {
      "status": 200,
      "data": {
        "linkUrl": "<bank_connect_url>"
      }
    }
  • Read linked-wallet info

    POST /v1/bank-connections/balance-snapshot openbanking

    Retrieves a linked bank account's balance, currency and account metadata after user authorization to initialize a wallet.

    Auth: Bearer access token for the signed-in account.

    • status
    • id
    • name
    • accountId
    • balance
    • currency
    • icon
    • metadata
    POST /v1/bank-connections/balance-snapshot HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "accountId": "example_bank_account_01"
    }
    {
      "status": 200,
      "data": {
        "id": "example_linked_wallet_01",
        "name": "Vietcombank *1234",
        "accountId": "example_bank_account_01",
        "balance": 15230000,
        "currency": "VND",
        "icon": "vcb",
        "metadata": "{\"provider\":\"vcb\"}"
      }
    }
  • AI parse transaction text

    POST /v1/entry-assistance/text/prepare opendata

    Converts free-text spending or a notification snippet into a suggested ledger entry with wallet, label, amount and date for user confirmation.

    Auth: Bearer access token for the signed-in account.

    • status
    • walletID
    • walletName
    • labelID
    • labelName
    • amount
    • date
    • description
    • fn
    • tokenOut
    • tokenIn
    • totalTokens
    • aiModel
    • requestId
    POST /v1/entry-assistance/text/prepare HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "text": "lunch 45k at Circle K yesterday",
      "walletID": "example_wallet_01"
    }
    {
      "status": 200,
      "data": {
        "transactions": [
          {
            "walletID": "example_wallet_01",
            "walletName": "Cash",
            "labelID": "example_label_food",
            "labelName": "Food",
            "amount": 45000,
            "date": "2026-10-22",
            "description": "Circle K lunch",
            "fn": "expense"
          }
        ],
        "metadata": {
          "tokenOut": 80,
          "tokenIn": 24,
          "totalTokens": 104,
          "aiModel": "<illustrative_model>",
          "requestId": "example_request_01"
        }
      }
    }
  • Share wallet with family member

    POST /v1/household-books/members/invite opendata

    Invites another account to a family wallet with a selected permission and returns sharing flags, ownership and pending invitations.

    Auth: Bearer access token for the signed-in account.

    • account_id
    • email
    • permission
    • is_shared
    • owner_id
    • pending
    • status
    POST /v1/household-books/members/invite HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "account_id": "example_wallet_01",
      "email": "<invitee_email>",
      "permission": "edit"
    }
    {
      "status": true,
      "data": {
        "account_id": "example_wallet_01",
        "is_shared": 1,
        "owner_id": "example_owner_01",
        "pending": [
          {
            "email": "<invitee_email>",
            "permission": "edit"
          }
        ]
      }
    }
  • Upload receipt for OCR suggest

    POST /v1/entry-assistance/receipts/prepare opendata

    Uses receipt text to suggest amount, merchant, displayDate and categoryId, together with confidence and currency, to prefill a ledger entry.

    Auth: Bearer access token for the signed-in account. Receipt requests also include dataformat=json, platform, appversion, apiversion and client headers.

    • ocrText
    • walletCurrency
    • inputSource
    • status
    • generationID
    • amount
    • categoryId
    • displayDate
    • note
    • merchant
    • originalCurrency
    • confidence
    • address
    • isTransfer
    POST /v1/entry-assistance/receipts/prepare HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    
    {
      "ocrText": "CIRCLE K\n22/10/2026\nTOTAL 45,000 VND",
      "walletCurrency": "VND",
      "inputSource": "camera",
      "categories": [
        {"id": "example_label_food", "name": "Food"}
      ]
    }
    {
      "status": true,
      "generationID": "example_receipt_01",
      "data": {
        "amount": 45000,
        "categoryId": "example_label_food",
        "displayDate": "2026-10-22",
        "note": "Circle K",
        "merchant": "CIRCLE K",
        "originalCurrency": "VND",
        "confidence": 0.92,
        "address": "",
        "isTransfer": false
      }
    }

Data categories

  • wallets
  • transactions
  • budgets
  • categories
  • labels
  • savings-campaigns
  • linked-bank-accounts
  • shared-wallets
  • receipts

Where teams use this data

  • Household envelope dashboard

    A personal-finance dashboard combines budget envelopes (amount, startDate, endDate, listWalletUUID, totalSpent) with ledger rows (display_date, amount, cat_id, original_currency) to chart remaining spending allowance per label.

  • Linked-bank cash reconciliation

    A bookkeeping bot lists bank providers (id, countryCode), stores authorized linked-wallet snapshots (accountId, balance, currency), and compares those balances with local cash and bank wallets.

  • Shared family ledger sync

    A household wiki uses family-wallet invitations (email, permission, owner_id, is_shared) and paginated ledger entries for the selected account_id so both phones show matching notes and amounts.

  • Receipt inbox to ledger

    An email-receipt worker supplies ocrText and prepares an entry from the suggested merchant, amount, displayDate and categoryId; notification text can instead produce walletID, labelName and fn for user confirmation.

Frequently asked questions

What wallet and ledger fields are represented in the Money Lover data API?

Wallet records include uuid, name, balance, account_type, is_shared and owner_id. Ledger entries include amount, display_date, note, cat_id, original_currency and exclude_report, with optional address and location fields. The examples use illustrative paths and mock values, not live service addresses.

How do Linked Wallets connect bank balances to a personal ledger?

The provider catalog includes id, name and countryCode. A user-authorized connection supplies a linkUrl and a linked-wallet snapshot with accountId, balance, currency and metadata. Bookkeeping integrations can compare that snapshot with cash and bank wallets belonging to the same user.

Which fields support budgets, savings goals and receipt entry?

Budgets use listWalletUUID, listLabelUUID, amount, startDate, endDate and totalSpent. Savings goals use goal_amount, transaction_amount and end_date. Receipt suggestions include merchant, amount, displayDate, categoryId and confidence, while text-entry suggestions include walletID, labelName, date and fn.

How are account data and shared-wallet permissions protected?

The illustrated requests retain Bearer-token authentication for the signed-in account. Wallet records distinguish owner_id and is_shared, and invitations include email, permission and pending status. Access to personal balances, ledger entries and bank connections requires the account holder's authorization; the examples contain no usable credentials.

Apps similar to Money Lover - Money Manager

  • Wallet: Budget Expense Tracker — Wallet by BudgetBakers is a personal-finance app that tracks expenses, syncs transactions with banks, sets budgets, and lets households share selected accounts.
  • Spendee — Spendee is a money-management app that tracks income and expenses across cash, bank accounts, e-wallets and crypto wallets, with bank imports, category budgets and shared wallets.
  • YNAB — YNAB (You Need A Budget) is a personal-finance app for iOS, Android and the web that helps people plan spending before they buy, track account balances and expenses, and share a subscription with household members.
  • Monefy — Monefy is a personal-finance and expense tracker that logs purchases, supports more than 150 currencies, and can sync budgets with a partner across iOS and Android.
  • Toshl Finance — Toshl Finance is a personal-finance app for Android, iOS and the web that charts expenses, sets budgets, monitors income, supports multiple currencies and can connect bank accounts.
  • Goodbudget — Goodbudget is a home-budget app for the web, Android and iPhone that uses virtual envelope budgeting so households can track spending and share envelopes.
  • AndroMoney — AndroMoney is a personal-finance app for Android, iPhone and the web that tracks expenses, income and transfers, with monthly and category budgets plus overspending alerts.

Topics

  • Money Lover data API
  • Money Lover wallets
  • Finsify linked wallet
  • expense tracker transactions
  • Money Lover budgets
  • Money Lover savings goals
  • receipt OCR merchant fields
  • shared family ledger
  • linked bank balance reconciliation

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote