تخطي للذهاب إلى المحتوى

Mine Accounting Documentation Page

Click on the link below to watch the video or if you prefer check out our writing guide in the section below

Watch Video

Odoo Workflow Training Guide

Odoo Workflow Training Guide

Powered by Goodoo.ai from Smetools

Purpose of Training

This training guide provides a comprehensive overview of the end-to-end operational workflow within Odoo, from the moment a sales order is created to the final financial reconciliation. The goal is to ensure all teams understand their roles, responsibilities, and the critical control points throughout the process, including standard procedures and exception handling.

Process Phases

The workflow is broken down into five distinct phases:

  1. Sales Order & Down Payment
  2. Procurement & Receiving
  3. Delivery & Final Invoicing
  4. Exception Handling (Cancellations & Returns)
  5. Financial Reconciliation

Team Responsibilities

Pearl Team

The Pearl Team, including the Pearl Warehouse Team, manages the entire physical and operational lifecycle of an order.

  • Sales Order creation and management.
  • Purchase Order confirmation.
  • Managing vendor bills and payment terms.
  • Receiving and validating incoming stock.
  • Managing warehouse operations and inventory transfers.
  • Initiating and processing customer deliveries.
  • Handling customer claims and returns initiation.
E2 Team

The E2 Team is responsible for all financial transactions, reconciliation, and ensuring the accuracy of accounting records.

  • Reconciling down payments and final payments (Stripe, ACH).
  • Processing refunds and credit notes.
  • Reconciling vendor bills and payments.
  • Auditing and reconciling key journal items (Stock Interim, Outstanding Payments, etc.).
  • Ensuring all financial entries are balanced before closing periods.
  • Managing the final financial sheets.
Phase Test Case ID Test Scenario Expected Result Responsible Team
Phase 1: Sales Order & Down Payment
Sales Order & Down Payment UAT-001 Create a Sales Order via Stripe with 100% down payment terms. SO is created, and upon confirmation, a down payment invoice is automatically generated. Pearl Team
Sales Order & Down Payment UAT-002 Register payment for the down payment invoice using the 'Stripe' journal. The invoice is marked as 'In Payment', and the customer's wallet reflects the deposit. E2 Team
Phase 2: Procurement & Receiving
Procurement & Receiving UAT-003 Confirm the auto-generated Purchase Order linked to the SO. PO is confirmed, and a receipt is generated in the warehouse module. Pearl Team
Procurement & Receiving UAT-004 Create a Vendor Bill from the PO, setting a specific bill date and due date. Vendor Bill is created in a draft state, ready for confirmation. Due date reflects the correct payment terms. Pearl Team
Procurement & Receiving UAT-005 Receive products against the PO, set the 'WH Arrival Date', and validate. The products are moved into stock. The 'Received' quantity on the PO matches the ordered quantity. Pearl Team
Phase 3: Delivery & Final Invoicing
Delivery & Final Invoicing UAT-006 Validate the delivery for the Sales Order. Products are moved out of stock. 'Delivered' quantity on the SO is updated. Two final invoices are auto-generated. Pearl Team
Delivery & Final Invoicing UAT-007 Confirm both the final revenue invoice and the down payment reversal credit note. The two invoices reconcile each other, resulting in a zero balance due. Revenue and COGS are recognized. E2 Team
Phase 4: Exception Handling
Exception Handling UAT-008 Before delivery, customer cancels 1 of 10 items. Update SO quantity. SO shows a negative balance. A credit note must be created for the down payment of 1 item. Pearl Team
Exception Handling UAT-009 Process a return to the vendor for the 1 cancelled item. An 'OUT' transfer is created and validated. A vendor credit note is created to reverse the bill for 1 item. Pearl Team
Exception Handling UAT-010 After delivery, customer initiates a claim to return 2 items. A Claim is created. A 'Return' transfer is generated to receive items back into stock. Pearl Team
Phase 5: Financial Reconciliation
Financial Reconciliation UAT-011 Review the Journal Items for a closed SO/PO cycle. The 'Stock Interim Delivered' and 'Stock Interim Received' accounts should be fully reconciled with a balance of zero. E2 Team
Financial Reconciliation UAT-012 Review the 'Outstanding Payments' report. All payments received via Stripe/ACH should be reconciled against bank statements, clearing this report. E2 Team

Step 1.1: Create Sales Order Pearl Team

