Square → QuickBooks: Daily Workflow

Studio 1 Photo Studios · Prepared April 2026 · Starting with Chicago

The Problem

Square processes hundreds of daily payments across 6 cities. Each payment needs to reach QuickBooks with the correct customer name, reference number, and amount — including refunds and processing fees. Without automation, every single transaction would need to be entered by hand.

Square provides two separate reports: a Transfer Report (which matches what hits the bank but has no customer names) and a Transaction Report (which has customer names but misses refunds and fees). Neither report alone is complete. The system merges them automatically.

Before vs. After

Before (Manual Process)

  • Download 2 separate Square reports
  • Cross-reference payment IDs by hand
  • Type each transaction into QB individually
  • Manually calculate daily processing fees
  • Manually enter refunds and chargebacks
  • Repeat for each city, every day
  • Hours of bookkeeping time per day

After (Automated Workflow)

  • Script pulls both reports from Square API
  • Merges by Payment ID automatically
  • Generates OFX bank feed files
  • Fees calculated as daily lump sums
  • Refunds and chargebacks included
  • Natalia uploads 2 files to QB (30 seconds)
  • All transactions appear in QB immediately

Daily Workflow — Step by Step

1

Script Pulls Square Data

Connects to Square API and pulls all payments, refunds, and fees for the previous day. Looks up each customer's full name. Runs automatically each morning.

Automated
2

Merge & Generate Reports

Merges Transfer Report data (fees, refunds) with Transaction Report data (customer names) by Payment ID. Produces Elena's daily review spreadsheet and two OFX bank feed files.

Automated
3

Elena Reviews Merged Report

Elena opens the daily Excel report from the reports page. Checks customer names, amounts, refunds, and fees are correct before QB upload.

Manual — 2 minutes
4

Natalia Uploads OFX Files to QuickBooks

Downloads 2 OFX files from the reports page. Opens QB Banking tab. Uploads one to "Square Deposits" and one to "Square Clearing." All transactions appear in For Review.

Manual — 30 seconds
5

Natalia Matches Transactions to Invoices

In QB Banking → For Review, Natalia matches each bank feed entry to the corresponding invoice. QB links the payment to the invoice and reduces the customer's balance.

Manual — varies by volume

What Lands in QuickBooks

QB Area What Appears How It Gets There
Sales → Invoices One invoice per sale showing the full package amount (e.g., $4,000). Created from CRM daily sales data. Automated via QB API
Banking → Square Deposits Booking deposit payments with customer names, daily fee deductions, refunds. OFX file upload (Natalia)
Banking → Square Clearing All other payments (recurring, studio sales, office) with customer names, daily fee deductions, refunds, chargebacks. OFX file upload (Natalia)
Why OFX bank feeds? Web connectors create phantom invoices and inflate sales records. OFX files only show money arriving — they don't create extra invoices or distort A/R balances. This is the clean approach Elena's team specified.

What the Merged Report Looks Like

This is the Excel file Elena reviews each day. One report per city, all locations except deposits.

DateTotal CollectedCustomer NameReference ID
3/26/2026$200.00Samantha KneeC3758899
3/26/2026$550.00Osioriamhe AnetekhaiC3835916
3/26/2026$280.00Brian GriffinC3760818
3/26/2026$500.00Gabriel BaileyC3751034
3/26/2026$850.00Qecia NkayC3759315
3/26/2026$850.00Qeren NkayC3757605
3/26/2026($58.33)Refund
3/26/2026($144.08)Square Fees

Rollout Plan

1
City Live Now
(Chicago)
6
Total Cities
to Roll Out
~30s
Daily Upload
Time per City
PhaseWhatWhen
1Chicago sandbox validated by ElenaNow
2Chicago goes live in production QBUpon Elena's approval
3Roll out to Texas (Houston + Dallas)After Chicago stable
4Boston, New York, Florida, NashvilleSequential

Key Design Decisions

OFX bank feeds instead of web connector — Web connectors create hidden invoices behind the scenes, inflating sales figures. A customer with a $4,000 package would show $4,500 in sales if a $500 payment also generated an invoice. OFX files avoid this entirely.

Two bank feeds, not one — Deposits are separated from recurring/sales payments because they map to different income accounts in Elena's chart of accounts.

Daily fee lump sums — Processing fees are consolidated into one line per day rather than one fee per transaction, keeping the bank feed clean and matching how Square reports fees to the bank.

Customer full names, never location names — The bank feed shows "Ana Rodriguez" not "Recurring Collections Ana." This is how Elena needs it for customer-level reconciliation.