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&scope=day' \
--cookie __Host-bottle.session_token=<__Host-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. Use scope=assigned for every unfinished assigned round, regardless of its start date, plus rounds starting or completed on the requested date.

date
required
string format: date
scope
string
Allowed values: day assigned

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
yardId
required

UUID v7

string | null format: uuid
status
required
string
Allowed values: planned out done
issuedAt
required
string | null format: date-time
sentOverLimit
required
object
byKg
required
integer | null
> 0
byLitres
required
integer | null
> 0
sentBy
required
string | null
note
required
string | null
sentOverLimitReason
required

Use sentOverLimit.note.

string | null
salesRoom
object
stops
required
integer
seconds
required
integer
lines
required
Array<object>
object
productId
required
string
quantity
required
integer
> 0
cylinders
required
integer
usualCylinders
required
integer
kg
required
number
litres
required
number
heldOrders
required
integer
stillThere
required
boolean
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
deliveryWindowHours
required
Any of:
number
Allowed values: 1
stops
required
Array<object>
object
accountAccess
object
unpaidInvoices
required
boolean
newOrdersBlocked
required
boolean
deliveriesBlocked
required
boolean
id
required

UUID v7

string format: uuid
orderId
required

UUID v7

string format: uuid
transferId

UUID v7

string | null format: uuid
transferLeg
string | null
Allowed values: collection drop
loadLocationId

Set on a stop that collects the round’s own stock from one of your yards: cylinders kept there rather than where the van loads. It has no order and no transfer; orderId carries the stop’s own id.

string | null format: uuid
collectFrom
object
usualYardId
required

UUID v7

string format: uuid
usualYardName
required
string
locationId
required

UUID v7

string | null format: uuid
address
required
object
name
required
string | null
line1
required
string
city
required
string | null
postcode
required
string
sequence
required
integer
> 0
addedAt
string format: date-time
addedOnRoad
boolean
latitude
required
number | null
longitude
required
number | null
placement
string
Allowed values: drop door street postcode none
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
faultySwap
boolean
collect
required
Array<object>
object
productId
required

UUID v7

string format: uuid
productName
required
string
quantity
required
integer
> 0
fulfilment
required
string
Allowed values: delivery collection
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
billingOwner

Bottle: Bottle owns invoicing and payment. shop: the connected shop owns both, so Bottle must only fulfil the order. elsewhere: the business invoiced or took payment outside Bottle, so Bottle only fulfils the order.

string
Allowed values: bottle shop elsewhere
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 customer_cancelled wrong_day wrong_address nothing_to_leave price_problem payment_problem other
failureNote
required
string | null
customerName
required
string | null
customerPhone
string | null
customerContactName
string | null
customerContacts
Array<object>
object
id
required

UUID v7

string format: uuid
name
required
string
email
required
string format: email
phone
required
string | null
/^\+?[\d\s()-]{7,20}$/
kind
required
string
Allowed values: normal billing both
relationship
required
string | null
<= 60 characters
customerReference
string | null
driverNotes
string | null
customerNotes

The same as driverNotes, for apps before 1.2.8. Never the customer record’s notes.

string | null
deliverTo
required

Name, address and postcode in one line.

string | null
summary
required
string
orderStatus
required
string
Allowed values: placed delivered cancelled
onVan
Array<object>
object
stopId
required

UUID v7

string format: uuid
yardId
required

UUID v7

string format: uuid
yardName
required
string
lines
required
Array<object>
object
productId
required

UUID v7

string format: uuid
productName
required
string
quantity
required
integer
onVanAt
required
string format: date-time
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, exactly as entered. Whether VAT is in this figure is what priceIncludesVat says; the other reading is given beside it for display.

integer
<= 100000000
priceIncludesVat
required

Whether unitPrice includes VAT. False: VAT goes on top when the product is sold. True: unitPrice is the shelf price, and the VAT is worked back out of it on each line.

boolean
unitPriceExVat
required

UnitPrice without VAT, in pence, for display. The same as unitPrice when it excludes VAT or the business is not registered; otherwise derived and rounded. Do not multiply it: amounts are worked out from unitPrice.

integer
unitPriceIncVat
required

UnitPrice with VAT, in pence, for display. The same as unitPrice when it includes VAT or the business is not registered; otherwise derived and rounded.

integer
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
chargeForProductIds
required
Array<string>
chargeAudience
required

Who pays a deposit or rent where no price list or agreed amount says otherwise. both: Consumer and Trade customers (the default). consumer: everybody who is not a trade customer, signed in or not. trade: trade customers only. Meaningless on anything that is not a charge.

string
Allowed values: both consumer trade
gasTypeId
required

UUID v7

string | null format: uuid
dangerousGoods
required

This product’s own UN number, proper shipping name and hazard class, where they differ from its gas type’s. Null follows the gas type.

object
unNumber
required

The UN number, four digits without “UN”.

string
/^\d{4}$/
shippingName
required

