ERP migration

Migrate from SoftLedger to Dolibarr ERP

Field-level mapping, validation, and rollback between SoftLedger and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.

SoftLedger logo

SoftLedger

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

67%

8 of 12

objects map 1:1 between SoftLedger and Dolibarr ERP.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from SoftLedger to Dolibarr is a structural migration that reverses a decade of cloud-first, entity-centric design for a free, modular, self-hosted architecture. SoftLedger organizes every financial record under a Location hierarchy where each entity carries its own currency, COA, and operational settings; Dolibarr uses a flat third-party model with optional multi-company and accountancy modules that must be explicitly enabled. We handle that structural difference by flattening SoftLedger's entity tree into Dolibarr's third-party and project structures, mapping per-entity COAs to Dolibarr's accountancy module account codes, and preserving beginning balances through Dolibarr's opening-balance upload rather than raw journal entry injection. The 200 req/min SoftLedger API rate limit drives our chunking strategy, and any custom exchange rate overrides on multi-currency journal entries are extracted as metadata and applied explicitly in Dolibarr so that translated amounts are not recalculated at the wrong rate. Dolibarr does not migrate as code; we deliver a written inventory of any imported custom report configurations and Dolibarr modules requiring activation so the customer's admin can configure them post-migration.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

SoftLedger logo

SoftLedger

What's pushing teams away

  • The crypto module is described as rigid by users who need more flexible handling of non-standard wallet types, chain-specific transactions, or custom DeFi positions beyond NODE40's supported formats.
  • Custom report creation requires workarounds for highly tailored management reporting formats, pushing some users toward Excel exports as a standing process.
  • Limited custom field options constrain organizations that need deep operational metadata on vendors, customers, or transactions, driving them to platforms with more extensible schemas.
  • Steep learning curve emerges once organizations move beyond basic AP/AR into multi-currency consolidations and intercompany eliminations, particularly during period-close.

Choosing

Dolibarr ERP logo

Dolibarr ERP

What's pulling them in

  • Free open-source core with no per-user license fee makes it the lowest-cost entry point for small teams needing ERP and CRM in one package.
  • Self-hosted deployment gives full data ownership and eliminates vendor lock-in, especially attractive to businesses with compliance requirements.
  • Modular architecture means teams enable only the features they use, keeping the interface uncluttered and reducing learning curve.
  • Fast installation with no technical knowledge required — one reviewer set up multiple businesses in minutes using their own hosting.
  • Active community forum and marketplace of third-party add-ons provide support and extension options without mandatory subscription costs.

Object mapping

How SoftLedger objects map to Dolibarr ERP

Each row shows how a SoftLedger object lands in Dolibarr ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

SoftLedger

Location

maps to

Dolibarr ERP

Third Party (societe) + Project or Category

lossy
Fully supported

SoftLedger Locations are the top-level entity container with per-location currency, address, and COA inheritance. Dolibarr has no direct entity object; multi-entity simulation requires the Multi-Company module or manual structure using Third Parties with a category hierarchy and Project tagging. We extract every Location, preserve its currency and address, and map it to a Dolibarr Third Party (as the legal entity) plus a Project or Category node used as the consolidation dimension. Organizations using Dolibarr's Multi-Company module configure it during scoping to mirror the SoftLedger location tree.

SoftLedger

Chart of Accounts (per Location)

maps to

Dolibarr ERP

Accountancy Module (plan_comptable)

1:1
Fully supported

SoftLedger COAs are defined per Location with account number, name, type, and tax code. Dolibarr's accountancy module stores a single system-wide COA; per-entity COAs in Dolibarr require either the Multi-Company accountancy module or a category-based tagging strategy on journal lines. We extract each SoftLedger account with its type, number, and tax code, map it to the equivalent Dolibarr account, and flag any accounts that require the Multi-Company module to maintain per-entity segregation.

SoftLedger

Customer

maps to

Dolibarr ERP

Third Party (type Customer)

1:1
Fully supported

SoftLedger Customers (name, email, address, payment terms, currency, custom fields) map to Dolibarr Third Parties with type ThirdParty and the Customer checkbox enabled. Payment terms migrate as Dolibarr cond_reglement codes. Currency assignment maps to Dolibarr's multi-currency extra parameters. Custom field values transfer to Dolibarr extra attributes on the Third Party.

SoftLedger

Vendor

maps to

Dolibarr ERP

Third Party (type Supplier)

1:1
Fully supported

SoftLedger Vendors parallel Customer records and include AP-specific fields like 1099 eligibility. We map to Dolibarr Third Parties with the Supplier checkbox enabled. 1099 eligibility flags to Dolibarr's supplier_payment_terms extra attribute. Outstanding AP balances at migration date transfer as open invoice records in Dolibarr's Supplier Invoice module with status Unbilled.

