Mobills: Budget Planner icon

Mobills Budget Planner data API

3APPS SOLUTIONS · Banking 4.2 ★

Mobills: Budget Planner is 3APPS SOLUTIONS' Brazilian personal-finance app (package br.com.gerenciadorfinanceiro.controller, site mobills.com.br). Households keep checking, cash, poupança and investment contas, log despesas and receitas, move money between accounts, track credit-card faturas with closing and due days, set monthly budgets and tags, connect a Nubank card so invoices land in the same ledger, scan receipts, and keep the same book on web.mobills.com.br. Premium is a Google Play or Pagar.me subscription; Gympass members get an in-app partnership track. Google Play lists it as a free BRL listing at about 4.2 stars from roughly 293 thousand reviews. It sits with Organizze, GuiaBolso and Wallet for people who want one Brazilian household book rather than a bank's own app.

Checking and poupança rows carry saldo plus tipoConta (corrente, dinheiro, poupança, investimentos) and instituicaoBancariaId; despesas land with valor, dataDespesa and status, receitas with dataReceita, and transfers as deContaId / paraContaId legs. Nubank-linked cards expose limite, diaFechamento, diaPagamento and integration statusIntegracao, after hasCard / statusCard says a card is waiting.

A monthly snapshot folds those books into somaDespesas, somaReceitas, weekday valorGastoSeg…valorGastoDom and per-card valorFatura. Excel export filters on dataInicial, contas and tipoMovimentacoes; session rows list identifier, type and connectionDate. Household dashboards, card-ops bots and bookkeepers consume those objects; openData Studio turns them into callable open data.

Screenshots

  • Mobills: Budget Planner screenshot 1
  • Mobills: Budget Planner screenshot 2
  • Mobills: Budget Planner screenshot 3
  • Mobills: Budget Planner screenshot 4
  • Mobills: Budget Planner screenshot 5
  • Mobills: Budget Planner screenshot 6
  • Mobills: Budget Planner screenshot 7
  • Mobills: Budget Planner screenshot 8