The process begins when a customer order is entered into the system. This can happen automatically from an e-commerce source like Mongo or be created manually. Key details like the customer, products, quantities, and warehouse must be accurate. Payment terms are critical; orders paid via Stripe should have "Immediate Payment" terms to trigger the automatic down payment invoice upon confirmation.

Step 1.2: Confirm Sales Order Pearl Team

Once all order details are verified, the Sales Order is confirmed. This action locks in the order and triggers the next steps in the workflow, such as creating a linked Purchase Order and, for pre-paid orders, generating the down payment invoice. The system will prevent confirmation if a warehouse is not selected.

Step 1.3: Process Down Payment Invoice E2 Team

For pre-paid orders, a down payment invoice is created. The E2 team is responsible for reconciling this invoice once the funds are confirmed in the respective journal (e.g., Stripe). This is done by using the "Register Payment" function, which marks the invoice as paid and credits the customer's account, allowing the procurement process to proceed.

Step 2.1: Confirm Purchase Order Pearl Team

A Purchase Order (PO) is automatically generated and linked to the Sales Order. The Pearl Team reviews this PO to ensure it accurately reflects the items needed for the customer order and confirms it to send to the vendor. This action signals the intent to purchase and creates an anticipated incoming shipment.

Step 2.2: Create Vendor Bill Pearl Team

When the vendor sends their invoice, the Pearl Team creates a corresponding Vendor Bill in Odoo from the PO. It is critical to enter the correct `Bill Date` as stated on the vendor's document and to set the `Due Date` according to the agreed payment terms. This ensures Accounts Payable aging is accurate for the E2 Team.

Step 2.3: Receive & Validate Products Pearl Team

The Pearl Warehouse Team physically receives the goods from the vendor. In Odoo, they open the corresponding receipt, enter the `WH Arrival Date` to confirm when the items arrived, and validate the quantities. This action moves the products from "in-transit" to "on-hand" stock, making them available for delivery.

Step 3.1: Deliver Order to Customer Pearl Team

Once the goods are in the warehouse and ready for the customer, the Pearl Team processes the delivery. They validate the delivery order in Odoo, which confirms that the items have been shipped. This action updates the Sales Order's "Delivered" quantity and triggers the final invoicing step.

Step 3.2: Confirm Final Customer Invoices E2 Team

After delivery, the system automatically generates two invoices: a final invoice for the full value of the goods (recognizing revenue) and a credit note that reverses the initial down payment. The E2 Team confirms both. These two transactions offset each other, clearing the customer's balance and ensuring the "Total less down payment" on the SO is zero. This correctly moves the value from a customer deposit to recognized revenue.

Step 4.1: Handle Pre-Delivery Cancellation Pearl Team / E2 Team

If a customer reduces their order quantity before delivery, the Pearl Team unlocks the SO and updates the quantity. This creates a negative balance. The Pearl Team then creates a credit note against the original down payment invoice for the cancelled amount. The E2 Team processes the refund in Stripe. The Pearl team must then handle the excess stock, either by processing a return to the vendor or by creating an internal transfer to a consignment location if the vendor does not accept the return.

Step 4.2: Handle Post-Delivery Return (Claim) Pearl Team / E2 Team

If a customer wants to return items after delivery due to quality issues, the Pearl Team initiates a Claim. This creates a return transfer to bring the items back into the warehouse. Once the return is validated, the E2 Team must create a credit note against the final revenue invoice to process the customer's refund. The returned items are then assessed and either returned to the vendor or moved to consignment stock via an internal transfer by the Pearl Team.

Step 5.1: Reconcile Journal Items E2 Team

This is a critical, ongoing task for the E2 Team. They must regularly review the journal items to ensure key accounts are balanced. The goal is to have the `Stock Interim: Delivered` and `Stock Interim: Received` accounts fully reconciled to zero for every closed transaction. They must also manage and clear the `Outstanding Payments` and `Customer Deposits` accounts by reconciling them against bank and payment gateway statements. This ensures the financial integrity of the entire operation.

SOP: Pre-Delivery Cancellation

Start: Customer cancels 1 of 10 items Pearl Team
Unlock SO, update quantity to 9 Pearl Team
Create Credit Note on Down Payment Invoice Pearl Team
Process refund in Stripe E2 Team
Can excess item be returned to vendor? Pearl Team
YES
Process Return to Vendor (OUT) Pearl Team
Create Vendor Credit Note E2 Team
NO
Create Internal Transfer to Consignment Stock Pearl Team

