# Luminovo API

The base URL of Luminovo's API is `https://api.luminovo.com/`.

**Versioning**

This API uses data model versioning to ensure backwards compatibility. The data model version is specified using the `Accept` header. For example, `Accept: application/api.luminovo.rfq-v1+json` specifies version 1 of the RfQ data model. Refer to each endpoint's description for the correct `Accept` header value. If no `Accept` header is provided, the API will return a 404 error.

**Handling Enum Types**

For all enum types in the API, you must account for an `"Unknown"` case. This ensures forward-compatibility, as new enum variants may be introduced without notice within the same data model version. For example, an enum `Status` with variants `Ok` and `Error` may gain a new variant `Warning` at any time.


Version: 1.0.0
License: Proprietary

## Servers

```
https://api.luminovo.com
```

## Security

### BearerAuth

Type: http
Scheme: bearer
Bearer Format: JWT

## Download OpenAPI description

[Luminovo API](https://docs.luminovo.com/_bundle/specs/bundled.yaml)

## Assembly

An Assembly is a logical group of items that should be assembled into one unit. It represents a complete product or sub-product that can be manufactured, sourced, and managed as a cohesive unit.
You can view assemblies in Luminovo under the "Assemblies" tab.


### Import Assembly Data

 - [POST /assemblies/import](https://docs.luminovo.com/specs/bundled/assembly/postassemblies.md)

### Get Assembly

 - [GET /assemblies](https://docs.luminovo.com/specs/bundled/assembly/getassembly.md): Queries assembly details given assembly id(s).

### Create Assembly

 - [POST /assemblies](https://docs.luminovo.com/specs/bundled/assembly/createassembly.md): Creates a new assembly under a given RfQ.

### Create Assembly PCB

 - [POST /assemblies/{assembly_id}/pcb](https://docs.luminovo.com/specs/bundled/assembly/createassemblypcb.md): Creates a PCB and links it to an assembly.

## Authentication

Authentication and token retrieval endpoints.

### Authenticating to the API

 - [POST /token](https://docs.luminovo.com/specs/bundled/authentication/posttoken.md)

## BOM

BOM stands for Bill of Materials - it's a comprehensive list of all components, parts, and assemblies required to manufacture a product.
You can view BOMs in Luminovo under the respective RfQ.


### Get BOM Tree

 - [GET /rfqs/{id}/tree](https://docs.luminovo.com/specs/bundled/bom/getbomtree.md): Get the list of all assemblies included in your RfQ.
Note: Luminovo creates an assembly for every created RfQ. Hence, the RfQ ID itself is also referenced as an assembly.

### Get costed BOM (deprecated)

 - [GET /rfqs/{id}/costed-bom](https://docs.luminovo.com/specs/bundled/bom/getrfqcostedbom.md): Deprecated. We are actively working on a new version of this endpoint.
If anything about the current version is causing problems, we are actively looking
for feedback — please reach out to us.

Returns costed BOM for a given RfQ.

## Components

Components are the fundamental building blocks that make up electronic assemblies (PCBs, products, etc.).
You can view components in Luminovo under the "Parts" tab.
There are `OffTheShelf` and `Custom` components in order to get good data quality in Luminovo.
- `OffTheShelf` are all electonic components which have a MPN and can be purchased from an electronic parts suppliers.
- `Custom` are all other non-electronic components, such as screws, packaging materials, lables, etc. Also, custom are all electronic components which are not standartized and don't have an MPN.


### Import Component Data

 - [POST /components/import](https://docs.luminovo.com/specs/bundled/components/postcomponents.md)

### Get Component Risk

 - [GET /components/{ipn}/risk](https://docs.luminovo.com/specs/bundled/components/getcomponentrisk.md): Get compliance and lifecycle of a component.

## Custom Part

Get information about a custom part.


### Get Custom Part

 - [GET /custom-parts/{id}](https://docs.luminovo.com/specs/bundled/custom-part/getcustompart.md): Get information about a custom part.
Information includes the description, part type, and compliance information.

### Get Custom Part Resources

 - [GET /custom-parts/{id}/resources](https://docs.luminovo.com/specs/bundled/custom-part/getcustompartresources.md): Retrieves URLs for resources/files attached to the custom part.
URL to retrieve the actual file is only valid temporarily.
You need to call this endpoint again to get a new valid URL after some time.

## Customer

Search, Create and Get Customers.


### Search or Get All Customers

 - [GET /customers](https://docs.luminovo.com/specs/bundled/customer/searchcustomer.md): Queries all customers given a specific filter. Filter is optional. If filter is not set, returns all customers.

### Create New Customer

 - [POST /customers](https://docs.luminovo.com/specs/bundled/customer/createcustomer.md): Create a new customer.
If successful, the customer will be returned in the response with its ID referenced.

### Get Customer

 - [GET /customers/{id}](https://docs.luminovo.com/specs/bundled/customer/getcustomer.md): Get a customer based on its ID.

### Delete Customer

 - [DELETE /customers/{id}](https://docs.luminovo.com/specs/bundled/customer/deletecustomer.md): Delete a customer by its ID.

### Update Customer

 - [PATCH /customers/{id}](https://docs.luminovo.com/specs/bundled/customer/updatecustomer.md): Update a customer by its ID.

### Get Customer Users

 - [GET /customers/{id}/users](https://docs.luminovo.com/specs/bundled/customer/getcustomerusers.md): Returns all users associated with a customer.

### Invite Customer User

 - [POST /customers/{id}/users](https://docs.luminovo.com/specs/bundled/customer/invitecustomeruser.md): Invite a user to a customer. The user will receive an email invitation to join the customer portal.

### Delete Customer User

 - [DELETE /customers/{id}/users/{user_id}](https://docs.luminovo.com/specs/bundled/customer/deletecustomeruser.md): Delete a user from a customer.

### Update Customer User

 - [PATCH /customers/{id}/users/{user_id}](https://docs.luminovo.com/specs/bundled/customer/updatecustomeruser.md): Update a user associated with a customer.

## Demand

**Deprecated.** The demand import endpoint is deprecated and will be removed in a future version.

A demand in Luminovo is a request for a specific quantity of electronic parts or assemblies
that need to be delivered by a certain date. Demands are attached to assemblies or components
within Luminovo based on the internal part number.


### Create Demand (deprecated)

 - [POST /demand/import](https://docs.luminovo.com/specs/bundled/demand/doc_clear_and_create_demands_v1.md): Deprecated. This endpoint is deprecated and will be removed in a future version.

Create a demand scenario for IPNs. You can create demands for both assemblies and single components.
If a demand gets created for an assembly, it gets propagated to the assembly's subassemblies and BOM items.

## Flexible Calculation

Retrieve calculation plans and their configurations for RFQs.


### Get Calculation Plans by RFQ (v0 - unstable)

 - [GET /flexible-calculation/plans/rfq/{rfq_id}](https://docs.luminovo.com/specs/bundled/flexible-calculation/doc_get_plans_by_rfq_v0.md): Retrieve all flexible calculation plans associated with a given RFQ.

Note: This endpoint uses API version v0, which indicates an unstable contract.
Breaking changes may be introduced without a version bump. Do not rely on the
exact shape of the response for long-lived integrations until this is promoted to v1.

### Get Calculation Plan (v0 - unstable)

 - [GET /flexible-calculation/plans/{id}](https://docs.luminovo.com/specs/bundled/flexible-calculation/doc_get_plan_v0.md): Retrieve a single flexible calculation plan by its ID.

Note: This endpoint uses API version v0, which indicates an unstable contract.
Breaking changes may be introduced without a version bump. Do not rely on the
exact shape of the response for long-lived integrations until this is promoted to v1.

## Manufacturing and Calculation

Get, create, delete and update all your manufacturing resources.


### Get Manufacturing Costs for an Assembly

 - [GET /assemblies/{assembly_id}/manufacturing-data/export](https://docs.luminovo.com/specs/bundled/manufacturing-and-calculation/get_assembly_manufacturing_data_export_v1.md): Get the complete manufacturing related costs for an assembly. Returns the same data that can be
exported via excel on Luminovo.

### Get Calculated Assembly Cost

 - [GET /calculations/assembly-costs](https://docs.luminovo.com/specs/bundled/manufacturing-and-calculation/getcalculationassemblycost.md): Query the calculation table for an assembly. Return material and manufacturing cost as well as all additional cost configured in the calculation table.
The response includes an is_cost_frozen field that indicates whether the cost is frozen.

### Get All Resources

 - [GET /manufacturing/resource](https://docs.luminovo.com/specs/bundled/manufacturing-and-calculation/get_resource_many_v1.md): Get an array of all resources. Resources represent all machinery and employees relevant to production including their
hourly rates (e.g. SMT Personnel or Fuji NXT Pick and Place Machine).

Resources can be used in activities to get time calculations as well as costs associated with them.

### Create New Resource

 - [POST /manufacturing/resource](https://docs.luminovo.com/specs/bundled/manufacturing-and-calculation/doc_post_resource_v1.md): Create a new manufacturing resource.

### Delete Resource

 - [DELETE /manufacturing/resource/{id}](https://docs.luminovo.com/specs/bundled/manufacturing-and-calculation/doc_delete_resource_v1.md): Delete a resource using its ID.

### Update Resource

 - [PATCH /manufacturing/resource/{id}](https://docs.luminovo.com/specs/bundled/manufacturing-and-calculation/doc_patch_resource_v1.md): Update a resource using its ID.

## Offers and Inventory

Import offers and inventory data, create custom part offers and get a PCB offer.


### Import Offers and Inventory

 - [POST /offers/import](https://docs.luminovo.com/specs/bundled/offers-and-inventory/postoffers.md)

### Create Custom Part Offer

 - [POST /offer/custom-part](https://docs.luminovo.com/specs/bundled/offers-and-inventory/createcustompartoffer.md): Creates a new offer for a custom part. Attach the sourcing scenario ID when creating a new custom part offer.

### Get PCB Offer from PCB Pricing Console

 - [GET /supplier-quote/pcb/{pcb_id}/offer/{offer_id}](https://docs.luminovo.com/specs/bundled/offers-and-inventory/getsuppliercustompartoffer.md): Get the offer for a PCB, which was created in the PCB pricing console.

## Order Management

This section is relevant for the users of Luminovo’s Customer Collaboration Platform.
Use the following endpoints to customize the order options your customer receives when ordering via the Customer Collaboration Platform.


### Create Order Selection Options

 - [POST /order-management/order-selection](https://docs.luminovo.com/specs/bundled/order-management/doc_post_order_selection_options_v1.md): You can create customized order selection options for your customers at the check-out on the Customer Collaboration Platform.
Define custom order batch sizes, lead time, order size, etc.

### Get Order Details

 - [GET /order-management/orders](https://docs.luminovo.com/specs/bundled/order-management/doc_get_orders_v1.md): Get the details for an order placed on the Customer Collaboration Platform relating to an RfQ.

## PCB

PCB-related endpoints and resources.

### Find a PCB using an order ID

 - [GET /ems/pcb/pcbs](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs/get.md): Find a PCB using the orderID that was specified during its creation.

### Create a new PCB

 - [POST /ems/pcb/pcbs](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs/post.md): This endpoint facilitates the creation of a new PCB project.

The request payload does not take any files, but they can be
once the record is created.

It is possible to use the API without providing any project
files. This means analysis and value extraction will not be
available.

If this PCB belongs to a RfQ and should be linked together, then
the externalReference and orderId fields should be filled
and the RfQ should be updated with the PCB's UUID.

The creation of a PCB involves the creation of a specification
that can be used to override the default values of the PCB.

### Get All Capabilities

 - [GET /ems/pcb/capabilities](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1capabilities/get.md): Returns all the available PCB properties and the values available
for each of them, as well as the default value.

Some capabilities depend on the values of other capabilities,
which means the list of available values is not complete unless
the pcb-specific endpoint is used.

### Get a Shared PCB

 - [GET /ems/pcb/shares/{share}](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1shares~1%7Bshare%7D/get.md): Find a Shared PCB by its UUID.

### Get the Shared PCB Files as zip

 - [GET /ems/pcb/shares/{share}/files/all](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1shares~1%7Bshare%7D~1files~1all/get.md): Downloads PCB files of a shared PCB as a zip folder

### Get a PCB

 - [GET /ems/pcb/pcbs/{pcb}](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D/get.md): Find a PCB by its UUID.

### Update a PCB

 - [PUT /ems/pcb/pcbs/{pcb}](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D/put.md): Updates some of the PCB properties that were set during creation.

### Delete a PCB

 - [DELETE /ems/pcb/pcbs/{pcb}](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D/delete.md): Find and delete a PCB by its UUID.

### Clone an existing PCB

 - [POST /ems/pcb/pcbs/{pcb}/clone](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1clone/post.md): Clone an existing PCB.

This clones the PCB, analysis results, specifications and
files associated.

This operation returns an error if the PCB's analysis is
in progress.

### Get the PCB Files as zip

 - [GET /ems/pcb/pcbs/{pcb}/files/all](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1files~1all/get.md): Downloads PCB files as a zip folder

### Get a PCB File

 - [GET /ems/pcb/pcbs/{pcb}/files/singular/{file}](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1files~1singular~1%7Bfile%7D/get.md): Downloads PCB file by name, if it exists.

### Get all PCB Specifications

 - [GET /ems/pcb/pcbs/{pcb}/specifications](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1specifications/get.md): Get all PCB specificationss

### Create a new PCB Specification

 - [PUT /ems/pcb/pcbs/{pcb}/specifications](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1specifications/put.md): Create anew PCB specifications

### Get a PCB Specification

 - [GET /ems/pcb/pcbs/{pcb}/specifications/{specification}](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1specifications~1%7Bspecification%7D/get.md): Find PCB specification by name or UUID

### Update a PCB Specification

 - [PUT /ems/pcb/pcbs/{pcb}/specifications/{specification}](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1specifications~1%7Bspecification%7D/put.md): Update a PCB Specifications

### Delete a PCB Specification

 - [DELETE /ems/pcb/pcbs/{pcb}/specifications/{specification}](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1specifications~1%7Bspecification%7D/delete.md): Delete a PCB Specifications

### Get a PCB Specification Preview

 - [GET /ems/pcb/pcbs/{pcb}/specifications/{specification}/previews](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1specifications~1%7Bspecification%7D~1previews/get.md): Find PCB specification by name or UUID

### Get All Capabilities respecting the currently set values of the specification

 - [GET /ems/pcb/pcbs/{pcb}/capabilities](https://docs.luminovo.com/specs/bundled/pcb/paths/~1ems~1pcb~1pcbs~1%7Bpcb%7D~1capabilities/get.md): Returns all the available PCB properties and the values available
for each of them, as well as the default value.

Some capabilities depend on the values of other capabilities,
which means the values for certain capabilities change based on
the PCB specification.

An example of this behaviour is the inner copper thickness, which
requires the PCB to have at least 4 layers.

### Upload Files to the PCB

 - [POST /files/ems/pcb/pcbs/:pcb/files](https://docs.luminovo.com/specs/bundled/pcb/paths/~1files~1ems~1pcb~1pcbs~1:pcb~1files/post.md)

## PnP

Pick and Place (PnP) data for assemblies.


### Get PnP Items

 - [GET /pnp](https://docs.luminovo.com/specs/bundled/pnp/getpnp.md): Get a list of PnP items for an assembly.

## Purchase Orders

**Deprecated.** These endpoints are deprecated and will not be maintained going forward.
If you currently rely on them and this is a blocker, please reach out to us.

Get and create purchase orders for a sourcing scenario.


### Get Purchase Orders (deprecated)

 - [GET /purchase-orders/{rfq_id}](https://docs.luminovo.com/specs/bundled/purchase-orders/getpurchaseorders.md): Deprecated. This endpoint is deprecated and will not be maintained going forward.
If you currently rely on this endpoint and this is a blocker, please reach out to us.

Get all the purchase orders from Luminovo relating to one RfQ.

### Create Purchase Orders (deprecated)

 - [POST /purchase-orders/{rfq_id}](https://docs.luminovo.com/specs/bundled/purchase-orders/createpurchaseorders.md): Deprecated. This endpoint is deprecated and will not be maintained going forward.
If you currently rely on this endpoint and this is a blocker, please reach out to us.

Create or update purchase orders corresponding to one RfQ.
Typically, you first get the purchase orders into your ERP, perform some transformations,
and send the updated purchase orders to Luminovo.

## Quotation

You can upload the quotation for an RfQ.


### Upload Quotation for an RfQ

 - [POST /rfqs/{id}/quotation/upload](https://docs.luminovo.com/specs/bundled/quotation/uploadquotation.md): By sending the request, you will get a URL to upload the quotation corresponding to an RfQ.

This API is the equivalent of uploading a PDF file in the Quotation section of the frontend.
Upon successful upload, you can call the Update RfQ API to set the RfQ status to QuotationAvailable.

Unless you change the status to QuotationAvailable, the PDF is still available internally, but
(if the customer portal is available) the customer will not be notified and will not be able to
download the PDF. This is consistent with the behavior of the quotation upload in the UI, where
the status is not updated unless you click the 'Send to customer' button.

Uploading is a two-step process:
1. Call this API to retrieve a URL to upload the file to.
1. Upload the file contents to the retrieved URL using the PUT method.
   * The PUT call must set the x-ms-blob-type header to the value BlockBlob.

See the help page
for an explanation of when and how to use this API.

## RfQ

Get one or all RfQ’s, delete, create or update one RfQ.


### Get all RfQs

 - [GET /rfqs](https://docs.luminovo.com/specs/bundled/rfq/getallrfqs.md): Returns all RfQ's in Luminovo.

### Create Rfq

 - [POST /rfqs](https://docs.luminovo.com/specs/bundled/rfq/createrfq.md): Create a new RfQ either for an existing or a new customer.

### Get RfQ status change history

 - [GET /rfqs/status-history](https://docs.luminovo.com/specs/bundled/rfq/getrfqstatushistory.md): Returns the history of status changes for all RfQs.

### Get Rfq

 - [GET /rfqs/{id}](https://docs.luminovo.com/specs/bundled/rfq/getrfq.md): Get one RfQ based on its ID.

### Delete RfQ

 - [DELETE /rfqs/{id}](https://docs.luminovo.com/specs/bundled/rfq/deleterfq.md): Delete an RfQ based on its ID.

### Update RfQ

 - [PATCH /rfqs/{id}](https://docs.luminovo.com/specs/bundled/rfq/updaterfq.md): Update an RfQ based on its ID.

## Sourcing Scenario

A sourcing scenario defines a sourcing configuration for a project. Each scenario specifies which
assemblies to source (demands), their required quantities, and a set of solution preferences
that control how offers are evaluated and selected.

Sourcing scenarios belong to a project, which is either an **RFQ** (Request for Quotation) or a
**Negotiation**. A single project can have multiple scenarios, allowing you to compare
different sourcing strategies side by side — for example, different order quantities,
supplier preferences, or lead time targets.

**Note on solution preferences:** Sourcing scenarios include detailed solution preferences that control
how offers are evaluated (e.g., lead time targets, supplier preferences, inventory handling,
pricing filters, packaging, and excess thresholds). These settings are complex and evolve
frequently — we update them on a monthly basis. For this reason, **managing solution
preferences via the API is not supported**. Please configure them through the Luminovo UI
instead.


### Run Calculation

 - [POST /sourcing-scenarios/run-selection](https://docs.luminovo.com/specs/bundled/sourcing-scenario/runsourcingcalculation.md): Triggers the sourcing selection calculation for the given scenarios.

Typical usage:
- Run for single scenario: {"type": "SourcingScenarios", "sourcing_scenario_ids": ["scenario-uuid"]} - runs selection for one specific scenario
- Multiple specific scenarios: {"type": "SourcingScenarios", "sourcing_scenario_ids": ["uuid1", "uuid2", "uuid3"]} - runs selection for multiple scenarios

Requirements:
- An empty sourcing_scenario_ids array will return a 400 Bad Request error.
- All sourcing scenarios must belong to the same RFQ. Scenarios from different RFQs will result in an error.

### Get Scenario

 - [GET /sourcing-scenarios/{id}](https://docs.luminovo.com/specs/bundled/sourcing-scenario/getsourcingscenariov2.md): Returns a sourcing scenario with its associated project, demands, and settings.

Project

A sourcing scenario is associated with a project, which is either an RFQ (Request for
Quotation) or a Negotiation. The project field is a tagged object with a type
field ("Rfq" or "Negotiation") and an id field containing the project's UUID.

Demands

Each demand item has a type field indicating its kind. Currently only "Assembly"
demands are returned, each with:
- id: the assembly's UUID
- name: the human-readable assembly designator
- quantity: the required quantity with unit of measurement (e.g., {"unit": "Pieces", "quantity": 1000.0})

Limitation: Part demands (for off-the-shelf parts and components/IPNs) are not yet
included in this endpoint and will be added as new type values in a future update.
Consumers should gracefully handle or ignore unknown demand types.

Currency and Exchange Rates

settings.currency.base_currency is the base currency used for all cost calculations in
this sourcing scenario. All monetary values are converted to this currency.

settings.currency.exchange_rates maps each foreign currency code to its conversion rate.
Rates are expressed as: 1 unit of base currency = rate units of foreign currency.

Each rate has an is_manual flag:
- true: the rate was manually overridden by a user and takes precedence over the automatic rate
- false: the rate was automatically fetched from a public exchange rate provider

The settings object is extensible — additional setting groups may be added alongside
currency in the future.

Versioning

> Note: A legacy v1 version of this endpoint is available by sending
> Accept: application/api.luminovo.sourcing-scenario-v1+json. It is deprecated and
> returns a less detailed response — it omits currency settings, assembly names, and project
> type information. All new integrations should use v2.

### Create Scenario (deprecated)

 - [POST /sourcing-scenarios](https://docs.luminovo.com/specs/bundled/sourcing-scenario/createsourcingscenario.md): Deprecated. This endpoint is deprecated and will be removed in a future version.

Create a new sourcing scenario corresponding to an RfQ.

### Update Scenario (deprecated)

 - [PATCH /sourcing-scenarios/{id}](https://docs.luminovo.com/specs/bundled/sourcing-scenario/updatesourcingscenario.md): Deprecated. This endpoint is deprecated and will be removed in a future version.

Updates a sourcing scenario based on its ID. All assemblies relating to the scenario must be
included in the request — only those in the request will be considered for the scenario.

## Supplier

Supplier-management related endpoints.


### Get Suppliers

 - [GET /suppliers](https://docs.luminovo.com/specs/bundled/supplier/getsuppliers.md): Retrieves supplier information with optional filtering.

## Parameters
- ids (optional): Array of supplier IDs to filter by. If provided, only suppliers matching these IDs will be returned.

## Behavior
- With IDs: Returns only the specified suppliers (bulk retrieval)
- Without IDs: Returns all available suppliers

## Returns
A list of supplier objects containing their basic information and metadata.

## Example

GET /suppliers?ids=123,456,789  // Get specific suppliers
GET /suppliers                  // Get all suppliers

### Import Suppliers

 - [POST /suppliers](https://docs.luminovo.com/specs/bundled/supplier/importsuppliers.md): Import a list of suppliers.

### Delete Supplier

 - [DELETE /suppliers/{id}](https://docs.luminovo.com/specs/bundled/supplier/deletesupplier.md): Delete a supplier by its ID.

Note: System suppliers cannot be deleted and will return an error if deletion is attempted

### Update Supplier

 - [PATCH /suppliers/{id}](https://docs.luminovo.com/specs/bundled/supplier/updatesupplier.md): Update a supplier by its ID.
Note: For system suppliers, only the supplier number & preference can be updated.

## User

Get all your Luminovo users.


### Get All Users

 - [GET /users](https://docs.luminovo.com/specs/bundled/user/getallusers.md): Returns all users of your system.

