Skip to content

Create Sales Order

POST /api/sales-order

Required privilege: Demand / Edit Content-Type: application/json CSRF header required: X-XSRF-TOKEN


Request Body

{
  "SO List Number": "SO-2024-100",
  "SO List Document Status": "Open",
  "SO List Order Date": "2024-03-15",
  "Customer Number": "CUST-004",
  "Sales Order Id": null,
  "details": [
    {
      "id": null,
      "Item Number": "ITEM-A",
      "Sub Item Number": null,
      "Warehouse Number": "WH-01",
      "Ship To Number": "ST-09",
      "SO Details Price": 25.00,
      "SO Details Quantity": 150,
      "SO Details Document Status": "Open",
      "SO Details Order Date": "2024-03-15",
      "SO Details Ship Date": "2024-03-22",
      "SO Details Tracking": null,
      "SO Details Unique Id": null
    }
  ]
}

Header Fields

Field Type Required Description
SO List Number string Yes Unique SO document number
SO List Document Status string Yes Initial status
SO List Order Date string | null No ISO 8601 date
Customer Number string Yes Customer reference code - must exist in Customer Master
Sales Order Id integer | null No Set to null for new orders

Detail Line Fields

Field Type Required Description
id integer | null No null for new lines
Item Number string Yes Item reference code - must exist in Item Master
Sub Item Number string | null No Sub-item reference
Warehouse Number string Yes Fulfilling warehouse - all lines must share the same warehouse
Ship To Number string Yes Customer ship-to location - must exist in Ship To Master
SO Details Price number | null No Unit sale price
SO Details Quantity number Yes Ordered quantity
SO Details Document Status string Yes Line status
SO Details Order Date string | null No ISO 8601 date
SO Details Ship Date string | null No ISO 8601 date - must be ≥ Order Date
SO Details Tracking string | null No BOL / tracking reference
SO Details Unique Id string | null No External unique identifier

Validation Rules

Rule Error Code
details must not be empty OrderList.NoItems
All line items must share the same Warehouse Number OrderList.MultipleWarehouses
Order Date ≤ Ship Date SalesOrderDetails.OrderDateAfterShip
Customer Number must exist CustomerMaster.NotFound
Item Number must exist ItemMaster.NotFound
Warehouse Number must exist WarehouseMaster.NotFound
Ship To Number must exist ShipToMaster.NotFound

Response

{
  "message": "Sales order created successfully.",
  "notification_type": "Success"
}

If tables are locked during integration: notification_type is Warning.


Code Examples

CSRF=$(grep csrf_access_token cookies.txt | awk '{print $NF}')
curl -b cookies.txt -X POST https://acme.knosc.com/api/sales-order \
  -H "Content-Type: application/json" \
  -H "X-XSRF-TOKEN: $CSRF" \
  -d '{
    "SO List Number": "SO-2024-100",
    "SO List Document Status": "Open",
    "SO List Order Date": "2024-03-15",
    "Customer Number": "CUST-004",
    "Sales Order Id": null,
    "details": [{
      "Item Number": "ITEM-A",
      "Warehouse Number": "WH-01",
      "Ship To Number": "ST-09",
      "SO Details Quantity": 150,
      "SO Details Document Status": "Open"
    }]
  }'