Skip to content

The caller's day, for the driver apps

GET
/driver/day
curl --request GET \
--url 'https://example.com/driver/day?date=2026-04-15' \
--cookie bottle.session_token=<bottle.session_token>

Everything a driver needs for a day, in one answer, for the driver apps to keep on the phone and work from without signal: the rounds sent to the caller on that date with every stop, the bases they start and end at, the gas products that can be handed over, collected or sold, what is on each round’s van, and the caller’s cash in the cab. Give the date as the phone sees it, in the driver’s own time zone. Only rounds the office has sent appear.

date
required
string format: date

The day

Media typeapplication/json
object
date
required
string format: date
rounds
required
Array<object>
object
id
required

UUID v7

string format: uuid
roundDate
required
string format: date
vehicleId
required

UUID v7

string | null format: uuid
vehicleName
required
string | null
driverUserId
required
string | null
driverName
required
string | null
startLocationId
required

UUID v7

string | null format: uuid
endLocationId
required

UUID v7

string | null format: uuid
status
required
string
Allowed values: planned out done
issuedAt
required
string | null format: date-time
loadConfirmedAt
required
string | null format: date-time
van
required
object
latitude
required
number
>= -90 <= 90
longitude
required
number
>= -180 <= 180
seenAt
required
string format: date-time
distanceMetres
required
integer | null
durationSeconds
required
integer | null
departsAt
required
string | null
/^([01]\d|2[0-3]):[0-5]\d$/
fit
required
object
loadKg
required
number | null
payloadKg
required
integer | null
loadLitres
required
integer | null
volumeLitres
required
integer | null
unweighedItems
required
integer
totalSeconds
required
integer | null
departsAt
required
string | null
/^([01]\d|2[0-3]):[0-5]\d$/
backAt
required
string | null
/^([01]\d|2[0-3]):[0-5]\d$/
shiftEnd
required
string | null
/^([01]\d|2[0-3]):[0-5]\d$/
over
required
Array<string>
Allowed values: weight volume hours doorsShut
geometry
required
string | null
routedBy
required
string | null
notes
required
string | null
stops
required
Array<object>
object
id
required

UUID v7

string format: uuid
orderId
required

UUID v7

string format: uuid
sequence
required
integer
> 0
latitude
required
number | null
longitude
required
number | null
pin
object
latitude
required
number
longitude
required
number
etaSeconds
required
integer | null
etaAt
required
string | null
/^([01]\d|2[0-3]):[0-5]\d$/
serviceSeconds
required
integer | null
waitSeconds
required
integer | null
outsideHours
required
boolean
proof
required
object
kind
required
string
Allowed values: signature left_safe
signedBy
required
string | null
note
required
string | null
url
required
string
createdAt
required
string format: date-time
lines
required
Array<object>
object
orderLineId
required

UUID v7

string format: uuid
productId
required

UUID v7

string format: uuid
productName
required
string
quantity
required
integer
> 0
deliveredQuantity
required
integer
cancelledQuantity
required
integer
collect
required
Array<object>
object
productId
required

UUID v7

string format: uuid
productName
required
string
quantity
required
integer
> 0
paymentMethod
required

On_account: billed later, nothing to collect. link: a payment link raised in the accounting system. cash: the driver takes it at the door.

string
Allowed values: on_account link cash
amountDuePence
required
integer
cashTakenPence
required
integer
paidAt
required
string | null format: date-time
leaveInstruction
required
string | null
Allowed values: none neighbour safe_place
leaveDetail
required
string | null
shortfallReason
required
string | null
Allowed values: not_on_vehicle damaged refused other
issue
required
string | null
Allowed values: wrong_product access complaint other
issueNote
required
string | null
completedAt
required
string | null format: date-time
failedAt
required
string | null format: date-time
failureReason
required
string | null
Allowed values: nobody_in no_access refused wrong_address nothing_to_leave other
failureNote
required
string | null
customerName
required
string | null
deliverTo
required

Name, address and postcode in one line.

string | null
summary
required
string
orderStatus
required
string
Allowed values: placed delivered cancelled
version
required
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
locations
required
Array<object>
object
id
required

UUID v7

string format: uuid
kind
required
string
Allowed values: depot home
name
required
string
>= 1 characters <= 120 characters
line1
required
string
>= 1 characters <= 200 characters
city
required
string | null
<= 120 characters
postcode
required
string
>= 5 characters <= 8 characters
archivedAt
required
string | null format: date-time
latitude
required
number | null
longitude
required
number | null
geocodedAt
required
string | null format: date-time
postcodeDistrict
required
string | null
adminDistrict
required
string | null
adminCounty
required
string | null
region
required
string | null
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
products
required
Array<object>
object
id
required