API surface

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

  • Firebase external auth

    POST /v1/session/exchange opendata

    Exchanges a Firebase / Google identity for auth_token, assinanteAndroid and diasExpiracao so ledger sync can attach a bearer token.

    Auth: Unauthenticated sign-in call. Body carries the federated identity (id = provider uid, externalToken, provider, userName, password, nome, idioma, origemCadastro, conviteCodigo). Later calls send Authorization: Bearer <access_token> plus X-Client-Platform and X-Client-Version headers.

    • id
    • userName
    • password
    • nome
    • provider
    • externalId
    • externalFoto
    • externalToken
    • origemCadastro
    • idioma
    • conviteCodigo
    • auth_token
    • expires_in
    • dataCadastro
    • assinanteAndroid
    • diasExpiracao
    • isNewUser
    • migratedUser
    POST /v1/session/exchange HTTP/1.1
    Content-Type: application/json
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    
    {
      "id": "firebaseUid_ada",
      "userName": "[email protected]",
      "password": null,
      "nome": "Ada Lovelace",
      "provider": "google",
      "externalId": "116429104109",
      "externalFoto": "https://cdn.example.com/a/photo",
      "externalToken": "<provider_token>",
      "origemCadastro": 1,
      "idioma": "pt-BR",
      "conviteCodigo": null
    }
    {
      "id": "usr_9f21c0ab",
      "auth_token": "<access_token>",
      "expires_in": 3600,
      "userName": "[email protected]",
      "nome": "Ada Lovelace",
      "dataCadastro": "2019-03-12T11:04:00",
      "assinanteAndroid": true,
      "diasExpiracao": 18,
      "isNewUser": false,
      "migratedUser": false
    }
  • Profile info

    GET /v1/household/owner/profile opendata

    Reads the signed-in profile wrapped as infoUser: email, nome, telefone, fotoPerfil, quantidadeMobills score and origemCadastro.

    Auth: Bearer access token (Authorization: Bearer <access_token>) plus X-Client-Platform and X-Client-Version headers.

    • infoUser
    • usuarioId
    • nome
    • email
    • fotoPerfil
    • telefone
    • quantidadeMobills
    • dataModificacao
    • origemCadastro
    GET /v1/household/owner/profile HTTP/1.1
    Authorization: Bearer <access_token>
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    Accept: application/json
    {
      "infoUser": {
        "usuarioId": "usr_9f21c0ab",
        "nome": "Ada Lovelace",
        "email": "[email protected]",
        "fotoPerfil": "https://cdn.example.com/ada.jpg",
        "telefone": "+55 11 99999-0000",
        "quantidadeMobills": 420,
        "dataModificacao": "2026-10-18T14:22:00",
        "origemCadastro": 1
      }
    }
  • Synchronize accounts

    POST /v1/ledger/accounts/sync openbanking

    Pushes and pulls the account book (tipoConta 1 corrente / 2 dinheiro / 3 poupança / 4 investimentos / 5 outras) with saldo, telaInicial and bank-institution metadata.

    Auth: Bearer access token (Authorization: Bearer <access_token>) plus X-Client-Platform and X-Client-Version headers.

    • id
    • uniqueId
    • nome
    • saldo
    • cor
    • tipoConta
    • telaInicial
    • ativo
    • arquivado
    • instituicaoBancariaId
    • origemIntegracaoId
    • statusIntegracao
    • dataContaAutomatica
    POST /v1/ledger/accounts/sync HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    
    [
      {
        "id": 4411,
        "uniqueId": "cap_nubank_corrente",
        "nome": "Nubank conta",
        "saldo": 1840.55,
        "cor": 16711935,
        "tipoConta": 1,
        "telaInicial": true,
        "ativo": true,
        "arquivado": false,
        "instituicaoBancariaId": "nubank",
        "origemIntegracaoId": 1,
        "statusIntegracao": 1,
        "dataContaAutomatica": "2026-10-01T00:00:00"
      }
    ]
    [
      {
        "id": 4411,
        "uniqueId": "cap_nubank_corrente",
        "nome": "Nubank conta",
        "saldo": 1840.55,
        "tipoConta": 1,
        "telaInicial": true,
        "ativo": true,
        "arquivado": false,
        "instituicaoBancariaId": "nubank",
        "origemIntegracaoId": 1,
        "statusIntegracao": 1
      }
    ]
  • Synchronize expenses

    POST /v1/ledger/expenses/sync openfinance

    Syncs cash and account despesas: descricao, valor, dataDespesa, status (0 efetuada / 1 pendente) and optional receipt anexo.

    Auth: Bearer access token (Authorization: Bearer <access_token>).

    • id
    • uniqueId
    • descricao
    • valor
    • dataDespesa
    • status
    • contaId
    • tipoDespesaId
    • subcategoriaId
    • observacao
    • anexo
    • favorito
    • ativo
    • origemIntegracaoId
    • despesaFixaId
    • despesaCartaoId
    POST /v1/ledger/expenses/sync HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    
    [
      {
        "id": 8821,
        "uniqueId": "exp_almoco_20261018",
        "descricao": "Almoço",
        "valor": "42.90",
        "dataDespesa": "2026-10-18T12:30:00",
        "status": 0,
        "contaId": "4411",
        "tipoDespesaId": 3,
        "subcategoriaId": 18,
        "observacao": "com a equipe",
        "anexo": "receipts/almoco.jpg",
        "favorito": true,
        "ativo": true,
        "origemIntegracaoId": 0
      }
    ]
    [
      {
        "id": 8821,
        "uniqueId": "exp_almoco_20261018",
        "descricao": "Almoço",
        "valor": "42.90",
        "dataDespesa": "2026-10-18T12:30:00",
        "status": 0,
        "contaId": "4411",
        "tipoDespesaId": 3,
        "ativo": true
      }
    ]
  • Synchronize incomes

    POST /v1/ledger/incomes/sync openfinance

    Syncs receitas with dataReceita, valor, status (0 efetuada / 1 pendente) and optional receitaFixaId for recurrences.

    Auth: Bearer access token (Authorization: Bearer <access_token>).

    • id
    • uniqueId
    • descricao
    • valor
    • dataReceita
    • status
    • contaId
    • tipoReceitaId
    • receitaFixaId
    • observacao
    • favorito
    • ativo
    • origemIntegracaoId
    • subcategoriaId
    POST /v1/ledger/incomes/sync HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    
    [
      {
        "id": 2204,
        "uniqueId": "inc_salario_202610",
        "descricao": "Salário",
        "valor": "8500.00",
        "dataReceita": "2026-10-05T09:00:00",
        "status": 0,
        "contaId": 4411,
        "tipoReceitaId": 1,
        "receitaFixaId": "12",
        "observacao": "CLT outubro",
        "favorito": true,
        "ativo": true,
        "origemIntegracaoId": 0
      }
    ]
    [
      {
        "id": 2204,
        "uniqueId": "inc_salario_202610",
        "descricao": "Salário",
        "valor": "8500.00",
        "dataReceita": "2026-10-05T09:00:00",
        "status": 0,
        "contaId": 4411,
        "receitaFixaId": "12",
        "ativo": true
      }
    ]
  • Synchronize transfers

    POST /v1/ledger/transfers/sync openfinance

    Syncs account-to-account transfers with deContaId / paraContaId legs, valor and optional transferenciaFixaId. The date key is spelled dataTransfencia on the wire.

    Auth: Bearer access token (Authorization: Bearer <access_token>).

    • id
    • uniqueId
    • dataTransfencia
    • valor
    • deContaId
    • paraContaId
    • observacao
    • transferenciaFixaId
    • ativo
    POST /v1/ledger/transfers/sync HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    
    [
      {
        "id": 91,
        "uniqueId": "tr_poupanca_20261012",
        "dataTransfencia": "2026-10-12T10:00:00",
        "valor": "500.00",
        "deContaId": "4411",
        "paraContaId": "4412",
        "observacao": "reserva poupança",
        "transferenciaFixaId": 0,
        "ativo": true
      }
    ]
    [
      {
        "id": 91,
        "uniqueId": "tr_poupanca_20261012",
        "dataTransfencia": "2026-10-12T10:00:00",
        "valor": "500.00",
        "deContaId": "4411",
        "paraContaId": "4412",
        "ativo": true
      }
    ]
  • Synchronize credit cards

    POST /v1/ledger/cards/sync openbanking

    Syncs cards (bandeira 0 VISA / 1 MASTERCARD / 2 HIPERCARD / 3 AMEX / 8 ELO) with limite, diaFechamento and diaPagamento (due day).

    Auth: Bearer access token (Authorization: Bearer <access_token>).

    • id
    • uniqueId
    • nome
    • limite
    • bandeira
    • diaFechamento
    • diaPagamento
    • contaId
    • origemIntegracaoId
    • statusIntegracao
    • ativo
    • arquivado
    • dataCartaoAutomatico
    POST /v1/ledger/cards/sync HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    
    [
      {
        "id": 12,
        "uniqueId": "card_nubank_roxinho",
        "nome": "Nubank Roxinho",
        "limite": "8000.00",
        "bandeira": "1",
        "diaFechamento": "8",
        "diaPagamento": "15",
        "contaId": 4411,
        "origemIntegracaoId": 1,
        "statusIntegracao": 1,
        "ativo": true,
        "arquivado": false
      }
    ]
    [
      {
        "id": 12,
        "uniqueId": "card_nubank_roxinho",
        "nome": "Nubank Roxinho",
        "limite": "8000.00",
        "bandeira": "1",
        "diaFechamento": "8",
        "diaPagamento": "15",
        "contaId": 4411,
        "statusIntegracao": 1,
        "ativo": true,
        "arquivado": false
      }
    ]
  • Monthly analytics snapshot

    POST /v1/insights/monthly-snapshots openfinance

    Uploads a monthly household snapshot: somaDespesas vs somaReceitas, weekday spend, category totals and per-card valorFatura / valorLimite.

    Auth: Bearer access token (Authorization: Bearer <access_token>).

    • periodo
    • pais
    • estado
    • cidade
    • moeda
    • situacao
    • porcentagem
    • quantReceitas
    • somaReceitas
    • quantDespesas
    • somaDespesas
    • somaDespesasFixas
    • somaInvestimentos
    • somaContaPoupanca
    • tipoInvestimento
    • diaMaiorGasto
    • categorias.nome
    • categorias.valorTotal
    • cartoes.nome
    • cartoes.valorFatura
    • cartoes.valorLimite
    • valorGastoSeg
    • valorGastoDom
    POST /v1/insights/monthly-snapshots HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    
    {
      "periodo": "2026-10",
      "pais": "BR",
      "estado": "SP",
      "cidade": "São Paulo",
      "moeda": "BRL",
      "situacao": "positivo",
      "porcentagem": 22.5,
      "quantReceitas": 4,
      "somaReceitas": 9200.00,
      "quantDespesas": 38,
      "somaDespesas": 6120.40,
      "quantDespesasDividas": 2,
      "somaDespesasDividas": 800.00,
      "quantDespesasFixas": 6,
      "somaDespesasFixas": 2400.00,
      "quantInvestimentos": 1,
      "somaInvestimentos": 500.00,
      "tipoInvestimento": "renda_fixa",
      "somaContaPoupanca": 12000.00,
      "plataforma": "Android",
      "dispositivo": "Pixel 8",
      "diaMaiorGasto": 12,
      "categorias": [{"nome": "Alimentação", "tipo": 1, "valorTotal": 980.10}],
      "cartoes": [{"nome": "Nubank Roxinho", "bandeira": 1, "tipo": 0, "valorFatura": 1234.67, "valorLimite": 8000.00, "valorPago": 0}],
      "valorGastoSeg": 210.00,
      "valorGastoTer": 95.00,
      "valorGastoQua": 140.00,
      "valorGastoQui": 80.00,
      "valorGastoSex": 310.00,
      "valorGastoSab": 420.00,
      "valorGastoDom": 180.00,
      "porcGastoSeg": 0.14,
      "porcGastoTer": 0.06,
      "porcGastoQua": 0.09,
      "porcGastoQui": 0.05,
      "porcGastoSex": 0.21,
      "porcGastoSab": 0.29,
      "porcGastoDom": 0.16
    }
    {}
  • Start Nubank card integration

    POST /v1/card-links/start openbanking

    Starts Nubank card linking: login, local cardId/accountId, cardName and category map mobillsCategoryId → integrationSourceCategoryId.

    Auth: Bearer access token (Authorization: Bearer <access_token>).

    • login
    • cardName
    • cardId
    • accountId
    • associateCategories
    • mobillsCategoryId
    • integrationSourceCategoryId
    POST /v1/card-links/start HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    
    {
      "login": "[email protected]",
      "cardName": "Nubank Roxinho",
      "cardId": 12,
      "accountId": 1,
      "associateCategories": [
        {"mobillsCategoryId": 3, "integrationSourceCategoryId": 88}
      ]
    }
    {}
  • Nubank non-integrated card probe

    GET /v1/card-links/pending openbanking

    Asks whether a Nubank card is waiting to be linked (hasCard) and returns statusCard.hasCredentials / login / status.

    Auth: Bearer access token (Authorization: Bearer <access_token>).

    • hasCard
    • statusCard
    • hasCredentials
    • login
    • status
    GET /v1/card-links/pending HTTP/1.1
    Authorization: Bearer <access_token>
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    Accept: application/json
    {
      "hasCard": true,
      "statusCard": {
        "hasCredentials": true,
        "login": "[email protected]",
        "status": "PENDING_DEVICE"
      }
    }
  • Export transactions Excel

    POST /v1/exports/transactions openfinance

    Builds an Excel download URL for the filtered ledger window (dataInicial/dataFinal, contas, categorias, tipoMovimentacoes). Companion CSV and PDF export options exist alongside.

    Auth: Bearer access token (Authorization: Bearer <access_token>).

    • dataInicial
    • dataFinal
    • periodoPersonalizado
    • categorias
    • contas
    • tipoMovimentacoes
    POST /v1/exports/transactions HTTP/1.1
    Authorization: Bearer <access_token>
    Content-Type: application/json
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    
    {
      "dataInicial": "2026-01-01",
      "dataFinal": "2026-10-31",
      "periodoPersonalizado": true,
      "categorias": [1, 3, 8],
      "contas": [1, 2],
      "tipoMovimentacoes": [1, 2, 3]
    }
    https://downloads.example.com/exports/ada-2026-10.xlsx
  • List connected devices

    GET /v1/me/devices opendata

    Lists sessions on the household book: identifier, name, type (0 phone / 1 computer / 2 tablet), city/state and connectionDate. Connect, disconnect and disconnect-all actions sit alongside the list.

    Auth: Bearer access token (Authorization: Bearer <access_token>).

    • success
    • data
    • devices
    • id
    • identifier
    • name
    • type
    • city
    • state
    • status
    • connectionDate
    • disconnectionDate
    GET /v1/me/devices HTTP/1.1
    Authorization: Bearer <access_token>
    X-Client-Platform: android
    X-Client-Version: 5.0.5
    Accept: application/json
    {
      "success": true,
      "data": {
        "devices": [
          {
            "id": 88,
            "identifier": "pref_device_uuid_pixel8",
            "name": "Google Pixel 8",
            "type": 0,
            "city": "São Paulo",
            "state": "SP",
            "status": true,
            "connectionDate": "2026-10-18T11:04:00",
            "disconnectionDate": null
          }
        ]
      }
    }