SoftLedger

Journal Entry

maps to

Dolibarr ERP

Accountancy Ledger Entry (ecompt一支)

1:1
Fully supported

SoftLedger Journal Entries carry Lines with account ID, amount, currency, dimension tags, and source references. We migrate journal lines as Dolibarr Accounting entries (accounting_type = standard). Multi-currency entries require exchange rate extraction: we pull the effective rate at posting date or the manual override rate from SoftLedger metadata and apply it explicitly as Dolibarr's fk_currency rate on each line. Dimension tags from SoftLedger map to Dolibarr categories on the journal line or to project assignment depending on the customer's chosen tagging strategy.

SoftLedger

Invoice (AR)

maps to

Dolibarr ERP

Customer Invoice (facture)

1:1
Fully supported

SoftLedger AR Invoices map to Dolibarr Customer Invoice (type invoice customer). Invoice number, date, due date, line items, tax amounts, and status (open, paid, void) migrate directly. Open invoices are migrated with status Unpaid so that outstanding receivables are visible in Dolibarr's AR aging report from day one. Closed invoices migrate as historical records with status Paid and a payment date recorded.

SoftLedger

Invoice (AP)

maps to

Dolibarr ERP

Supplier Invoice (facture_fournisseur)

1:1
Fully supported

SoftLedger AP Invoices map to Dolibarr Supplier Invoice. The same line-item, tax, and status migration logic applies as AR. Outstanding AP balances migrate as open Supplier Invoices with the appropriate payment term and due date, ensuring that Dolibarr's AP aging reflects the true liability position at cutover.

SoftLedger

Bank Transaction

maps to

Dolibarr ERP

Bank Account Statement Line (compta_bank_line)

1:1
Fully supported

SoftLedger Bank Transactions link to Journal Entries and carry reconciliation status. We map to Dolibarr Bank Account Statement Lines. Reconciliation status is preserved: unreconciled items are set to open (not reconciled) in Dolibarr so the finance team continues bank reconciliation work without a false-closed bank account. Reconciled items transfer with their reconciliation date and reference intact.

SoftLedger

Custom Field (all objects)

maps to

Dolibarr ERP

Extra Attribute (extraattribute)

1:1
Fully supported

SoftLedger Custom Fields on Customers, Vendors, Invoices, Journal Entries, and other objects are defined during scoping and mapped to Dolibarr extra attributes on the equivalent object. Dolibarr's extra attribute system stores key-value pairs per object ID. We map SoftLedger field types (text, number, select, date) to Dolibarr attribute types and create the attribute definitions in Dolibarr before importing values.

SoftLedger

Dimension

maps to

Dolibarr ERP

Category (categorie) or Project

lossy
Fully supported

SoftLedger Dimensions tag journal lines with organizational attributes like department or cost center. Dolibarr has no native dimension tagging equivalent; options are Dolibarr Categories (applied to third parties, products, or projects) or Project assignment on individual transactions. We discuss the tagging strategy during scoping: if the customer needs department-level journal-line tagging, we recommend the Multi-Company or custom accounting extension module; if project-level tagging is sufficient, Project assignment covers most use cases.

SoftLedger

Financial Report

maps to

Dolibarr ERP

ReportList module or manual rebuild

lossy
Fully supported

SoftLedger stores custom report definitions as JSON tied to account IDs. These definitions cannot be imported into Dolibarr's ReportList module because the account ID references are entity-specific. We extract the report JSON configurations and deliver a written document that maps each SoftLedger account ID referenced in a report to its Dolibarr account number, along with instructions for rebuilding the report in Dolibarr's ReportList or via the SQL reporting interface. The customer's admin rebuilds the reports post-migration.

SoftLedger

Beginning Balance

maps to

Dolibarr ERP

Opening Balance Entry (saisie_comptable)

lossy
Fully supported

SoftLedger uses a specific Beginning Balance upload mechanism that seeds opening trial balances without posting running transactions. We do not migrate beginning balances as standard journal entries, which would create duplicate balance-sheet impact. Instead, we use SoftLedger's beginning balance endpoint to extract the balance per account per entity, then structure the upload payload to match Dolibarr's opening balance format for the accountancy module. Each entity's opening balance posts as a distinct entry with a designated opening period reference so that the trial balance in Dolibarr reconciles to the SoftLedger snapshot date.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

SoftLedger logo

SoftLedger gotchas

High

200 req/min API rate limit can throttle bulk exports

High

Beginning balances require a dedicated upload mechanism

Medium

Unreconciled bank items carry status that must transfer intact

Medium

