Documentation contents

Fulfilment API schemas

Every model in the Fulfilment API, in alphabetical order. 57 in total.

fulfilmentArrivalInstruction

FieldTypeDescription
instructionstring
photoUrlstring

fulfilmentBatchCreateProductsRequest

FieldTypeDescription
productsfulfilmentCreateProductRequest[]

fulfilmentBatchCreateProductsResponse

FieldTypeDescription
productsfulfilmentProduct[]

fulfilmentBatchGetProductsResponse

FieldTypeDescription
productsfulfilmentProduct[]

fulfilmentCreateArrivalInstructionRequest

FieldTypeDescription
instructionstring
photoUrlstring

fulfilmentCreateDayOperatingHoursRequest

FieldTypeDescription
operatingboolean
operatingHoursrequiredsharedCreateTimeWindowRequest

fulfilmentCreateFulfilmentLocationContactRequest

FieldTypeDescription
namestring
phoneNumberstring

fulfilmentCreateFulfilmentLocationRequest

FieldTypeDescription
fulfilmentLocationTypefulfilmentFulfilmentType
namestring
addressrequiredsharedCreateAddressRequest
operatingHoursfulfilmentCreateOperatingHoursRequest
merchantLocationIdstring
deliveryEcommerceEnabledboolean
returnEcommerceEnabledboolean
ephemeralboolean
arrivalInstructionsfulfilmentCreateArrivalInstructionRequest[]
contactsfulfilmentCreateFulfilmentLocationContactRequest[]
collectionEnabledbooleanSet true to make this location eligible for store collection quotes. Leave false (or omit) for delivery-only locations.

fulfilmentCreateInventoryRecommendationRequest

FieldTypeDescription
inventoryRunIdinteger (int32)
movementTypefulfilmentInventoryMovementType
lineItemsfulfilmentInventoryRecommendationLineItem[]
decisionDueAtstring (date-time)
sourceLocationIdstring
sourceLocationNamestring
destinationLocationIdstring
destinationLocationNamestring
coverageBeforenumber (double)
expectedCoverageAfternumber (double)
idempotencyKeystringStable key supplied by the inventory run so retries return the same recommendation.

fulfilmentCreateInventoryTransferLineItemRequest

FieldTypeDescription
quantityinteger (int32)
skustring

fulfilmentCreateInventoryTransferRequest

FieldTypeDescription
trackingUrlstring
sentLineItemsfulfilmentCreateInventoryTransferLineItemRequest[]
referencestring
statusfulfilmentInventoryTransferStatus
typefulfilmentInventoryTransferType
addressstring

fulfilmentCreateOperatingHoursRequest

fulfilmentCreateProductRequest

FieldTypeDescription
namestring
weightnumber (double)
dimensionssharedDimensions
merchantProductIdstring
merchantInventoryItemIdstring
ephemeralboolean
skustring
barcodestring
pricenumber (double)
enabledboolean

fulfilmentDayOperatingHours

FieldTypeDescription
operatingboolean
operatingHourssharedTimeWindow

fulfilmentFulfilmentLocation

FieldTypeDescription
fulfilmentLocationIdinteger (int32)
createdAtstring (date-time)
updatedAtstring (date-time)
deletedAtstring (date-time)
namestring
deliveryEcommerceEnabledboolean
returnEcommerceEnabledboolean
collectionEnabledbooleanWhether this location may be selected for store collection. A collection rate is returned only when this is enabled and the location has current stock for every item in the quoted basket (v1 does not arrange transfers).
addresssharedAddress
externalLocationIdstringThe merchant's external location identifier. Use this value as merchantLocationId when booking a collection for a specific location.
operatingHoursfulfilmentOperatingHours
arrivalInstructionsfulfilmentArrivalInstruction[]
contactsfulfilmentFulfilmentLocationContact[]

fulfilmentFulfilmentLocationContact

FieldTypeDescription
namestring
phoneNumberstring

fulfilmentFulfilmentType

One of MERCHANT, PROPRIETARY

fulfilmentInventoryMovementType

One of INVENTORY_MOVEMENT_TYPE_MERCHANT_TO_QUIVER, INVENTORY_MOVEMENT_TYPE_QUIVER_TO_MERCHANT, INVENTORY_MOVEMENT_TYPE_WAREHOUSE_TO_STORE, INVENTORY_MOVEMENT_TYPE_STORE_TO_STORE, INVENTORY_MOVEMENT_TYPE_QUIVER_TO_STORE

fulfilmentInventoryRecommendation