Data categories

  • accounts
  • balances
  • transactions
  • credit cards
  • budgets
  • bank integrations
  • devices

Where teams use this data

  • Household ledger recon

    Nightly jobs pull the account sync rows (saldo, tipoConta, instituicaoBancariaId) then overlay expense and income syncs so an ERP or family dashboard matches Mobills without scraping the UI.

  • Nubank fatura ingest

    A card-ops bot checks the pending-card probe, then submits a card-link request with login, cardId and associateCategories so Nubank invoices land as credit cards with limite, diaFechamento and diaPagamento.

  • Monthly spend cockpit

    A PFM widget consumes monthly snapshots — somaDespesas, somaReceitas, categorias.valorTotal and cartoes.valorFatura — to chart weekday spend without replaying every ledger row.

  • Accountant Excel handoff

    A bookkeeper posts dataInicial, dataFinal, contas and tipoMovimentacoes to the transactions export and stores the returned URL for the monthly close.

Frequently asked questions

Does Mobills expose live bank balances or only on-device cash?

Synced ledger balances. The accounts sync call (POST /v1/ledger/accounts/sync) returns each conta with saldo, tipoConta (1 checking / 2 cash / 3 poupança / 4 investments) and instituicaoBancariaId. Nubank-linked cards add limite, diaFechamento and diaPagamento once the card-link request has been accepted.