Custom exchange rate overrides on journal entries require explicit extraction

Dolibarr ERP logo

Dolibarr ERP gotchas

High

Foreign key constraint errors on cross-distribution database restore

High

SQL injection vulnerabilities in version 9.0.1

Medium

Custom fields stored as JSON in extraoptions require field-by-field deserialization

Medium

Decimal precision and rounding configuration affects price fields

Low

No native iOS/Android app forces reliance on browser

Pair-specific challenges

  • SoftLedger entity hierarchy has no direct Dolibarr equivalent

    SoftLedger's multi-entity model treats Locations as top-level containers with independent currencies, COAs, and operational settings. Dolibarr's default architecture is flat: third parties, products, and accounts are shared across the installation. Organizations running multi-entity structures in SoftLedger must decide whether Dolibarr's Multi-Company module (paid) is sufficient for their consolidation needs or whether they will use a category-based tagging strategy on Dolibarr categories to simulate entity isolation. We scope this decision early because it changes the destination schema significantly and affects how journal lines are tagged during migration.

  • 200 req/min SoftLedger API rate limit throttles bulk exports

    SoftLedger enforces a hard rate limit of 200 requests per minute on its API. Large exports of journal lines, invoice history, or bank transactions across multiple entities can exhaust this limit and trigger HTTP 429 responses. We implement request pacing, chunk large data pulls into queue-managed batches of 150 requests or fewer per minute, and serialize entity-level exports rather than parallelizing calls that would trigger throttling. The extraction phase of the migration is designed around this constraint from the outset.

  • Beginning balances require the correct upload mechanism, not journal entries

    Posting beginning balances as standard journal entries in Dolibarr inflates the balance sheet because the trial balance is recalculated on top of existing balances, producing doubled assets and liabilities. SoftLedger uses a dedicated Beginning Balance upload endpoint that seeds opening positions without affecting running transaction totals. We extract the balance per account per entity from SoftLedger and structure the Dolibarr opening balance upload payload directly, ensuring the migration trial balance matches the source snapshot date exactly.

  • Manual exchange rate overrides on multi-currency journal entries must be explicitly extracted

    SoftLedger allows manual exchange rate overrides on multi-currency journal entries; these override rates are stored as metadata on the entry rather than fetched from a rates table. If not explicitly extracted, migrated journal lines default to Dolibarr's system exchange rate at import time, producing incorrect translated amounts for historical periods. We query the exchange rate metadata on every multi-currency SoftLedger journal entry during extraction and apply the override rate explicitly in Dolibarr as the line-level currency rate, preserving the originally intended translated amount.

  • Dolibarr report definitions do not import from SoftLedger JSON

    SoftLedger custom report definitions are stored as JSON configurations referencing SoftLedger account IDs. These files have no migration path into Dolibarr's ReportList module because Dolibarr reports are built against Dolibarr account codes within a different schema. We extract every report configuration and deliver a written account-ID mapping document so the customer's admin rebuilds each report in Dolibarr. This is a manual rebuild, not an automated import, and the rebuild scope is scoped and documented during migration but executed by the customer post-migration.

Migration approach

Six steps for a successful SoftLedger to Dolibarr ERP data migration

  1. Discovery and Dolibarr module selection

    We audit the source SoftLedger portal: entity count and hierarchy, COA per entity, customer and vendor volumes, journal entry history by period, multi-currency flag, custom field inventory, dimension definitions, beginning balance snapshot date, and outstanding invoice and bank reconciliation status. We pair this with a Dolibarr readiness assessment: which core modules are required (Third Parties, Products, Invoicing, Accounting, Bank), which optional modules are needed (Multi-Company for entity isolation, Multi-Currency for currency handling, Eurotrash for exchange rate management), and whether the self-hosted infrastructure is provisioned. The discovery output is a written migration scope with entity-mapping strategy and Dolibarr module activation plan.

  2. Schema extraction and Dolibarr account plan construction

    We extract the full COA from each SoftLedger entity, flatten the per-entity account lists, and build a unified Dolibarr account plan. If the customer uses Dolibarr's Multi-Company module, we configure per-entity account code prefixes to maintain visual segregation. If not, we document the category-based tagging strategy for journal lines. We extract custom field definitions and map their types to Dolibarr extra attribute definitions, creating the attribute records in Dolibarr before any data import begins.

  3. Beginning balance extraction and opening balance preparation

    We extract beginning balances per account per entity from SoftLedger's dedicated beginning balance endpoint, producing a balance-per-account table at the migration snapshot date. We structure the opening balance payload in Dolibarr's required format, setting the correct period reference for the opening fiscal year. This step must complete before any journal entries import so that the trial balance is seeded correctly and running transactions add on top without duplication.

  4. Entity and third-party migration

    We run entity and third-party migration in dependency order: Locations (mapped to Dolibarr Third Parties with Multi-Company or category tags), Customers, Vendors. Each record carries its SoftLedger custom field values mapped to Dolibarr extra attributes. We resolve any duplicate detection by company name or tax ID before insert. The migration user account in Dolibarr is granted sufficient write permissions before this phase begins.

  5. Journal entry and invoice migration with rate-limit handling

    We extract journal entries in entity-sorted batches of 150 requests, respecting the 200 req/min SoftLedger API limit with exponential backoff on 429 responses. Multi-currency entries are extracted with their explicit override rates applied as Dolibarr line-level currency rates. Open AR and AP invoices migrate with status Unpaid; closed invoices migrate as historical paid records. Each batch emits a row-count reconciliation report before the next batch begins. Bank transactions migrate last within this phase, with reconciliation status preserved.

  6. Cutover, validation, and report rebuild handoff

    We freeze SoftLedger writes during cutover, run a final delta migration of any records modified during the migration window, then enable Dolibarr as the system of record. We deliver a written document containing the custom report inventory with account-ID mappings, the Dolibarr module activation checklist, and the entity-tagging strategy summary. We support a one-week hypercare window for reconciliation issues. We do not rebuild SoftLedger workflows or automations in Dolibarr; these are outside standard migration scope and documented as a separate configuration task for the customer's admin.

