Dolibarr is a modular, open-source ERP and CRM platform for small and medium businesses, freelancers, and foundations. Its web-based suite manages contacts, customers, suppliers, invoices, orders, quotes, products, stock, projects, accounting, and HR. Deployable on-premises or in the cloud, it exposes a REST API to create, read, and update core objects like invoices, orders, products, and third parties.
Power end-to-end data operations for your Dolibarr API with Nexla. Our bi-directional Dolibarr connector is purpose-built for Dolibarr, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Dolibarr or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Dolibarr workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
To connect Nexla to Dolibarr, you need a running Dolibarr instance (self-hosted or cloud-hosted via Dolicloud) and an API key for a Dolibarr user account. The steps below walk you through enabling the REST API module and generating an API key.
The Dolibarr REST API is provided by a built-in module that must be activated before API keys can be generated or API calls made.
Log in to your Dolibarr instance as an administrator.
Navigate to Home > Setup > Modules/Applications.
Locate the Web Services section and enable the API/Web Services (REST server) module by clicking the toggle or activation button next to it.
Once activated, Dolibarr will expose its REST API at the path /api/index.php/ on your instance's base URL (for example, https://your-dolibarr-domain.com/api/index.php/).
The interactive API explorer is available at /api/index.php/explorer on your Dolibarr instance. It lists all available endpoints and allows you to test API calls directly in your browser using your API key.
Each Dolibarr user account can have an API key generated independently. The API key grants access to the same data and permissions that the corresponding user has within Dolibarr. For Nexla integrations, Nexla recommends creating a dedicated service user with only the permissions required for your integration.
In your Dolibarr instance, navigate to Home > Users & Groups.
Select the user account for which you want to generate an API key. For production integrations, this should be a dedicated service account with only the permissions needed for your data flows.
Click the Modify button on the user's profile page to enter edit mode.
Scroll to the API/Web Services section of the user profile and click Generate (or Regenerate) next to the API Key field.
Copy the generated API key and store it securely. This key will be entered as the API Key credential field in Nexla.
Important
The API key grants the same level of access as the user account it belongs to. Store API keys securely and avoid sharing them. If a key is compromised, regenerate it immediately from the same user profile screen.
Additional documentation on the Dolibarr REST API and authentication is available in the Dolibarr REST API Wiki.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter the base URL of your Dolibarr instance in the Base URL field. This is the root URL of your Dolibarr deployment, without any path suffix — for example, https://your-dolibarr-domain.com. Nexla will automatically append the /api/index.php/ path when making API calls.
For self-hosted instances, ensure that your Dolibarr server is accessible from Nexla's IP ranges. For cloud-hosted Dolicloud instances, the base URL will be the URL provided when your account was created.
Enter the API key you generated in Prerequisites in the API Key field. Dolibarr uses API key authentication — this key is passed in the DOLAPIKEY HTTP request header with every API call Nexla makes to your Dolibarr instance.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Dolibarr connector tile, then select the credential that will be used to connect to the Dolibarr instance, and click Next; or, create a new Dolibarr credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Dolibarr endpoints. Each template is designed specifically for the corresponding Dolibarr API endpoint, making data source setup easy and efficient. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
Get Invoice Details
Retrieves all properties and details of a single customer invoice by its numeric ID. Use this endpoint when you need the full record for a specific invoice — for example, to synchronize invoice status into a downstream system or to audit a particular transaction.
Enter the numeric Dolibarr invoice ID in the Id field. The invoice ID is the internal Dolibarr identifier assigned to each invoice when it is created. You can find invoice IDs by first running the List Customer Invoices endpoint or by viewing invoice records directly in your Dolibarr instance under Billing/Payment > Customer Invoices.
The response includes all invoice fields: reference, date, status, line items, amounts (excluding tax, tax, total), linked third party, and payment information. For the complete Dolibarr invoice object schema, see the Dolibarr REST API documentation.
Get Sales Order Details
Retrieves all properties and details of a single customer sales order by its numeric ID. Use this endpoint when you need the full record for a specific order — for example, to track order fulfillment status in an external system.
Enter the numeric Dolibarr order ID in the Id field. You can find order IDs by first running the List all customer sales orders endpoint or by viewing orders in your Dolibarr instance under Commercial > Orders > Customers.
The response includes the full order object: reference, date, status, order lines, linked third party, and delivery information.
Get Product or Service Details
Retrieves all properties and details of a specific product or service by its numeric ID, with an option to include current stock/inventory data. Use this endpoint when you need the complete record for a single catalog item, including pricing and optional warehouse stock levels.
Enter the numeric Dolibarr product ID in the Id field. Product IDs can be found by first running the List Products endpoint or by viewing the product catalog in your Dolibarr instance under Products/Services > Products.
Optionally, enter 1 in the Include Stock Data field to include inventory levels and warehouse details in the response. Leave this field empty or set it to 0 to exclude stock information.
Stock data is only returned if the Stock Management module is enabled in your Dolibarr instance. If the module is not active, the field will be ignored.
Get Third Party Details
Retrieves all properties and details of a specific third party — which may be a customer, supplier, or prospect — by its numeric ID. Use this endpoint when you need the full contact and business record for a specific company or individual in Dolibarr.
Enter the numeric Dolibarr third-party ID in the Id field. Third-party IDs can be found by first running the List all third parties endpoint or by viewing records in your Dolibarr instance under Third-parties > Customers, Suppliers, or Prospects.
The response includes all third-party fields: name, address, contact details, customer/supplier flags, VAT number, and any custom attributes configured in your Dolibarr instance.
List Customer Invoice Payments
Retrieves a list of all payments recorded against a specific customer invoice. Use this endpoint to reconcile payment activity for a given invoice or to export payment history for financial reporting.
Enter the numeric Dolibarr invoice ID in the Invoice ID field. This field is required. The invoice ID is the internal identifier assigned to each invoice when it is created. You can find invoice IDs by first running the List Customer Invoices endpoint.
Each payment record in the response includes the payment date, amount, payment method, and reference number. If no payments have been recorded for the invoice, an empty list is returned.
List Customer Invoices
Returns a paginated list of all customer invoices in your Dolibarr system. Use this endpoint to export invoice data in bulk — for example, to load invoices into a data warehouse, reporting tool, or financial analytics platform. Nexla automatically handles pagination, fetching all available pages until no more records are returned.
No additional parameters are required. Nexla will automatically paginate through the full invoice list using offset-based pagination with a page size of 100 records per request.
Each invoice record in the response includes the invoice reference, date, status, total amounts, linked third party, and line item summary. For large Dolibarr instances, the initial full export may take several minutes as Nexla fetches all pages.
List all customer sales orders
Returns a paginated list of all customer sales orders with optional filtering and sorting. Use this endpoint to export order data in bulk or to retrieve orders filtered by customer or other criteria. Nexla automatically handles pagination.
Optionally, configure the following parameters to filter or sort the results:
Sort Field: Enter the name of the field to sort results by — for example, id, ref, or date_creation.
Sort Order: Enter ASC for ascending order or DESC for descending order.
Page Size: Enter the maximum number of orders to return per page. Defaults to 100 if not specified.
Page Number: Enter the page number to start from (pagination starts at 0). Nexla manages this automatically during ingestion.
Third-Party IDs: Enter a comma-separated list of third-party IDs to filter results to orders belonging to specific customers (for example, 12,45,78).
SQL Filters: Enter custom SQL WHERE clause conditions for advanced filtering (for example, t.fk_statut=1 to return only validated orders). This field uses Dolibarr's internal SQL filter syntax.
All filter parameters are optional. If left empty, all orders are returned. The SQL Filters field provides advanced filtering using Dolibarr's internal database field names — refer to the Dolibarr REST API documentation for field name references.
List Products
Returns a paginated list of all products in the Dolibarr product catalog. Use this endpoint to export your product and service catalog in bulk — for example, to synchronize product data with an e-commerce platform, PIM system, or analytics tool. Nexla automatically handles pagination.
No additional parameters are required. Nexla will automatically paginate through the full product list using offset-based pagination with a page size of 100 records per request.
Each product record includes the reference, label, description, pricing, VAT rate, product type (product vs. service), and stock information if available. Both products and services are returned in the same list — filter by the type field (0 = product, 1 = service) in downstream transformations if needed.
List all commercial proposals and quotes
Returns a paginated list of all commercial proposals (quotes) with optional filtering and sorting. Use this endpoint to export proposal data in bulk or to track quote pipeline activity. Nexla automatically handles pagination.
Optionally, configure the following parameters to filter or sort the results:
Sort Field: Enter the name of the field to sort results by — for example, id, ref, or date_creation.
Sort Order: Enter ASC for ascending order or DESC for descending order.
Page Size: Enter the maximum number of proposals to return per page. Defaults to 100 if not specified.
Page Number: Enter the page number to start from (pagination starts at 1 for this endpoint). Nexla manages this automatically during ingestion.
Third-Party IDs: Enter a comma-separated list of third-party IDs to filter results to proposals belonging to specific customers.
SQL Filters: Enter custom SQL WHERE clause conditions for advanced filtering using Dolibarr's internal SQL filter syntax.
All filter parameters are optional. If left empty, all proposals are returned regardless of status or customer. Each proposal record includes the reference, creation date, status, linked third party, validity date, and line item details.
List all third parties
Returns a paginated list of all third parties — customers, suppliers, and prospects — with optional filtering and sorting. Use this endpoint to export your Dolibarr contact database in bulk for CRM synchronization, marketing lists, or master data management. Nexla automatically handles pagination.
Optionally, configure the following parameters to filter or sort the results:
Sort Field: Enter the name of the field to sort results by — for example, id, name, or datecreation.
Sort Order: Enter ASC for ascending order or DESC for descending order.
Mode: Enter a filter to restrict results by third-party type. Accepted values are customer, supplier, or prospect. Leave empty to return all types.
SQL Filters: Enter custom SQL WHERE clause conditions for advanced filtering using Dolibarr's internal SQL filter syntax.
Each third-party record includes the name, address, contact details, customer/supplier/prospect flags, VAT number, and any extra attributes configured in your Dolibarr instance. Use the Mode parameter to retrieve only customers, only suppliers, or only prospects when you do not need all types.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Dolibarr data sources can also be manually configured to ingest data from any valid Dolibarr REST API endpoint not covered by the pre-built templates — for example, contacts, projects, expenses, purchase orders, or any other Dolibarr module that exposes a REST endpoint — as well as sources that use chained API calls or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
Dolibarr REST API endpoints follow the pattern https://your-dolibarr-domain.com/api/index.php/{resource} — for example, /invoices, /orders, /thirdparties, /contacts, or /projects. The full list of available endpoints is available in the interactive API explorer at /api/index.php/explorer on your instance, or in the Dolibarr REST API Wiki. Some list endpoints return a top-level JSON array (enter $[*] as the Path to Data) while others wrap records in a data property (enter $.data[*]). You do not need to include the DOLAPIKEY authentication header — it is handled automatically by Nexla based on your Dolibarr credential configuration.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Dolibarr data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Dolibarr destination, and select the Send to Destination option from the menu. Select the Dolibarr connector from the list of available destination connectors, then select the credential that will be used to connect to the Dolibarr instance, and click Next; or, create a new Dolibarr credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Dolibarr endpoints. Each template is designed specifically for the corresponding Dolibarr API endpoint, making destination setup easy and efficient. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create Invoice
Creates a new customer invoice in Dolibarr. Use this endpoint to push invoice data from an external system into Dolibarr — for example, to create invoices generated by an e-commerce platform, billing system, or order management tool. Each record in the Nexset is sent as a separate POST request to the Dolibarr invoices API.
No additional endpoint parameters are required. Nexla sends each Nexset record as a JSON body matching the Dolibarr Invoice object schema to the /api/index.php/invoices endpoint.
Ensure that each record in your Nexset includes the fields required by the Dolibarr Invoice schema. At minimum, the following fields are typically required:
socid: The numeric ID of the third party (customer) to associate with this invoice.
type: The invoice type (for example, 0 for a standard customer invoice).
lines: An array of line item objects, each specifying the product, quantity, and unit price.
For the complete Dolibarr Invoice object schema and all available fields, refer to the Dolibarr REST API documentation or the interactive API explorer at /api/index.php/explorer on your instance.
Update Invoice
Updates an existing customer invoice identified by its numeric ID. Use this endpoint to modify invoice details — for example, to update invoice status, dates, or custom attributes from an external system.
Enter the numeric Dolibarr invoice ID in the Invoice ID field. This is a required field. The invoice ID identifies which invoice will be updated. Nexla appends this ID to the API URL and sends each Nexset record as a PUT request to /api/index.php/invoices/{id}.
Only the fields included in the Nexset record will be updated. Fields not present in the request body will retain their current values in Dolibarr. Note that some invoice fields may be locked once an invoice has been validated — refer to Dolibarr's invoice workflow documentation for details.
Add Invoice Line
Adds a new line item to an existing customer invoice. Use this endpoint to append product or service lines to invoices already created in Dolibarr — for example, when additional charges or items need to be added after invoice creation.
Enter the numeric Dolibarr invoice ID in the Invoice ID field. This is a required field. Nexla appends this ID to the API URL and sends each Nexset record as a POST request to /api/index.php/invoices/{id}/lines.
Each Nexset record should include the fields required for a Dolibarr invoice line, including:
fk_product: The numeric ID of the product or service to add (optional if using a free-text description).
qty: The quantity of the line item.
subprice: The unit price of the line item.
tva_tx: The VAT rate to apply to this line.
desc: A text description for the line item.
Invoice lines can only be added to invoices that are in draft status. Validated invoices may not accept new lines depending on your Dolibarr configuration.
Add Invoice Payment
Records a payment against an existing customer invoice. Use this endpoint to synchronize payment data from a payment processor, bank feed, or accounting system into Dolibarr — keeping invoice payment status up to date.
Enter the numeric Dolibarr invoice ID in the Invoice ID field. This is a required field. Nexla appends this ID to the API URL and sends each Nexset record as a POST request to /api/index.php/invoices/{id}/payments.
Each Nexset record should include the fields required to record a payment in Dolibarr, including:
datepaye: The payment date in YYYY-MM-DD format.
paiementid: The numeric ID of the payment method (e.g., bank transfer, credit card — find these in your Dolibarr Setup).
closepaidinvoices: Set to yes to automatically mark the invoice as paid when the payment fully covers the outstanding amount.
accountid: The numeric ID of the bank account to record the payment against.
num_paiement: An optional payment reference number.
Dolibarr validates that the invoice is in a state that accepts payments before recording the transaction. Invoices must be validated before payments can be applied.
Create Order
Creates a new customer sales order in Dolibarr. Use this endpoint to push order data from an external system — for example, from an e-commerce platform, EDI feed, or order management system — into Dolibarr for fulfillment processing.
No additional endpoint parameters are required. Nexla sends each Nexset record as a JSON body matching the Dolibarr Order object schema to the /api/index.php/orders endpoint.
Ensure that each record in your Nexset includes the fields required by the Dolibarr Order schema. At minimum, the following fields are typically required:
socid: The numeric ID of the third party (customer) to associate with this order.
lines: An array of order line objects, each specifying the product, quantity, and unit price.
For the complete Dolibarr Order object schema, refer to the Dolibarr REST API documentation or the interactive API explorer on your instance.
Create Product
Creates a new product or service in the Dolibarr product catalog. Use this endpoint to synchronize product data from a PIM system, ERP, or spreadsheet into Dolibarr — maintaining a consistent product catalog across systems.
No additional endpoint parameters are required. Nexla sends each Nexset record as a JSON body matching the Dolibarr Product object schema to the /api/index.php/products endpoint.
Ensure that each record in your Nexset includes the fields required by the Dolibarr Product schema. At minimum, the following fields are typically required:
ref: A unique product reference code.
label: The product name or description.
type: The product type — 0 for a physical product or 1 for a service.
price: The unit price of the product.
tva_tx: The applicable VAT rate.
Product references (ref) must be unique within your Dolibarr instance. Attempting to create a product with a duplicate reference will result in an API error.
Update Product
Updates an existing product or service in the Dolibarr catalog by its numeric ID. Use this endpoint to keep product details — such as pricing, descriptions, or custom attributes — synchronized with an external system.
Enter the numeric Dolibarr product ID in the Product ID field. This is a required field. Nexla appends this ID to the API URL and sends each Nexset record as a PUT request to /api/index.php/products/{id}.
Only the fields included in the Nexset record will be updated. Fields not present in the request body will retain their current values in Dolibarr.
Create Third Party
Creates a new third party (customer, supplier, or prospect) in Dolibarr. Use this endpoint to import contact and company data from a CRM, marketing platform, or data enrichment tool into Dolibarr.
No additional endpoint parameters are required. Nexla sends each Nexset record as a JSON body matching the Dolibarr Third Party object schema to the /api/index.php/thirdparties endpoint.
Ensure that each record in your Nexset includes the fields required by the Dolibarr Third Party schema. At minimum, the following fields are typically required:
name: The name of the company or individual.
client: Set to 1 if this is a customer, 0 otherwise.
fournisseur: Set to 1 if this is a supplier, 0 otherwise.
prospect: Set to 1 if this is a prospect, 0 otherwise.
Third-party records can serve as customers, suppliers, and prospects simultaneously in Dolibarr by setting the relevant flags. Set all applicable flags for each record.
Update Third Party
Updates an existing third party in Dolibarr by its numeric ID. Use this endpoint to keep customer, supplier, or prospect records synchronized with an external CRM or contact management system.
Enter the numeric Dolibarr third-party ID in the Third Party ID field. This is a required field. Nexla appends this ID to the API URL and sends each Nexset record as a PUT request to /api/index.php/thirdparties/{id}.
Only the fields included in the Nexset record will be updated. Fields not present in the request body will retain their current values in Dolibarr.
Dolibarr destinations can also be manually configured to send data to any valid Dolibarr REST API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
Dolibarr's REST API accepts and returns data in JSON format, and follows the URL pattern https://your-dolibarr-domain.com/api/index.php/{resource}. For update operations, include the numeric ID of the record to be updated at the end of the URL — for example, .../invoices/123. You do not need to include the DOLAPIKEY authentication header — it is handled automatically by Nexla based on your Dolibarr credential configuration. The full list of available endpoints and their required request body schemas is available in the interactive API explorer at /api/index.php/explorer on your instance, or in the Dolibarr REST API Wiki.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to Dolibarr, open the destination resource menu, and select Activate.
The Nexset data will not be sent to Dolibarr until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.