SOP: Post-Delivery Return (Claim)

Start: Customer receives items, claims 2 are defective Pearl Team
Create Claim in Odoo for 2 items Pearl Team
Create & Validate Return Receipt (IN) Pearl Team
Create Credit Note against Final Invoice E2 Team
Process refund to customer E2 Team
Can returned items be sent back to vendor? Pearl Team
YES
Process Return to Vendor (OUT) Pearl Team
NO
Create Internal Transfer to Consignment Stock Pearl Team
Complete Guide: Export Payroll Data from Gusto for Odoo Integration

Complete Guide: Export Payroll Data from Gusto for Odoo Integration

Streamline your payroll accounting with step-by-step instructions

Updated: January 2025 For SME Business Owners & Accountants

Overview & Benefits

Why Export Gusto Payroll Data to Odoo?

While Gusto and Odoo don't have a native integration, you can easily export payroll journal entries from Gusto and import them into Odoo for comprehensive financial management. This approach offers significant advantages for SME businesses.

Benefits

  • • Centralized financial data in Odoo
  • • No custom development required
  • • Full control over import process
  • • Cost-effective solution
  • • Monthly processing keeps it manageable
  • • Maintains audit trail in both systems

Considerations

  • • Manual process (30 min/month)
  • • Requires account mapping setup
  • • Not real-time synchronization
  • • Need to maintain consistent process
  • • Potential for human error

Perfect for Monthly Payroll

Monthly payroll processing makes this approach ideal - you'll only need to export and import once per month, taking approximately 30 minutes total. This gives you 80% of the benefits of full integration with 20% of the complexity.

Prerequisites

Before You Begin

1

Gusto Admin Access

You need admin access to Gusto with one of these permissions:

  • • Run payroll
  • • View payroll reports and tax filings
2

Odoo Setup

Ensure you have:

  • • Odoo Accounting module installed
  • • Chart of accounts configured
  • • Payroll journal created
  • • Import permissions in Odoo
3

Account Mapping Plan

Prepare your account mapping between Gusto and Odoo:

  • • Identify corresponding accounts
  • • Document the mapping
  • • Test with sample data

Method 1: Standard Payroll Journal Report

Recommended for Most Users

This is the simplest method to get started. Gusto's standard Payroll Journal Report provides all the essential data you need for Odoo import.

Best for: Small businesses with straightforward payroll needs and standard chart of accounts

Step-by-Step Instructions:

1
Log into Gusto

Sign in to your Gusto admin account using your credentials.

2
Navigate to Reports

Click on the "Reports" tab in the left navigation menu.

Gusto Reports Navigation
3
Select Payroll Journal Report

From the available reports, locate and select the "Payroll Journal Report".

Gusto Reports List
4
Set Date Range

Configure the report for your monthly payroll period:

  • • Select start date (first day of month)
  • • Select end date (last day of month)
  • • Or choose specific payroll dates
5
Export as CSV

Choose CSV format for easy import into Odoo:

  • • Click "Generate Report"
  • • Select format: CSV (not PDF)
  • • Download the file

Important Note:

The standard Payroll Journal Report may not map perfectly to your Odoo chart of accounts. You may need to manually adjust account codes after export or use Method 3 (General Ledger Mapper) for automatic mapping.

Method 2: Custom Reports

Most Flexible Approach

Create custom reports tailored to your specific needs. This method gives you complete control over which data fields to include and how to structure the export.

Best for: Businesses with specific reporting requirements or complex payroll structures

Step-by-Step Instructions:

1
Access Custom Reports

Navigate to Reports → Custom Report in your Gusto dashboard.

2
Configure Report Structure

Set up how you want your data organized:

Custom Report Structure
  • Break down by: Payroll, Employee, or Work Address
  • Time period: Select your monthly date range
  • Specific payrolls: Choose individual payroll runs
3
Select Data Columns

Choose which fields to include in your export:

Custom Report Columns
Essential Columns for Odoo Optional Columns
• Gross earnings
• Total employee deductions
• Total employer contributions
• Total employee taxes
• Total employer taxes
• Net pay
• Employee details
• Department breakdown
• Job codes
• Project tracking
• Overtime details
• Benefit specifics
4
Save as Template

Create a reusable template for future months:

Save Report Template
  • • Click "Save as Template"
  • • Name it "Monthly Payroll Journal for Odoo"
  • • This saves time for future exports
5
Export to CSV

