E-commerce Bookkeeper (QuickBooks Online) — Multi-Platform Payout Reconciliation

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

2500

HOURS PER WEEK

40

DATE UPDATED

Sep 4, 2026

JOB OVERVIEW

E-commerce Bookkeeper (QuickBooks Online) — Multi-Platform Payout Reconciliation

JOB TYPE: Full-time

SALARY: $2,500/month

LOCATION: Remote

JOB DESCRIPTION:

We're a US-based bookkeeping practice serving e-commerce and retail clients, and we're looking for a senior bookkeeper who already understands the part of this work that trips most people up: reconciling what a sales platform reports against what actually hits the bank.

This is not a data-entry role. You'll own client books independently and review work done by others, so you need to genuinely understand why a payout never matches gross sales — fees, refunds, chargebacks, sales tax, held funds, and platform financing repayments that live in a separate report from the sales data.
What you'll do:

Own monthly close for multiple e-commerce clients in QuickBooks Online — categorization, reconciliation, and clean financials.

Reconcile platform payouts to bank deposits, correctly separating gross sales, processing fees, refunds, and sales tax rather than booking the net deposit as revenue.

Set up and maintain clearing accounts so sales, fees, and payouts flow correctly.

Handle platform financing (e.g., Square Loans / Capital, Shopify Capital, PayPal Working Capital): book the funding as a liability, split repayments into principal vs. fee, and reconcile the liability against the platform's own loan/balance report each month.

Account for cash sales, owner draws, and tender-type differences.

Review junior bookkeepers' work and catch reconciliation errors before they reach the client.

Required:

3+ years ecommerce bookkeeping, with strong QuickBooks Online expertise.
Hands-on experience reconciling at least two of these: Square, Shopify, Stripe, Amazon, PayPal, Etsy.
A real understanding of the payout-vs-sales gap and how to use a platform's reports to explain it.
Strong written English and reliable overlap with US business hours (some hours between 9am–5pm Pacific Time).
Accuracy, discretion with financial data, and the ability to work independently.

Nice to have:

Experience across several of the platforms above.
Familiarity with platform financing products and how their repayments are reported.
QuickBooks ProAdvisor certification.

**Screening — to apply, complete all of these:**
Send the following to our WhatsApp at ---------- :

1. Start your application with the word PAYOUT so we know you read this post in full.
2. Answer this in 3–5 sentences: A client's Square sales report shows $10,000 in gross sales for the month, but only $8,900 was deposited to their bank, and they have an active Square Loan. Walk us through what makes up that $1,100 difference and which report you'd pull to confirm the loan portion.
3. Your resume (PDF)
4. A 1–2 minute video introduction telling us about your e-commerce bookkeeping experience and which platforms you've reconciled.

Applications without the keyword, a real answer to the question, and a WhatsApp submission (resume + video) will not be reviewed.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0010
Controller Execution Time ( Jobseekers / Job )  0.0145
Total Execution Time  0.0162
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,506,984 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/E-commerce-Bookkeeper-QuickBooks-Online-Multi-Platform-Payout-Reconciliation-1671674
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0066 seconds)  (Hide)
0.0005   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1671674
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 923591
 LIMIT 1 
0.0005   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1671674
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-09',ej.date_added) duration_daysDATEDIFF('2026-09-09',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-09-09',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1671674' 
0.0005   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1671674 
0.0008   UPDATE employer_jobs SET hit_counts '***Jun-18-2026=506***Jun-19-2026=265***Jun-20-2026=69***Jun-21-2026=65***Jun-22-2026=104***Jun-23-2026=46***Jun-24-2026=31***Jun-25-2026=27***Jun-26-2026=32***Jun-27-2026=10***Jun-28-2026=11***Jun-29-2026=19***Jun-30-2026=22***Jul-01-2026=18***Jul-02-2026=19***Jul-03-2026=4***Jul-04-2026=7***Jul-05-2026=4***Jul-06-2026=9***Jul-07-2026=15***Jul-08-2026=13***Jul-09-2026=15***Jul-10-2026=13***Jul-11-2026=9***Jul-12-2026=1***Jul-13-2026=10***Jul-14-2026=13***Jul-15-2026=13***Jul-16-2026=7***Jul-17-2026=5***Jul-18-2026=3***Jul-19-2026=5***Jul-20-2026=11***Jul-21-2026=3***Jul-22-2026=10***Jul-23-2026=9***Jul-24-2026=7***Jul-25-2026=13***Jul-26-2026=16***Jul-27-2026=21***Jul-28-2026=14***Jul-29-2026=28***Jul-30-2026=18***Jul-31-2026=23***Aug-01-2026=20***Aug-02-2026=14***Aug-03-2026=17***Aug-04-2026=15***Aug-05-2026=13***Aug-06-2026=11***Aug-07-2026=24***Aug-08-2026=23***Aug-09-2026=29***Aug-10-2026=26***Aug-11-2026=21***Aug-12-2026=24***Aug-13-2026=22***Aug-14-2026=20***Aug-15-2026=23***Aug-16-2026=28***Aug-17-2026=34***Aug-18-2026=28***Aug-19-2026=33***Aug-20-2026=29***Aug-21-2026=27***Aug-22-2026=21***Aug-23-2026=27***Aug-24-2026=27***Aug-25-2026=27***Aug-26-2026=19***Aug-27-2026=3***Aug-28-2026=6***Aug-29-2026=1***Aug-30-2026=2***Aug-31-2026=2***Sep-01-2026=7***Sep-02-2026=12***Sep-03-2026=8***Sep-04-2026=319***Sep-05-2026=368***Sep-09-2026=1' WHERE job_id'1671674'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jun-2026=1205***Jul-2026=356***Aug-2026=616***Sep-2026=715' WHERE job_id'1671674'  
0.0004   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1671674' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1671674 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '923591'
AND `date_added` >= '2022-06-08' 
0.0007   select from teasers 
0.0004   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)