Skip to content

Order stock from a supplier

POST
/stock/supplier-orders
curl --request POST \
--url https://example.com/stock/supplier-orders \
--header 'Content-Type: application/json' \
--cookie bottle.session_token=<bottle.session_token> \
--data '{ "supplierId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "supplierName": "example", "locationId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "expectedOn": "2026-04-15", "costPence": 1, "reference": "example", "note": "example", "lines": [ { "productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "quantity": 1, "empties": 1 } ] }'

Full cylinders for one yard, due on a day. Nothing moves in the stock until it arrives; until then it shows as coming in and is not counted as free to sell. Name a saved supplier with supplierId, or a new one with supplierName.

Media typeapplication/json
object
supplierId

UUID v7

string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f
supplierName
string
>= 1 characters <= 120 characters
locationId
required

UUID v7

string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f
expectedOn
required
string format: date
costPence
integer
<= 100000000
reference
string | null
<= 120 characters
note
string | null
<= 500 characters
lines
required
Array<object>
>= 1 items <= 200 items
object
productId
required

UUID v7

string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f
quantity
required
integer
<= 100000
empties
integer
<= 100000

The order

Media typeapplication/json
object
id
required

UUID v7

string format: uuid
supplierId
required

UUID v7

string format: uuid
supplierName
required
string
contacts
required
object
orders
required
object
id
required

UUID v7

string format: uuid
name
required
string
jobTitle
required
string | null
phone
required
string | null
email
required
string | null
note
required
string | null
isMain
required
boolean
isBilling
required
boolean
forOrders
required
boolean
forDeliveries
required
boolean
deliveries
required
object
id
required

UUID v7

string format: uuid
name
required
string
jobTitle
required
string | null
phone
required
string | null
email
required
string | null
note
required
string | null
isMain
required
boolean
isBilling
required
boolean
forOrders
required
boolean
forDeliveries
required
boolean
locationId
required

UUID v7

string format: uuid
locationName
required
string
status
required
string
Allowed values: ordered confirmed part_arrived arrived cancelled
placedVia
required
string
Allowed values: recorded sent
expectedOn
required
string format: date
late
required
boolean
costPence
required
integer
reference
required
string | null
note
required
string | null
lines
required
Array<object>
object
productId
required

UUID v7

string format: uuid
productName
required
string
ordered
required
integer
emptiesToReturn
required
integer
arrived
required
integer
emptiesReturned
required
integer
outstanding
required
integer
short
required
integer
extra
required
integer
receipts
required
Array<object>
object
id
required

UUID v7

string format: uuid
arrivedAt
required
string format: date-time
signedInBy
required
string | null
deliveryNote
required
string | null
hasPhoto
required
boolean
moreToCome
required
boolean
note
required
string | null
byName
required
string | null
lines
required
Array<object>
object
productId
required

UUID v7

string format: uuid
productName
required
string
condition
required
string
Allowed values: full empty
quantity
required
integer
> 0
createdByName
required
string | null
createdAt
required
string format: date-time
confirmedAt
required
string | null format: date-time
confirmedByName
required
string | null
cancelledAt
required
string | null format: date-time
cancelledByName
required
string | null
Example
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"supplierId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"contacts": {
"orders": {
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
},
"deliveries": {
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
},
"locationId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"status": "ordered",
"placedVia": "recorded",
"lines": [
{
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
],
"receipts": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"lines": [
{
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"condition": "full"
}
]
}
]
}

Not signed in

Media typeapplication/json
object
error
required
string
message
required
string
Example
{
"error": "not_found",
"message": "Customer not found"
}

Not a member, or without the permission this needs

Media typeapplication/json
object
error
required
string
message
required
string
Example
{
"error": "not_found",
"message": "Customer not found"
}

No such order, yard, product or supplier in this business

Media typeapplication/json
object
error
required
string
message
required
string
Example
{
"error": "not_found",
"message": "Customer not found"
}

The order has already arrived or been cancelled

Media typeapplication/json
object
error
required
string
message
required
string
Example
{
"error": "not_found",
"message": "Customer not found"
}

Validation failed

Media typeapplication/json
object
error
required
string
Allowed values: validation
message
required
string
issues
required
Array<object>
object
path
required
string
message
required
string
Example
{
"error": "validation",
"issues": [
{
"path": "email",
"message": "Invalid email"
}
]
}