Platform deep dives

Context on both ends of the pair

SoftLedger logo

SoftLedger

Source

Strengths

  • Real-time multi-entity consolidation that reflects transactions across all subsidiaries immediately rather than requiring overnight batch jobs.
  • Integrated AP/AR with vendor and customer management removes the need for a separate billing system in many mid-market deployments.
  • Cloud-native architecture with API-first design supports custom integrations, white-label embedding, and automated workflows via third-party tools.
  • Multi-currency support with per-entity currency assignment and custom exchange rate overrides for journal entries.
  • Specialized crypto accounting with NODE40 partnership handles digital asset transaction ingestion natively within the general ledger.

Weaknesses

  • Pricing is not publicly available and requires a sales conversation, making budget validation difficult before committing to an evaluation.
  • No free trial or free version limits the ability to test fit before purchase, increasing commitment risk for smaller teams.
  • Reporting flexibility is a known gap — highly customized management reports require work beyond the standard report builder, according to user reviews.
  • Limited custom field extensibility means organizations with complex operational schemas may need to store metadata outside the system.
Dolibarr ERP logo

Dolibarr ERP

Destination

Strengths

  • Free core software with AGPL license and no per-user mandatory fee for self-hosted deployments.
  • Modular architecture lets teams activate only needed features, keeping the interface focused and the database lean.
  • Self-hosted option provides full data sovereignty and avoids recurring SaaS subscription costs.
  • Built-in CSV/Excel import and export wizard with saved profiles simplifies recurring data operations.
  • Low-code Module Builder allows functional extensions without writing PHP code.

Weaknesses

  • No native documented REST API for programmatic bulk operations — all migrations depend on the import/export wizard or direct database access.
  • Reporting and analytics are weak without paid add-ons, and built-in charts are limited compared to modern SaaS platforms.
  • UI design is described as dated by multiple reviewers, with infrequent visual updates to the default theme.
  • Community-only support for self-hosted deployments means no SLA or guaranteed response time for issues.
  • Security vulnerabilities (CVE-2024-5314, CVE-2024-5315) in version 9.0.1 with no immediate patch reported.

Complexity grading

How hard is this migration?

Standard ERP migration. All 8 core objects map 1:1 between SoftLedger and Dolibarr ERP.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across SoftLedger and Dolibarr ERP.

  • Object compatibility

    A

    All 8 core objects map 1:1 between SoftLedger and Dolibarr ERP.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    SoftLedger: 200 requests per minute per organization; returns HTTP 429 when exceeded.

  • Data volume sensitivity

    B

    SoftLedger doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your SoftLedger to Dolibarr ERP migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about SoftLedger to Dolibarr ERP data migrations

Answers to the questions buyers ask most during SoftLedger to Dolibarr ERP migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your SoftLedger to Dolibarr ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Migrations under 10,000 transactions and three locations typically complete in four to six weeks. Migrations with seven or more locations, large multi-currency journal histories (over 200,000 lines), per-entity COA complexity, or extensive custom field sets extend to ten to fourteen weeks because of the entity-flattening design work, COA reconstruction, multi-currency rate extraction, and beginning balance reconciliation across entities.

Adjacent paths

Related migrations to explore

Ready when you are

Move from SoftLedger.
Land in Dolibarr ERP, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day