About square-import
square-import brings transaction-level Square POS CSV data into Open Accountant for accounting workflows. It maps sales, tips, refunds, and processing fees to separate entries, and deduplicates by transaction ID.
Key features
- 01Import sales, tips, refunds, and fees
- 02Separate transaction types into entries
- 03Deduplicate by Square transaction ID
- 04Preview an import summary
- 05Include cash sales
Use cases
- 01Record Square POS sales in Open Accountant
- 02Account separately for tips, fees, and refunds
- 03Prevent duplicate imports using transaction IDs
- 04Reconcile net sales with bank deposits
MCP support
The skill uses Wilson tools to search transactions, categorize them, and export reconciled Square data.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ openaccountant/ skills --skill square-importAfter installing, type/square-importin Claude Code to confirm it loaded.
Details
From the project READMESquare Import
Overview
Import transaction data from Square POS CSV exports. Handles sales, tips, refunds, and Square processing fees. Maps Square's item-level detail into Open Accountant's transaction format.
Wilson Tools Used
transaction_search— check for existing Square transactions to prevent duplicatescategorize— assign categories to imported Square transactionsexport_transactions— export reconciled Square data
Column Mapping
| Square CSV Column | Open Accountant Field | Notes |
|---|---|---|
Date | date | Transaction date |
Time | — | Not stored |
Transaction ID | reference_id | Square payment ID for dedup |
Description or Item | description | Item or payment description |
Gross Sales | amount | Total before fees (positive = income) |
Tips | amount (separate row) | Tip amount (positive = income) |
Processing Fees | amount (separate row) | Square fee (negative = expense) |
Refunds | amount (separate row) | Refund amount (negative) |
Net Sales | — | Calculated, not stored directly |
Payment Method | notes | Cash, card, etc. |
Workflow
- Ask the user for the Square CSV file path.
- Parse the CSV and validate Square column headers.
- For each transaction row, create up to four entries:
- Sale: gross sales amount (positive), category "Revenue:Sales"
- Tips: tip amount (positive), category "Revenue:Tips" (if > $0)
- Fee: processing fee (negative), category "Fees:Payment Processing" (if > $0)
- Refund: refund amount (negative), category "Revenue:Refunds" (if > $0)
- Cash transactions have $0 processing fees — still import the sale.
- Deduplicate using Square Transaction ID.
- Preview the import summary: total sales, total tips, total fees, total refunds, net.
- Insert transactions and confirm.
Without Wilson
To work with Square exports manually:
Downloading from Square
- Log in to squareup.com (Square Dashboard)
- Go to Transactions (left sidebar)
- Click Export (top right, or the download icon)
- Select date range
- Choose Transactions CSV (not Items CSV — that's inventory)
- Download
- Alternative: Reporting > Sales > Export for summary-level data
Manual Processing in a Spreadsheet
- Open the CSV in Google Sheets or Excel.
- Separate revenue streams:
- Column E: Gross Sales (your product/service revenue)
- Column F: Tips (income, not taxed the same as sales in some jurisdictions)
- Column G: Processing Fees (expense)
- Column H: Refunds (negative revenue)
- Create separate category rows (or use multiple category columns):
- For each row with a tip > $0, create a new row for the tip amount
- For each row with a fee > $0, create a new row with the negative fee
- Summary formulas:
Gross Sales: =SUM(E:E) Total Tips: =SUM(F:F) Total Fees: =SUM(G:G) Total Refunds: =SUM(H:H) Net Revenue: =GrossSales + Tips - Fees - Refunds Effective Fee %: =TotalFees / (GrossSales + Tips) * 100 Avg Transaction: =GrossSales / COUNTA(D:D) - Reconcile with bank: Square deposits funds daily or weekly. Sum Net Sales between deposit dates and match against your bank statement.
Square Reports (No Export Needed)
Square Dashboard has built-in reports at Reporting > Sales Summary that show gross sales, fees, and net by day, week, or month. Use these for quick reference without exporting.
Important Notes
- Square CSV exports can be either transaction-level or item-level. This skill expects transaction-level exports. Item-level exports have one row per item per sale, which requires grouping by Transaction ID first.
- Tips are separated because they may have different tax treatment than sales revenue.
- Cash transactions appear in Square if rung through the POS but have $0 processing fee. These are still imported.
- Square deposits to your bank are net of fees. Do not import deposit rows from your bank as Square revenue — use this skill for the gross breakdown instead.
- If you use Square for both in-person and online sales, both appear in the same export.