The proper shipping name from the ADR list, as on the cylinder label.

string
>= 1 characters <= 200 characters
hazardClass
required

The ADR hazard class: 2.1 flammable gas, 2.2 non-flammable non-toxic gas, 2.2 (5.1) non-flammable gas that is also oxidising, 2.3 toxic gas.

string
Allowed values: 2.1 2.2 2.2 (5.1) 2.3
weightKg
required
number | null
volumeLitres
required
integer | null
notes
required
string | null
kind
required

What the product is. The one set on it, or when none has been, read from it: a charge makes it a deposit or hire, a gas type a cylinder, anything else other.

string
Allowed values: cylinder deposit hire accessory appliance fuel consumable delivery other
kindSet
required

Whether kind was set rather than read from the product.

boolean
brand
required
string | null
description
required

The description as plain text, with a blank line between paragraphs and a line per list item. Made from descriptionHtml, for search, previews and anywhere HTML cannot go.

string | null
descriptionHtml
required

The description with its formatting, as sanitised HTML: only p, h2, h3, strong, em, ul, ol, li, br and a. A link has only an http, https or mailto href, rel=“noopener noreferrer nofollow”, and target=“_blank” for a web address. Sanitised again on every read; still treat it as HTML from a third party.

string | null
relatedProductIds
required

Products picked to show under this one on the shop, in order, up to 8. Empty: the shop shows others from the same category.

Array<string>
published
required

On the business’s own shop. Shown there only once the shop is switched on. Never true on an archived product.

boolean
shopAudience
required

Who may buy it on the shop once published. both: everybody (the default). consumer: anybody not signed in for a trade account, so trade customers do not see it. trade: signed-in trade customers only.

string
Allowed values: both consumer trade
refundRule
required

On a deposit: what comes back when a cylinder is returned. Null follows the business’s own setting (invoice settings).

string | null
Allowed values: full percent scale none
refundPercent
required
integer | null
<= 100
refundDeductionPence
required
integer | null
refundScale
required
Array<object> | null
>= 1 items <= 10 items
object
upToMonths
required
integer | null
>= 1 <= 1200
percent
integer
<= 100
fixedPence
integer
<= 10000000
refundCountsFrom
required

Which hire a returned cylinder is measured from. Null is latest.

string | null
Allowed values: latest first
tradeUnitPrice
required

What a trade customer pays, on the shop and on office orders, when no rate has been agreed with them, pence as typed. Null: the list price. A customer’s agreed rate still comes first, and price rules for trade work off this.

integer | null
<= 100000000
tradePriceIncludesVat
required
boolean
tradePriceExVat
required
integer | null
tradePriceIncVat
required
integer | null
costPrice
required

What one costs the business, pence without VAT. Optional; read by cost-plus price rules. Never shown to customers.

integer | null
<= 100000000
stockOnHand
required

How many are on the shelf, for things sold on the shop that are not cylinders. Null is not counted: always available. Set and moved with POST /products/{id}/stock, never here. May be below nought when the product keeps selling once none are left.

integer | null
stockLowAt
required

At or under this count the office is told, and the shop may say low stock. Null is never.

integer | null
stockCounted
required

Whether the yard’s cylinder stock keeps a figure for this product. False: the stock list marks it as not counted, rounds plan as though there are always enough, and nothing warns that it is low or has no figure. Only read on a cylinder.

boolean
tracking
required

How this product’s stock is recorded. quantity: as a count. individual: each cylinder by its own serial number, once Assets is open and switched on for the business. Only read on a cylinder.

string
Allowed values: quantity individual
shelfLifeMonths
required

How many months a fill lasts, for a tracked cylinder. Used to suggest the expiry date when stock comes in. Null: no suggestion.

integer | null
homeLocationId
required

The yard this cylinder is kept at, when it is not wherever a round loads. A round loading at another yard gets a stop at this one to collect what its orders need, before the doors that need it. Null for a cylinder every yard keeps. Only read on a cylinder.

string | null format: uuid
whenOut
required

What the shop does when none are left, for this product. Null follows the shop’s own rule (Settings, Shop). stop: off sale. continue: keeps selling, shown as ships when back in stock.

string | null
Allowed values: stop continue
images
required
Array<object>
object
id
required

UUID v7

string format: uuid
alt
required

What the picture shows, for screen readers and search.

string | null
sortOrder
required
integer
width
required

Of the original, in pixels.

integer
height
required
integer
thumb
required

Fits inside 200 pixels. WebP.

string
card
required

Fits inside 600 pixels. WebP.

string
large
required

Fits inside 1600 pixels. WebP.

string
categoryIds
required
Array<string>
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
details
required

The product details it has, in the order the details are listed (GET /product-details). Archived details are left out; their values are kept.

Array<object>
object
detailId
required

UUID v7

string format: uuid
value
required
Any of:
Array<string>
<= 100 items
archivedAt
required
string | null format: date-time
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
categories
required
Array<object>
object
id
required