How are expenses and incomes shaped on the wire?

The expenses sync call (POST /v1/ledger/expenses/sync) sends descricao, valor, dataDespesa and status (0 done / 1 pending). Incomes use dataReceita, status and optional receitaFixaId. Transfers carry deContaId, paraContaId, valor and the date key dataTransfencia.

What does the monthly analytics snapshot contain?

The monthly snapshot call (POST /v1/insights/monthly-snapshots) uploads periodo, pais, moeda, somaDespesas, somaReceitas, somaInvestimentos, somaContaPoupanca, categorias[].valorTotal, cartoes[].valorFatura and weekday valorGastoSeg through valorGastoDom.

How is the session authenticated?

The sign-in exchange (POST /v1/session/exchange) swaps a federated identity (uid plus externalToken) for auth_token, expires_in and assinanteAndroid. Later calls send Authorization: Bearer <access_token> plus platform and version headers.

Apps similar to Mobills: Budget Planner

  • Organizze — Organizze is a Brazilian finance tracker and budget planner that registers expenses, incomes and transfers across multiple wallets and accounts, with access from phone or computer.
  • Minhas Economias — Minhas Economias is a Brazilian personal-budget app that monitors expenses and income by category and can pull account and credit-card updates through Open Finance.
  • Wallet: Budget Expense Tracker — Wallet is a personal finance manager that connects bank accounts to track expenses, sets custom budgets, and can share accounts with family.
  • Spendee — Spendee is a budget and expense tracker that syncs bank accounts, e-wallets and crypto wallets, auto-categorizes transactions, and lets people plan category budgets.
  • Money Manager Expense & Budget — Money Manager Expense & Budget records income and expenses with double-entry bookkeeping, graphs budget versus spending, and tracks credit-card settlement dates.
  • AndroMoney — AndroMoney is a personal-finance tool for Android, iOS and the web that tracks daily expenses across multiple accounts and currencies, with category budgets and charts.
  • Bolso Organizado — Bolso Organizado is a Brazilian personal-finance app that records spending and income offline on the device and sends reminders for recurring expenses.
  • Money Tracker-Expense & Budget — Money Tracker-Expense & Budget is a money-management app that combines an expense tracker, cash book and bill organizer.

Topics

  • Mobills API
  • Brazilian budget planner ledger
  • Nubank card integration
  • somaDespesas monthly analytics
  • account saldo sync
  • Excel transaction export

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