Send us orders, change them, and follow them through to delivery. You only ever see your own orders, and you find each one by your own reference.
The endpoints are also in the OpenAPI document, for generating a client.
References
Every order needs a reference of your own, such as your order number: letters, digits, ., _ and -, up to 64 characters. Use each reference once. Sending a reference again gets 409, so it’s safe to retry creating an order (see Errors).
Changing an order
You can change an order while its status is Received, before we start making it. Send the whole order again to PUT /partner/v1/orders/{reference}: it replaces the purchaser, recipient, delivery, message and items, so include every field, not only the ones that changed. The reference can’t be changed.
Once we’ve started an order you get 409. Contact us if it still needs to change.
Statuses
Status
Meaning
Received
We have the order and haven’t started it.
InProgress
It’s being made.
Packed
It’s made and waiting for the courier.
Dispatched
It’s with the courier. shipments has the tracking numbers.
Delivered
It’s been delivered.
DeliveryFailed
The courier couldn’t deliver it, and will usually try again.
Returned
It came back to us.
OnHold
We’ve paused it, and will be in touch.
Cancelled
It’s been cancelled.
We may add statuses later, so treat one you don’t recognise as “in progress” rather than failing.
How an order usually moves between them:
flowchart TD
subgraph before [Before dispatch]
Received --> InProgress --> Packed
end
before --> Dispatched
Dispatched --> Delivered
Dispatched --> DeliveryFailed
DeliveryFailed -->|tried again| Dispatched
DeliveryFailed --> Returned
Dispatched --> Returned
before --> OnHold
OnHold -->|resumed| before
before --> Cancelled
OnHold --> Cancelled
An order on hold goes back to where it was when we resume it. You see the status an order has when you look, so it can seem to skip statuses: for example, straight from Received to Dispatched.
Endpoints
GET /partner/v1/orders - List orders
GET/partner/v1/orders
List orders
Your orders, newest first. Pages are cursor-based: pass the previous page’s nextCursor as cursor to
get the next page; nextCursor is null on the last page.
Parameters
Name
In
Type
Description / Example
deliveryDateFrom
query
string:date
Description
Only orders for delivery on or after this date.
deliveryDateTo
query
string:date
Description
Only orders for delivery on or before this date.
cursor
query
string
Description
The previous page’s nextCursor. Leave it out for the first page.
pageSize
query
integer:int32
Description
Orders per page, 1 to 100.
Responses
Status
Description
200
A page of orders.
OrderPage
200 body
application/json
Field
Type
Description / Example
items
array[Order]Show fields
Field
Type
Description / Example
reference
string | null
Description
Your reference for the order.
status
OrderStatus
Description
Where an order has got to. Received: we have the order and haven’t started it. InProgress: it’s being
made. Packed: it’s made and waiting for the courier. Dispatched: it’s with the courier. Delivered.
DeliveryFailed: the courier couldn’t deliver it, and will usually try again. Returned: it came back to us.
OnHold: we’ve paused it, and will be in touch. Cancelled.
receivedAt
string:date-time | null
Description
When we received the order (UTC).
purchaser
PurchaserShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Siobhán Murphy
email*
string:email
minLength: 1maxLength: 254
Description
Their email address.
Example
siobhan@example.com
Description
The person who placed the order.
recipient
RecipientShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Mary Murphy
telephone*
string
minLength: 1maxLength: 30
Description
A telephone number the courier can call them on.
Example
+353 87 123 4567
address*
AddressShow fields
Field
Type
Description / Example
line1*
string
minLength: 1maxLength: 100
Description
The first line: house number or name, and street.
Example
12 Main Street
line2
string | null
maxLength: 100
Description
The second line, if there is one.
Example
Rathmines
city
string | null
maxLength: 60
Description
The town or city.
Example
Dublin 6
county
string | null
maxLength: 60
Description
The county.
Example
Dublin
postcode
string | null
maxLength: 20
Description
The postcode (Eircode in Ireland).
Example
D06 A1B2
country*
string
minLength: 1maxLength: 60
Description
The country.
Example
Ireland
Description
A postal address.
Description
The person the order is for, and where it’s going.
delivery
DeliveryShow fields
Field
Type
Description / Example
date*
string:date
Description
The delivery date: today or later.
Example
2026-11-14
earliestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The start of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
09:00
latestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The end of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
13:00
Description
When the order is to be delivered.
message
string | null
Description
The message for the card.
items
array[OrderItem]Show fields
Field
Type
Description / Example
sku*
string
minLength: 1maxLength: 64
Description
Your product code.
Example
BQT-ROSE-12
name*
string
minLength: 1maxLength: 255
Description
The product’s name.
Example
A dozen red roses
quantity
integer:int32
minimum: 1maximum: 100
Description
How many: 1 to 100.
Example
1
unitPrice*
number:double
minimum: 0maximum: 100000
Description
The price of one, in euro.
Example
49.99
Description
What’s in the order.
shipments
array[Shipment]Show fields
Field
Type
Description / Example
carrier
string | null
Description
The courier, if known, such as DPD.
trackingNumber
string | null
Description
The courier’s tracking number.
Description
The order’s parcels with the courier, once it’s dispatched: empty until then.
Description
This page’s orders, newest first.
nextCursor
string | null
Description
Pass as cursor to get the next page; null on the last page.
400
A filter isn’t valid, such as delivery dates the wrong way round.
ValidationProblemDetails
400 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
errors
map[string, array[string]]
Additional properties: any
401
The access token is missing, invalid or expired.
ProblemDetails
401 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
403
The token isn’t for a partner application we’ve set up.
ProblemDetails
403 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
POST /partner/v1/orders - Create an order
POST/partner/v1/orders
Create an order
Each order needs a reference of your own that you haven’t used before. If you send a reference again,
for example retrying after a timeout, you get 409 and the order isn’t created twice: get the order by
its reference to see it.
Request Body
application/json
Field
Type
Description / Example
purchaser*
PurchaserShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Siobhán Murphy
email*
string:email
minLength: 1maxLength: 254
Description
Their email address.
Example
siobhan@example.com
Description
The person who placed the order.
recipient*
RecipientShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Mary Murphy
telephone*
string
minLength: 1maxLength: 30
Description
A telephone number the courier can call them on.
Example
+353 87 123 4567
address*
AddressShow fields
Field
Type
Description / Example
line1*
string
minLength: 1maxLength: 100
Description
The first line: house number or name, and street.
Example
12 Main Street
line2
string | null
maxLength: 100
Description
The second line, if there is one.
Example
Rathmines
city
string | null
maxLength: 60
Description
The town or city.
Example
Dublin 6
county
string | null
maxLength: 60
Description
The county.
Example
Dublin
postcode
string | null
maxLength: 20
Description
The postcode (Eircode in Ireland).
Example
D06 A1B2
country*
string
minLength: 1maxLength: 60
Description
The country.
Example
Ireland
Description
A postal address.
Description
The person the order is for, and where it’s going.
delivery*
DeliveryShow fields
Field
Type
Description / Example
date*
string:date
Description
The delivery date: today or later.
Example
2026-11-14
earliestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The start of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
09:00
latestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The end of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
13:00
Description
When the order is to be delivered.
message
string | null
maxLength: 1000
Description
The message for the card. Leave it out for no card message.
Your reference for the order, unique among your orders: letters, digits, ., _ and -, up to 64
characters. You use it to look the order up.
Example
WEB-100234
Responses
Status
Description
201
The order was created. The Location header is its URL.
Order
201 body
application/json
Field
Type
Description / Example
reference
string | null
Description
Your reference for the order.
status
OrderStatus
Description
Where an order has got to. Received: we have the order and haven’t started it. InProgress: it’s being
made. Packed: it’s made and waiting for the courier. Dispatched: it’s with the courier. Delivered.
DeliveryFailed: the courier couldn’t deliver it, and will usually try again. Returned: it came back to us.
OnHold: we’ve paused it, and will be in touch. Cancelled.
receivedAt
string:date-time | null
Description
When we received the order (UTC).
purchaser
PurchaserShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Siobhán Murphy
email*
string:email
minLength: 1maxLength: 254
Description
Their email address.
Example
siobhan@example.com
Description
The person who placed the order.
recipient
RecipientShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Mary Murphy
telephone*
string
minLength: 1maxLength: 30
Description
A telephone number the courier can call them on.
Example
+353 87 123 4567
address*
AddressShow fields
Field
Type
Description / Example
line1*
string
minLength: 1maxLength: 100
Description
The first line: house number or name, and street.
Example
12 Main Street
line2
string | null
maxLength: 100
Description
The second line, if there is one.
Example
Rathmines
city
string | null
maxLength: 60
Description
The town or city.
Example
Dublin 6
county
string | null
maxLength: 60
Description
The county.
Example
Dublin
postcode
string | null
maxLength: 20
Description
The postcode (Eircode in Ireland).
Example
D06 A1B2
country*
string
minLength: 1maxLength: 60
Description
The country.
Example
Ireland
Description
A postal address.
Description
The person the order is for, and where it’s going.
delivery
DeliveryShow fields
Field
Type
Description / Example
date*
string:date
Description
The delivery date: today or later.
Example
2026-11-14
earliestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The start of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
09:00
latestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The end of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
13:00
Description
When the order is to be delivered.
message
string | null
Description
The message for the card.
items
array[OrderItem]Show fields
Field
Type
Description / Example
sku*
string
minLength: 1maxLength: 64
Description
Your product code.
Example
BQT-ROSE-12
name*
string
minLength: 1maxLength: 255
Description
The product’s name.
Example
A dozen red roses
quantity
integer:int32
minimum: 1maximum: 100
Description
How many: 1 to 100.
Example
1
unitPrice*
number:double
minimum: 0maximum: 100000
Description
The price of one, in euro.
Example
49.99
Description
What’s in the order.
shipments
array[Shipment]Show fields
Field
Type
Description / Example
carrier
string | null
Description
The courier, if known, such as DPD.
trackingNumber
string | null
Description
The courier’s tracking number.
Description
The order’s parcels with the courier, once it’s dispatched: empty until then.
400
The order isn’t valid: each problem is listed under errors.
ValidationProblemDetails
400 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
errors
map[string, array[string]]
Additional properties: any
401
The access token is missing, invalid or expired.
ProblemDetails
401 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
403
The token isn’t for a partner application we’ve set up.
ProblemDetails
403 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
409
You’ve already sent an order with this reference.
ProblemDetails
409 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
GET /partner/v1/orders/{reference} - Get an order
GET/partner/v1/orders/{reference}
Get an order
Parameters
Name
In
Type
Description / Example
reference*
path
string
Description
Your reference for the order.
Responses
Status
Description
200
The order and where it’s got to.
Order
200 body
application/json
Field
Type
Description / Example
reference
string | null
Description
Your reference for the order.
status
OrderStatus
Description
Where an order has got to. Received: we have the order and haven’t started it. InProgress: it’s being
made. Packed: it’s made and waiting for the courier. Dispatched: it’s with the courier. Delivered.
DeliveryFailed: the courier couldn’t deliver it, and will usually try again. Returned: it came back to us.
OnHold: we’ve paused it, and will be in touch. Cancelled.
receivedAt
string:date-time | null
Description
When we received the order (UTC).
purchaser
PurchaserShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Siobhán Murphy
email*
string:email
minLength: 1maxLength: 254
Description
Their email address.
Example
siobhan@example.com
Description
The person who placed the order.
recipient
RecipientShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Mary Murphy
telephone*
string
minLength: 1maxLength: 30
Description
A telephone number the courier can call them on.
Example
+353 87 123 4567
address*
AddressShow fields
Field
Type
Description / Example
line1*
string
minLength: 1maxLength: 100
Description
The first line: house number or name, and street.
Example
12 Main Street
line2
string | null
maxLength: 100
Description
The second line, if there is one.
Example
Rathmines
city
string | null
maxLength: 60
Description
The town or city.
Example
Dublin 6
county
string | null
maxLength: 60
Description
The county.
Example
Dublin
postcode
string | null
maxLength: 20
Description
The postcode (Eircode in Ireland).
Example
D06 A1B2
country*
string
minLength: 1maxLength: 60
Description
The country.
Example
Ireland
Description
A postal address.
Description
The person the order is for, and where it’s going.
delivery
DeliveryShow fields
Field
Type
Description / Example
date*
string:date
Description
The delivery date: today or later.
Example
2026-11-14
earliestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The start of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
09:00
latestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The end of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
13:00
Description
When the order is to be delivered.
message
string | null
Description
The message for the card.
items
array[OrderItem]Show fields
Field
Type
Description / Example
sku*
string
minLength: 1maxLength: 64
Description
Your product code.
Example
BQT-ROSE-12
name*
string
minLength: 1maxLength: 255
Description
The product’s name.
Example
A dozen red roses
quantity
integer:int32
minimum: 1maximum: 100
Description
How many: 1 to 100.
Example
1
unitPrice*
number:double
minimum: 0maximum: 100000
Description
The price of one, in euro.
Example
49.99
Description
What’s in the order.
shipments
array[Shipment]Show fields
Field
Type
Description / Example
carrier
string | null
Description
The courier, if known, such as DPD.
trackingNumber
string | null
Description
The courier’s tracking number.
Description
The order’s parcels with the courier, once it’s dispatched: empty until then.
401
The access token is missing, invalid or expired.
ProblemDetails
401 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
403
The token isn’t for a partner application we’ve set up.
ProblemDetails
403 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
404
You haven’t sent an order with this reference.
ProblemDetails
404 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
PUT /partner/v1/orders/{reference} - Update an order
PUT/partner/v1/orders/{reference}
Update an order
Replaces the order’s purchaser, recipient, delivery, message and items with the request: send every field,
not only the ones that changed. The reference can’t be changed.
You can change an order until we start making it, while its status is Received. After that you get 409:
contact us to change it.
Parameters
Name
In
Type
Description / Example
reference*
path
string
Description
Your reference for the order.
Request Body
application/json
Field
Type
Description / Example
purchaser*
PurchaserShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Siobhán Murphy
email*
string:email
minLength: 1maxLength: 254
Description
Their email address.
Example
siobhan@example.com
Description
The person who placed the order.
recipient*
RecipientShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Mary Murphy
telephone*
string
minLength: 1maxLength: 30
Description
A telephone number the courier can call them on.
Example
+353 87 123 4567
address*
AddressShow fields
Field
Type
Description / Example
line1*
string
minLength: 1maxLength: 100
Description
The first line: house number or name, and street.
Example
12 Main Street
line2
string | null
maxLength: 100
Description
The second line, if there is one.
Example
Rathmines
city
string | null
maxLength: 60
Description
The town or city.
Example
Dublin 6
county
string | null
maxLength: 60
Description
The county.
Example
Dublin
postcode
string | null
maxLength: 20
Description
The postcode (Eircode in Ireland).
Example
D06 A1B2
country*
string
minLength: 1maxLength: 60
Description
The country.
Example
Ireland
Description
A postal address.
Description
The person the order is for, and where it’s going.
delivery*
DeliveryShow fields
Field
Type
Description / Example
date*
string:date
Description
The delivery date: today or later.
Example
2026-11-14
earliestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The start of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
09:00
latestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The end of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
13:00
Description
When the order is to be delivered.
message
string | null
maxLength: 1000
Description
The message for the card. Leave it out for no card message.
Example
Happy birthday Mam! Love, Siobhán
items*
array[OrderItem]
minItems: 1maxItems: 50
Show fields
Field
Type
Description / Example
sku*
string
minLength: 1maxLength: 64
Description
Your product code.
Example
BQT-ROSE-12
name*
string
minLength: 1maxLength: 255
Description
The product’s name.
Example
A dozen red roses
quantity
integer:int32
minimum: 1maximum: 100
Description
How many: 1 to 100.
Example
1
unitPrice*
number:double
minimum: 0maximum: 100000
Description
The price of one, in euro.
Example
49.99
Description
What’s in the order: 1 to 50 lines.
Responses
Status
Description
200
The order as it is now.
Order
200 body
application/json
Field
Type
Description / Example
reference
string | null
Description
Your reference for the order.
status
OrderStatus
Description
Where an order has got to. Received: we have the order and haven’t started it. InProgress: it’s being
made. Packed: it’s made and waiting for the courier. Dispatched: it’s with the courier. Delivered.
DeliveryFailed: the courier couldn’t deliver it, and will usually try again. Returned: it came back to us.
OnHold: we’ve paused it, and will be in touch. Cancelled.
receivedAt
string:date-time | null
Description
When we received the order (UTC).
purchaser
PurchaserShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Siobhán Murphy
email*
string:email
minLength: 1maxLength: 254
Description
Their email address.
Example
siobhan@example.com
Description
The person who placed the order.
recipient
RecipientShow fields
Field
Type
Description / Example
name*
string
minLength: 1maxLength: 100
Description
Their full name.
Example
Mary Murphy
telephone*
string
minLength: 1maxLength: 30
Description
A telephone number the courier can call them on.
Example
+353 87 123 4567
address*
AddressShow fields
Field
Type
Description / Example
line1*
string
minLength: 1maxLength: 100
Description
The first line: house number or name, and street.
Example
12 Main Street
line2
string | null
maxLength: 100
Description
The second line, if there is one.
Example
Rathmines
city
string | null
maxLength: 60
Description
The town or city.
Example
Dublin 6
county
string | null
maxLength: 60
Description
The county.
Example
Dublin
postcode
string | null
maxLength: 20
Description
The postcode (Eircode in Ireland).
Example
D06 A1B2
country*
string
minLength: 1maxLength: 60
Description
The country.
Example
Ireland
Description
A postal address.
Description
The person the order is for, and where it’s going.
delivery
DeliveryShow fields
Field
Type
Description / Example
date*
string:date
Description
The delivery date: today or later.
Example
2026-11-14
earliestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The start of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
09:00
latestTime
string | null
pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
Description
The end of the delivery window, in 24-hour time (Irish time). Leave it out for any time.
Example
13:00
Description
When the order is to be delivered.
message
string | null
Description
The message for the card.
items
array[OrderItem]Show fields
Field
Type
Description / Example
sku*
string
minLength: 1maxLength: 64
Description
Your product code.
Example
BQT-ROSE-12
name*
string
minLength: 1maxLength: 255
Description
The product’s name.
Example
A dozen red roses
quantity
integer:int32
minimum: 1maximum: 100
Description
How many: 1 to 100.
Example
1
unitPrice*
number:double
minimum: 0maximum: 100000
Description
The price of one, in euro.
Example
49.99
Description
What’s in the order.
shipments
array[Shipment]Show fields
Field
Type
Description / Example
carrier
string | null
Description
The courier, if known, such as DPD.
trackingNumber
string | null
Description
The courier’s tracking number.
Description
The order’s parcels with the courier, once it’s dispatched: empty until then.
400
The order isn’t valid: each problem is listed under errors.
ValidationProblemDetails
400 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
errors
map[string, array[string]]
Additional properties: any
401
The access token is missing, invalid or expired.
ProblemDetails
401 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
403
The token isn’t for a partner application we’ve set up.
ProblemDetails
403 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
404
You haven’t sent an order with this reference.
ProblemDetails
404 body
application/json
Field
Type
Description / Example
type
string | null
title
string | null
status
integer:int32 | null
detail
string | null
instance
string | null
Additional properties: any
409
We’ve started the order, so it can’t be changed; or it changed while you were updating it.