Generate and download your custom report:

Export CSV
  • • Click "Download" button
  • • Select CSV format
  • • Save file with descriptive name

Pro Tip:

Once you've created your template, future monthly exports will take less than 5 minutes. Just load the template, adjust the date range, and export!

Method 3: General Ledger Mapper

Advanced Account Mapping

The General Ledger Mapper allows you to map Gusto expense categories directly to your Odoo chart of accounts. This provides the most accurate and automated account mapping.

Best for: Businesses with complex chart of accounts or those wanting automated account mapping

Initial Setup (One-time):

1
Access General Ledger Mapper

Navigate to App Directory → Accounting → General Ledger Mapper:

  • • Go to App Directory in Gusto
  • • Under "Categories," choose Accounting
  • • Select General Ledger Mapper
  • • Click "Connect"
2
Upload Odoo Chart of Accounts

Export your chart of accounts from Odoo and upload to Gusto:

CSV Format Required:
Column 1: Account Codes (e.g., 620000)
Column 2: Account Names (e.g., Salaries & Wages)
  • • Export chart of accounts from Odoo as CSV
  • • Click "Upload CSV" in Gusto
  • • Choose your file and click "Open"
3
Map Gusto Categories to Odoo Accounts

Connect each Gusto expense category to corresponding Odoo account:

Gusto Category Typical Odoo Account
Gross Wages 620000 - Salaries & Wages
Federal Tax 241000 - Federal Tax Payable
State Tax 241100 - State Tax Payable
FICA 241200 - FICA Payable
Health Insurance 241300 - Benefits Payable
Net Pay 211000 - Payroll Payable
4
Configure Advanced Options (Optional)

Set up additional mapping by departments, jobs, or projects:

  • Department mapping: Different accounts per department
  • Job code mapping: Separate tracking by job roles
  • Project mapping: Track costs by project

Monthly Export Process:

1
Navigate to Pay History

Go to Pay → Pay History in your Gusto dashboard.

2
Select Monthly Payroll

Find your monthly payroll run and click "View Details".

3
Download Mapped Report

Click "Download" to get your pre-mapped CSV file ready for Odoo import.

Key Advantage:

Once configured, the General Ledger Mapper automatically applies your account mappings to every export. This eliminates manual account code adjustments in Odoo.

Account Mapping Guide

Proper account mapping is crucial for accurate financial reporting. Here's a comprehensive guide to mapping common Gusto payroll categories to standard Odoo accounts.

Standard Account Mapping

Gusto Category Account Type Odoo Account Code Odoo Account Name Notes
Gross Wages Expense 620000 Salaries & Wages Total employee compensation
Federal Income Tax Liability 241000 Federal Tax Payable Employee tax withholding
State Income Tax Liability 241100 State Tax Payable State-specific withholding
Social Security (Employee) Liability 241200 FICA Payable Employee portion
Medicare (Employee) Liability 241201 Medicare Payable Employee portion
Social Security (Employer) Expense 625000 Payroll Tax Expense Employer portion
Medicare (Employer) Expense 625001 Medicare Tax Expense Employer portion
FUTA Expense 625100 Federal Unemployment Tax Employer federal unemployment
SUTA Expense 625200 State Unemployment Tax Employer state unemployment
Health Insurance Liability 241300 Benefits Payable Employee benefit deductions
401k Employee Liability 241400 401k Payable Employee retirement contributions
401k Employer Match Expense 626000 Retirement Benefits Expense Company match expense
Net Pay Liability 211000 Payroll Payable Amount paid to employees

Important Considerations:

  • • Account codes may vary based on your Odoo chart of accounts setup
  • • Some businesses prefer to separate payroll taxes by state
  • • Consider department-specific wage accounts for better reporting
  • • Verify account types (Asset, Liability, Expense) match your setup

Importing to Odoo

Once you've exported your payroll data from Gusto, follow these steps to import it into Odoo accounting.

Step-by-Step Import Process

1
Prepare the CSV File

Clean and format your Gusto export for Odoo import:

  • • Remove unnecessary columns
  • • Ensure account codes match your Odoo chart
  • • Verify date formats (YYYY-MM-DD)
  • • Check for any special characters
2
Access Odoo Journal Entries

Navigate to the journal entry import function:

  • • Go to Accounting → Miscellaneous → Journal Entries
  • • Click "Import" or "Upload" button
  • • Select your prepared CSV file
3
Map CSV Columns