UUID v7

string format: uuid
name
required
string
shortCode
required
string | null
sku
required
string | null
unitPrice
required

Pence, excluding VAT.

integer
<= 100000000
vatRate
required

VAT in basis points: 2000 is 20%, 500 is 5%, 0 is zero rated.

integer
<= 10000
charge
required
string | null
Allowed values: deposit hire
chargePeriod
required
string | null
Allowed values: once daily weekly monthly
chargeForProductId
required

UUID v7

string | null format: uuid
gasTypeId
required

UUID v7

string | null format: uuid
weightKg
required
number | null
volumeLitres
required
integer | null
notes
required
string | null
links
required
Array<object>
object
source
required
string
Allowed values: woocommerce shopify
externalId
required
string
externalVariantId
required
string | null
externalSku
required
string | null
lastSyncedAt
required
string | null format: date-time
archivedAt
required
string | null format: date-time
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
loads
required
object
key
additional properties
object
confirmed
required
boolean
items
required
Array<object>
object
productId
required

UUID v7

string format: uuid
productName
required
string
shortCode
required
string | null
planned
required
integer
loaded
required
integer | null
delivered
required
integer
onBoard
required
integer | null
spare
required
integer | null
cash
required
object
takenTodayPence
required
integer
outstandingPence
required
integer
since
required
string | null format: date-time
oldestDays
required
integer
handingInPence
required
integer
waiting
required
Array<object>
object
id
required

UUID v7

string format: uuid
driverUserId
required
string
driverName
required
string | null
amountPence
required
integer
<= 100000000
drops
required
integer
startedBy
required
string
Allowed values: driver office
startedByName
required
string | null
status
required
string
Allowed values: waiting agreed disputed cancelled
note
required
string | null
answeredByName
required
string | null
answeredAt
required
string | null format: date-time
answerNote
required
string | null
createdAt
required
string format: date-time
takings
required
Array<object>
object
id
required

UUID v7

string format: uuid
driverUserId
required
string
driverName
required
string | null
roundId
required

UUID v7

string | null format: uuid
orderId
required

UUID v7

string | null format: uuid
customerName
required
string | null
invoiceId
required

UUID v7

string | null format: uuid
invoiceNumber
required
string | null
amountPence
required
integer
<= 100000000
takenAt
required
string format: date-time
settledAt
required
string | null format: date-time
note
required
string | null
handoverId
required

UUID v7

string | null format: uuid
fetchedAt
required
string format: date-time
Example
{
"rounds": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"vehicleId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"startLocationId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"endLocationId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"status": "planned",
"departsAt": "07:30",
"fit": {
"departsAt": "07:30",
"backAt": "07:30",
"shiftEnd": "07:30",
"over": [
"weight"
]
},
"stops": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"orderId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"etaAt": "07:30",
"proof": {
"kind": "signature"
},
"lines": [
{
"orderLineId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"productName": "19kg propane"
}
],
"collect": [
{
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"productName": "19kg propane"
}
],
"paymentMethod": "on_account",
"leaveInstruction": "none",
"shortfallReason": "not_on_vehicle",
"issue": "wrong_product",
"failureReason": "nobody_in",
"summary": "3 × 19kg propane",
"orderStatus": "placed"
}
]
}
],
"locations": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"kind": "depot",
"name": "Yard",
"postcode": "KT3 4BP",
"postcodeDistrict": "KT3",
"adminDistrict": "Kingston upon Thames",
"adminCounty": "Surrey",
"region": "London"
}
],
"products": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"name": "19kg propane",
"shortCode": "19",
"sku": "PROP-19",
"unitPrice": 5400,
"vatRate": 2000,
"charge": "deposit",
"chargePeriod": "once",
"chargeForProductId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"gasTypeId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"weightKg": 38.5,
"volumeLitres": 60,
"links": [
{
"source": "woocommerce",
"externalId": "1043"
}
]
}
],
"loads": {
"additionalProperty": {
"items": [
{
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
]
}
},
"cash": {
"waiting": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"startedBy": "driver",
"status": "waiting"
}
],
"takings": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"roundId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"orderId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"invoiceId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"handoverId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
]
}
}

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"
}

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"
}
]
}