FieldTypeDescription
inventoryRecommendationIdinteger (int32)
createdAtstring (date-time)
updatedAtstring (date-time)
inventoryRunIdinteger (int32)
statusfulfilmentInventoryRecommendationStatus
movementTypefulfilmentInventoryMovementType
lineItemsfulfilmentInventoryRecommendationLineItem[]
decisionDueAtstring (date-time)
versioninteger (int32)
sourceLocationIdstring
sourceLocationNamestring
destinationLocationIdstring
destinationLocationNamestring
destinationAddressstring
recipientNamestring
recipientEmailstring
recipientPhonestring
coverageBeforenumber (double)
expectedCoverageAfternumber (double)
decisionBystring
decidedAtstring (date-time)
declineReasonfulfilmentInventoryRecommendationDeclineReason
decisionNotestring
inventoryTransferIdinteger (int32)

fulfilmentInventoryRecommendationDeclineReason

One of INVENTORY_RECOMMENDATION_DECLINE_REASON_STOCK_UNAVAILABLE, INVENTORY_RECOMMENDATION_DECLINE_REASON_PACK_SIZE_INCORRECT, INVENTORY_RECOMMENDATION_DECLINE_REASON_PROMOTION_OR_LAUNCH, INVENTORY_RECOMMENDATION_DECLINE_REASON_LOCATION_CONSTRAINT, INVENTORY_RECOMMENDATION_DECLINE_REASON_RECOMMENDATION_INACCURATE, INVENTORY_RECOMMENDATION_DECLINE_REASON_REPLENISHING_SEPARATELY, INVENTORY_RECOMMENDATION_DECLINE_REASON_OTHER

fulfilmentInventoryRecommendationLineItem

FieldTypeDescription
skustring
namestring
proposedQuantityinteger (int32)
selectedQuantityinteger (int32)
rawQuantityinteger (int32)
packSizeinteger (int32)
proposedPacksinteger (int32)
targetStockinteger (int32)
heldStockinteger (int32)
confirmedInboundinteger (int32)
minimumRetainedStockinteger (int32)
explanationstring

fulfilmentInventoryRecommendationStatus

One of INVENTORY_RECOMMENDATION_STATUS_DRAFT, INVENTORY_RECOMMENDATION_STATUS_AWAITING_DECISION, INVENTORY_RECOMMENDATION_STATUS_ACCEPTED, INVENTORY_RECOMMENDATION_STATUS_EDITED_AND_ACCEPTED, INVENTORY_RECOMMENDATION_STATUS_DECLINED, INVENTORY_RECOMMENDATION_STATUS_OVERDUE, INVENTORY_RECOMMENDATION_STATUS_IN_EXECUTION, INVENTORY_RECOMMENDATION_STATUS_COMPLETED, INVENTORY_RECOMMENDATION_STATUS_FAILED

fulfilmentInventoryTransfer

FieldTypeDescription
inventoryTransferIdinteger (int32)
createdAtstring (date-time)
updatedAtstring (date-time)
statusfulfilmentInventoryTransferStatus
fulfilmentLocationIdinteger (int32)
trackingUrlstring
sentLineItemsfulfilmentInventoryTransferLineItem[]
receivedLineItemsfulfilmentInventoryTransferLineItem[]
referencestring
typefulfilmentInventoryTransferType
addressstring

fulfilmentInventoryTransferLineItem

FieldTypeDescription
quantityinteger (int32)
skustring

fulfilmentInventoryTransferStatus

One of INVENTORY_TRANSFER_STATUS_PENDING, INVENTORY_TRANSFER_STATUS_COMPLETED, INVENTORY_TRANSFER_STATUS_CANCELLED, INVENTORY_TRANSFER_STATUS_PROCESSING, INVENTORY_TRANSFER_STATUS_DRAFT, INVENTORY_TRANSFER_STATUS_REQUESTED

fulfilmentInventoryTransferType

One of INVENTORY_TRANSFER_TYPE_INBOUND, INVENTORY_TRANSFER_TYPE_OUTBOUND

fulfilmentOperatingHours

FieldTypeDescription
useDailyboolean
genericsharedTimeWindow
dailyfulfilmentDailyOperatingHours

fulfilmentProduct

FieldTypeDescription
productIdinteger (int32)
createdAtstring (date-time)
updatedAtstring (date-time)
merchantIdinteger (int32)
namestring
enabledboolean
excludedboolean
ephemeralboolean
skustring
barcodestring
pricenumber (double)
weightnumber (double)
dimensionssharedDimensions
merchantProductIdstring
merchantInventoryItemIdstring
inventoryLevelinteger (int32)
weightSourcestringWhere 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.
dimensionsSourcestring
shopifyStatusstringShopify'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.
shopifyBundlebooleanTrue 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.
shopifyBundleConfiguredbooleanSet 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.
shopifyBundleComponentsfulfilmentShopifyBundleComponent[]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.
ageCategoriesfulfilmentProductAgeCategoriesThe 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.

