> For the complete documentation index, see [llms.txt](https://docs.xorosoft.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xorosoft.com/xoroerp-1/accounting/xoro-accounting-deep-dive/accounting-foundation-and-financial-governance-setup-guide.md).

# Accounting Foundation & Financial Governance Setup Guide

### 1. Overview

This document defines the foundational accounting structure required during client onboarding in XoroERP.

It covers:

• GAAP and accrual-based accounting principles\
• Chart of Accounts structure and governance\
• GL code logic and parent–child account controls\
• Fiscal year configuration and year-end closure\
• Accounting period locking controls\
• Item, customer, and vendor-level accounting configuration\
• Inventory debit and credit behavior\
• Common accounting clarifications and troubleshooting guidance

This guide ensures financial data integrity, accurate reporting, and compliance with structured accounting standards within Xoro.

***

### 2. Functional Workflow

#### 2.1 Purpose of Accounting Setup During Onboarding

**System Requirement**

• Accounting configuration is mandatory during onboarding\
• Core workflows cannot proceed without accounting setup\
• Financial reporting depends on structured accounts

**Operational Impact**

• Chart of Accounts must be created before transactions begin\
• Incomplete accounting setup blocks downstream ERP processes

***

#### 2.2 Accounting Principles Used in Xoro

**Accounting Standard**

• Xoro follows GAAP (Generally Accepted Accounting Principles)\
• System operates strictly on an accrual basis

**Revenue Recognition Rule**

• Revenue is recognized when goods are shipped\
• Payment receipt does not trigger revenue recognition

**Advance Payment Handling**

• Advance payments are recorded in [liability accounts](https://docs.xorosoft.com/xoroerp-1/accounting/xoro-accounting-deep-dive/pages/jMQ6liTbUD8TCLmnjKI8#id-5.-liability-accounts)\
• Liability is cleared only when shipment occurs

**Operational Clarification**

• P\&L discrepancies between Shopify and Xoro are expected\
• Shopify is cash-based; Xoro is accrual-based

***

#### 2.3 Chart of Accounts Creation & Structure

**Account Types Supported**

• Asset\
• Liability\
• Equity\
• Income\
• Expense\
• Non-posting

**Control Rules**

• Account names must be unique\
• GL codes are optional but recommended\
• Duplicate account names are not allowed\
• Duplicate GL codes are not allowed

**System Dependency**

• Xoro relies primarily on account names\
• GL codes support structured reporting but are not mandatory

***

#### 2.4 GL Codes, Parent–Child Accounts & Account Controls

**Parent–Child Account Requirements**

• Same account type\
• Same currency

Failure to meet either condition prevents hierarchy creation.

**Account Control Options**

• Mark account inactive (only if balance is zero)\
• Block posting while keeping account active

**Intercompany Configuration**

• Intercompany accounts can be excluded from consolidation\
• Flag impacts financial consolidation behavior

***

#### 2.5 Accounting Periods, Fiscal Years & Year-End Closing

**Fiscal Year Configuration**

• Fiscal years vary by country (e.g., April–March in India)\
• Fiscal year must be created before transactions begin

**Year-End Closing Behavior**

• Closes all P\&L accounts\
• Transfers balances to Retained Earnings\
• Resets Income and Expense accounts to zero

**System Requirement**

• Retained Earnings must be an Equity-type account

**Troubleshooting Insight**

• Inflated revenue or COGS often indicates fiscal year not closed

***

#### 2.6 Locking Accounting Periods

**Purpose**

• Prevents historical financial modification\
• Protects reported and reconciled data

**System Behavior**

• Locked periods prevent backdated transactions\
• Applies to all users, including administrators

{% hint style="info" %}
Once a period is locked, historical data must remain untouched. Adjustments should always be recorded in the current open period to maintain reporting consistency and audit reliability.
{% endhint %}

***

#### 2.7 Item-Level Accounting Configuration

**Item-Level Account Mapping**

Items can be linked to:

• Asset account (inventory value)\
• COGS account\
• Income account\
• Adjustment account\
• Income return account

**Inventory Valuation Rule**

• Asset value = Quantity on hand × Average cost

**Impact of Misconfiguration**

• Incorrect GL mapping leads to inaccurate inventory valuation\
• Adjustment postings default to income return accounts

***

#### 2.8 Customer-Level Accounting Configuration

**Customer Account Options**

• Custom income account\
• Custom income return account\
• Default Accounts Receivable (AR) account\
• Liability account for advance payments\
• Default deposit account

**Override Rule**

• Customer-level income accounts override item-level income accounts

**Operational Use Case**

• Useful for large or strategic customers\
• Required for tracking advance payments and gift cards

***

#### 2.9 Vendor-Level Accounting Configuration

**Vendor Account Options**

• Accounts Payable (AP) account\
• Suspense account\
• Default expense account

**System Behavior**

• Default expense account auto-populates during bill creation\
• Suspense account supports simplified receipt workflows

**Operational Benefit**

• Reduces posting errors\
• Speeds up recurring vendor bill processing

***

#### 2.10 Inventory Accounting – Debit & Credit Behavior

**When Inventory Is Purchased**

• Debit inventory asset account\
• Increases inventory value

**When Inventory Is Sold**

• Credit inventory asset account\
• Debit COGS account

**Transaction Review**

• Use **“Show Transaction”** to view detailed accounting entries\
• Always review debit and credit behavior when troubleshooting

***

#### 2.11 Transaction-Level Accounting Visibility

**Purpose**

• Demonstrates how inventory flows across accounts\
• Supports financial explanation and client clarification

**System Capability**

• Transaction view displays complete debit and credit entries\
• Used for troubleshooting and training

***

### 3. Core Governance Principles

• Xoro operates on accrual accounting under GAAP\
• Revenue is recognized upon shipment\
• Fiscal years must be closed annually\
• Locked periods prevent any historical modification\
• Parent and child accounts must share account type and currency\
• Customer-level income accounts override item-level accounts\
• Accounts with balances cannot be made inactive

***

### 4. Important Rules & Constraints

• Chart of Accounts must be configured before onboarding completion\
• Duplicate GL codes and account names are prohibited\
• Retained Earnings must be an Equity account\
• Advance customer payments must remain in liability accounts until shipment\
• Locked accounting periods cannot be bypassed\
• Block Posting should be used instead of inactivation when balances exist

***

### 5. Best Practices

• Create Chart of Accounts early in onboarding\
• Validate account uniqueness before creation\
• Close fiscal year immediately after tax filing and reconciliation\
• Lock accounting periods after each month-end close\
• Review debit and credit entries during troubleshooting\
• Use customer-level income overrides intentionally\
• Configure default expense accounts for recurring vendors

***

### 6. Frequently Asked Questions (FAQs)

Q1. Why doesn’t Xoro P\&L match Shopify?\
A: Shopify is cash-based, while Xoro is accrual-based. Revenue timing differs.

Q2. When is revenue recognized in Xoro?\
A: When goods are shipped.

Q3. What happens to advance customer payments?\
A: They are recorded in liability accounts until shipment.

Q4. Why does revenue look inflated?\
A: The fiscal year may not be closed.

Q5. Can transactions be posted to a locked period?\
A: No. Locked periods block all backdated postings.

Q6. Can two accounts share the same GL code?\
A: No. Duplicate GL codes or account names are not allowed.

Q7. What happens when inventory is purchased?\
A: The inventory asset account is debited.

Q8. What happens when inventory is sold?\
A: Inventory is credited and COGS is debited.

Q9. Which account takes priority — item or customer income?\
A: Customer-level income accounts take priority.

Q10. When should accounting periods be locked?\
A: After reconciliation and month-end close.

Q11. A client says their revenue does not match Shopify. What explains this?\
A: Accrual accounting in Xoro versus cash accounting in Shopify.

Q12. What happens if a fiscal year is not closed?\
A: Revenue and COGS may appear inflated.

Q13. Can an account with a balance be made inactive?\
A: No.

Q14. What account type must Retained Earnings be?\
A: Equity.

Q15. Why should accounting periods be locked?\
A: To prevent historical financial data from changing.

Q16. Which configuration overrides item income accounts?\
A: Customer-level income accounts.

Q17. What two conditions must parent and child accounts meet?\
A: Same account type and same currency.

Q18. Where are advance customer payments recorded?\
A: Liability accounts.

***

### 8. Conclusion

Proper accounting setup during onboarding establishes the structural backbone of financial reporting within XoroERP.

By implementing accrual-based principles, structured account hierarchies, fiscal year controls, locked accounting periods, and accurate item/customer/vendor configurations, organizations ensure:

• Accurate financial statements\
• Reliable inventory valuation\
• Controlled reporting environments\
• Audit-ready historical records

Strong accounting governance prevents downstream operational errors and ensures stable, compliant financial operations across the ERP environment.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.xorosoft.com/xoroerp-1/accounting/xoro-accounting-deep-dive/accounting-foundation-and-financial-governance-setup-guide.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