UUID v7

string format: uuid
name
required
string
carriedAs
required

What the driver shows the police or DVSA for this product: its own UN number, proper shipping name and hazard class, else its gas type’s. Null when neither is set.

object
unNumber
required

The UN number, four digits without “UN”.

string
/^\d{4}$/
shippingName
required

The proper shipping name from the ADR list, as on the cylinder label.

string
>= 1 characters <= 200 characters
hazardClass
required

The ADR hazard class: 2.1 flammable gas, 2.2 non-flammable non-toxic gas, 2.2 (5.1) non-flammable gas that is also oxidising, 2.3 toxic gas.

string
Allowed values: 2.1 2.2 2.2 (5.1) 2.3
from
required

Whether these come from the product itself or its gas type.

string
Allowed values: product gasType
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
reserved
integer
emptyOnBoard
integer
cylinders
object
scanning
required
boolean
onVan
required
Array<object>
object
roundId
required

UUID v7

string format: uuid
productId
required

UUID v7

string format: uuid
serials
required
Array<string>
atStops
required
Array<object>
object
stopId
required

UUID v7

string format: uuid
productId
required

UUID v7

string format: uuid
serials
required
Array<string>
workReport
object
emailTo
required

Main_contact: the customer’s main contact. everyone: every contact on the account. ask_driver: the driver picks at the stop.

string
Allowed values: main_contact everyone ask_driver
sendAfter
required

Tracked: stops where a tracked cylinder is delivered or collected. every: every stop.

string
Allowed values: tracked every
acknowledgement
required
Array<string>
mustRecord
required
object
cylinderDetails
required
boolean
allChecks
required
boolean
customerSignature
required
boolean
driverSignature
required
boolean
purchaseOrder
required
boolean
jobTypes
required
Array<object>
object
id
required

UUID v7

string format: uuid
name
required
string
rule
required

Install: a cylinder is delivered and none is collected. refill: a cylinder is delivered and one is collected. return: a cylinder is collected and none is delivered. service: the driver services equipment. manual: only chosen by hand.

string
Allowed values: install refill return service manual
position
required
integer
checks
required
Array<object>
object
id
required

UUID v7

string format: uuid
name
required
string
required
required
boolean
position
required
integer
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 | null
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",
"yardId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"status": "planned",
"departsAt": "07:30",
"fit": {
"departsAt": "07:30",
"backAt": "07:30",
"shiftEnd": "07:30",
"over": [
"weight"
]
},
"deliveryWindowHours": 1,
"stops": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"orderId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"transferId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"transferLeg": "collection",
"loadLocationId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"collectFrom": {
"usualYardId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"locationId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
},
"placement": "drop",
"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"
}
],
"fulfilment": "delivery",
"paymentMethod": "on_account",
"billingOwner": "bottle",
"leaveInstruction": "none",
"shortfallReason": "not_on_vehicle",
"issue": "wrong_product",
"failureReason": "nobody_in",
"customerContacts": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"phone": "07700 900123",
"kind": "normal",
"relationship": "Accounts"
}
],
"summary": "3 × 19kg propane",
"orderStatus": "placed"
}
],
"onVan": [
{
"stopId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"yardId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"lines": [
{
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
]
}
]
}
],
"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,
"unitPriceExVat": 5400,
"unitPriceIncVat": 6480,
"vatRate": 2000,
"charge": "deposit",
"chargePeriod": "once",
"chargeForProductId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"chargeForProductIds": [
"019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
],
"chargeAudience": "both",
"gasTypeId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"dangerousGoods": {
"unNumber": "1978",
"shippingName": "PROPANE",
"hazardClass": "2.1"
},
"weightKg": 38.5,
"volumeLitres": 60,
"kind": "cylinder",
"brand": "Flogas",
"descriptionHtml": "<p>A <strong>13kg</strong> propane refill.</p><ul><li>Same day delivery</li></ul>",
"relatedProductIds": [
"019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
],
"shopAudience": "both",
"refundRule": "full",
"refundCountsFrom": "latest",
"stockOnHand": 12,
"stockLowAt": 3,
"tracking": "quantity",
"homeLocationId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"whenOut": "stop",
"images": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
],
"categoryIds": [
"019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
],
"links": [
{
"source": "woocommerce",
"externalId": "1043"
}
],
"details": [
{
"detailId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"value": [
"019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
]
}
],
"categories": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
],
"carriedAs": {
"unNumber": "1978",
"shippingName": "PROPANE",
"hazardClass": "2.1",
"from": "product"
}
}
],
"loads": {
"additionalProperty": {
"items": [
{
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
]
}
},
"cylinders": {
"onVan": [
{
"roundId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
],
"atStops": [
{
"stopId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
]
},
"workReport": {
"emailTo": "main_contact",
"sendAfter": "tracked",
"jobTypes": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"name": "Refill",
"rule": "install"
}
],
"checks": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"name": "Gauge"
}
]
},
"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"
}
]
}