Changelog
November 12, 2026
Section titled “November 12, 2026”New
- International pricing. Customers outside Indonesia now see prices in USD: Personal $3 per month ($30 per year), Family $7 per month ($70 per year). Payment is still in rupiah at a daily exchange rate locked when the order is created. Set your billing country in the Billing details card on the Subscription page.
- Pay by credit or debit card. Subscriptions can be paid with Visa and Mastercard cards, including cards issued outside Indonesia.
Changed
- Terms of Service section 4 now covers pricing by billing country and card payments. Because the rules changed, you will be asked to accept the new version the next time you sign in. The last updated date is now November 12, 2026.
November 7, 2026
Section titled “November 7, 2026”Changed
- Terms of Service: payments from outside Indonesia. Section 4 now says that payments from outside Indonesia are not supported yet and are still being prepared. If you are outside Indonesia and want to subscribe, write to [email protected] to confirm first. The last updated date is now November 7, 2026.
Fixed
- Payments completed in Midtrans now always activate the plan. Before, if the signature on a Midtrans notification did not match the key in use, a paid order stayed “Awaiting payment” and “Check status” changed nothing. Now the server asks Midtrans for the order status directly and uses that answer.
- Fallback when the payment form does not show. If the embedded Midtrans payment form fails to load in the browser (for example because of a blocking extension), the checkout page now shows an “Open payment page” button that goes to the Midtrans payment page, and a small link with the same action is always shown below the form. Before, the page only said the order could not be opened.
- Unpaid orders no longer hang around. An order abandoned before choosing a payment method is now marked expired once its payment page lifetime (24 hours) has passed, instead of staying “Awaiting payment” forever with a dead payment link. A payment that still comes in afterwards is still applied.
- “Check status” now tells you something. If no payment has come in yet, the checkout page says so instead of doing nothing.
- Midtrans “failure” transactions are now recorded as failed, following the Midtrans integration guide. Before, that status was ignored.
- Pay-by time in payment history. Orders still “Awaiting payment” now show their deadline and the time left, for example “Pay by Nov 8, 08:29 PM · 23h 10m left”, based on the payment page lifetime (24 hours from when the order was created).
November 6, 2026
Section titled “November 6, 2026”New
- Unsubscribe link in waitlist emails. Every waitlist confirmation email now includes a “Stop receiving these emails” link, and Gmail and Yahoo show their built-in unsubscribe button above the email. The link opens a confirmation page, and one click removes your email from the waitlist with no login. Emails sent before this do not include the link, so for those, write to [email protected]. The Privacy Policy was updated to mention this (November 6, 2026).
November 5, 2026
Section titled “November 5, 2026”New
- Launch promo: 1 month free for the waitlist. Emails that joined the Vaulty waitlist by November 14, 2026, 11:59 PM WIB (UTC+7) get a 30 day trial (instead of 14) on Personal or Family. To claim it, sign up with the same email and pick the plan by November 21, 2026, 11:59 PM WIB. Free plan users with a waitlist email who start a trial before that deadline also get 30 days. The waitlist form on vaulty.id and its confirmation email now explain the promo.
- First payment discount for the waitlist. After the free month, the same waitlist emails get 50% off their first monthly payment, or 15% off their first yearly payment, if they pay by December 31, 2026, 11:59 PM WIB (UTC+7). The discount applies before tax and only once per organization. The checkout page, receipt email, and invoice PDF show the discount line.
Security
- nginx update on the server. Our hosting provider announced five new nginx vulnerabilities. The nginx running Vaulty’s app has been updated to a version that includes the fixes (1.30.6), and the host’s nginx was already on the patched version. The app was unreachable for about 2 seconds during the update, and no data was touched.
- Login is harder to probe. Login response time is now the same whether or not the username exists, so outsiders cannot guess which accounts exist. Login also has a per-account attempt limit (30 per 15 minutes) that applies even when the attempts come from many IP addresses.
November 3, 2026
Section titled “November 3, 2026”Changed
- The waitlist form on vaulty.id is more transparent. Below the form there is now a note that your email is only used to tell you when sign up opens, with a link to the Privacy Policy. The Privacy Policy now lists waitlist data (email address and language, kept until you ask for deletion) and its purposes. The waitlist confirmation email also says how to be removed from the list, by writing to [email protected]. The Privacy Policy’s last updated date is now November 3, 2026.
November 1, 2026
Section titled “November 1, 2026”New
- Agreement to the Terms and Privacy Policy is now recorded and provable. Whenever you sign up (by email or Google) or agree again, Vaulty stores the terms version, the time, and the route. Registration is also rejected by the server if the agreement is not sent, not only by the checkbox in the form.
- A re-acceptance screen. When the Terms or Privacy Policy change, you are asked to read and agree to the latest version at your next sign-in before you continue using the app, with the option to sign out. Existing accounts will see it once, because no agreement was recorded before. The product tour offer waits until it is done.
- An age confirmation (18+) is now part of the agreement sentence when signing up, and the note under the Google button mentions it too.
- A note before paying. The payment page states that payments are not refunded (except for a system fault we cannot fix) and that the subscription does not renew automatically, with a link to the Terms of Service.
Changed
- The Terms of Service and Privacy Policy were updated (last updated November 1, 2026), in the app and on vaulty.id. Added: the AI agent (MCP) access token data we store, meaning name, prefix, access level, validity, and usage records, with only a hash of the token kept; a note that AI assistants and their providers are third parties you choose and the data they read follows their policies; the user’s responsibility for a token as if it were a password; Cloudflare as a traffic layer in front of the service; and a statement that service email is sent from our own mail server, not through a third party provider. The “Local Wallet” mention in the intellectual property clause was also removed because it is a different product.
October 31, 2026
Section titled “October 31, 2026”New
- The AI agent (MCP) now reaches almost every Vaulty feature, not just recording transactions. It used to have 5 tools (summary, transaction list, budgets, categories, and add transaction). There are now 46 tools, grouped like the menus in the app. They all follow the same rules as the app: validation, plan limits, the subscription grace period, and every change is written to the activity log with the token name.
- Richer reading.
get_organization: name, plan, recording currency, your role, member count, and which features your plan includes.get_cashflow: income, expenses, and the difference per month for up to 24 months.get_insights: each expense category’s share. On the Family plan it adds a per-category comparison with last month, an end-of-month projection, and spending per member.get_report: report data for one month or the whole period (income and expenses by category, budget versus actual, savings summary). This is data, not a PDF or Excel file.get_financial_health: the 0 to 100 health score with its four components and recommendations. It uses the same formula as the Financial Health page, so the numbers match exactly (checked: 75/100 in both places).get_daily_spending: the heatmap data, meaning each day’s total, its intensity level, the most expensive day, and the daily average.list_savings,list_savings_targets,list_bills,list_debts,list_net_worth,list_categorization_rules,list_activity, andlist_trash.
- Write and edit data in every feature, with a write-access token:
- Transactions: edit and delete income or expenses.
- Budgets: create or change the budget of one category in one month, and delete it.
- Savings and investments: record deposits and withdrawals, edit, and delete. As in the app, a deposit is automatically recorded as an expense, and a withdrawal returns money to the wallet without counting as income.
- Savings goals: create, edit, delete.
- Bills: create, edit, delete, mark a month as paid (which records the expense for you), and undo it.
- Debts and receivables: record, edit, delete, and record an installment that reduces what remains. An installment cannot exceed the remaining amount.
- Net worth: add, edit, and delete assets and liabilities.
- Categories, payment methods, and auto-categorization rules: add, edit, delete.
- Safer deleting for agents. Every delete tool requires
confirm: true, and its description tells the agent to ask you first. Deleted data goes to the trash for 30 days, just as when you delete it yourself, so it can be restored from the Trash menu in the app. - Linked transactions are protected. A savings deposit and a bill payment each have a paired expense. If an agent tries to edit or delete that expense directly, it is refused with a pointer to the savings or bill tools, so balances and history cannot drift apart.
- The tools reference in the docs was rebuilt. It is now grouped by feature, each tool has an English and Indonesian description, and the list is read straight from the server code.
New
- A “?” help button at the bottom right of the screen. Every page in the app now has a small question-mark button in the bottom-right corner (on a phone, just above the bottom menu bar). One click opens the docs guide for the page you are on, in a new tab. For example the Health Score goes straight to the score section, the Heatmap to the heatmap section, and Budget to the Budget guide. It follows the app language (Indonesian or English).
- The Health Score guide in the docs is more complete: how each component is calculated (including the Spending Stability point rules), what the three statuses mean with their score ranges, and an explanation of the bubble on the exclamation icon.
Changed
- The Financial Health Score now explains its status. Hover the exclamation icon on the status badge (Healthy, Moderate, or Attention required) and a comment-style bubble appears with what that status means and its score range, followed by up to three things to do. The steps come from the weakest indicators: savings below 20% of income, budgets exceeded or not set, spending up more than 10% from last month, and fewer than 10 recorded days. If everything is fine, the bubble just suggests keeping up the habit. On touch screens, tap the icon.
- The “AI agent access (MCP)” card in Settings has new text: the access choices are now “Read only” or “Read and edit data”, and the security warning was updated. The old sentence saying agents cannot delete data was no longer true, so it now explains confirmation and the 30-day trash.
- Still not possible through MCP: changing the subscription or payments, inviting or removing members, changing the recording currency, restoring backups, and uploading receipt attachments. Those sensitive actions are deliberately left to you in the app.
- Usage limits are unchanged: 60 requests per minute per token and 10 active tokens per organization. The savings, bills, debts, health score, and heatmap tools remain Personal plan and above, and the insight comparison and projection remain Family.
Fixed
- The AI agent now knows your organization’s recording currency. Before, the answers of
get_summary,list_budgets, andlist_transactionswere always labelled “IDR”, and the write tool descriptions said “Amount in Rupiah”, even though since October 27 an organization can record in dollars or another currency. An agent could therefore mistake 12.34 dollars for 12.34 rupiah. All answers now use the correct recording currency, with amounts rounded to that currency. - Onboarding sample data and savings withdrawals are not counted in any of the new read tools, the same as on the dashboard.
- The Expense Heatmap is no longer empty after refreshing the page. Opening it directly or pressing refresh used to leave the calendar blank until you switched to another menu and back. The page now loads its own data.
- Amounts on the Expense Heatmap calendar now follow the display currency. Each cell used to be divided by 1000 and suffixed with “k” no matter what, so switching the display to dollars still looked like rupiah. They now show a compact figure for the chosen currency and language, for example “3 jt” and “319 rb” for rupiah or “192” for dollars.
October 30, 2026
Section titled “October 30, 2026”Fixed
- Withdrawals from savings or investments no longer count as income. Money you withdrew from savings used to inflate Total Income even though it wasn’t new money. It still lands in your wallet balance, but Total Income, the cash flow chart, the financial health score, the end-of-month projection, the total on the Income page, PDF and Excel reports, and the AI agent (MCP) summary now only count real income. Existing data corrects itself automatically, with nothing to change.
October 28, 2026
Section titled “October 28, 2026”New
-
Agree to the Terms of Service and Privacy Policy when signing up. Both can be read right from a popup in the sign-up form, no need to switch tabs or pages. Signing up with Google automatically counts as agreeing to both, since that path skips the form and its checkbox.
-
Branded error page for server outages (500/502/503/504). When the server is genuinely unreachable, you now see a clear Vaulty page (“Our servers are having trouble, try again shortly”) instead of a plain nginx error page.
-
Thousand separators now appear automatically in every amount field, not just Savings: Income, Expenses, Bills, the Budget limit, Savings Goals, and the dashboard’s quick-add buttons. Type 500000 and it reads 500,000 as you go.
Changed
- Recording currency selection moved from the sign-up form to onboarding. It used to be chosen before the account existed; now it’s chosen at the “Your workspace” step after the account and organization exist, which makes more sense and keeps the sign-up form short.
Fixed
- The Settings text that still said “all data is stored in IDR” is now corrected, since that claim stopped being true once a chosen recording currency was added.
- The translation file the running app actually fetches (separate from the one used at build time) had fallen hundreds of terms behind, including the Terms & Privacy Policy consent text above. It’s now generated from a single source automatically on every build, so it can’t fall behind again.
October 27, 2026
Section titled “October 27, 2026”New
- You can now choose the currency transactions are recorded in, instead of it always being Rupiah. During onboarding (the “Your workspace” step, after your account is created), you now pick the currency used to record transactions (IDR, USD, EUR, and 17 others). This is different from the existing “display currency” setting, which only changes how numbers are shown without changing the data; this recording currency is the actual currency the data is stored in.
- The recording currency can be changed anytime from Settings (organization owner only). Every transaction, budget, saving, bill, and debt already recorded gets automatically converted using that day’s exchange rate, so the real value stays the same even though the numbers change. There’s a clear confirmation step before it runs, since this permanently changes your financial data.
- The savings/investment account name field now suggests names you’ve used before, so you don’t have to retype “BCA Savings” every time you record a deposit or withdrawal. You can still type a new name if it doesn’t exist yet.
- Savings deposit and withdrawal amounts now get thousand separators automatically as you type (1500000 becomes 1,500,000), making them easier to read.
Changed
- The Settings page is tidier. It used to be nine settings cards stacked one after another; now everything lives in one place, split into rows you can expand and collapse, collapsed by default, so the page is short and you only open what you’re looking for. Language, theme, and currency are merged into a single “Preferences” section.
A full security audit was also completed behind the scenes. We found no sign any of the gaps it found were ever used against a real account; all of them were closed before anyone could.
Security: account and login
- Enabling two-factor authentication now requires your password: before, a live session alone was enough. You now need to enter your account password before starting 2FA setup, same as when turning it off.
- Google sign-in and email login now ask for a 2FA code too when the account has two-factor authentication enabled. Previously those two paths could sign in without a code, unlike username login.
- Changing your password now takes effect on every login path, whether you sign in with your username or your email. There was a narrow case where the old password could still work on the email login path after a change.
- Resetting your password via “forgot password” now signs out every other logged-in device, not just changing the password. If the reason you’re resetting is a suspected leak, the leaked session is now cut off too.
- Google sign-in that links to an account someone else registered first (same email, never verified) now wipes that account’s old password and sessions when it links, so only the person who proves ownership through Google can log in.
- TOTP code guessing during 2FA login is now bounded more strictly, closing a gap that previously allowed more guesses than intended.
Security: plans and billing
- Free-plan monthly transaction and budget-category limits are now enforced more consistently, including when editing an existing transaction and when recording your very first transaction on the onboarding screen.
- Team member limits are now enforced when an invitation is accepted, not just when it’s sent. A plan’s member limit could previously be exceeded if every invitation was accepted.
- Restoring data from a backup now follows the same grace-period and Free-plan rules as adding data through the regular forms.
- Fixed an upgrade-pricing edge case so a late-processed payment can no longer be applied against a billing period that has already changed.
- Billing details (address, tax ID) on invoices are now visible only to the organization owner, not every member.
Security: other
- The notification email address is now format-validated and test sends are rate-limited per day, so this feature can’t be used to repeatedly mail someone else’s address.
- Additional fixes in the operator (admin) console and in server configuration so login rate limiting sees the real visitor IP.
October 17, 2026
Section titled “October 17, 2026”New
- Email notification per transaction (Personal and up): turn it on in Settings to get an email every time an income or expense is recorded. Off by default, and you can set a minimum amount so small day-to-day transactions don’t flood your inbox.
Changed
- Email notification settings moved from Planning to Settings: the “Notifications” tab on the Planning page is gone, its email reminder settings (bills, budget, debts, and the new per-transaction option) now live under Settings, next to the rest of your account preferences.
Fixed
- Long transaction names on the dashboard no longer wrap and misalign: on mobile, a long transaction name (for example an investment or transfer description) wrapped onto two lines and pushed the category label out of place. It’s now truncated with an ellipsis like the rest of the app.
- Buttons now give a pressed feel when tapped: every button in the app was missing any visual feedback on press, so taps felt unresponsive, especially on mobile. Buttons now scale down slightly while held.
October 12, 2026
Section titled “October 12, 2026”New (internal)
- Custom plans: the operator console can now create a custom plan (for example a higher member limit for one family) and assign it to a customer directly, without a code deployment. This does not change anything for existing Free, Personal, or Family plans.
October 10, 2026
Section titled “October 10, 2026”New
- Waitlist confirmation email: new signups receive an email using the Vaulty template in the landing page language. Signing up again with the same email and product does not send another email.
Fixed
- Date fields now use Vaulty’s own calendar: adding an expense, income, saving, bill, target, or net worth entry used the browser’s default date picker, which looked out of place. Every date field now opens a calendar styled to match the rest of the app.
- Financial health score looks clearer: the status badge no longer uses a colored circle emoji, it now shows a proper icon with a solid colored background so it reads clearly at a glance. The thin colored bar above the score card was also removed.
- Cash flow chart always shows a full 6 months: months with no transactions at all were skipped instead of shown as empty, so the chart could end with fewer bars than expected and leave an inconsistent blank gap on the right. The chart now always shows 6 consecutive months, zero bars included. The tooltip position was also fixed so it no longer lands on top of the growth percentage badge.
- Recent transactions no longer break their row layout on mobile: a long transaction name (like “Down payment for a motorcycle shock mount replacement”) could push the amount onto its own wrapped line, misaligned with the other rows. On narrow screens, each transaction now lays out as a labeled card like the rest of the app’s tables, instead of a cramped row.
October 3, 2026
Section titled “October 3, 2026”Fixed
- No more double payments: clicking the pay button twice, or a connection that fails and retries, no longer creates two separate transactions for the same checkout.
September 29, 2026
Section titled “September 29, 2026”Changed
-
New addresses: the app now lives at apps.vaulty.id, these docs at docs.vaulty.id, and the main site at vaulty.id. Old addresses redirect automatically, so existing links and bookmarks keep working.
-
Waitlist is open: until sign up opens, the buttons on vaulty.id lead to an email form. We will email you as soon as Vaulty is ready to use.
-
Ended subscriptions move to the Free plan: the grace period is now 1 day (it was 7), after which the account moves to the Free plan instead of becoming read only. An ended trial also moves straight to Free. Your data stays safe.
Fixed
- The third card on the English Insights page showed the text
{count}. It now reads “Spending categories”. - Onboarding could be skipped for the next account signed in on the same browser tab (for example a re-login, or a new Google sign-up): it is now checked per account, not per tab.
- Paying from the “Choose plan” step in onboarding now uses the same branded payment page as the dashboard’s Subscription menu, instead of a plain Midtrans page. After paying, the “Continue account setup” button returns to onboarding right at the next step.
September 28, 2026
Section titled “September 28, 2026”New
- Product tour: the first time you sign in, Vaulty offers a tour explaining each menu for your plan, and you can replay it from the account menu.
- Dedicated payment page with Midtrans Snap embedded, full screen and with no popup.
- AI agent access (MCP) on the Personal plan and above: create a token and connect an AI assistant to read summaries and record transactions.
- Advanced insights on the Family plan: comparison with last month, end-of-month projection, and spending per member.
- Email: a welcome email, notices for failed or expired payments, and a PDF invoice attached to the receipt email.
- Receipt attachments by camera or file upload.
- These docs, with a user guide and screenshots.
Fixed
- Trial reminders now have their own wording instead of grace-period text.
- Language: one screen, one language, including emails, PDFs, and Excel files.