4.8 KiB
4.8 KiB
POST /quote/{id}/order
Protected. Requires a valid session cookie (credentials: 'include').
Create order from quote
Creates a sales order from an existing quote for the authenticated user's selected company. Copies lines, customer entity, and external number from the quote unless explicitly overridden. If the order number is omitted, it is auto-allocated from the sequence.
Path parameters
| Param | Required | Type | Description |
|---|---|---|---|
id |
yes | integer | Quote ID |
Body (JSON) — optional
| Field | Required | Type | Description |
|---|---|---|---|
number |
no | string | Optional sales order number. Auto-allocated from sequence if omitted. |
date |
no | string | Optional order date (ISO format). Defaults to current date. |
createdAt |
no | string | Optional creation timestamp. |
entityId |
no | integer | Customer entity ID override. Defaults to quote's entityId. |
externalNumber |
no | string | External customer reference override. Defaults to quote's externalNumber. |
lines |
no | ManifestLineInput[] | Optional line items override. Defaults to quote's lines. |
{
"number": "…",
"date": "…",
"createdAt": "2026-08-10T00:00:00.000Z",
"entityId": 1,
"externalNumber": "…",
"lines": [
{
"sku": "…",
"name": "…",
"pu": 1,
"amount": 1,
"net": 1,
"taxrate": 1,
"rebate": 1,
"comment": "…"
}
]
}
Response 201
Created order
{
"order": {
"id": 1,
"number": "…",
"type": "order",
"entityId": 1,
"externalNumber": "…",
"date": "2026-08-10T00:00:00.000Z",
"createdAt": "2026-08-10T00:00:00.000Z",
"lines": [
{
"id": 1,
"sku": "…",
"name": "…",
"pu": 1,
"amount": 1,
"net": 1,
"rebate": 1,
"taxrate": 1,
"comment": "…"
}
],
"shipping": {
"id": 1,
"manifestId": 1,
"number": "…",
"trackingCode": "…",
"carrier": "…",
"type": "…",
"state": "…"
},
"shippings": [
{
"id": 1,
"manifestId": 1,
"number": "…",
"trackingCode": "…",
"carrier": "…",
"type": "…",
"state": "…"
}
],
"payment": {
"id": 1,
"accountId": 1,
"manifestId": 1,
"type": "…",
"amount": 1
},
"payments": [
{
"id": 1,
"accountId": 1,
"manifestId": 1,
"type": "…",
"amount": 1
}
],
"paid": true,
"shipped": true,
"delivered": true,
"orderTotal": 1,
"paidTotal": 1,
"orderedQuantity": 1,
"shippedQuantity": 1,
"shipments": [
{
"id": 1,
"number": "…",
"type": "shipment",
"entityId": 1,
"externalNumber": "…",
"date": "…",
"createdAt": "…",
"lineCount": 1,
"packageCount": 1,
"lines": [
{
"id": 1,
"sku": "…",
"name": "…",
"pu": 1,
"amount": 1,
"net": 1,
"rebate": 1,
"taxrate": 1,
"comment": "…"
}
],
"shippings": [
{
"id": 1,
"manifestId": 1,
"number": "…",
"trackingCode": "…",
"carrier": "…",
"type": "…",
"state": "…"
}
],
"files": [
{
"id": 1,
"manifestId": 1,
"fileId": 1,
"sort": 1,
"hash": "…",
"mimetype": "…",
"name": "…",
"size": 1,
"created": "2026-08-10T00:00:00.000Z",
"modified": "2026-08-10T00:00:00.000Z",
"skeledash": "…",
"thumbx": 1,
"thumby": 1,
"meta": {}
}
]
}
],
"files": [
{
"id": 1,
"manifestId": 1,
"fileId": 1,
"sort": 1,
"hash": "…",
"mimetype": "…",
"name": "…",
"size": 1,
"created": "2026-08-10T00:00:00.000Z",
"modified": "2026-08-10T00:00:00.000Z",
"skeledash": "…",
"thumbx": 1,
"thumby": 1,
"meta": {}
}
]
}
}
Errors
| Status | Description |
|---|---|
| 400 | No company selected, invalid quote id, or invalid order data — {"error":"…"} |
| 401 | Unauthorized — {"error":"…"} |
| 403 | Not authorized for company — {"error":"…"} |
| 404 | Quote not found or entity not found — {"error":"…"} |
| 500 | Server error — {"error":"…"} |
Generated from @openapi JSDoc. Do not edit by hand — run npm run docs:api.