Files
dashback/docs/api/routes/quote/order.md
2026-10-15 15:55:01 +02:00

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.