Task API schemas
Every model in the Task API, in alphabetical order. 62 in total.
fulfilmentCreateProductRequest
| Field | Type | Description |
|---|---|---|
name | string | |
weight | number (double) | |
dimensions | sharedDimensions | |
merchantProductId | string | |
merchantInventoryItemId | string | |
ephemeral | boolean | |
sku | string | |
barcode | string | |
price | number (double) | |
enabled | boolean |
fulfilmentFulfilmentType
MERCHANT, PROPRIETARYfulfilmentLineItem
| Field | Type | Description |
|---|---|---|
quantity | integer (int32) | |
product | fulfilmentProduct |
fulfilmentProduct
| Field | Type | Description |
|---|---|---|
productId | integer (int32) | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
merchantId | integer (int32) | |
name | string | |
enabled | boolean | |
excluded | boolean | |
ephemeral | boolean | |
sku | string | |
barcode | string | |
price | number (double) | |
weight | number (double) | |
dimensions | sharedDimensions | |
merchantProductId | string | |
merchantInventoryItemId | string | |
inventoryLevel | integer (int32) | |
weightSource | string | Where the measurements came from: PLATFORM (the merchant's store), MERCHANT (typed in by hand) or ESTIMATED (worked out by us when neither supplied one). Absent when the measurement has never been set. |
dimensionsSource | string | |
shopifyStatus | string | Shopify's current listing state, for example ACTIVE, DRAFT, ARCHIVED or UNLISTED. It is absent for non-Shopify merchants and products imported before the status field was introduced. |
shopifyBundle | boolean | True when Shopify marks this specific variant as requiring components. This is intentionally separate from a Quiver stock configuration: a native bundle can still need an ops decision before it has stock mapped here. |
shopifyBundleConfigured | boolean | Set for native Shopify bundles after Quiver has resolved every Shopify component to physical stock. False means the recipe is known but needs an inventory mapping; absent means this is not a Shopify bundle. |
shopifyBundleComponents | fulfilmentShopifyBundleComponent[] | The recipe supplied by Shopify for a native bundle, enriched with each component's current Quiver stock mapping. It is informational: Shopify remains the source of truth for the recipe itself. |
ageCategories | fulfilmentProductAgeCategories | The age-restricted goods in this product, for door age checks. Absent means it has not been classified yet. It is classified when it is first ordered, never as a whole catalogue. |
fulfilmentProductAgeCategories
The age-restricted goods in one product. An empty category list means the product is not age-restricted, and it is stored so it is never asked again.
| Field | Type | Description |
|---|---|---|
categories | sharedAgeRestrictedCategory[] | |
unconfirmed | boolean | The model could not tell. Support is asked to confirm the category, and until then the product is treated as over-18s only. categories then holds the categories it might be in. |
source | fulfilmentProductAgeCategoriesSource | |
setBy | string | The person or service that set it, for example an email address or "service:lambdas". |
setAt | string (date-time) |
fulfilmentProductAgeCategoriesSource
Who set a product's age categories. - AGE_CATEGORIES_SET_BY_MODEL: Classified by the product enrichment model. - AGE_CATEGORIES_SET_BY_OPS: Set or corrected by Quiver ops or support. - AGE_CATEGORIES_SET_BY_MERCHANT: Set or corrected by the merchant.
AGE_CATEGORIES_SET_BY_MODEL, AGE_CATEGORIES_SET_BY_OPS, AGE_CATEGORIES_SET_BY_MERCHANTfulfilmentShopifyBundleComponent
| Field | Type | Description |
|---|---|---|
productId | integer (int32) | Quiver's product record for the component. It is absent when Shopify's component no longer resolves to a Quiver product. |
merchantProductId | string | |
name | string | |
quantity | integer (int32) | |
inventoryItemConfigs | fulfilmentShopifyBundleComponentInventoryItem[] |
fulfilmentShopifyBundleComponentInventoryItem
| Field | Type | Description |
|---|---|---|
inventoryItemId | integer (int32) | |
multiplier | integer (int32) |
protobufAny
| Field | Type | Description |
|---|---|---|
@type | string |
rpcStatus
| Field | Type | Description |
|---|---|---|
code | integer (int32) | |
message | string | |
details | protobufAny[] |
taskBatchDownloadLabelsResponse
| Field | Type | Description |
|---|---|---|
url | string |
taskBatchDownloadTasksRequest
| Field | Type | Description |
|---|---|---|
taskIds | integer (int32)[] | List of tasks to download |
quantities | integer (int32)[] | List of quantities for each task. This should be the same length as task_ids. |
documentSize | taskDocumentSize |
taskContact
| Field | Type | Description |
|---|---|---|
id | integer (int32) | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
firstName | string | |
lastName | string | |
company | string | |
emailAddress | string | |
phoneNumber | string |
taskCreateContactRequest
| Field | Type | Description |
|---|---|---|
firstName | string | |
lastName | string | |
company | string | |
emailAddress | string | |
phoneNumber | string |
taskCreateExpectedWindowRequest
| Field | Type | Description |
|---|---|---|
from | string (date-time) | |
to | string (date-time) |
taskCreateLineItemRequest
| Field | Type | Description |
|---|---|---|
quantity | integer (int32) | |
productId | integer (int32) | |
merchantProductId | string | |
product | fulfilmentCreateProductRequest | |
subscription | boolean |
taskCreateOrderRequest
| Field | Type | Description |
|---|---|---|
lineItems | taskCreateLineItemRequest[] | |
merchantOrderId | string | |
merchantOrderName | string | |
price | taskOrderPrice |
taskCreateTaskPartRequest
| Field | Type | Description |
|---|---|---|
addressId | integer (int32) | |
address | sharedCreateAddressRequest | |
merchantLocationId | string | For a collection, the merchant's external location identifier for the selected collection location. Obtain it from the fulfilment location response and pass the same value when booking. |
date | string | |
window | sharedWindow | |
instructions | string |
taskCreateTaskRequest
| Field | Type | Description |
|---|---|---|
deliveryType | taskDeliveryType | |
collection | taskCreateTaskPartRequest | Provide this part when booking a store collection. Use the selected location's merchantLocationId and the QUIV_COL rate from /quotes. |
delivery | taskCreateTaskPartRequest | |
customerrequired | taskCreateContactRequest | |
orderrequired | taskCreateOrderRequest | |
purchaser | taskCreateContactRequest | |
customerProfileId | integer (int32) | |
note | string | |
linkedTasks | integer (int32)[] | |
rateCode | sharedRateCode | The rate code returned by /quotes. Use QUIV_COL for store collection. |
taskDeliveryType
IMMEDIATE, SAME_DAY, NEXT_DAY, WINDOWtaskDocumentSize
A6, A7taskEligibleWindows
| Field | Type | Description |
|---|---|---|
windowType | taskWindowType | |
windows | sharedWindow[] |
taskExpectedWindow
| Field | Type | Description |
|---|---|---|
createdAt | string (date-time) | |
from | string (date-time) | |
to | string (date-time) | |
isCustomerAtHome | boolean |
taskOrder
| Field | Type | Description |
|---|---|---|
id | integer (int32) | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
lineItems | fulfilmentLineItem[] | |
merchantOrderId | string | |
merchantOrderName | string | |
price | taskOrderPrice | |
note | string | |
isBig | boolean |
taskOrderPrice
| Field | Type | Description |
|---|---|---|
total | number (double) | |
subtotal | number (double) | |
delivery | number (double) |
taskQueryDeliveriesResponse
| Field | Type | Description |
|---|---|---|
deliveries | taskTask[] | |
count | integer (int32) |
taskQueryReturnsResponse
| Field | Type | Description |
|---|---|---|
returns | taskTask[] | |
count | integer (int32) |
taskQuote
A quote can contain delivery rates, collection rates, or both. A collection rate is returned only for an enabled location with stock for the full basket.
| Field | Type | Description |
|---|---|---|
eligibility | taskQuoteEligibility | |
rates | taskRate[] |
taskQuoteEligibility
PARTIAL, FULLtaskRate
A delivery or store-collection option returned by CreateQuote. For a collection rate, rate_code is QUIV_COL and the name/description identify the selected location and its current collection readiness.
| Field | Type | Description |
|---|---|---|
rateCode | sharedRateCode | |
error | string | |
name | string | |
description | string | For collection, this may include the location address and the next available local collection window after the configured cutoff. |
price | number (double) | |
window | sharedWindow | |
eligibleWindows | taskEligibleWindows | |
co2Savings | number (double) |
taskTask
| Field | Type | Description |
|---|---|---|
taskId | integer (int32) | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
taskType | sharedTaskType | |
merchantName | string | |
mode | sharedMode | |
status | taskTaskStatusUpdate | |
fulfilmentType | fulfilmentFulfilmentType | |
deliveryType | taskDeliveryType | |
collection | taskTaskPart | |
delivery | taskTaskPart | |
order | taskOrder | |
customer | taskContact | |
purchaser | taskContact | |
customerProfileId | integer (int32) | |
trackingId | string | |
trackingUrl | string | |
trackingAccessKey | string | |
surcharge | boolean | |
co2Savings | number (double) | |
notes | taskTaskNote[] | |
statusUpdates | taskTaskStatusUpdate[] | |
updates | sharedTaskUpdate[] | |
rateCode | sharedRateCode | |
linkedTasks | integer (int32)[] | |
readyForCollection | boolean | |
onTime | boolean | |
onTimeDeviationMinutes | integer (int32) | |
attempts | taskTaskAttempt[] | |
ageRestriction | sharedAgeRestriction | Set when the order holds age-restricted goods (merchant default, product override or a client flag). Absent means not restricted. |
taskTaskAttempt
| Field | Type | Description |
|---|---|---|
taskAttemptId | integer (int32) | |
taskId | integer (int32) | |
parentTaskAttemptId | integer (int32) | |
taskAttemptType | taskTaskAttemptType | |
attemptNumber | integer (int32) | Numbered within the attempt type, so Ops can read "Delivery attempt 1" and, if needed later, "Recovery attempt 2". |
status | taskTaskAttemptStatus | |
reviewNote | string | |
outcomeNote | string | |
createdAt | string (date-time) | |
updatedAt | string (date-time) |
taskTaskAttemptStatus
PENDING, IN_PROGRESS, COMPLETED, FAILED, CANCELLEDtaskTaskAttemptType
A durable operational leg of a task. It is intentionally distinct from a courier job: one attempt can have one or more courier jobs, while attempts preserve the reviewed history of a delivery, recovery, or re-delivery.
DELIVERY, RECOVERY, RE_DELIVERYtaskTaskNote
| Field | Type | Description |
|---|---|---|
taskNoteId | integer (int32) | |
createdAt | string (date-time) | |
updatedAt | string (date-time) | |
deletedAt | string (date-time) | |
taskId | integer (int32) | |
userGroup | sharedUserGroup | |
value | string |
taskTaskPart
| Field | Type | Description |
|---|---|---|
address | sharedAddress | |
date | string | |
window | sharedWindow | |
expectedWindow | taskExpectedWindow | |
instructions | string | |
originalDate | string | |
committedWindow | sharedWindow |
taskTaskStatusUpdate
In controller service this is used as the create request as well as the type
| Field | Type | Description |
|---|---|---|
taskStatusId | integer (int32) | |
createdAt | string (date-time) | |
userGroup | sharedUserGroup | |
taskId | integer (int32) | |
value | sharedTaskStatus | |
subvalue | sharedTaskSubstatus | |
note | string |
taskUpdateContactRequest
| Field | Type | Description |
|---|---|---|
id | integer (int32) | |
firstName | string | |
lastName | string | |
company | string | |
emailAddress | string | |
phoneNumber | string |
taskUpdateExpectedWindowRequest
| Field | Type | Description |
|---|---|---|
isCustomerAtHome | boolean |
taskUpdateOrderRequest
| Field | Type | Description |
|---|---|---|
lineItems | taskCreateLineItemRequest[] | |
price | taskOrderPrice | |
isBig | boolean |
taskUpdateTaskPartRequest
| Field | Type | Description |
|---|---|---|
addressId | integer (int32) | |
address | sharedCreateAddressRequest | |
date | string | |
window | sharedWindow | |
windowUpdateNote | string | |
createExpectedWindow | taskCreateExpectedWindowRequest | |
instructions | string | |
committedWindow | sharedWindow | |
addressUpdate | sharedUpdateAddressRequest | |
updateExpectedWindow | taskUpdateExpectedWindowRequest |
taskWindowType
FIXED, SELECTABLE