Odoo 18 Accounting Specialist - AR/AP Reconciliation (1-Week Project)

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

TYPE OF WORK

Gig

SALARY

$600 for the 1-week project

HOURS PER WEEK

40

DATE UPDATED

Aug 26, 2026

JOB OVERVIEW

Odoo 18 Accounting Specialist - AR/AP Reconciliation + Duplicate Bank Cleanup
One-week full-time project. $600 total. Ongoing work after for the right person.

U.S. accounting firm (Florida). Live Odoo 18 database, wholesale distribution
client. Cash, cards and PayPal are already reconciled and the balance sheet is
built. What is left is matching work - by someone who knows Odoo, not someone
learning it on my database. Not general bookkeeping. Not data entry.

THE SCOPE - all of it
M1 (Day 2): Bank Suspense, 51 open lines. 19 offsetting pairs are already
identified for you - match them. Clear or flag the rest.
M2 (Day 4): Duplicate payments recorded twice across two bank journals -
fixed by a written method you follow exactly. Plus Pending/Unclassified,
453 lines.
M3 (Day 5): AP 244 open lines, AR 247 open lines - match payments to bills
and receipts to invoices. Deliver the residual list.

Target is "everything matchable, matched - everything else documented." NOT
zero open lines. Some items need the client's answer. Anyone promising zero is
guessing, and guessing is what I am replacing.

NOT in scope: inventory, physical counts, crypto, cash on hand, drafts.

THE RULES - non-negotiable
- Never delete. Deleting a duplicate payment un-applies the invoice and
destroys the matching. You re-code and reconcile.
- Never apply a partial payment. Flag it and stop.
- Match needs the exact amount plus same/near date or matching partner. A
payer name different from the customer is normal here, not a rejection.
- Anything unidentified goes on the residual list the same day, with the
entry reference and what you checked.
- You work in a user seat I create. Every entry is stamped with your name.
- Daily EOD log in the tracker I give you: hours, lines cleared, lines
flagged, where you stopped. No log = the day does not count.

PAY - $600 total
$50 paid test task (10 lines, ~1 hour) before the project is awarded.
$450 project, paid $150 per milestone as each one clears review.
$100 bonus if all three land clean inside the week.
Each milestone is spot-checked before it is paid; errors are reworked at
your cost. Flagged items are never errors. Guessed ones are.
Phase 2 later (Stock Interim / inventory valuation) pays separately.

MUST HAVE
3+ years hands-on Odoo Accounting, v17/v18 - name the versions you have
worked in. Real cleanup of open AR/AP aging on a live database. You know the
bank reconciliation screen and outstanding receipts/payments accounts.
Strong written English. 40 hours available in ONE week with 3+ hours daily
overlap with U.S. Eastern time.

TO APPLY - skip this and I delete it
Start with the word ODOO-RECON, then answer:
1. A customer payment was recorded twice, once in each of two bank journals,
both applied to the same invoice. How do you fix it in Odoo without
deleting anything and without un-applying the invoice?
2. What is the outstanding receipts/payments account on a bank journal, and
what breaks when a payment posts to a journal with the wrong one?
3. One real AR or AP cleanup you did on a LIVE Odoo database - what was
open, what you did, how you proved it was right.
4. Odoo versions, can you commit 40 hours in one week, start date, your
hours in U.S. Eastern time.
5. Stock Interim / inventory valuation experience - yes or no, one sentence.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0136
Total Execution Time  0.0150
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,502,840 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Odoo-18-Accounting-Specialist-ARAP-Reconciliation-1-Week-Project-1717523
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0083 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1717523
 LIMIT 1 
0.0010   SELECT *
FROM `employers`
WHERE `employer_id` = 946556
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1717523
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-03',ej.date_added) duration_daysDATEDIFF('2026-09-03',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-03',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1717523' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1717523 
0.0008   UPDATE employer_jobs SET hit_counts '***Aug-26-2026=331***Aug-27-2026=192***Aug-28-2026=63***Aug-29-2026=21***Aug-30-2026=1***Sep-03-2026=1' WHERE job_id'1717523'  
0.0008   UPDATE employer_jobs SET monthly_hits '***Aug-2026=608***Sep-2026=1' WHERE job_id'1717523'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1717523' 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` = 1717523 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '946556'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)