FieldTypeDescription
categoriessharedAgeRestrictedCategory[]
unconfirmedbooleanThe 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.
sourcefulfilmentProductAgeCategoriesSource
setBystringThe person or service that set it, for example an email address or "service:lambdas".
setAtstring (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.

One of AGE_CATEGORIES_SET_BY_MODEL, AGE_CATEGORIES_SET_BY_OPS, AGE_CATEGORIES_SET_BY_MERCHANT

fulfilmentQueryFulfilmentLocationsResponse

FieldTypeDescription
fulfilmentLocationsfulfilmentFulfilmentLocation[]

fulfilmentQueryInventoryRecommendationsResponse

FieldTypeDescription
inventoryRecommendationsfulfilmentInventoryRecommendation[]
countinteger (int32)

fulfilmentQueryInventoryTransfersResponse

FieldTypeDescription
inventoryTransfersfulfilmentInventoryTransfer[]

fulfilmentQueryProductsResponse

FieldTypeDescription
productsfulfilmentProduct[]
totalSizeinteger (int32)

fulfilmentShopifyBundleComponent

FieldTypeDescription
productIdinteger (int32)Quiver's product record for the component. It is absent when Shopify's component no longer resolves to a Quiver product.
merchantProductIdstring
namestring
quantityinteger (int32)
inventoryItemConfigsfulfilmentShopifyBundleComponentInventoryItem[]

fulfilmentShopifyBundleComponentInventoryItem

FieldTypeDescription
inventoryItemIdinteger (int32)
multiplierinteger (int32)

fulfilmentUpdateArrivalInstructionRequest

FieldTypeDescription
instructionstring
photostring
photoUrlstring

fulfilmentUpdateDayOperatingHoursRequest

FieldTypeDescription
operatingboolean
operatingHourssharedUpdateTimeWindowRequest

fulfilmentUpdateFulfilmentLocationContactRequest

FieldTypeDescription
namestring
phoneNumberstring

fulfilmentUpdateInventoryRecommendationLineItemRequest

FieldTypeDescription
skustring
selectedQuantityinteger (int32)

fulfilmentUpdateOperatingHoursRequest

protobufAny

FieldTypeDescription
@typestring

rpcStatus

FieldTypeDescription
codeinteger (int32)
messagestring
detailsprotobufAny[]

sharedAddress

FieldTypeDescription
addressIdinteger (int32)
line1string
line2string
citystring
postcodestring
countrystring
companystring
latitudenumber (double)
longitudenumber (double)
addressTypesharedAddressType
locationTypeLabelstringA short, shared label for an address which does not fit the standard categories, e.g. "School". It is a place type, never delivery guidance.
pinStatussharedAddressPinStatus
pinSourcesharedAddressPinSource
pinProviderQualitystring
pinPartialMatchboolean
pinValidatedAtstring (date-time)
pinConfirmationReasonstring

sharedAddressPinSource

The evidence that selected the current operational pin. Provider-specific precision codes belong in pin_provider_quality; clients should use these stable, human-meaningful source names instead.

One of NAURT, GOOGLE_MAPS, OPERATOR, LEGACY

sharedAddressPinStatus

Whether the coordinates can be used as an operational delivery pin. This is deliberately separate from whether the written address is valid: an order may name a real address while still needing a human to confirm its location.

One of VERIFIED, NEEDS_CONFIRMATION, MANUAL_CONFIRMED, UNAVAILABLE

sharedAddressType

One of HOUSE, APARTMENT, OFFICE, SHOP, RESTAURANT_CAFE, HOTEL, HEALTHCARE, EDUCATION, WAREHOUSE

sharedAgeRestrictedCategory

Goods that may only be handed to someone over a minimum age. The list follows Stuart's age-verified delivery categories (Challenge 25). Each category's minimum age lives with the service that checks it, not here. - VAPES_AND_NICOTINE: Vapes, nicotine pouches and zero-nicotine vapes. - KNIVES_AND_BLADES: Knives, blades, razor blades and axes. - AGE_RATED_GAMES_AND_FILMS: 18-rated games and films.

One of ALCOHOL, TOBACCO, VAPES_AND_NICOTINE, KNIVES_AND_BLADES, FIREWORKS, SOLVENTS, AGE_RATED_GAMES_AND_FILMS, LOTTERY, ENERGY_DRINKS

sharedCreateAddressRequest

FieldTypeDescription
line1string
line2string
citystring
postcodestring
countrystring
companystring
addressTypesharedAddressType
locationTypeLabelstring

sharedCreateTimeWindowRequest

FieldTypeDescription
fromstring
tostring

sharedDimensions

FieldTypeDescription
heightnumber (double)
widthnumber (double)
depthnumber (double)

sharedTimeWindow

FieldTypeDescription
fromstring
tostring

sharedUpdateDimensionsRequest

FieldTypeDescription
heightnumber (double)
widthnumber (double)
depthnumber (double)

sharedUpdateTimeWindowRequest

FieldTypeDescription
fromstring
tostring

Quiver Solutions Limited ยท Registered in England and Wales, company number 16961611 ยท 27 Old Gloucester Street, London WC1N 3AX

How We Work
Pricing
Reviews
Become a Courier
Jobs
3