Library / SDK
run-liyi/wechatpay avatar
run-liyi/wechatpay

wechatpay: A Local Electron App for Analyzing WeChat Pay Bills

微信账单分析工具 - 基于Electron的可视化账单分析应用

1,343 stars121 forksJavaScriptLicense varies

At a glance

What is it?
wechatpay is an Electron desktop application that parses WeChat Pay bill exports and visualizes transaction data across six analysis views. It runs entirely on the local machine, processes Excel files that WeChat sends by email, and exports analysis reports back to Excel. The README documents it as MIT-licensed.
Who is it for?
wechatpay fits individuals who regularly export their WeChat Pay transaction history for personal budgeting and want a dedicated interface with pre-built charts rather than building their own pivot tables in Excel. The application requires no server, handles data entirely on the local machine, and supports Windows, macOS, and Linux.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 124 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Problem wechatpay Addresses and Who Uses It

WeChat Pay stores transaction records inside WeChat's app, but the built-in history view offers limited filtering and no aggregation. For anyone who wants to understand their spending patterns, the standard path is to export the bill as an Excel file and analyze it manually. wechatpay automates that analysis, presenting the exported data across six specialized views without requiring knowledge of spreadsheet formulas or pivot tables.

The target user is someone who pays for daily expenses through WeChat Pay and wants to answer questions like: where did most of my money go last month, is my restaurant spending increasing over time, and which payment method (balance vs. bank card) do I use most often. The application is built for personal finance review, not accounting or tax preparation.

How WeChat Pay Bills Are Exported and What the App Expects

WeChat Pay allows users to export their transaction history through a specific path in the app: My tab, then Services, then Wallet, then Bill, then the options menu in the upper right corner. Two export formats are available. The personal reconciliation format produces an Excel or CSV file and is what wechatpay can parse. The official proof format produces a PDF with a seal and cannot be processed by the application.

After requesting the export, WeChat sends an encrypted archive to the provided email address within 24 hours. The decryption password arrives through WeChat's service notification. The export covers a maximum of one year of history per request. The resulting Excel file contains columns for transaction time, transaction type, counterpart, product, income or expense designation, amount, payment method, status, transaction order number, merchant order number, and notes.

wechatpay recognizes that the first approximately 16 rows of the exported file are header and description information. The application skips those rows automatically when parsing. The README notes that users should avoid committing their own bill files to any repository, and the project's .gitignore excludes *.xlsx, *.xls, and *.csv files outside of the sample/ directory.

Installing and Running the Analyzer

The application requires Node.js 14 or later for development and building. To install dependencies:

bash
npm install

To start the application in development mode, which also runs a Vite build of the renderer process first:

bash
npm start

After launch, the application presents a welcome screen. Click the Select Bill File button in the left navigation to load a WeChat Pay Excel export. The application parses the file automatically and navigates to the overview analysis. To build a distributable package:

bash
npm run build:win

Separate targets exist for macOS and Linux:

bash
npm run build:mac
npm run build:linux

The Windows target produces an NSIS installer. The macOS and Linux build targets are defined in the package.json build configuration. The bundled application does not require Node.js at runtime because Electron packages the Node.js runtime itself. The minimum system requirements are Windows 10 or 11, macOS 10.13 or later, or a supported Linux distribution, with 4 GB of RAM and 100 MB of disk space.

Six Analysis Views and What Each Shows

The overview view presents key figures from the imported file: total income, total expenses, net cash flow, total transaction count, and the date range covered. It also shows bill metadata extracted from the file, including the WeChat nickname and export timestamp, and renders a bar chart comparing income against expense totals.

The statistical analysis view breaks down transactions by payment method (showing how often the WeChat balance versus a linked bank card was used), by transaction type (merchant purchases versus transfers versus red packets), and by transaction status (successful, refunded, and others). Multiple chart types are used across these breakdowns including pie charts and donut charts.

The category summary view groups transactions by merchant name, by transaction type, and by payment method, showing the total amount and number of transactions for each group. Sorting is available by amount or by count, and users can choose to display the top N results or all entries.

