venmo-reconciler — Claude Code skill: reconcile Venmo transactions
Sorts a Venmo export into business and personal transfers, flags the unclear ones, and books the business side.
npx skills add openaccountant/skills --skill venmo-reconciler -a claude-codeWhat venmo-reconciler does
Venmo puts social payments and business charges in one feed, so splitting them by hand takes a while. The skill reads your CSV export, checks the column headers, and keeps only transactions with Complete status. Standard Transfer and Instant Transfer rows are skipped — those just move money to your bank, they are not revenue.
Each remaining transaction gets a business or personal label. Business signals are notes like invoice or payment for, a company name, a service description. Personal ones show up as emoji, a first name only, or casual wording. Ambiguous rows are not guessed at; the skill hands them to you for a decision.
Before importing, it checks for duplicates by the Venmo ID, so transactions already pulled in from a bank import do not get counted twice. The classification is a heuristic, and how well it works depends on what people typed into Note — jokes and blank fields happen. Grab the CSV from venmo.com; the mobile app does not offer the export.
What it helps with
- separate business payments from personal transfers in a Venmo export
- catch duplicates before importing transactions into the books
- flag ambiguous transactions and classify them by hand
- drop bank transfers so they are not counted as revenue
- total Venmo business income and expenses for reporting
Example prompts for the agent
- Reconcile the Venmo export at ~/Downloads/venmo_statement.csv and show me what counts as business
- Check this Venmo CSV for duplicates against transactions I already imported
- Flag the ambiguous Venmo transactions and let me classify them one by one
How to install venmo-reconciler
1Skills CLI (Vercel)
npx skills add openaccountant/skills --skill venmo-reconciler -a claude-code2Manually: put the files in place
~/.claude/skills/venmo-reconciler/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/venmo-reconciler/
1Skills CLI (Vercel)
npx skills add openaccountant/skills --skill venmo-reconciler -a codex2Manually: put the files in place
.agents/skills/venmo-reconciler/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openaccountant/skills --skill venmo-reconciler -a cursor2Manually: put the files in place
.cursor/skills/venmo-reconciler/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openaccountant/skills venmo-reconciler2Manually: put the files in place
.github/skills/venmo-reconciler/SKILL.md1Skills CLI (Vercel)
npx skills add openaccountant/skills --skill venmo-reconciler -a gemini-cli2Platform CLI
gemini skills install https://github.com/openaccountant/skills --path business/venmo-reconcilerManually: put the files in place
.devin/skills/venmo-reconciler/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add openaccountant/skills --skill venmo-reconciler -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about venmo-reconciler
How do I install venmo-reconciler in Claude?
Run npx skills add openaccountant/skills --skill venmo-reconciler -a claude-code. The skill file lands at ~/.claude/skills/venmo-reconciler/SKILL.md.
What does venmo-reconciler do?
It imports a Venmo export, splits transactions into business and personal, flags ambiguous ones for review, and books the confirmed business transactions.
Which Venmo transactions does the skill skip?
Standard Transfer and Instant Transfer rows, since they already show up in your bank statement. Only Payment and Charge rows with Complete status get imported.
Source text
SKILL.md · MIT
---
name: venmo-reconciler
description: >
Reconcile Venmo business transactions and separate personal from business.
---
# Venmo Reconciler
## Overview
Import and reconcile Venmo transaction exports, separating personal transfers from business income/expenses. Venmo mixes social payments with business transactions in a single feed — this skill classifies each transaction, flags ambiguous entries for review, and imports business-relevant transactions into Open Accountant.
## Wilson Tools Used
- `transaction_search` — check for duplicates and cross-reference with bank imports
- `categorize` — assign business categories to Venmo transactions
- `anomaly_detect` — flag transactions that look personal in a business context (or vice versa)
- `export_transactions` — export reconciled business transactions
## Column Mapping
| Venmo CSV Column | Open Accountant Field | Notes |
|---|---|---|
| `ID` | `reference_id` | Venmo transaction ID for dedup |
| `Datetime` | `date` | Transaction timestamp |
| `Note` | `description` | User-entered payment note |
| `From` | `description` (prefix) | Sender name |
| `To` | `description` (prefix) | Recipient name |
| `Amount (total)` | `amount` | Signed amount (+ received, - sent) |
| `Status` | — | Only import `Complete` transactions |
| `Type` | — | Payment, Charge, Transfer, etc. |
| `Funding Source` | `notes` | Venmo balance, bank, card |
## Workflow
1. Ask the user for the Venmo CSV file path.
2. Parse the CSV and validate Venmo column headers.
3. Filter by status: only `Complete` transactions.
4. Filter by type:
- **Import**: `Payment` (sent/received money for goods or services)
- **Import**: `Charge` (invoiced someone and they paid)
- **Skip**: `Standard Transfer` and `Instant Transfer` (bank transfers, appear in bank import)
5. Classify each transaction as personal or business:
- **Business signals**: notes containing keywords like "invoice," "payment for," business name, service description, dollar amounts > $100
- **Personal signals**: notes with emoji, first-name-only, social language ("thanks for dinner," "splitting rent")
- **Ambiguous**: flag for manual review
6. Present the classification for user confirmation:
- Business transactions: import with appropriate categories
- Personal transactions: skip (or import to a "Personal" category if user wants full tracking)
- Ambiguous: ask user to classify each one
7. Deduplicate against existing transactions using Venmo ID.
8. Import confirmed business transactions.
## Without Wilson
To reconcile Venmo transactions manually:
### Downloading from Venmo
1. Log in at **venmo.com** (must use web, not the app)
2. Go to **Statements** (under Settings, or navigate to venmo.com/account/statement)
3. Select the date range (available in monthly chunks)
4. Click **Download CSV**
5. Alternative: In the Venmo app > Settings > **Tax Documents** for 1099-K if applicable (only if you exceed IRS thresholds: $5,000 in 2024+)
### Manual Reconciliation in a Spreadsheet
1. Open the CSV. Venmo CSVs have some quirks:
- The first few rows may be metadata — delete them so your header row is the first row.
- Amounts may be formatted as `+ $50.00` or `- $25.00` with spaces. Clean with Find & Replace: remove `$`, `+`, and spaces, then convert the column to Number format.
2. **Filter out transfers**: Remove rows where Type is "Standard Transfer" or "Instant Transfer."
3. **Add a "Classification" column** with values: `Business`, `Personal`, `Review`.
4. **Classify by keyword search**:
```
=IF(OR(
REGEXMATCH(Note,"(?i)invoice|payment for|consulting|freelance|order|service"),
ABS(Amount)>100
), "Business",
IF(OR(
REGEXMATCH(Note,"(?i)dinner|lunch|drinks|rent|split|birthday|thanks"),
LEN(Note)<10
), "Personal",
"Review"))
```
5. **Manual review**: Go through "Review" rows and classify each one.
6. **Business summary**:
```
Business Income: =SUMIFS(Amount, Classification, "Business", Amount, ">0")
Business Expenses: =ABS(SUMIFS(Amount, Classification, "Business", Amount, "<0"))
```
7. **Tax note**: If your Venmo business income exceeds $5,000/year (2024 threshold), Venmo issues a 1099-K. Your records should reconcile with this form.
### Reconciliation Tips
- Cross-reference Venmo transfers to your bank account with your bank statement. The "Standard Transfer" amounts in Venmo should match deposits in your bank.
- If you use Venmo for Business (separate business profile), those transactions are pre-classified — export them separately.
## Important Notes
- Venmo personal vs. business classification is a best-effort heuristic. Always review the results.
- Venmo notes are user-entered free text and often contain emoji, jokes, or vague descriptions. Categorization accuracy depends on note quality.
- The IRS reporting threshold for payment apps is $5,000 for 2024 and later tax years. If you receive business payments via Venmo above this threshold, you'll receive a 1099-K.
- Venmo "Standard Transfer" to your bank takes 1-3 business days. "Instant Transfer" is immediate but has a fee. Neither should be imported as revenue — they're just moving money to your bank.
- If you use both Venmo personal and Venmo for Business profiles, export and import them separately to avoid mixing.
- Venmo CSV downloads are only available through the website, not the mobile app.
© openaccountant · MIT · openaccountant/skills