Skip to content

Review status: approved Approved projection version: 1 Approved by: HKWhitten Approved date: 2026-07-17 Audience: product, accounting, developer Source truth: - Accounts - Account Contract - Account Role Contract - ADR 0023: BooksPlus Starter Chart and Dolibarr Account Crosswalk Contract: - Dolibarr Account Crosswalk Contract

Dolibarr v23 Starter-Chart Projection

Purpose

This page records the approved exact first Dolibarr projection of the accepted booksplus.standard version 1 starter chart. It is approved derived planning data, not bp3-doli desired state and not authorization to provision or migrate an instance by itself.

The projection targets Dolibarr 23.0.3. Its pcg_type values use the Dolibarr v23 U.S. base-chart vocabulary only as explicit Dolibarr operational grouping. They do not define BooksPlus type, normal balance, role, control status, or posting meaning.

Projection identity

Property Approved value
Projection key booksplus.standard.dolibarr23
Projection version 1
BooksPlus chart key booksplus.standard
BooksPlus chart version 1
Verified Dolibarr runtime 23.0.3
Dolibarr pcg_version BOOKSPLUS-V1
Dolibarr accounting-system label BooksPlus Standard v1
Accounting-system active state 1
Account parent 0 for every projected posting account
Stored-code rule Exact string from the table; no numeric conversion

The projection version, chart version, pcg_version, bp3-doli configuration version, mapping version, integration-contract version, and Dolibarr runtime version remain independent.

Dolibarr 23.0.3 stores account_number in varchar(32), while the current InvAcct/bpconnector adapter boundary allows at most 64 characters. Therefore this projection uses the stricter 32-character target-runtime limit. Every v1 code is five characters and satisfies both boundaries.

Review evidence

The target-version fields and proposed operational vocabulary were checked against the official Dolibarr 23.0.3 source:

Those sources establish Dolibarr storage and operational behavior only. The accepted BooksPlus chart and ADR remain authoritative for accounting meaning.

Account-code formatting controls

The approved v1 projection uses exact stored codes and disables virtual right-padding:

Dolibarr setting Proposed value Reason
ACCOUNTING_MANAGE_ZERO 1 Preserve and resolve the exact stored code rather than a fixed padded display value.
ACCOUNTING_LENGTH_GACCOUNT unset Do not add virtual trailing zeros to general account codes.
ACCOUNTING_LENGTH_AACCOUNT unset Keep auxiliary-code formatting independent from starter-chart identity.

Normalized export and reconciliation must retain both these settings and the exact stored account code. A displayed, padded, customer, supplier, product, or supplier-invoice code is evidence to reconcile; it is not account identity.

Exact account projection

Active and Posting are explicit desired values. Posting=yes means the account is eligible for the operations that consume this projection; it is not inferred from pcg_type or code.

Logical account key dolibarr_source_account_id Stored code Dolibarr label pcg_type Active Posting Canonical roles
booksplus.standard.cash_on_hand 8992e2c5-b6c2-46da-97b1-ff8226c56ce1 10000 Cash on Hand ASSETS yes yes cash.on_hand
booksplus.standard.operating_bank 99490ca8-b0e8-4abb-b1b5-aadca56764d1 10100 Operating Bank ASSETS yes yes bank.operating
booksplus.standard.accounts_receivable 31a173a2-fc3d-455e-a9ca-da693266c6f5 11000 Accounts Receivable ASSETS yes yes receivable.trade
booksplus.standard.inventory 81fb7d7f-9c7d-4fd1-be5d-8c11fcaaa0d9 12000 Inventory ASSETS yes yes inventory.general, inventory.input, inventory.output
booksplus.standard.prepaid_inventory 65c65589-869c-49a4-9251-73056cbec945 12100 Prepaid Inventory ASSETS yes yes asset.prepaid_inventory
booksplus.standard.accounts_payable 93c3a644-8950-456e-8007-28bcbf2bb2b7 20000 Accounts Payable LIABILITIES yes yes payable.trade
booksplus.standard.accrued_expenses ed6de680-4135-4e59-a742-e7fa1d5d82b6 21000 Accrued Expenses LIABILITIES yes yes liability.accrued_expenses
booksplus.standard.sales_tax_payable ef9431c2-ec1c-48a2-863a-a3f8fdc756d0 22000 Sales Tax Payable LIABILITIES yes yes tax.sales_tax_payable
booksplus.standard.customer_deposits e72bcdce-dda3-4bf1-b669-6eed272e20c0 23000 Customer Deposits LIABILITIES yes yes liability.customer_deposits
booksplus.standard.unapplied_customer_cash bc88562d-0965-48de-a9fa-ff9c2101f739 24000 Unapplied Customer Cash LIABILITIES yes yes liability.unapplied_customer_cash
booksplus.standard.owner_equity 9d95005b-ccbc-4984-a87b-f14f8b07f779 30000 Owner Equity EQUITY yes yes equity.default
booksplus.standard.retained_earnings 4f6126fa-8046-49a4-b0a5-3e1c0313b770 31000 Retained Earnings EQUITY yes yes equity.retained_earnings
booksplus.standard.opening_balance_equity 49e63b14-8b8e-490d-9317-5d0084c8ac50 32000 Opening Balance Equity EQUITY yes yes none
booksplus.standard.product_revenue 2067ddf2-bd60-4c7a-94c7-e9248e88e3df 40000 Product Revenue INCOME yes yes revenue.product
booksplus.standard.service_revenue cddf2099-a345-4322-8c1e-f3b3beb7d622 41000 Service Revenue INCOME yes yes revenue.service
booksplus.standard.cost_of_goods_sold 5c6607dd-c3cd-4bd1-9cae-fa876d381fd0 50000 Cost of Goods Sold COGS yes yes expense.cost_of_goods_sold
booksplus.standard.inventory_adjustment 13444682-f05a-4f50-93f1-f083e740c14b 51000 Inventory Adjustment COGS yes yes expense.inventory_adjustment
booksplus.standard.purchase_price_variance 2341f6c3-b8f5-498a-a573-52862d959271 52000 Purchase Price Variance COGS yes yes expense.purchase_price_variance
booksplus.standard.inventory_fallback_clearing 8785d7b5-2c13-4339-82d1-b6b0eaa85619 53000 Inventory Fallback Clearing COGS yes yes clearing.inventory_fallback
booksplus.standard.general_expense bc4ddfa7-7828-4c97-93a4-98a1f7432e35 60000 General Expense EXPENSE yes yes expense.operating