Match your CSV columns to Odoo fields:

CSV Column Odoo Field
Date Date
Account Code Account
Description Label
Debit Debit
Credit Credit
Reference Reference
4
Preview and Validate

Review the import preview before processing:

  • • Check that debits and credits balance
  • • Verify account codes are correct
  • • Ensure dates are properly formatted
  • • Review any error messages
5
Import and Post

Complete the import process:

  • • Click "Import" to process the data
  • • Review the created journal entries
  • • Post the entries when satisfied
  • • Create a backup before posting

Import Template Tip:

After your first successful import, save the column mapping as a template in Odoo. This will streamline future monthly imports to just a few clicks.

Best Practices

Do's

  • Create a monthly routine - process payroll and export immediately
  • Use consistent file naming: "Payroll_YYYY_MM_Gusto.csv"
  • Always export as CSV, not PDF
  • Set up import templates in Odoo for consistency
  • Keep backup copies of all export files
  • Document your account mapping for reference
  • Review imported entries before posting
  • Reconcile with bank statements monthly

Don'ts

  • Don't wait until tax season to start exporting
  • Don't manually edit account codes in CSV - use mapping
  • Don't skip the preview step in Odoo imports
  • Don't delete original export files after import
  • Don't post entries without balancing verification
  • Don't change account mapping mid-year without documentation
  • Don't rely on memory - document your process
  • Don't forget to update mappings when adding new payroll items

Monthly Workflow Checklist

Week 1 (Payroll Processing)

  • □ Process monthly payroll in Gusto
  • □ Verify all employees and amounts
  • □ Submit payroll for processing

Week 2 (Export & Import)

  • □ Export payroll journal from Gusto
  • □ Review and clean CSV file
  • □ Import into Odoo
  • □ Verify import accuracy

Week 3 (Reconciliation)

  • □ Reconcile with bank statements
  • □ Post journal entries
  • □ Review payroll reports
  • □ File export for records

Troubleshooting

Common Issues & Solutions

Issue: CSV Import Fails in Odoo

The CSV file won't import or shows errors

Solutions:
  • • Check CSV format - ensure UTF-8 encoding
  • • Verify account codes exist in Odoo
  • • Remove special characters from descriptions
  • • Ensure debits and credits balance
  • • Check date format is YYYY-MM-DD

Issue: Account Mapping Errors

Transactions are posting to wrong accounts

Solutions:
  • • Review and update General Ledger Mapper settings
  • • Verify account codes in both systems
  • • Check for new payroll items in Gusto
  • • Update account mapping documentation

Issue: Unbalanced Journal Entries

Debits don't equal credits in imported entries

Solutions:
  • • Check for missing entries in Gusto export
  • • Verify all payroll components are included
  • • Review employer tax calculations
  • • Check for rounding differences

Issue: Missing Payroll Data

Some payroll information is not appearing in reports

Solutions:
  • • Verify date range covers all payroll periods
  • • Check user permissions in Gusto
  • • Ensure payroll is fully processed
  • • Review report filters and settings

Getting Help

Gusto Support

  • Gusto Help Center
  • • Live chat in your Gusto account
  • • Phone support for admin users

Odoo Support

Official Resources & Documentation

Conclusion

Exporting payroll data from Gusto to Odoo doesn't have to be complicated. With the right approach and a consistent monthly routine, you can maintain accurate financial records without the complexity of custom integrations.

Key Takeaways:

  • • Monthly payroll processing makes this approach highly manageable
  • • Choose the method that best fits your business complexity
  • • Consistent processes reduce errors and save time
  • • Proper account mapping is crucial for accurate reporting
  • • This solution provides 80% of integration benefits with minimal complexity

© 2025 Gusto to Odoo Integration Guide

This guide is for educational purposes. Always consult with your accountant for specific business needs.

Monthly Tax Update Guide: Export from TaxJar and Import to Odoo

Monthly Tax Update Guide

Export from TaxJar and Import to Odoo

Complete monthly workflow for maintaining accurate tax calculations without API integrations or developer involvement. This guide provides a 30-minute monthly process to keep your Odoo tax rates current using TaxJar data.

Monthly Process Overview

Step 1: Export

10 minutes

Download TaxJar transaction data

Step 2: Process

10 minutes

Clean and format data in Excel

Step 3: Import

10 minutes

Update Odoo fiscal positions

Total Time Investment: 30 minutes monthly | No API setup | No developer involvement

