Quote Order
Creates a quote order for hardware equipment. This does not require a catalog model.
You provide the hardware specifications (brand, type, RAM, etc.) and the system generates a quote line for each item.
Prerequisites
No catalog lookup is required. However, you must:
- Provide either
companyCode(for an existing company) or acompanyobject (to create/update company information). - When
sendTois"EMPLOYEE", you must provide eitheremployeeEmailor anemployeeobject.
Authentication
This endpoint requires authentication. See Authentication for details.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| countryCode | string | Yes | Country code in ISO 3166-1 alpha-2 format |
| sendTo | string | Yes | Destination: "EMPLOYEE", "STORAGE", "OFFICE" or "QUOTE_ONLY" |
| companyCode | string | Conditional | Required if company object is not provided |
| company | object | Conditional | Required if companyCode is not provided |
| hardwares | array | Yes | Array of hardware items to quote |
| employeeEmail | string | Conditional | Required when sendTo is "EMPLOYEE" and employee is not provided |
| employee | object | Conditional | Required when sendTo is "EMPLOYEE" and employeeEmail is not provided |
| poNumber | string | No | Purchase Order number for reference |
| clientName | string | No | Name of the client for this order. Will be stored in the order and later added to hardware notes/description when delivered |
| ABMId | string | No | ABM identifier. Will be added as a comment in the order along with the clientName |
| autoQuote | boolean | No | If true, automatically generates quote prices and updates order status to QUOTED. Sandbox/testing environments only. |
Hardware Item Properties (Quote)
| Property | Type | Required | Description |
|---|---|---|---|
| brand | enum(Brand) | Conditional | Required for MACBOOK and PC. Not allowed for warranty types. One of: ACER, ASUS, DELL, HP, LENOVO, SAMSUNG, LG, VAIO, MICROSOFT |
| hardwareType | "MACBOOK" | "PC" | "EXTENDED_WARRANTY_MAC" | "EXTENDED_WARRANTY_WINDOWS" | Yes | Used to resolve hardwareTypeId internally |
| ram | string | No | e.g. "16GB". Not allowed for warranty types. |
| diskSize | string | No | e.g. "512GB". Not allowed for warranty types. |
| displaySize | string | No | e.g. "15.6". Not allowed for warranty types. |
| model | string | No | e.g. "Latitude 5420". Not allowed for warranty types. |
| processor | string | No | e.g. "i7-1165G7". Not allowed for warranty types. |
| amount | number | Yes | Quantity |
| externalItemId | string | No | External item identifier for integration purposes |
| notes | string | No | Optional notes for the hardware item |
Note: The
hardwareTypeis used to look up thehardwareTypeId. Theimagewill be copied from thehardwareTypeif not provided.
Warranty Hardware Types
For warranty hardware types (EXTENDED_WARRANTY_MAC and EXTENDED_WARRANTY_WINDOWS), the following restrictions apply:
- Required fields:
hardwareType,amount - Optional fields:
externalItemId,notes - Prohibited fields:
brand,ram,diskSize,displaySize,model,processor
These fields are not allowed for warranty types and will result in a validation error if provided.
Company Properties (When Creating/Updating Company)
| Property | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Company name |
| companyCode | string | Yes | Unique code for the company |
| countryCode | string | Yes | Country code in ISO 3166-1 alpha-2 format |
| legalNumber | string | Yes | Legal identification number of the company |
| contactEmail | string | Yes | Primary contact email for the company |
| phone | string | Yes | Phone number with country code |
Employee Properties (When Creating/Updating Employee)
| Property | Type | Required | Description |
|---|---|---|---|
| firstName | string | Yes | First name of the employee |
| lastName | string | Yes | Last name of the employee |
| string | Yes | Email address of the employee | |
| phone | string | Yes | Phone number with country code |
| governmentDNI | string | Yes | Government-issued identification number |
| address | string | Yes | Primary address |
| city | string | Yes | City of residence |
| addressExtraInfo | string | No | Additional address information |
| postCode | string | Yes | Postal/ZIP code |
| countryCode | string | Yes | Country code in ISO 3166-1 alpha-2 format |
Request
Production URL: https://orchestrator.tecspal.com/
Sandbox URL: https://tecspal-orchestrator.sandbox.lexartlabs.uy/
Endpoint: POST /orders/quote
Example Request
Standard Hardware Request
{
"data": {
"countryCode": "UY",
"sendTo": "STORAGE",
"companyCode": "DM1",
"poNumber": "PO-2024-12345",
"clientName": "Acme Corporation",
"ABMId": "ABM-12345",
"hardwares": [
{
"brand": "DELL",
"hardwareType": "PC",
"ram": "16GB",
"diskSize": "512GB",
"displaySize": "15.6",
"model": "Latitude 5420",
"processor": "i7-1165G7",
"amount": 1,
"externalItemId": "EXT-12345"
},
{
"brand": "MICROSOFT",
"hardwareType": "PC",
"ram": "32GB",
"diskSize": "1TB",
"displaySize": "15",
"model": "Surface Laptop 5",
"processor": "i7-1265U",
"amount": 2
}
]
},
"request": "orders/quote",
"vendor": "tecspal",
"verb": "POST"
}
Warranty Hardware Request
{
"data": {
"countryCode": "UY",
"sendTo": "STORAGE",
"companyCode": "DM1",
"hardwares": [
{
"hardwareType": "EXTENDED_WARRANTY_MAC",
"amount": 1,
"externalItemId": "daslkda-23123",
"notes": "Extended warranty for MacBook Pro"
},
{
"hardwareType": "EXTENDED_WARRANTY_WINDOWS",
"amount": 2,
"externalItemId": "warranty-456",
"notes": "Extended warranty for Windows laptops"
}
]
},
"request": "orders/quote",
"vendor": "tecspal",
"verb": "POST"
}
Response Schema
| Property | Type | Description |
|---|---|---|
| statusCode | number | HTTP status code of the response |
| message | string | Description of the response status |
| envelop | array | Array containing the order data |
Order Properties
| Property | Type | Description |
|---|---|---|
| id | string | Unique identifier of the order |
| orderNumber | number | Order number |
| createdAt | string | ISO timestamp when order was created |
| updatedAt | string | ISO timestamp when order was last updated |
| status | string | Status of the order (e.g. PENDING) |
| date | string | null | Delivery date (if available) |
| eta | string | null | Estimated delivery date |
| trackingLink | string | null | Link for tracking the order |
| countryCode | string | Country code (e.g. UY) |
| sendTo | string | Recipient type (e.g. EMPLOYEE, STORAGE) |
| currency | string | Currency used (e.g. USD) |
| dateCompleted | string | null | Date the order was completed |
| apiClientRequesterName | string | Name of the API client that submitted the request |
| companyName | string | Name of the company |
| clientName | string | null | Client name for this order (if provided) |
| description | string | null | Notes or description entered for the order |
| employeeProfile | object | null | Employee profile info, if applicable |
| hardwares | array | List of hardware items requested |
| poNumber | string | null | Purchase Order number, if provided |
| resellerIds | array | Array of reseller IDs matching the order's country (only for API-created orders) |
hardwares Properties
| Property | Type | Description |
|---|---|---|
| id | string | Hardware ID |
| amount | number | Quantity of the item |
| notes | string | null | Notes associated with the item |
| poNumber | string | null | Purchase Order number, if provided |
| quotedUnitPrice | string | null | Quoted price per unit (if available) |
| createdAt | string | ISO timestamp when item was added |
| catalogModelId | string | null | Optional catalog model reference |
| brand | string | Brand name |
| name | string | Name of the hardware |
| ram | string | RAM configuration (if applicable) |
| diskSpace | string | Disk size (if applicable) |
| displaySize | string | Display size (if applicable) |
| processor | string | Processor (if applicable) |
| image | string | URL to the image |
| externalItemId | string | null | External item identifier (if provided) |
resellerIds Properties
| Property | Type | Description |
|---|---|---|
| id | string | Unique identifier of the reseller ID |
| code | string | Reseller code |
| countryCode | string | Country code matching the reseller's location |
Note: resellerIds is only populated for orders created via the API (when apiClientRequesterName is not null). For orders created through the web interface, this field will be an empty array.
Example Response
{
"envelop": [
{
"id": "1ae94b8b-054e-4e84-8b22-7b9eaf168fdf",
"orderNumber": 10001010,
"createdAt": "2025-08-13T20:25:15.914Z",
"updatedAt": "2025-08-13T20:25:15.914Z",
"status": "PENDING",
"date": null,
"eta": null,
"trackingLink": null,
"countryCode": "UY",
"sendTo": "STORAGE",
"currency": "USD",
"dateCompleted": null,
"description": null,
"apiClientRequesterName": "EXAMPLE API CLIENT\t",
"companyName": "Larian Studios",
"clientName": "Acme Corporation",
"poNumber": "PO-2024-12345",
"employeeProfile": null,
"resellerIds": [
{
"id": "uuid-1",
"code": "RESELLER-001",
"countryCode": "UY"
},
{
"id": "uuid-2",
"code": "RESELLER-002",
"countryCode": "UY"
}
],
"hardwares": [
{
"id": "ac1b5975-1ff7-4eee-a5ce-a05d4933571b",
"amount": 1,
"notes": null,
"quotedUnitPrice": null,
"createdAt": "2025-08-13T20:25:15.920Z",
"catalogModelId": null,
"brand": "DELL",
"name": "Latitude 5420",
"ram": "16GB",
"diskSpace": "512GB",
"displaySize": "15.6",
"processor": "i7-1165G7",
"image": "https://a-us.storyblok.com/f/1001855/1969x1515/a3eebe8012/generic-laptop.png",
"externalItemId": "EXT-12345"
}
]
}
],
"message": "Request successful",
"statusCode": 201
}
Error Responses
Missing Required Field (400)
{
"error": "Bad Request",
"message": "Missing required field: companyCode",
"statusCode": 400
}
Unauthorized (401)
{
"error": "Unauthorized",
"message": "Unauthorized access",
"statusCode": 401
}
Notes
- This endpoint returns a pending quote order. The quote is not fulfilled or shipped.
- Use
hardwareTypeto define the hardware classification; no catalog model lookup is required. - If
sendTois "STORAGE", no employee data is required. - When
autoQuoteisfalseor not provided, the order is created withPENDINGstatus and no prices. - When
autoQuoteistrue, the system automatically:- Generates quote prices for all hardware items
- Updates the order status to
QUOTED - Returns the order with prices already filled
- Requests using
autoQuote: trueare only accepted in sandbox/testing environments (NODE_ENVset todevelopment,devorstaging). Production requests withautoQuotewill be rejected. - If
clientNameis provided, it will be stored in the order and later added to hardware notes/description when the order is delivered. - If
ABMIdis provided, it will be added as a comment in the order along with theclientName(if provided). The comment format will be:ABMId: {ABMId}and/orClient Name: {clientName}. - Warranty types: For
EXTENDED_WARRANTY_MACandEXTENDED_WARRANTY_WINDOWS, onlyhardwareType,amount,externalItemId, andnotesare allowed. Providingbrand,ram,diskSize,displaySize,model, orprocessorwill result in a validation error.