The four inventory-result accounts use COGS so the reviewed Dolibarr projection groups cost of goods sold, inventory adjustments, purchase-price variance, and fallback-clearing output together. The fallback account remains a review account; this grouping does not resolve unknown movement meaning.

Mandatory InvAcct projection

The approved mapping version is booksplus.standard.dolibarr23.1. Every row is required for export readiness.

InvAcct setting Canonical role Source-account UUID Exact stored code
INVACCT_ACCOUNT_INVENTORY_RM inventory.input 81fb7d7f-9c7d-4fd1-be5d-8c11fcaaa0d9 12000
INVACCT_ACCOUNT_INVENTORY_FG inventory.output 81fb7d7f-9c7d-4fd1-be5d-8c11fcaaa0d9 12000
INVACCT_ACCOUNT_COGS expense.cost_of_goods_sold 5c6607dd-c3cd-4bd1-9cae-fa876d381fd0 50000
INVACCT_ACCOUNT_ADJUSTMENT expense.inventory_adjustment 13444682-f05a-4f50-93f1-f083e740c14b 51000
INVACCT_ACCOUNT_PPV expense.purchase_price_variance 2341f6c3-b8f5-498a-a573-52862d959271 52000
INVACCT_ACCOUNT_FALLBACK clearing.inventory_fallback 8785d7b5-2c13-4339-82d1-b6b0eaa85619 53000

The two inventory settings deliberately resolve to the same source account. Products and supplier invoices may contain exact stored codes, but their values must reconcile to this mapping rather than replace it.

Customer-overlay boundary

A customer overlay may change a Dolibarr stored code or label while retaining the standard logical key and source-account UUID. A changed code must still satisfy the target Dolibarr schema and current adapter pattern. The overlay may not change canonical roles, protected mapping rules, source-account identity, or chart identity.

An additional customer account receives a new customer-owned logical key and UUID. It does not become a universal starter-chart account.

Approval record

HKWhitten approved projection version 1 without modification on 2026-07-17.

Decision Approved value Status
Stable Dolibarr chart identity pcg_version=BOOKSPLUS-V1 approved
Exact-code formatting ACCOUNTING_MANAGE_ZERO=1; ACCOUNTING_LENGTH_GACCOUNT and ACCOUNTING_LENGTH_AACCOUNT unset approved
Stable account identity The 20 logical keys and UUIDs in the exact projection table approved
Inventory-result grouping COGS for Cost of Goods Sold, Inventory Adjustment, Purchase Price Variance, and Inventory Fallback Clearing approved
Projected account state All 20 accounts active, posting-eligible, and without a Dolibarr parent approved
Initial mapping version booksplus.standard.dolibarr23.1 approved

Existing-instance adoption recommendation

Adoption should be an ordered, reviewable migration rather than ordinary projection convergence:

  1. Capture entity, selected pcg_version, exact stored code, label, pcg_type, active state, usage evidence, formatting controls, and current semantic mappings before any change.
  2. Match an existing row to a standard logical account only when the reviewer confirms continuity. The current entity/pcg_version/stored-code tuple is a locator for this review, not identity.
  3. Attach the approved standard UUID once. Replay must find the same registry identity and make no new assignment.
  4. Do not silently rename, renumber, retire, or replace the illustrative 120100 and 510100 accounts. If used, retain their history and require an approved customer overlay, explicit renumber migration, or reviewed retirement/replacement decision.
  5. Preserve the old noncanonical mapping rows as migration evidence, but do not activate their role keys in the new mapping set. Stage the six canonical InvAcct role projections as pending_review.
  6. Reject overlapping effective intervals, duplicate logical keys or UUIDs, incompatible code reuse, and multiple active mapping-set selections before cutover.
  7. Activate booksplus.standard.dolibarr23.1 only after projection validation, normalized export, drift comparison, crosswalk reconciliation, and all-six InvAcct readiness agree.
  1. Accept the crosswalk contract.
  2. Add source-account registry and mapping-set persistence.
  3. Adopt existing accounts through reviewed, idempotent migrations.
  4. Publish the approved projection as versioned bp3-doli desired state.
  5. Converge, validate, export, compare drift, and reconcile before enabling InvAcct export.