Why Choose Monthly Manual Process?

✅ Advantages

  • No API integration complexity
  • Full control over tax updates
  • No ongoing API costs
  • Manual review before import
  • No technical dependencies
  • Predictable monthly workflow

⚠️ Considerations

  • Monthly manual process required
  • Rates updated monthly (not real-time)
  • Requires Excel/Sheets knowledge
  • Need backup person training

Prerequisites & Access Requirements

Required Access

  • TaxJar account with export permissions
  • Odoo accounting module access
  • Excel or Google Sheets
  • File storage for monthly archives

Skills Needed

  • Basic Excel formulas
  • Odoo navigation
  • CSV import/export
  • Data validation

Step 1: Export Data from TaxJar (10 minutes)

1

Login to TaxJar Dashboard

Access your TaxJar account at app.taxjar.com

2

Navigate to Transactions

Click on the Transactions tab in the navigation bar at the top of the screen

3

Export Transaction Data

Click Actions at the top right, then select Export CSV

Note: TaxJar supports only one export at a time. If you don't see the export option, wait for any ongoing export to complete.

4

Select Date Range

Choose the current month's transactions to get the most recent tax rate data

5

Download and Save

TaxJar will email you a download link. Save the file with a clear naming convention:

Tax_Updates/2025_07_TaxJar_Export.csv

TaxJar Export Data Structure

Your exported CSV will contain columns similar to:

transaction_id,date,zip_code,state,county,city,state_rate,county_rate,city_rate,combined_rate TX001,2025-07-15,90210,CA,Los Angeles,Beverly Hills,0.0725,0.0025,0.0000,0.0975 TX002,2025-07-20,10001,NY,New York,New York,0.0400,0.0000,0.0400,0.0800

Step 2: Process Data in Excel/Sheets (10 minutes)

1

Open TaxJar Export

Open the downloaded CSV file in Excel or Google Sheets

2

Extract Unique ZIP Codes

Create a new sheet and use formulas to get unique ZIP codes with their tax rates:

# Excel Formula Examples: =UNIQUE(A:A) # Get unique ZIP codes =CONCATENATE(B2,"-",C2,"-",A2) # Create fiscal position name =SUM(D2:G2) # Calculate combined rate =TEXT(D2,"0.00%") # Format for percentage
3

Clean and Format Data

Remove duplicates, handle missing data, and format rates consistently

  • • Remove duplicate ZIP codes
  • • Handle missing city/county data
  • • Convert rates to decimal format
  • • Validate ZIP code formats
4

Create Odoo Import Template

Format your data for Odoo import using this structure:

zip_code,fiscal_position_name,state_tax_rate,county_tax_rate,city_tax_rate,combined_rate,effective_date 90210,CA-Beverly Hills-90210,7.25,0.25,0.00,9.75,2025-08-01 10001,NY-New York-10001,4.00,0.00,4.00,8.00,2025-08-01
5

Save Processed File

Save as CSV for Odoo import:

Tax_Updates/2025_07_Odoo_Import.csv

Excel Processing Template

Create a reusable template with these sheets:

  • Raw Data: Paste TaxJar export here
  • Processing: Clean and deduplicate data
  • Odoo Import: Final formatted data
  • Validation: Check for errors and anomalies

Step 3: Import to Odoo (10 minutes)

1

Access Odoo Accounting

Navigate to Accounting → Configuration → Fiscal Positions

2

Backup Current Settings

Export current fiscal positions for backup before making changes

Important: Always backup your current tax settings before importing new data.

3

Import Processed Data

Use Odoo's import function to upload your processed CSV file

  • • Click Import button
  • • Select your CSV file
  • • Map columns to Odoo fields
  • • Validate data before import
4

Review and Activate

Check imported data for accuracy and activate new rates

  • • Review imported fiscal positions
  • • Verify tax rate calculations
  • • Test with sample transactions
  • • Activate for the next month
5

Update Customer Assignments

Ensure customers are assigned to correct fiscal positions based on ZIP codes

One-Time Odoo Setup

Tax Structure Setup

Create Base Tax Categories:

  • • State Sales Tax (variable rate)
  • • County Sales Tax (variable rate)
  • • City Sales Tax (variable rate)
  • • Special District Tax (variable rate)
  • • Combined Sales Tax (calculated)

Fiscal Position Template

