This article is for the people who connect your ERP system to Luminovo. You request the upload credentials from Luminovo support (see “How do I upload the files?”).
For a new ERP integration, use the REST API. Luminovo supports the file-based CSV process only for backward compatibility, and it does not support new features such as customer part numbers (CPNs). For the REST API, see Integrate your ERP data via our REST API.
What can I synchronise with CSV files?
You can synchronise two kinds of data, each in its own file:
Components (internal part numbers, IPNs): IPN, manufacturer part number (MPN), manufacturer, description, and package.
Inventory (stock levels): IPN, available stock, total stock, unit price, and more. The full list of columns is in the tables below.
The CSV import has these limits:
Luminovo supports one inventory per IPN, which means one row per IPN in the inventory file. To upload stock from several stock locations, use the REST API.
The inventory file has no customer column, so you cannot restrict stock to a customer with CSV. Luminovo imports every row as unrestricted stock with the price type Standard price. To restrict stock to one customer, use the field customer of the API endpoint POST /offers/import, or tick Only valid for this customer when you add an offer on the Add offers page.
The dashboard in Luminovo tracks only CSV uploads, not uploads through the API.
When does Luminovo process the CSV files?
You can upload files at any time. Luminovo processes the uploaded files only once per day, every night starting at midnight Central European Time (CET). Upload your files around 10 pm CET so that the data is current after processing. The upload must land on the Luminovo servers before midnight CET to be part of that night’s run.
How do I prepare the CSV files?
Which format do the files need?
Follow the CSV format in RFC 4180.
Use a comma (,) or a semicolon (;) as the separator.
Put all values in double quotes, so that special characters do not break the format.
Use UTF-8 encoding. Other encodings, such as ISO 8859-1 (Latin-1), cause errors when the file contains special characters. Select UTF-8 when you export from your ERP system.
Escape a double quote inside a value by doubling it. The value Wire 3/8" appears in the file as "Wire 3/8""".
Use only a comma or a period as the decimal separator. Luminovo does not support a thousands separator.
How do I name the files?
Luminovo processes a file only if its name contains the name of your tenant. Your tenant name is the first part of the URL that you use to log in. For the URL amazing-oem.luminovo.com, replace TENANTNAME with amazing-oem.
The file names are:
luminovo_TENANTNAME_ipns.csv
luminovo_TENANTNAME_inventory.csv
For the example tenant, the names are luminovo_amazing-oem_ipns.csv and luminovo_amazing-oem_inventory.csv.
Which columns does the components file have?
The components file luminovo_TENANTNAME_ipns.csv has these columns. Name the column headers exactly as shown, including capitalization, spaces, and brackets, and include the header row.
Column | Required | Description |
IPN | Yes | The internal part number that you use for an article in your ERP system. Some companies call it the article number. |
MPN | No | The manufacturer part number. Luminovo uses it together with the manufacturer to match your IPN to a part. The more accurate the value, the more likely Luminovo finds the part. |
Manufacturer | No | The manufacturer of the part. Enter only the manufacturer name, not the name of a distributor. |
Description | No | A description of your part. |
Package | No | The package of the part, for example SOT23. For surface-mount packages such as 0603, Luminovo assumes the imperial system (thousandths of an inch). If the value is metric (in mm), enter it as 0603 - metric. |
Which columns does the inventory file have?
The inventory file luminovo_TENANTNAME_inventory.csv has these columns. Only IPN is required.
Column | Default | Description |
IPN | None (required) | The internal part number that you use for an article in your ERP system. |
Available stock | 0 | The freely available stock that you can use for new projects. Luminovo uses this value to generate solutions. Fractional stock is supported. |
Total stock | None | The total stock, including stock that is assigned to other projects. Luminovo only displays this value and does not use it to generate solutions. Fractional stock is supported. |
Unit price (Amount) | 0 | The price per part that Luminovo uses to calculate solutions. You decide which value to enter, for example 0, the last purchase price, or the average price. |
Unit price (Currency) | EUR | The three-letter currency code of ISO 4217. |
Standard lead time (Days) | None | The standard lead time in days that a distributor needs to restock the part. Fill in this column only if you know a reliable value. |
Packaging | None | The packaging of the parts. One of: AmmoPack, Bag, Bulk, Reel, ReReel, Tape, Tray, Tube, Carton. |
Unit of measurement (Quantity) | 1 | The quantity per unit of measurement for the values in Available stock and Total stock. Fill in this column only if the stock is measured in multiples of the unit. Example: an IPN is a cable roll with 30 meters. Enter 30 here and Meter as the unit. An available stock of 10 then means 300 meters. |
Unit of measurement (Unit) | Piece | The unit of measurement. One of: Kilogram, Meter, Liter, Piece. |
The values in the columns Packaging and Unit of measurement (Unit) must be in English, for example Reel or Piece.
How does Luminovo match IPNs to parts?
Luminovo treats each upload of the components file as the current list of IPNs in your ERP system.
One IPN with several part alternatives: add one row per alternative, with the same IPN and a different manufacturer, MPN, or description.
Manufacturer and MPN given: Luminovo matches only parts that fit both values. A part with the right MPN but another manufacturer is not matched. If you give no manufacturer, Luminovo matches all parts with this MPN.
Only descriptions given: Luminovo cannot match parts automatically. You match parts and IPNs manually after the upload, and Luminovo remembers each match for later BOMs. If your ERP has no fields for manufacturer and MPN, put all relevant descriptions into one long string in the column Description. With a short and a long description, add two rows with the same IPN.
You add a row with a new IPN: Luminovo adds the IPN.
You remove an IPN from the file: Luminovo deletes the IPN. If a demand or a BOM still references the IPN, Luminovo keeps it and marks it as removed. Luminovo clears this marker if a later import adds the IPN again.
You change the MPN, manufacturer, or description of an IPN: Luminovo deletes all automatic and manual matches of the old specification for this IPN and starts the automatic matching again.
Luminovo stops an import that would remove many IPNs at once, to protect your component library from a partial export.
How do I upload the files?
You upload the files from the command line with AzCopy, the command-line tool of Microsoft. AzCopy is available for Windows, macOS, and Linux.
Install AzCopy. Follow the installation instructions of Microsoft and add AzCopy to your path.
Request credentials. Open your Luminovo account and use the support chat to request credentials. The credentials consist of four values: appId, displayName, password, and tenant. Keep them secret and do not post them in tickets or chats.
Set the environment variables. Replace the placeholders in the commands for your system with the values from your credentials: AZCOPY_SPA_APPLICATION_ID takes your appId, AZCOPY_SPA_CLIENT_SECRET takes your password, and AZCOPY_TENANT_ID takes your tenant.
Upload your files. Replace tenantname with your tenant name and use the full paths to your files, then run the upload commands.
Commands for macOS and Linux
Open the terminal and run:
export "AZCOPY_AUTO_LOGIN_TYPE=SPN"
export "AZCOPY_SPA_CLIENT_SECRET=YOUR_PASSWORD"
export "AZCOPY_SPA_APPLICATION_ID=YOUR_APP_ID"
export "AZCOPY_TENANT_ID=YOUR_TENANT_ID"
Commands for Windows (Command Prompt)
Open the Command Prompt (CMD) and run:
set "AZCOPY_AUTO_LOGIN_TYPE=SPN"
set "AZCOPY_SPA_CLIENT_SECRET=YOUR_PASSWORD"
set "AZCOPY_SPA_APPLICATION_ID=YOUR_APP_ID"
set "AZCOPY_TENANT_ID=YOUR_TENANT_ID"
Commands for Windows PowerShell
$env:AZCOPY_AUTO_LOGIN_TYPE="SPN"
$env:AZCOPY_SPA_CLIENT_SECRET="YOUR_PASSWORD"
$env:AZCOPY_SPA_APPLICATION_ID="YOUR_APP_ID"
$env:AZCOPY_TENANT_ID="YOUR_TENANT_ID"
Upload commands
Replace tenantname in the file names and at the end of each command with the first part of your login URL, in lowercase letters. If you log in at https://amazing-ems.luminovo.com, replace tenantname-erp with amazing-ems-erp. Replace the file names with the full paths to your files.
azcopy copy luminovo_tenantname_ipns.csv "https://lumiquoteproderp.blob.core.windows.net/tenantname-erp"
azcopy copy luminovo_tenantname_inventory.csv "https://lumiquoteproderp.blob.core.windows.net/tenantname-erp"
AzCopy reports that the files were transferred. Luminovo processes them in the next nightly run.
How do I automate the daily upload?
Automate the export and the upload, so that your data reaches Luminovo every night before midnight CET, which is before the nightly run starts. Ask your ERP provider whether your ERP system can schedule a script. Otherwise, set up a scheduled job yourself, for example with cron on Linux and macOS or with the Task Scheduler on Windows.
How do I check that the upload arrived and was processed?
Use the CSV integrations page to check the status of your uploads.
Click your avatar at the top right and click Settings.
Under Integrations, click CSV integrations. The page is titled CSV files import status dashboard (azcopy).
Read the tables Components and Inventory. Each table has the rows Last processed import and Upcoming import with a date and a status.
The status shows one of these values:
Success: Luminovo processed the file.
Failure: Luminovo could not process the file. See “Why does my import fail or my data not appear?”.
In progress: the import is waiting for the nightly run at midnight CET.
No File Uploaded Yet: Luminovo has received no file for the upcoming import.
The dashboard shows only the end status of an upload and has no upload log. It does not show uploads through the API.
You can also check the result in the app:
On Parts > Components, the line next to the title shows Last import and Search index updated, each with the time that has passed. The search index refreshes only after a successful import, so a long time since the last import means that imports are failing. The component search runs on this index, which can lag behind by a few hours during many imports.
Open an IPN. The header shows when the IPN was Imported and Changed. The section Inventory shows Total inventory and Available inventory. The two values correspond to the columns Total stock and Available stock.
The update dates of components and inventory are not the same. To check the inventory update date, find an IPN whose stock changed recently and open it on the page Parts > Components.
Why does my import fail or my data not appear?
Work through the checks in this order.
Check that the upload happened. Check on your side that your scheduled job ran. If you cannot tell, run the upload manually and wait until the next day to see whether the data updates.
Check the status on the dashboard. If the status is Failure, check the file format. The message “check your file format” can appear for any failed import, whatever the cause.
Check the file for the common problems in the next section. You can open the file in a code editor, which can highlight problems, or import it into Excel.
Check whether the export is complete. If the file lacks many IPNs compared with the last successful import, Luminovo can stop the import to protect your component library. Check whether your ERP export changed or covers only a subset of parts.
Contact Luminovo. If the file is valid and the upload succeeded, but the data does not appear, write to [email protected]. Name your tenant, the file name, the time of the upload, and the status on the dashboard.
Which problems in the file occur most often?
Column headers: the header row is missing or a column name is wrong. The names must match the templates exactly, including capitalization, spaces, and brackets, for example Standard lead time (Days). This applies to the German interface as well: the column names stay in English.
Encoding: the file is not UTF-8. Select UTF-8 when you export.
Quotes: values with a comma or a semicolon are not in double quotes, or double quotes inside a value are not doubled. Example: "Manufacturer, Inc." and "LCD 19"" monitor".
Invalid values: the columns Packaging and Unit of measurement (Unit) contain values that are not in English; the column Manufacturer contains a distributor name; the column Unit of measurement (Quantity) is filled although the stock is not measured in multiples of the unit; the column Standard lead time (Days) is filled without a reliable value.
Frequently asked questions
How can I tell whether the upload worked?
Check the dashboard on Settings > Integrations > CSV integrations for the status of the last processed import. Luminovo processes the files only once per day, so you see the result on the next day.
What if I uploaded the data but the update is not visible?
Follow the checks in “Why does my import fail or my data not appear?”.
Which dates show when the update happened?
The Components page shows Last import and Search index updated. The page of an IPN shows Imported and Changed. The dates for components and for inventory differ.
How can I upload components and stock from different stock locations?
Uploads from different stock locations work only through the Luminovo API. See Integrate your ERP data via our REST API.
I cannot find some of my IPNs in Luminovo. What can I do?
In most cases, the IPNs were not in the last upload. Check that the IPNs are in the file of the last upload, and check on the dashboard that the upload succeeded. If the IPN is in the file and the upload succeeded, write to [email protected].
I get the error 401 (unauthorized). Did my credentials expire?
The credentials for the CSV upload do not expire. Check that the credentials are saved correctly in the environment variables, or pass them explicitly to AzCopy in the request.
Can I delete IPNs or stock with the CSV files?
To delete an IPN, remove it from the components file. Luminovo then deletes it or marks it as removed, as described in “How does Luminovo match IPNs to parts?”.