The trend analysis view plots income and expense as line charts along a time axis, selectable at daily, weekly, or monthly granularity. Summary statistics for the displayed period include average daily expenditure and the highest and lowest single-day totals.

The transaction search view accepts keyword queries against merchant names and product descriptions, with additional filters for income or expense designation and transaction status. The results display a running count and total amount alongside the matching rows.

The report export button writes the analysis to an Excel file with multiple worksheets: summary statistics, category breakdowns, daily statistics, and the full transaction detail. The output file destination is selected through a save dialog.

Local-Only Processing and the Commit Protection Setup

The application makes no network requests to external servers. The README states explicitly that all bill data is processed and stored only on the user's computer. The Electron architecture reinforces this: the main process handles file parsing through an ipcMain handler, and the renderer process handles visualization, with no code paths that send data to a remote endpoint.

For contributors, the repository includes two anti-leak mechanisms. The .gitignore excludes spreadsheet files from all directories except the sample/ folder, which contains only fabricated demonstration data. A pre-commit hook script at scripts/precommit-secret-scan.sh checks staged content for patterns matching WeChat bill headers, phone numbers, and identity document numbers. Two installation paths for the hook are documented in the README:

bash
ln -sf ../../scripts/precommit-secret-scan.sh .git/hooks/pre-commit

The hook can be bypassed for a specific commit by setting SKIP_BILL_SCAN=1, which the README marks as requiring caution. This is aimed at contributors who might work with test files and need to bypass the scan for a controlled commit.

Limitations and When a Spreadsheet Is a Better Choice

The most significant functional gap is the single-file limitation. Each session of wechatpay analyzes one bill export. WeChat bills cover a maximum of one year per export, so anyone reviewing a longer history has to merge multiple exports in Excel before importing. The README confirms this directly: "current version can only analyze one file at a time."

The parser depends on the structure of the personal reconciliation export format. WeChat's export format is not a public API, and changes to the header layout or column order would break parsing until the application is updated. The README documents the expected column names, but there is no version check against the file format.

Excel with pivot tables covers the same analytical territory for users comfortable with spreadsheet software. The difference is that wechatpay provides dedicated charts and a click-through interface without any formula work, while Excel requires manual setup but handles multi-year data and custom aggregations that the application does not offer. For engineers or analysts who regularly manipulate spreadsheet data, the manual Excel route is more flexible; wechatpay trades that flexibility for a purpose-built interface.

The project had its last push on 2026-05-29. No releases have been tagged.

Editorial conclusion

wechatpay fits individuals who regularly export their WeChat Pay transaction history for personal budgeting and want a dedicated interface with pre-built charts rather than building their own pivot tables in Excel. The application requires no server, handles data entirely on the local machine, and supports Windows, macOS, and Linux. It does not merge multiple bill files in a single session, so anyone who needs to analyze more than one year of history must consolidate the exports in Excel first. Before relying on it, confirm that your WeChat bill was exported with the personal reconciliation option: the PDF format WeChat produces for official documents cannot be parsed by this tool.

Frequently asked questions

Does wechatpay upload my transaction data to any server?

The README states that the application runs completely locally and does not transmit any data to a server. All parsing and visualization happens on the user's machine, and the exported reports are saved locally through a file save dialog.

Why does wechatpay fail to parse my WeChat bill file?

The application only parses Excel files exported with the personal reconciliation option in WeChat Pay. If you selected the official proof format, WeChat generates a sealed PDF that the tool cannot read. Confirm the file is in .xlsx or .xls format and was not damaged or re-encrypted after download.

Can wechatpay combine multiple bill files into a single analysis?

The current version handles one file per session. The README recommends merging multiple bill files in Excel first if you need to analyze more than one export period together, then importing the consolidated file into wechatpay.

Official sources

  1. Issues
  2. README
  3. run-liyi/wechatpay on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/run-liyi-wechatpay.svg)](https://hysenlabs.com/projects/run-liyi-wechatpay)