Configuration:

  • • Name: {State}-{City}-{ZIP}
  • • Tax mapping: Location-based
  • • Auto-detect: By ZIP code
  • • Customer assignment: Automatic

Import Mapping Setup

CSV Column Odoo Field Description
zip_code ZIP Code Customer location identifier
fiscal_position_name Fiscal Position Name Unique identifier for tax rules
state_tax_rate State Tax Rate State-level tax percentage
county_tax_rate County Tax Rate County-level tax percentage
city_tax_rate City Tax Rate City-level tax percentage
combined_rate Total Tax Rate Sum of all applicable taxes
effective_date Effective Date When new rates become active

Monthly Process Checklist

Pre-Process (Day 30)

  • Export TaxJar data for the month
  • Create backup of current Odoo tax settings
  • Review any new ZIP codes in transactions
  • Check for significant rate changes

Process (Day 31)

  • Clean TaxJar export data
  • Remove duplicates and format rates
  • Update Odoo import template
  • Import and validate in Odoo

Post-Process (Day 1)

  • Activate new tax rates for the month
  • Test customer invoice calculations
  • Archive old tax data
  • Update process documentation

File Organization & Templates

Recommended Folder Structure

Tax_Updates/ ├── 2025_07_TaxJar_Export.csv ├── 2025_07_Odoo_Import.csv ├── Templates/ │ ├── TaxJar_Processing_Template.xlsx │ ├── Odoo_Import_Template.csv │ └── Monthly_Checklist.pdf └── Archive/ ├── 2025_06_Complete/ ├── 2025_05_Complete/ └── 2025_04_Complete/

Template Files

Excel Processing Template

Pre-configured with formulas for data cleaning and formatting

Odoo Import Template

Properly formatted CSV structure for Odoo import

Validation Checklist

Data quality checks and error prevention

Common Issues & Solutions

TaxJar Export Issues

Problem: Export option not available

Solution: Wait for existing export to complete (TaxJar allows one export at a time)

Problem: Empty or incomplete export

Solution: Check date range and transaction filters

Data Processing Issues

Problem: Duplicate ZIP codes with different rates

Solution: Use most recent transaction or highest rate for safety

Problem: Missing city/county information

Solution: Research missing data or use state-level rates

Odoo Import Issues

Problem: Import fails with validation errors

Solution: Check column mapping and data format

Problem: Fiscal positions not auto-assigning

Solution: Verify ZIP code matching rules in fiscal position settings

Best Practices & Tips

Do's

  • • Always backup before importing new data
  • • Review significant rate changes (>1%)
  • • Test calculations with sample transactions
  • • Keep detailed logs of all changes
  • • Train a backup person on the process
  • • Set calendar reminders for monthly updates
  • • Validate data quality before import

Don'ts

  • • Don't skip monthly updates
  • • Don't ignore validation errors
  • • Don't delete old backups immediately
  • • Don't make changes during busy periods
  • • Don't assume all ZIP codes are covered
  • • Don't forget to test after import
  • • Don't skip documentation updates

Process Evolution Timeline

Months 1-3: Learning Phase

  • • Refine templates and workflows
  • • Identify common issues and solutions
  • • Optimize data cleanup procedures
  • • Expected time: 45-60 minutes

Months 4-6: Optimization

  • • Streamline workflow to 25-30 minutes
  • • Automate Excel formulas and validation
  • • Develop error-checking procedures
  • • Expected time: 25-30 minutes

Months 7+: Maintenance

  • • Routine 20-minute monthly process
  • • Focus on exception handling
  • • Quarterly review of tax structure
  • • Expected time: 20-25 minutes

Key Resources & Links

Additional Tools

  • • Excel/Google Sheets for data processing
  • • CSV validation tools
  • • File organization software
  • • Calendar reminders for monthly tasks

Conclusion

This monthly process provides the perfect balance: TaxJar's accurate tax data with full control over your tax configuration, no API complexity, and minimal time investment.

Key Benefits:

  • • 30-minute monthly process
  • • No developer involvement needed
  • • Full control over tax updates
  • • Cost-effective solution
  • • Scales with your business

Expected Results:

  • • Accurate tax calculations
  • • Compliance with local regulations
  • • Streamlined monthly workflow
  • • Reduced manual errors
  • • Better audit preparation

This approach has been successfully implemented by numerous SME businesses transitioning from QuickBooks to Odoo, providing reliable tax management without the complexity of API integrations.

Last Updated: July 2025 | Monthly Process Time: 30 minutes