Mutations#
Mutations are write operations — use them to create, update, or delete resources. All mutations follow the same structure: a single input argument wraps all mutation fields, and the payload returns the affected resource.
Cart#
createCart#
Create a new empty cart.
No input required.
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
addItemsToCart#
Add one or more items to a cart by SKU.
Input: AddItemsToCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
items | [ItemInput!]!▾ | Required | Items to add |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
removeItemsFromCart#
Remove one or more items from a cart.
Input: RemoveItemFromCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
ids | [String!]! | Required | IDs of cart items to remove |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
setItemQuantityForCart#
Update the quantity of a specific item in the cart.
Input: SetItemQuantityForCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
sku | String! | Required | SKU of the cart item to update |
quantity | Int! | Required | New quantity |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
addCustomerToCart#
Attach a customer (contact) to a cart.
Input: AddCustomerToCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
contact_id | String! | Required | The ID of the contact |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
addBillingAddressToCart#
Attach a billing address to a cart.
Input: AddBillingAddressToCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
address | AddressInput!▾ | Required | The billing address |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
addShippingAddressToCart#
Attach a shipping address to a cart. Uses the same AddressInput shape as addBillingAddressToCart.
Input: AddShippingAddressToCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
address | AddressInput!▾ | Required | The shipping address |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
addShippingMethodToCart#
Select a shipping method for the cart. Available shipping methods can be fetched from cart.options.shipping_methods.
Input: AddShippingMethodToCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
method_id | String! | Required | The ID of the shipping method |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
addPaymentMethodToCart#
Select a payment method for the cart. Available payment methods can be fetched from cart.options.payment_methods.
Input: AddPaymentMethodToCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
method_id | String! | Required | The ID of the payment method |
issuer_id | String! | Required | The ID of the issuer (bank/scheme) for the payment method |
terminal_id | String | Optional | Optional terminal ID (for PIN payments) |
drawer_id | String | Optional | Optional cash-drawer ID |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
addCouponToCart#
Apply a coupon code to the cart.
Input: CouponInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
coupon | String! | Required | The coupon code |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
removeCouponFromCart#
Remove an applied coupon from the cart.
Input: CouponInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
coupon | String! | Required | The coupon code to remove |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
setNoteForCart#
Add a customer note to the cart.
Input: SetNoteForCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
note | String! | Required | The note text |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
setReferenceForCart#
Set an external reference on the cart (e.g. your own order reference).
Input: SetReferenceForCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
reference | String! | Required | The reference string |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
confirmCart#
Confirm a cart and convert it to an order. The cart must have no validation_errors.
Input: ConfirmCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart to confirm |
Returns: Order
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
number | String! | Required | Order number |
total | Money! | Required | Total value |
currency | Currency! | Required | Currency code |
Example#
addPhoneNumberToCart#
Add a phone number to a cart.
Input: AddPhoneNumberToCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
phone_number | PhoneNumberInput!▾ | Required | Phone number details |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
addPickUpPointToCart#
Set a pickup point for cart delivery.
Input: AddPickUpPointToCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
spid | String! | Required | Service-point ID of the pickup point (provider-issued) |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
removeCustomerFromCart#
Remove the customer from a cart.
Input: RemoveCustomerFromCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
setCountryCodeForCart#
Set the country code for the cart (affects VAT/tax calculations).
Input: SetCountryCodeForCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
country_code | String! | Required | ISO country code (e.g. NL, DE, US) |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
setCountryCodeOnCart#
Set the destination country code on a cart. The country is used when calculating prices, VAT and shipping for the cart.
Input: SetCountryCodeOnCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
country_code | String! | Required | ISO 3166-1 alpha-2 country code (e.g. NL, DE) |
Returns: SetCountryCodeForCartPayload!
| Name | Type | Required | Description |
|---|---|---|---|
cart | Cart▾ | Optional | The updated cart |
Example#
setDutiesForCart#
Set the import duties on a cart, for example when shipping cross-border. The duties are reflected in the cart totals.
Input: SetDutiesForCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
duties | Money!▾ | Required | The duties to charge — pass the amount in cents |
Returns: SetDutiesForCartPayload!
| Name | Type | Required | Description |
|---|---|---|---|
cart | Cart▾ | Optional | The updated cart |
Example#
setExpectedAtForCartItems#
Set the expected delivery date for specific cart items, for example when an item is backordered and will only become available at a known future date.
Input: SetExpectedAtForCartItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
expected_at | Int64! | Required | Expected delivery date — Unix timestamp in milliseconds |
items | [String]! | Required | IDs of the cart items to update |
Returns: SetExpectedAtForCartItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated cart items |
Example#
Order#
createOrder#
Create a new order.
Input: CreateOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | String | Optional | The channel ID to create the order in |
currency | Currency | Optional | ISO 4217 currency code (e.g. EUR) |
country_code | String | Optional | ISO country code (e.g. NL) |
customer | CustomerInput | Optional | Inline customer details |
phone_number | PhoneNumberInput | Optional | Phone number on the order |
phone_number_id | String | Optional | Existing phone-number ID |
delivery | CreateOrderDeliveryInput | Optional | Initial delivery address/method |
billing | CreateOrderBillingInput | Optional | Initial billing address |
meta_data | JsonObject | Optional | Free-form metadata |
ordered_at | Int64 | Optional | Unix-ms timestamp when the order was placed (defaults to now) |
Returns: Order
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
number | String! | Required | Order number |
total | Money! | Required | Total value |
currency | Currency! | Required | Currency code |
Example#
addItemsToOrder#
Add items to an existing order.
Input: AddItemsToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The order ID |
items | [OrderItemInput!]!▾ | Required | Items to add |
Returns: Order
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
number | String! | Required | Order number |
total | Money! | Required | Total value |
currency | Currency! | Required | Currency code |
Example#
addCustomerToOrder#
Assign a customer to an order.
Input: AddCustomerToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The order ID |
customer | AttachCustomerInput!▾ | Required | Reference to the customer to attach |
Returns: Order
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
number | String! | Required | Order number |
total | Money! | Required | Total value |
currency | Currency! | Required | Currency code |
Example#
addBillingAddressToOrder#
Set billing address on an order.
Input: AddBillingAddressToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The order ID |
address_id | String | Optional | ID of an existing address (use this OR `address`) |
address | AddressInput▾ | Optional | Inline billing address (use this OR `address_id`) |
Returns: Order
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
number | String! | Required | Order number |
total | Money! | Required | Total value |
currency | Currency! | Required | Currency code |
Example#
addShippingAddressToOrder#
Set shipping address on an order.
Input: AddShippingAddressToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The order ID |
type | AddressType!▾ | Required | Address kind |
address_id | String | Optional | ID of an existing address (use this OR `address`) |
address | AddressInput▾ | Optional | Inline shipping address (use this OR `address_id`) |
Returns: Order
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
number | String! | Required | Order number |
total | Money! | Required | Total value |
currency | Currency! | Required | Currency code |
Example#
cancelOrderItems#
Cancel items on an order.
Input: CancelOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_ids | [String!]! | Required | IDs of the items to cancel |
Returns: Order
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
number | String! | Required | Order number |
total | Money! | Required | Total value |
currency | Currency! | Required | Currency code |
Example#
addAdjustmentsToOrder#
Add one or more adjustments — fixed or percentage-based surcharges or discounts — to an order. Adjustments apply to the order as a whole and are reflected in the order totals.
Input: AddAdjustmentsToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
adjustments | [AdjustmentInput]!▾ | Required | The adjustments to add to the order |
Returns: AddAdjustmentsToOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
addContraFeesToOrder#
Add contra fees to an order — offsetting fee lines that counter an existing fee (for example to compensate a shipping or payment fee). Each contra fee references the fee it offsets via contra_fee_id.
Input: AddContraFeesToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
fees | [ContraFeeInput]!▾ | Required | The contra fees to add to the order |
Returns: AddContraFeesToOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
addCouponToOrder#
Apply a coupon code to an order. The coupon's discount is reflected in the order totals.
Input: AddCouponToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
coupon | String! | Required | The coupon code to apply |
Returns: AddCouponToOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
addFeesToOrder#
Add one or more fees — payment, handling or shipping — to an order. The fee amounts are reflected in the order totals.
Input: AddFeesToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
fees | [FeeInput]!▾ | Required | The fees to add to the order |
Returns: AddFeesToOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
addPaymentMethodToOrder#
Add a payment method (with its issuer) to an order, creating a payment that can subsequently be executed. For point-of-sale payments, a terminal or cash drawer can be specified.
Input: AddPaymentMethodToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
issuer_id | String! | Required | The ID of the payment issuer (e.g. a specific bank or card scheme) |
method_id | String! | Required | The ID of the payment method |
terminal_id | String | Optional | The ID of the POS terminal to process the payment on |
drawer_id | String | Optional | The ID of the POS cash drawer for cash payments |
Returns: AddPaymentMethodToOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
addPhoneNumberToOrder#
Add a phone number to an order — for example for delivery notifications — either by referencing an existing phone number by ID or by supplying a new one.
Input: AddPhoneNumberToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
phone_number_id | String | Optional | The ID of an existing phone number to attach |
phone_number | PhoneNumberInput▾ | Optional | A new phone number to attach — used when no `phone_number_id` is given |
Returns: AddPhoneNumberToOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
addPickUpPointToOrder#
Set a carrier pick-up point (service point) as the delivery location for an entire order, identified by its service point ID.
Input: AddPickUpPointToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
spid | String! | Required | The service point ID of the pick-up point (as returned by the shipping method's pickup points) |
Returns: AddPickUpPointToOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
addShippingMethodToOrder#
Assign a shipping method to an order. The method applies to the order's delivery and is reflected in the order's shipping details.
Input: AddShippingMethodToOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
method_id | String! | Required | The ID of the shipping method to apply |
Returns: AddShippingMethodToOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
openOrder#
Reopen an order, setting its state back to open so it can be modified again.
Input: OpenOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order to open |
Returns: OpenOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The opened order |
Example#
recalculateOrderPrices#
Recalculate the prices and totals of an order, for example after price list or item changes, so its totals reflect the current pricing.
Input: RecalculateOrderPricesInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order to recalculate |
Returns: RecalculateOrderPricesPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The order with recalculated prices |
Example#
removeAdjustmentsFromOrder#
Remove one or more adjustments — surcharges or discounts — from an order by their IDs. The order totals are updated accordingly.
Input: RemoveAdjustmentsFromOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
adjustment_ids | [String]! | Required | The IDs of the adjustments to remove |
Returns: RemoveAdjustmentsFromOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
removeBillingAddressFromOrder#
Remove the billing address from an order.
Input: RemoveBillingAddressFromOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
Returns: RemoveBillingAddressFromOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
removeCouponFromOrder#
Remove a previously applied coupon code from an order. The coupon's discount is taken out of the order totals.
Input: RemoveCouponFromOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
coupon | String! | Required | The coupon code to remove |
Returns: RemoveCouponFromOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
removeCustomerFromOrder#
Detach the customer from an order, leaving the order without an associated customer.
Input: RemoveCustomerFromOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
Returns: RemoveCustomerFromOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
removeItemsFromOrder#
Remove items from an order by their item IDs. The order totals are recalculated and the updated order is returned.
Input: RemoveItemsFromOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order to remove the items from |
ids | [String]! | Required | IDs of the order items to remove |
Returns: RemoveItemsFromOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
removePhoneNumberFromOrder#
Remove the phone number from an order. Returns the updated order.
Input: RemovePhoneNumberFromOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order to remove the phone number from |
Returns: RemovePhoneNumberFromOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setCountryCodeForOrder#
Set the destination country code on an order. The country is used when calculating prices, VAT and shipping for the order.
Input: SetCountryCodeForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
country_code | String! | Required | ISO 3166-1 alpha-2 country code (e.g. NL, DE) |
Returns: SetCountryCodeForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setCountryCodeOnOrder#
Set the destination country code on an order, used when calculating prices, VAT and shipping. Takes the same input as setCountryCodeForOrder and returns the same payload.
Input: SetCountryCodeOnOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
country_code | String! | Required | ISO 3166-1 alpha-2 country code (e.g. NL, DE) |
Returns: SetCountryCodeForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setDutiesForOrder#
Set the import duties on an order, for example when shipping cross-border. The duties are reflected in the order totals.
Input: SetDutiesForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
duties | Money!▾ | Required | The duties to charge — pass the amount in cents |
Returns: SetDutiesForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setExpirationDateForOrder#
Set the expiration date of an order. After this date an unconfirmed order expires and its claimed stock is released.
Input: SetExpirationDateForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
expires_at | Int64! | Required | Expiration date — Unix timestamp in milliseconds |
Returns: SetExpirationDateForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setItemQuantityForOrder#
Set the quantity of a SKU on an order to an absolute value — items are added or removed until the order holds exactly the requested quantity.
Input: SetItemQuantityForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
sku | String! | Required | The SKU to set the quantity for |
quantity | Int! | Required | The new absolute quantity for this SKU |
Returns: SetItemQuantityForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setItemQuantityOnOrder#
Set the quantity of a SKU on an order to an absolute value. Equivalent to setItemQuantityForOrder — both return the same payload.
Input: SetItemQuantityOnOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
sku | String! | Required | The SKU to set the quantity for |
quantity | Int! | Required | The new absolute quantity for this SKU |
Returns: SetItemQuantityForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setNoteForOrder#
Set a note on an order, for example special instructions from the customer or an internal remark. The note replaces any previously set note.
Input: SetNoteForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
note | String! | Required | The note to set on the order |
Returns: SetNoteForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setOrderTag#
Set a tag on an order by selecting an option for a tag key, for example to label the order for filtering and workflow automation.
Input: SetOrderTagInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
key_id | String! | Required | The ID of the tag key |
option_id | String! | Required | The ID of the tag option to set for the key |
Returns: SetOrderTagPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setPositionForOrder#
Set the warehouse position for an order, for example the packing station or storage slot where the order is being prepared. Returns the updated order.
Input: SetPositionForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
position | String! | Required | The position to assign to the order (e.g. a packing station or storage slot) |
Returns: SetPositionForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setReferenceForOrder#
Set a custom reference on an order, for example the customer's purchase order number. Returns the updated order.
Input: SetReferenceForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
reference | String! | Required | The reference to set on the order (e.g. a purchase order number) |
Returns: SetReferenceForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
updateAdjustmentForOrder#
Update an existing adjustment (discount or surcharge) on an order — change its description, amount, or whether the amount is a percentage.
Input: UpdateAdjustmentForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
discount_id | String! | Required | The ID of the adjustment to update |
description | String! | Required | Description shown on the order and invoice |
is_percentage | Boolean! | Required | Whether the amount is a percentage instead of a fixed amount |
amount | Float! | Required | The adjustment amount — a percentage when is_percentage is true, otherwise a fixed amount in cents |
Returns: UpdateAdjustmentForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
updateFeeForOrder#
Update an existing fee on an order — change its description or amount. The fee is identified by its fee_id and the change is reflected in the order totals.
Input: UpdateFeeForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order carrying the fee |
fee_id | String! | Required | The ID of the fee to update |
description | String! | Required | Human-readable description shown on the order |
amount | Money!▾ | Required | New fee amount in cents |
Returns: UpdateFeeForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
Order items#
addAdjustmentsToOrderItem#
Add one or more adjustments — fixed or percentage-based surcharges or discounts — to a single order item, or to several items at once via item_ids.
Input: AddAdjustmentsToOrderItemInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_id | String | Optional | The ID of the order item to adjust |
item_ids | [String] | Optional | IDs of multiple order items to adjust — alternative to `item_id` |
adjustments | [AdjustmentInput]▾ | Optional | The adjustments to add to the item(s) |
Returns: AddAdjustmentsToOrderItemPayload!
| Name | Type | Required | Description |
|---|---|---|---|
item | CollectionItem▾ | Optional | The updated order item (when a single `item_id` was passed) |
items | [CollectionItem]!▾ | Required | All updated order items |
Example#
addAdjustmentsToOrderItems#
Add adjustments to multiple order items in a single call, where each adjustment targets a specific item via its own item_id.
Input: AddAdjustmentsToOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
adjustments | [NewOrderItemAdjustmentInput]▾ | Optional | Per-item adjustments to apply |
Returns: AddAdjustmentsToOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
addContraFeesToOrderItems#
Add contra fees to specific order items — offsetting fee lines that counter an existing fee on those items. Each contra fee references the fee it offsets via contra_fee_id.
Input: AddContraFeesToOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_ids | [String]! | Required | IDs of the order items to add the contra fees to |
fees | [ContraFeeInput]!▾ | Required | The contra fees to add |
Returns: AddContraFeesToOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
addDiscountsToOrderItem#
Add one or more discounts — percentage or fixed monetary value — to a single order item.
Input: AddDiscountsToOrderItemInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_id | String! | Required | The ID of the order item |
discounts | [DiscountInput]!▾ | Required | The discounts to add to the item |
Returns: AddAdjustmentsToOrderItemPayload!
| Name | Type | Required | Description |
|---|---|---|---|
item | CollectionItem▾ | Optional | The updated order item |
items | [CollectionItem]!▾ | Required | All updated order items |
Example#
addFeesToOrderItems#
Add one or more fees — payment, handling or shipping — to specific order items. The fee amounts are reflected in the pricing of the affected items.
Input: AddFeesToOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_ids | [String]! | Required | IDs of the order items to add the fees to |
fees | [FeeInput]!▾ | Required | The fees to add to the items |
Returns: AddFeesToOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
addPickUpPointToOrderItem#
Set a carrier pick-up point (service point) as the delivery location for a single order item, identified by its service point ID.
Input: AddPickUpPointToOrderItemInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_id | String! | Required | The ID of the order item |
spid | String! | Required | The service point ID of the pick-up point (as returned by the shipping method's pickup points) |
Returns: AddPickUpPointToOrderItemPayload!
| Name | Type | Required | Description |
|---|---|---|---|
item | CollectionItem▾ | Optional | The updated order item |
Example#
addPickUpPointToOrderItems#
Set carrier pick-up points (service points) as the delivery location for multiple order items in a single call. Each item is paired with its own service point ID.
Input: AddPickUpPointToOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
items | [AddPickUpPointToOrderItemInput]!▾ | Required | The items to assign a pick-up point to |
Returns: AddPickUpPointToOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
addShippingAddressToOrderItems#
Set a shipping destination for multiple order items in a single call. Each item can reference an existing address, supply a new address, or point to a service point or location, allowing different items of one order to ship to different destinations.
Input: AddShippingAddressToOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
items | [AddShippingAddressToOrderItemInput]!▾ | Required | The items to assign a shipping destination to |
Returns: AddShippingAddressToOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
allocateOrderItems#
Allocate specific order items to available inventory so they are reserved for fulfilment.
Input: AllocateOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [String]! | Required | IDs of the order items to allocate |
Returns: AllocateOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
approveOrderItems#
Approve specific order items so they are released for further processing and fulfilment.
Input: ApproveOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [String]! | Required | IDs of the order items to approve |
Returns: ApproveOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
assignInventoryToOrderItems#
Assign specific inventory to order items by linking each item to a warehouse location, reserving that stock for the order.
Input: AssignInventoryToOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [InventoryItemInput]!▾ | Required | The order items and the inventory location to assign each of them to |
Returns: AssignInventoryToOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
cancelCollectOrderItems#
Cancel the collect step for specific order items, so items previously marked for collection are no longer collected.
Input: CancelCollectOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [String]! | Required | IDs of the order items to cancel collection for |
Returns: CancelCollectOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
collectOrderItems#
Mark one or more order items as collected, for example when a customer picks up their items at a store or collection point. Returns the updated order.
Input: CollectOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order whose items are collected |
items | [String]! | Required | IDs of the order items to mark as collected |
Returns: CollectOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
deallocateOrderItems#
Release the warehouse stock allocations for specific order items, making the claimed stock available again without cancelling the items.
Input: DeallocateOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [String]! | Required | IDs of the order items to deallocate |
Returns: DeallocateOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
finishOrderItems#
Mark one or more order items as finished, completing their fulfilment flow. Returns the updated order.
Input: FinishOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [String]! | Required | IDs of the order items to finish |
Returns: FinishOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
haltOrderItems#
Halt the fulfilment of one or more order items, pausing them in the processing flow. Returns the updated order.
Input: HaltOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [HaltedItemInput]!▾ | Required | The order items to halt |
Returns: HaltOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
invoiceItems#
Invoice one or more order items. Pass an existing invoice_id to add the items to that invoice, or omit it to create a new invoice for the items.
Input: InvoiceItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
invoice_id | String | Optional | ID of an existing invoice to add the items to — omit to create a new invoice |
items | [String]! | Required | IDs of the order items to invoice |
Returns: InvoiceItemsPayload
| Name | Type | Required | Description |
|---|---|---|---|
invoice | Invoice▾ | Optional | The created invoice |
Example#
receiveOrderItems#
Register order items as received into the warehouse, recording the location and position where each item is stored. Typically used for inbound purchase or return flows.
Input: ReceiveOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [ReceiveItemInput]!▾ | Required | The items to receive |
Returns: ReceiveOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
releaseOrderItems#
Release one or more order items for fulfilment, making them available for the next step in the warehouse process.
Input: ReleaseOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [ReleaseOrderItem]!▾ | Required | The items to release |
Returns: ReleaseOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
removeAdjustmentsFromOrderItem#
Remove one or more adjustments — surcharges or discounts — from an order item. Pass a single item_id or multiple item_ids to remove the adjustments from several items at once.
Input: RemoveAdjustmentsFromOrderItemInput!
| Name | Type | Required | Description |
|---|---|---|---|
adjustment_ids | [String]! | Required | The IDs of the adjustments to remove |
item_id | String | Optional | The ID of a single order item to remove the adjustments from |
item_ids | [String] | Optional | The IDs of multiple order items to remove the adjustments from |
Returns: RemoveAdjustmentsFromOrderItemPayload!
| Name | Type | Required | Description |
|---|---|---|---|
item | CollectionItem▾ | Optional | The updated order item (when a single `item_id` was passed) |
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
removeDiscountsFromOrderItem#
Remove one or more previously applied discounts from a single order item by discount ID.
Input: RemoveDiscountsFromOrderItemInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_id | String! | Required | The ID of the order item |
discount_ids | [String]! | Required | IDs of the discounts to remove from the item |
Returns: RemoveAdjustmentsFromOrderItemPayload!
| Name | Type | Required | Description |
|---|---|---|---|
item | CollectionItem▾ | Optional | The updated order item |
items | [CollectionItem]!▾ | Required | All updated order items |
Example#
restockOrderItems#
Put returned or cancelled order items back into stock, optionally at a specific warehouse location and position.
Input: RestockOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [RestockItemInput]!▾ | Required | The order items to restock |
Returns: RestockOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
returnOrderItems#
Register order items as returned, optionally recording the return reason and a track & trace code for the return shipment.
Input: ReturnOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
items | [ReturnItemInput]!▾ | Required | The order items to return |
Returns: ReturnOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setExpectedAtForOrderItems#
Set the expected delivery date for specific order items, for example when an item is backordered and will only become available at a known future date.
Input: SetExpectedAtForOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
expected_at | Int64! | Required | Expected delivery date — Unix timestamp in milliseconds |
items | [String]! | Required | IDs of the order items to update |
Returns: SetExpectedAtForOrderItemsPayload
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem!]!▾ | Required | Items whose expected delivery date was updated |
Example#
setMetaDataForOrderItems#
Attach free-form metadata to specific order items, for example personalisation details or references from an external system.
Input: SetMetaDataForOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
meta_data | JsonObject!▾ | Required | Arbitrary metadata to store on the items |
items | [String]! | Required | IDs of the order items to attach the metadata to |
Returns: SetMetaDataForOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
setOriginForOrderItems#
Set the origin for one or more order items — either a warehouse location or an address the items should ship from. Returns the updated items.
Input: SetOriginForOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_ids | [String]! | Required | IDs of the order items to set the origin for |
location_id | String | Optional | The ID of the warehouse location the items should ship from |
address_id | String | Optional | The ID of the address the items should ship from |
Returns: SetOriginForOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
setPositionForOrderItems#
Set the warehouse position for one or more order items, for example the bin or shelf where the items are stored while awaiting fulfilment. Returns the updated items.
Input: SetPositionForOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_ids | [String]! | Required | IDs of the order items to set the position for |
position | String! | Required | The position to assign to the items (e.g. a bin or shelf code) |
Returns: SetPositionForOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
setPriceForOrderItems#
Override the price of one or more order items, for example to apply a negotiated price. Each entry targets a specific item and sets its new price in cents. Returns the updated items.
Input: SetPriceForOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
items | [OrderItemPricingUpdateInput]!▾ | Required | Price updates, one per order item |
Returns: SetPriceForOrderItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated order items |
Example#
setShipAtForOrderItems#
Set the planned ship date for one or more order items, scheduling when they should leave the warehouse.
Input: SetShipAtForOrderItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
ship_at | Int64! | Required | Planned ship date as Unix ms timestamp |
items | [String]! | Required | IDs of the order items to schedule |
Returns: SetShipAtForOrderItemsPayload
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem!]!▾ | Required | Items whose suggested ship date was updated |
Example#
startItemCancellationProcess#
Start the cancellation process for one or more items on an order. Optionally pass a contra_id per item to link the cancellation to a contra (compensating) item.
Input: StartItemCancellationProcessInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order the items belong to |
location_id | String | Optional | Location where the cancellation is processed |
items | [ItemCancellationProcessInput]!▾ | Required | The items to cancel |
Returns: StartItemCancellationProcessPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The items with the cancellation process started |
Example#
updateAdjustmentForOrderItem#
Update an existing adjustment — a fixed or percentage-based surcharge or discount — on an order item, or on several items at once via item_ids. The adjustment is identified by its discount_id.
Input: UpdateAdjustmentForOrderItemInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_id | String | Optional | The ID of the order item carrying the adjustment |
item_ids | [String] | Optional | IDs of multiple order items to update — alternative to `item_id` |
discount_id | String! | Required | The ID of the adjustment to update |
description | String! | Required | Human-readable description shown on the item |
is_percentage | Boolean! | Required | Whether `amount` is a percentage instead of a fixed value |
amount | Float! | Required | Adjustment value — a percentage when `is_percentage` is true, otherwise a fixed amount in cents |
Returns: UpdateAdjustmentForOrderItemPayload!
| Name | Type | Required | Description |
|---|---|---|---|
item | CollectionItem▾ | Optional | The updated order item (when a single `item_id` was passed) |
items | [CollectionItem]!▾ | Required | All updated order items |
Example#
updateDiscountOnOrderItem#
Update an existing discount on an order item — change its description, type or value. The discount is identified by its discount_id.
Input: UpdateDiscountOnOrderItemInput!
| Name | Type | Required | Description |
|---|---|---|---|
item_id | String! | Required | The ID of the order item carrying the discount |
discount_id | String! | Required | The ID of the discount to update |
description | String! | Required | Human-readable description shown on the item |
type | DiscountType!▾ | Required | How the discount value is interpreted |
value | Float! | Required | Discount value — a percentage when `type` is PERCENTAGE, otherwise a fixed amount in cents |
Returns: UpdateAdjustmentForOrderItemPayload!
| Name | Type | Required | Description |
|---|---|---|---|
item | CollectionItem▾ | Optional | The updated order item |
items | [CollectionItem]!▾ | Required | All updated order items |
Example#
Organisation#
createOrganisation#
Create a new organisation.
Input: OrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
name | String! | Required | Organisation name |
type | OrganisationType!▾ | Required | Organisation type |
is_guest | Boolean! | Required | Whether this is a guest organisation |
administration | AdministrationInput! | Required | Administration / accounting details |
audience_id | String | Optional | Audience to associate this organisation with |
addressing | AddressingInput | Optional | Billing and shipping addresses |
phone_numbers | PhoneNumberInput | Optional | Phone numbers |
registration | RegistrationInput | Optional | VAT / company registration |
channel_id | String | Optional | Channel association |
price_list_id | String | Optional | Price list |
Returns: Organisation
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
name | String | Optional | Organisation name |
type | OrganisationType!▾ | Required | Type of organisation |
number | String | Optional | Organisation number |
Example#
updateOrganisation#
Update an existing organisation.
Input: UpdateOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The organisation ID |
name | String! | Required | Organisation name |
type | OrganisationType! | Required | Organisation type |
administration | AdministrationInput! | Required | Administration / accounting details |
avatar | String | Optional | Avatar URL |
addressing | AddressingInput | Optional | Billing and shipping addresses |
registration | RegistrationInput | Optional | VAT / company registration |
Returns: Organisation
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
name | String | Optional | Organisation name |
type | OrganisationType!▾ | Required | Type of organisation |
number | String | Optional | Organisation number |
Example#
addBillingAddressToOrganisation#
Attach a billing address to an organisation — either by referencing an existing address with address_id or by supplying a new address.
Input: AddBillingAddressToOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
organisation_id | String! | Required | The ID of the organisation |
address_id | String | Optional | ID of an existing address to use as the billing address |
address | AddressInput▾ | Optional | A new billing address — alternative to `address_id` |
Returns: AddBillingAddressToOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
addContactToAccountOrganisation#
Add a contact to a shared (account) organisation with a specific role, referencing the contact by ID or by email address.
Input: AddContactToAccountOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
organisation_id | ID | Optional | The ID of the shared organisation |
contact | SharedContactInput!▾ | Required | The contact to add and the role to assign |
Returns: AddContactToAccountOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
addOrganisationToAccount#
Add an organisation to the signed-in customer account, including its administration details, addressing, phone numbers and registration.
Input: AddOrganisationToAccountInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String | Optional | Optional client-supplied identifier for the organisation |
name | String! | Required | Name of the organisation |
administration | AdministrationInput!▾ | Required | Administration details of the organisation |
addressing | AddressingInput▾ | Optional | Billing and shipping addresses |
phone_numbers | [PhoneNumberInput]▾ | Optional | Phone numbers of the organisation |
registration | RegistrationInput▾ | Optional | Company registration details (e.g. VAT) |
coc_number | String | Optional | Chamber of Commerce number |
Returns: AddOrganisationToAccountPayload!
| Name | Type | Required | Description |
|---|---|---|---|
account | Account▾ | Optional | The updated customer account |
Example#
addOrganisationToContact#
Link an existing organisation to a contact, optionally marking it as the contact's primary organisation.
Input: AddOrganisationToContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | String! | Required | The ID of the contact |
organisation_id | String! | Required | The ID of the organisation to link |
is_primary | Boolean! | Required | Whether this is the contact's primary organisation |
Returns: AddOrganisationToContactPayload!
| Name | Type | Required | Description |
|---|---|---|---|
contact | Contact▾ | Optional | The updated contact |
Example#
addPhoneNumberToOrganisation#
Add a phone number to an organisation, either by referencing an existing phone number by ID or by supplying a new one. The number can be marked as the organisation's primary phone number.
Input: AddPhoneNumberToOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
organisation_id | String! | Required | The ID of the organisation |
phone_number_id | String | Optional | The ID of an existing phone number to attach |
phone_number | PhoneNumberInput▾ | Optional | A new phone number to attach — used when no `phone_number_id` is given |
is_primary | Boolean! | Required | Whether this is the organisation's primary phone number |
Returns: AddPhoneNumberToOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
addShippingAddressToOrganisation#
Attach a shipping address to an organisation — either by referencing an existing address with address_id or by supplying a new address.
Input: AddShippingAddressToOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
organisation_id | String! | Required | The ID of the organisation |
address_id | String | Optional | ID of an existing address to use as the shipping address |
address | AddressInput▾ | Optional | A new shipping address — alternative to `address_id` |
Returns: AddShippingAddressToOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
addVatNumberToOrganisation#
Add a VAT registration (country code + number) to an organisation. The registration is stored on the organisation and can subsequently be verified.
Input: VatNumberInput!
| Name | Type | Required | Description |
|---|---|---|---|
organisation_id | String! | Required | The ID of the organisation to add the VAT number to |
registration | RegistrationInput!▾ | Required | The VAT registration details |
Returns: AddVatNumberToOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
blockOrganisation#
Block an organisation. The organisation is flagged as blocked (is_blocked) on the organisation record.
Input: BlockOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the organisation to block |
Returns: BlockOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
logInAsOrganisation#
Log the current session in on behalf of an organisation. Returns a new token scoped to that organisation, to be used for subsequent requests.
Input: LogInAsOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
organisation_id | String! | Required | The ID of the organisation to log in as |
Returns: LogInAsOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The new session token scoped to the organisation |
expires_at | Int64! | Required | When the token expires — Unix timestamp in milliseconds |
Example#
logOutAsOrganisation#
End the current organisation session started with logInAsOrganisation. Returns a new token that is no longer scoped to the organisation.
No input.
Returns: LogOutAsOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The new session token, no longer scoped to the organisation |
expires_at | Int64! | Required | When the token expires — Unix timestamp in milliseconds |
Example#
markOrganisationAsDefault#
Mark one of the account's organisations as the default organisation, for example the one used by default for new orders. Returns the updated account.
Input: MarkOrganisationAsDefaultInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the organisation to mark as default |
Returns: MarkOrganisationAsDefaultPayload!
| Name | Type | Required | Description |
|---|---|---|---|
account | Account▾ | Optional | The updated account |
Example#
removeContactFromAccountOrganisation#
Remove a contact from a shared (account) organisation, revoking that contact's membership.
Input: RemoveContactFromAccountOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
organisation_id | ID | Optional | The ID of the shared organisation |
contact_id | ID! | Required | The ID of the contact to remove |
Returns: RemoveContactFromAccountOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
removeContactFromOrganisation#
Remove a contact from an organisation, referencing both the organisation and the contact by ID.
Input: RemoveContactFromOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the organisation |
contact_id | ID! | Required | The ID of the contact to remove |
Returns: RemoveContactFromOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
removeOrganisationFromAccount#
Remove an organisation from the signed-in customer account. Returns the updated account.
Input: RemoveOrganisationFromAccountInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the organisation to remove from the account |
Returns: RemoveOrganisationFromAccountPayload!
| Name | Type | Required | Description |
|---|---|---|---|
account | Account▾ | Optional | The updated customer account |
Example#
removeRegistrationFromOrganisation#
Remove a company registration (such as a VAT registration) from an organisation. Returns the updated organisation.
Input: RemoveRegistrationFromOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the registration to remove |
Returns: RemoveRegistrationFromOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
setOrganisationTag#
Set a tag on an organisation by picking an option for a tagging key, for example to segment organisations by industry or account tier. Returns the updated organisation.
Input: SetOrganisationTagInput!
| Name | Type | Required | Description |
|---|---|---|---|
organisation_id | String! | Required | The ID of the organisation to tag |
key_id | String! | Required | The ID of the tagging key |
option_id | String! | Required | The ID of the option to set for the tagging key |
Returns: SetOrganisationTagPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
unblockOrganisation#
Unblock a previously blocked organisation, allowing it to place orders again.
Input: UnblockOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the organisation to unblock |
Returns: UnblockOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The unblocked organisation |
Example#
updateContactRoleInOrganisation#
Change the role of a contact within a shared organisation — for example promote a user to admin.
Input: UpdateContactRoleInOrganisationInput!
| Name | Type | Required | Description |
|---|---|---|---|
organisation_id | ID | Optional | The ID of the organisation the contact belongs to |
contact_id | ID! | Required | The ID of the contact whose role is changed |
role | SharedContactRole!▾ | Required | The new role of the contact within the organisation |
Returns: UpdateContactRoleInOrganisationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
organisation | Organisation▾ | Optional | The updated organisation |
Example#
updateOrganisationOnAccount#
Update an organisation linked to the signed-in customer account — its name, administration details, addressing, phone numbers and registration.
Input: UpdateOrganisationOnAccountInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the organisation to update |
name | String! | Required | Name of the organisation |
administration | AdministrationInput!▾ | Required | Administration details of the organisation |
addressing | AddressingInput▾ | Optional | Billing and shipping addresses |
phone_numbers | [PhoneNumberInput]▾ | Optional | Phone numbers of the organisation |
registration | RegistrationInput▾ | Optional | Company registration details (e.g. VAT) |
coc_number | String | Optional | Chamber of Commerce number |
Returns: UpdateOrganisationOnAccountPayload!
| Name | Type | Required | Description |
|---|---|---|---|
account | Account▾ | Optional | The updated customer account |
Example#
Payment#
executePayment#
Execute a payment for an order.
Input: ExecutePaymentInput!
| Name | Type | Required | Description |
|---|---|---|---|
payment_id | String! | Required | The ID of the payment to execute (obtained from `addPaymentMethodToOrder`) |
| Name | Type | Required | Description |
|---|---|---|---|
payment | Payment▾ | Optional | The payment record |
Example#
createRefund#
Create a refund for an order payment.
Input: CreateRefundInput!
| Name | Type | Required | Description |
|---|---|---|---|
payment_id | String! | Required | The payment ID to refund |
amount | Int! | Required | Amount to refund (in cents) |
| Name | Type | Required | Description |
|---|---|---|---|
payment | Payment▾ | Optional | The refund payment record |
Example#
Customer authentication#
logInCustomer#
Authenticate a customer with email and password. Returns a short-lived session token.
Input: LogInCustomerInput!
| Name | Type | Required | Description |
|---|---|---|---|
email | String! | Required | Customer's email address |
password | String! | Required | Customer's password |
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | Session token (Bearer) |
expires_at | Int64! | Required | Expiry as Unix milliseconds |
Example#
registerCustomer#
Register a new customer account. Returns a session token on success.
Input: RegisterCustomerInput!
| Name | Type | Required | Description |
|---|---|---|---|
email | String! | Required | Email address |
password | String! | Required | Password |
given_name | String | Optional | First name |
additional_name | String | Optional | Middle name |
family_name | String | Optional | Last name |
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | Session token (Bearer) |
expires_at | Int64! | Required | Expiry as Unix milliseconds |
Example#
requestCustomerPasswordReset#
Send a password reset email to a customer.
Input: RequestCustomerPasswordResetInput!
| Name | Type | Required | Description |
|---|---|---|---|
email | String! | Required | The customer's email address |
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the reset email was sent |
Example#
resetCustomerPassword#
Reset a customer password using a token received by email.
Input: ResetCustomerPasswordInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The reset token from the email link |
password | String! | Required | The new password |
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the password was reset |
Example#
requestCustomerVerificationLink#
Send a new verification link to an unverified customer.
Input: RequestCustomerVerificationLinkInput!
| Name | Type | Required | Description |
|---|---|---|---|
email | String! | Required | The customer's email address |
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the link was sent |
Example#
verifyCustomer#
Verify a customer account using a token received by email.
Input: VerifyCustomerInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The verification token from the email link |
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | Session token (Bearer) |
expires_at | Int64! | Required | Expiry as Unix milliseconds |
Example#
Account#
updateAccount#
Update the authenticated account's profile.
Input: UpdateAccountInput!
| Name | Type | Required | Description |
|---|---|---|---|
given_name | String | Optional | First name |
additional_name | String | Optional | Middle name |
family_name | String | Optional | Last name |
Returns: Account
| Name | Type | Required | Description |
|---|---|---|---|
email | String! | Required | Email address |
given_name | String! | Required | First name |
additional_name | String! | Required | Middle name |
family_name | String! | Required | Last name |
Example#
reorder#
Reorder a previous order. Adds all items from the referenced order to a new cart.
Input: ReorderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order to reorder |
Returns: Cart
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the cart |
number | String! | Required | Cart number |
total | Money! | Required | Total value |
subtotal | Money! | Required | Total before discounts |
Example#
setPasswordForAccount#
Change the password of the signed-in account by providing the current password and the new one. Returns the account.
Input: SetPasswordForAccountInput!
| Name | Type | Required | Description |
|---|---|---|---|
password | String! | Required | The current password of the account |
new_password | String! | Required | The new password to set |
Returns: SetPasswordForAccountPayload!
| Name | Type | Required | Description |
|---|---|---|---|
account | Account▾ | Optional | The updated account |
Example#
Contact#
createContact#
Create a new contact.
Input: ContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
email | String! | Required | Email address |
is_guest | Boolean! | Required | Whether this is a guest contact (no password) |
given_name | String! | Required | First name |
family_name | String! | Required | Last name |
additional_name | String | Optional | Middle name |
password | String | Optional | Password (when not a guest) |
locale | String | Optional | Locale (e.g. nl_NL) |
channel_id | String | Optional | Channel to associate this contact with |
price_list_id | String | Optional | Price list to attach |
Returns: Contact
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
email | String! | Required | Email address |
given_name | String! | Required | First name |
family_name | String | Optional | Last name |
Example#
updateContact#
Update an existing contact.
Input: UpdateContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String! | Required | The ID of the contact |
given_name | String | Optional | First name |
additional_name | String | Optional | Middle name |
family_name | String | Optional | Last name |
locale | String | Optional | Locale |
Returns: Contact
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
email | String! | Required | Email address |
given_name | String! | Required | First name |
family_name | String | Optional | Last name |
Example#
addBillingAddressToContact#
Add a billing address to a contact.
Input: AddBillingAddressToContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | String! | Required | The ID of the contact |
address | AddressInput!▾ | Required | The billing address |
Returns: Contact
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
email | String! | Required | Email address |
given_name | String! | Required | First name |
family_name | String | Optional | Last name |
Example#
addShippingAddressToContact#
Add a shipping address to a contact.
Input: AddShippingAddressToContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | String! | Required | The ID of the contact |
address | AddressInput!▾ | Required | The shipping address |
Returns: Contact
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID |
email | String! | Required | Email address |
given_name | String! | Required | First name |
family_name | String | Optional | Last name |
Example#
addConsentsToContact#
Register one or more consents (for example marketing opt-ins) on a contact by consent ID.
Input: AddConsentsToContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | String! | Required | The ID of the contact |
consent_ids | [ID]! | Required | IDs of the consents to register on the contact |
Returns: AddConsentsToContactPayload!
| Name | Type | Required | Description |
|---|---|---|---|
contact | Contact▾ | Optional | The updated contact |
Example#
addPhoneNumberToContact#
Add a phone number to a contact, either by referencing an existing phone number by ID or by supplying a new one. The number can be marked as the contact's primary phone number.
Input: AddPhoneNumberToContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | String! | Required | The ID of the contact |
phone_number_id | String | Optional | The ID of an existing phone number to attach |
phone_number | PhoneNumberInput▾ | Optional | A new phone number to attach — used when no `phone_number_id` is given |
is_primary | Boolean! | Required | Whether this is the contact's primary phone number |
Returns: AddPhoneNumberToContactPayload!
| Name | Type | Required | Description |
|---|---|---|---|
contact | Contact▾ | Optional | The updated contact |
Example#
blockContact#
Block a contact. The contact is flagged as blocked (is_blocked) on the contact record.
Input: BlockContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | ID! | Required | The ID of the contact to block |
Returns: BlockContactPayload!
| Name | Type | Required | Description |
|---|---|---|---|
contact | Contact▾ | Optional | The updated contact |
Example#
removeConsentsFromContact#
Withdraw one or more consents (for example marketing opt-ins) from a contact by consent ID.
Input: RemoveConsentsFromContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | String! | Required | The ID of the contact |
consent_ids | [ID]! | Required | IDs of the consents to remove from the contact |
Returns: RemoveConsentsFromContactPayload!
| Name | Type | Required | Description |
|---|---|---|---|
contact | Contact▾ | Optional | The updated contact |
Example#
setContactTag#
Tag a contact by setting an option for a tag key on the contact. Tags let you segment contacts by predefined keys and their options.
Input: SetContactTagInput!
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | String! | Required | The ID of the contact to tag |
key_id | String! | Required | The ID of the tag key |
option_id | String! | Required | The ID of the option to set for the tag key |
Returns: SetContactTagPayload!
| Name | Type | Required | Description |
|---|---|---|---|
contact | Contact▾ | Optional | The updated contact |
Example#
unblockContact#
Unblock a previously blocked contact, allowing them to place orders and sign in again.
Input: UnblockContactInput!
| Name | Type | Required | Description |
|---|---|---|---|
contact_id | ID! | Required | The ID of the contact to unblock |
Returns: UnblockContactPayload!
| Name | Type | Required | Description |
|---|---|---|---|
contact | Contact▾ | Optional | The unblocked contact |
Example#
Wishlist#
createWishlist#
Create a new wishlist. Returns a token used in subsequent wishlist operations.
Input: CreateWishlistInput!
| Name | Type | Required | Description |
|---|---|---|---|
label | String! | Required | Display label for the wishlist |
expires_at | Int64! | Required | Unix-ms timestamp at which the wishlist expires |
Returns: Wishlist
| Name | Type | Required | Description |
|---|---|---|---|
label | String! | Required | Label |
token | String! | Required | Token identifier |
items | [WishlistItem!]!▾ | Required | Items on the wishlist |
expires_at | DateTime! | Required | Expiration date |
Example#
addItemToWishlist#
Add a product to a wishlist by SKU.
Input: AddItemToWishlistInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The wishlist token |
sku | String! | Required | The SKU to add |
quantity | Int! | Required | Quantity to add |
expires_at | Int64! | Required | Unix-ms timestamp at which the wishlist expires |
meta_data | JsonObject | Optional | Optional metadata |
Returns: Wishlist
| Name | Type | Required | Description |
|---|---|---|---|
label | String! | Required | Label |
token | String! | Required | Token identifier |
items | [WishlistItem!]!▾ | Required | Items on the wishlist |
expires_at | DateTime! | Required | Expiration date |
Example#
removeItemFromWishlist#
Remove a product from a wishlist.
Input: RemoveItemFromWishlistInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The wishlist token |
sku | String! | Required | The SKU to remove |
Returns: Wishlist
| Name | Type | Required | Description |
|---|---|---|---|
label | String! | Required | Label |
token | String! | Required | Token identifier |
items | [WishlistItem!]!▾ | Required | Items on the wishlist |
expires_at | DateTime! | Required | Expiration date |
Example#
updateWishlist#
Update the label of a wishlist.
Input: UpdateWishlistInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The wishlist token |
label | String! | Required | New label |
expires_at | Int64! | Required | Unix-ms timestamp at which the wishlist expires |
Returns: Wishlist
| Name | Type | Required | Description |
|---|---|---|---|
label | String! | Required | Label |
token | String! | Required | Token identifier |
items | [WishlistItem!]!▾ | Required | Items on the wishlist |
expires_at | DateTime! | Required | Expiration date |
Example#
deleteWishlist#
Delete a wishlist.
Input: DeleteWishlistInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The wishlist token |
Returns: Wishlist
| Name | Type | Required | Description |
|---|---|---|---|
label | String! | Required | Label |
token | String! | Required | Token identifier |
items | [WishlistItem!]!▾ | Required | Items on the wishlist |
expires_at | DateTime! | Required | Expiration date |
Example#
Product viewing history#
createProductViewingHistory#
Create a new product viewing history list. Returns a token used in subsequent calls.
Input: CreateProductViewingHistoryInput!
| Name | Type | Required | Description |
|---|---|---|---|
label | String! | Required | Display label for the history list |
expires_at | Int64! | Required | Unix-ms timestamp at which the history list expires |
| Name | Type | Required | Description |
|---|---|---|---|
productViewingHistory | ProductViewingHistory!▾ | Required | The created history list |
Example#
addItemToProductViewingHistory#
Record a product view.
Input: AddItemToProductViewingHistoryInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The viewing history token |
sku | String! | Required | The SKU that was viewed |
expires_at | Int64! | Required | Unix-ms timestamp at which the history list expires |
meta_data | JsonObject | Optional | Optional metadata (e.g. referrer, campaign) |
| Name | Type | Required | Description |
|---|---|---|---|
productViewingHistory | ProductViewingHistory!▾ | Required | The updated history list |
Example#
deleteProductViewingHistory#
Delete a product viewing history, identified by its token. Use this to clear the list of recently viewed products for a visitor.
Input: DeleteProductViewingHistoryInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The token of the product viewing history to delete |
Returns: DeleteProductViewingHistoryPayload!
| Name | Type | Required | Description |
|---|---|---|---|
success | Boolean! | Required | Whether the viewing history was deleted successfully |
Example#
updateProductViewingHistory#
Update a product viewing history's label and expiry date. The history is identified by the visitor token it was created with.
Input: UpdateProductViewingHistoryInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The visitor token identifying the viewing history |
label | String! | Required | Label for the viewing history (e.g. "recently-viewed") |
expires_at | Int64! | Required | New expiry as a Unix timestamp in milliseconds |
Returns: UpdateProductViewingHistoryPayload!
| Name | Type | Required | Description |
|---|---|---|---|
productViewingHistory | ProductViewingHistory▾ | Optional | The updated viewing history |
Example#
Products#
createItemPreferences#
Create stock preferences for one or more SKUs in a warehouse — minimum, optimal and maximum quantities, reorder points and backorder rules that drive replenishment.
Input: CreateItemPreferencesInput!
| Name | Type | Required | Description |
|---|---|---|---|
preferences | [ItemPreferenceInput]!▾ | Required | Stock preferences to create, one per SKU/warehouse combination |
Returns: CreateItemPreferencesPayload!
| Name | Type | Required | Description |
|---|---|---|---|
preferences | [StockPreference]!▾ | Required | The created stock preferences |
Example#
createProduct#
Create a product identified by its SKU, including catalog information, pricing, suppliers, inventory options, order units and optional bundle composition.
Input: ProductInput!
| Name | Type | Required | Description |
|---|---|---|---|
sku | String! | Required | Unique SKU identifying the product |
channel_id | String | Optional | Restrict the product to a specific channel |
information | ProductInformationInput▾ | Optional | Catalog information for the product |
pricing | [ProductPricingInput]▾ | Optional | Selling prices for the product |
vat_rate | Float | Optional | VAT rate as a percentage (e.g. 21) |
suppliers | [SupplierInput]▾ | Optional | Suppliers of this product |
options | ProductOptionsInput▾ | Optional | Inventory tracking requirements for the product |
bundle | ProductBundleInput▾ | Optional | Bundle composition when the product is a bundle of other SKUs |
units | [UnitInput]▾ | Optional | Order and receive units for the product |
Returns: CreateProductPayload!
| Name | Type | Required | Description |
|---|---|---|---|
product | Product!▾ | Required | The created product |
Example#
deleteProduct#
Permanently delete a product by SKU, optionally removing its inventory records and any bundle items that reference it.
Input: DeleteProductInput!
| Name | Type | Required | Description |
|---|---|---|---|
sku | String! | Required | The SKU of the product to delete |
remove_inventory | Boolean! | Required | Whether to also remove the inventory records for this SKU |
remove_bundle_items | Boolean! | Required | Whether to also remove bundle items that reference this product |
Returns: DeleteProductPayload!
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the product was deleted successfully |
Example#
removeItemPreferences#
Delete stock preferences — the replenishment rules (minimum, optimal and maximum quantities) for SKUs in a warehouse — by their IDs.
Input: RemoveItemPreferencesInput!
| Name | Type | Required | Description |
|---|---|---|---|
preferences | [ID]! | Required | IDs of the item preferences to remove |
Returns: RemoveItemPreferencesPayload!
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the preferences were removed successfully |
Example#
saveProduct#
Create or update a product identified by its SKU, including catalog information, pricing, suppliers, inventory options, order units and optional bundle composition.
Input: ProductInput!
| Name | Type | Required | Description |
|---|---|---|---|
sku | String! | Required | Unique SKU identifying the product |
channel_id | String | Optional | Restrict the product to a specific channel |
information | ProductInformationInput▾ | Optional | Catalog information for the product |
pricing | [ProductPricingInput]▾ | Optional | Selling prices for the product |
vat_rate | Float | Optional | VAT rate as a percentage (e.g. 21) |
suppliers | [SupplierInput]▾ | Optional | Suppliers of this product |
options | ProductOptionsInput▾ | Optional | Inventory tracking requirements for the product |
bundle | ProductBundleInput▾ | Optional | Bundle composition when the product is a bundle of other SKUs |
units | [UnitInput]▾ | Optional | Order and receive units for the product |
Returns: CreateProductPayload!
| Name | Type | Required | Description |
|---|---|---|---|
product | Product!▾ | Required | The saved product |
Example#
updateItemPreferences#
Update stock preferences for one or more items in a warehouse — minimum, optimal and maximum quantities, reorder point, backorder policy and position restrictions.
Input: UpdateItemPreferencesInput!
| Name | Type | Required | Description |
|---|---|---|---|
preferences | [ItemPreferenceUpdateInput]!▾ | Required | The stock preferences to update |
Returns: UpdateItemPreferencesPayload!
| Name | Type | Required | Description |
|---|---|---|---|
preferences | [StockPreference]!▾ | Required | The updated stock preferences |
Example#
updateItemPrices#
Override the unit prices of specific items on an order. The new prices are reflected in the order totals.
Input: UpdateItemPricesInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
prices | [ItemPricesInput]!▾ | Required | The new prices per order item |
Returns: UpdateItemPricesPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
updateProduct#
Update an existing product identified by SKU — its information, pricing, VAT rate, tracking options, bundle composition and order units.
Input: ProductUpdateInput!
| Name | Type | Required | Description |
|---|---|---|---|
sku | String! | Required | SKU of the product to update |
channel_id | String | Optional | Channel to scope the update to |
information | ProductInformationInput▾ | Optional | Descriptive product information |
pricing | [ProductPricingInput]▾ | Optional | Prices of the product |
vat_rate | Float | Optional | VAT rate as a percentage (e.g. 21) |
options | ProductOptionsInput▾ | Optional | Inventory tracking requirements |
bundle | ProductBundleInput▾ | Optional | Bundle composition when the product is a bundle |
units | [UnitInput]▾ | Optional | Order and receive units of the product |
Returns: UpdateProductPayload!
| Name | Type | Required | Description |
|---|---|---|---|
product | Product!▾ | Required | The updated product |
Example#
Inventory#
markItemsAsAllocated#
Mark specific order items as allocated, recording that inventory has been reserved for them so they can move on to fulfilment. Returns the updated order.
Input: MarkItemsAsAllocatedInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order whose items are allocated |
items | [AllocatedItemInput]!▾ | Required | The order items to mark as allocated |
Returns: MarkItemsAsAllocatedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
markItemsAsAvailable#
Mark order items as available at a specific inventory location, indicating stock is on hand for them at that location. Returns the updated order.
Input: MarkItemsAvailableInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order whose items are available |
items | [AvailableItemInput]!▾ | Required | The order items to mark as available |
Returns: MarkItemsAvailablePayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
markItemsAsDeallocated#
Mark order items as deallocated, releasing the inventory that was reserved for them. Returns the updated order.
Input: MarkItemsAsDeallocatedInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order whose items are deallocated |
items | [DeallocatedItemInput]!▾ | Required | The order items to mark as deallocated |
Returns: MarkItemsAsDeallocatedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
markItemsAsMissing#
Report order items as missing during fulfilment, for example when stock cannot be found in the warehouse. Optionally reference a contra item that replaces the missing one. Returns the updated order.
Input: MarkItemsAsMissingInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order whose items are missing |
items | [MissingItemInput]!▾ | Required | The order items to mark as missing |
Returns: MarkItemsAsMissingPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
markItemsAsUnavailable#
Mark order items as unavailable, indicating stock is not on hand to fulfil them. Returns the updated order.
Input: MarkItemsAsUnavailableInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order whose items are unavailable |
items | [UnavailableItemInput]!▾ | Required | The order items to mark as unavailable |
Returns: MarkItemsAsUnavailablePayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
removeInventoryFromProduct#
Remove inventory records from a product by their IDs. Returns the updated product.
Input: RemoveInventoryFromProductInput!
| Name | Type | Required | Description |
|---|---|---|---|
sku | String! | Required | The SKU of the product to remove inventory from |
ids | [String]! | Required | IDs of the inventory records to remove |
Returns: RemoveInventoryFromProductPayload!
| Name | Type | Required | Description |
|---|---|---|---|
product | Product▾ | Optional | The updated product |
Example#
Stock & supplies#
addOverage#
Register an overage on a supply — an item that was received but not expected, identified by SKU and the warehouse position where it was found.
Input: AddOverageInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the supply to register the overage on |
item | AddOverageItemInput!▾ | Required | The unexpected item that was received |
Returns: AddOveragePayload!
| Name | Type | Required | Description |
|---|---|---|---|
supply | Supply▾ | Optional | The updated supply |
Example#
addSkuToSupplier#
Link a product SKU to a supplier, so the product can be purchased from that supplier.
Input: AddSkuToSupplierInput!
| Name | Type | Required | Description |
|---|---|---|---|
sku | String! | Required | The SKU of the product to link |
supplier_id | ID! | Required | The ID of the supplier to link the SKU to |
Returns: AddSkuToSupplierPayload!
| Name | Type | Required | Description |
|---|---|---|---|
product | Product!▾ | Required | The linked product |
supplier | Business!▾ | Required | The supplier the SKU was linked to |
Example#
approveStockUpdateSubscription#
Confirm a stock update subscription (e.g. a back-in-stock notification) using the confirmation token that was sent to the subscriber.
Input: ApproveStockUpdateSubscriptionInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The confirmation token sent to the subscriber |
Returns: ApproveStockUpdateSubscriptionPayload!
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the subscription was successfully approved |
Example#
createReorderNotificationSettings#
Configure scheduled reorder notifications for a warehouse. On the configured weekdays and times, the listed recipients receive an email with reorder advice for the selected businesses.
Input: CreateReorderNotificationSettingsInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String | Optional | Optional ID to assign to the settings record |
is_enabled | Boolean! | Required | Whether the reorder notifications are active |
warehouse_id | String! | Required | The ID of the warehouse to generate reorder advice for |
business_ids | [String]! | Required | IDs of the businesses (suppliers/vendors) to include in the advice |
schedules | [ReorderNotificationScheduleInput]!▾ | Required | When the notification emails are sent |
recipients | [ReorderNotificationRecipientInput]!▾ | Required | Who receives the notification emails |
Returns: CreateReorderNotificationSettingsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
reorder_notification | ReorderNotification▾ | Optional | The created reorder notification settings |
Example#
createStockUpdateSubscription#
Subscribe an email address to a back-in-stock notification for a product. The subscriber is notified when the SKU becomes available again on the channel.
Input: CreateStockUpdateSubscriptionInput!
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | String | Optional | The sales channel to watch stock on |
email | String! | Required | Email address to notify when the product is back in stock |
sku | String! | Required | SKU of the product to watch |
Returns: CreateStockUpdateSubscriptionPayload!
| Name | Type | Required | Description |
|---|---|---|---|
subscription | StockNotificationSubscription▾ | Optional | The created stock notification subscription |
Example#
createSupply#
Start a supply (goods receipt) from one or more announcements. The settings control how received items are processed — plainly registered, distributed to positions, or matched against cross-dock orders or purchases.
Input: CreateSupplyInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String | Optional | Optional ID to assign to the supply |
announcement_ids | [String]! | Required | The announcements (expected deliveries) this supply receives |
location_id | String | Optional | The location where the goods are received |
due_at | Int64 | Optional | When the supply is due — Unix timestamp in milliseconds |
settings | SupplySettingsInput!▾ | Required | How received items are processed |
Returns: CreateSupplyPayload!
| Name | Type | Required | Description |
|---|---|---|---|
supply | Supply▾ | Optional | The created supply |
Example#
removeReorderNotificationSettings#
Delete reorder notification settings by ID, stopping the associated replenishment notifications.
Input: RemoveReorderNotificationSettingsInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the reorder notification settings to remove |
Returns: RemoveReorderNotificationSettingsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
success | Boolean! | Required | Whether the settings were removed successfully |
Example#
removeSkuFromSupplier#
Unlink a product SKU from a supplier, so the product can no longer be purchased from that supplier.
Input: RemoveSkuFromSupplierInput!
| Name | Type | Required | Description |
|---|---|---|---|
sku | String! | Required | The SKU of the product to unlink |
supplier_id | ID! | Required | The ID of the supplier to remove the SKU from |
Returns: RemoveSkuFromSupplierPayload!
| Name | Type | Required | Description |
|---|---|---|---|
product | Product!▾ | Required | The unlinked product |
supplier | Business!▾ | Required | The supplier the SKU was removed from |
Example#
removeStockUpdateSubscription#
Remove a stock update subscription using its subscription token, stopping further stock update notifications.
Input: RemoveStockUpdateSubscriptionInput!
| Name | Type | Required | Description |
|---|---|---|---|
token | String! | Required | The token identifying the stock update subscription to remove |
Returns: RemoveStockUpdateSubscriptionPayload!
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the subscription was removed successfully |
Example#
removeSupply#
Remove a supply record from inventory by its ID.
Input: RemoveSupplyInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the supply to remove |
Returns: RemoveSupplyPayload!
| Name | Type | Required | Description |
|---|---|---|---|
success | Boolean! | Required | Whether the supply was removed successfully |
removed_supply_id | String | Optional | The ID of the removed supply |
Example#
updateReorderNotificationSettings#
Update the reorder notification settings for a warehouse: enable or disable the notifications and set which businesses they cover, when they are sent and who receives them.
Input: UpdateReorderNotificationSettingsInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the reorder notification configuration |
is_enabled | Boolean! | Required | Whether reorder notifications are enabled |
business_ids | [String]! | Required | IDs of the businesses the notifications apply to |
schedules | [ReorderNotificationScheduleInput]!▾ | Required | When the notifications are sent |
recipients | [ReorderNotificationRecipientInput]!▾ | Required | Who receives the notifications |
Returns: UpdateReorderNotificationSettingsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
reorder_notification | ReorderNotification▾ | Optional | The updated reorder notification configuration |
Example#
updateSupply#
Update a supply (an incoming goods run in a warehouse): change its due date and how received items are processed and matched to orders, purchases or cross-dock flows.
Input: UpdateSupplyInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the supply to update |
due_at | Int64! | Required | Due date as a Unix timestamp in milliseconds |
settings | UpdateSupplySettingsInput!▾ | Required | Processing settings for the supply |
Returns: UpdateSupplyPayload!
| Name | Type | Required | Description |
|---|---|---|---|
supply | Supply▾ | Optional | The updated supply |
Example#
Locations#
createLocation#
Create a physical location — such as a store, warehouse site or pickup point — including its address, opening hours and order cut-off times.
Input: CreateLocationInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String | Optional | Optional client-supplied ID for the location |
name | String! | Required | Name of the location |
address_id | String | Optional | ID of an existing address to link to the location |
address | AddressInput▾ | Optional | Address to create for the location (alternative to address_id) |
openings | [LocationOpeningInput]!▾ | Required | Opening hours per weekday |
cut_off_times | [CutOffTimeInput]!▾ | Required | Order cut-off time per weekday |
inventory_integration_id | String | Optional | ID of the inventory management integration for this location |
Returns: CreateLocationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
location | Location▾ | Optional | The created location |
Example#
updateLocation#
Update a location — its name, address, opening hours and carrier cut-off times.
Input: UpdateLocationInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the location to update |
name | String! | Required | Name of the location |
address_id | String | Optional | ID of an existing address to use for the location |
address | AddressInput▾ | Optional | The address of the location — alternative to `address_id` |
openings | [LocationOpeningInput]!▾ | Required | Opening hours per weekday |
cut_off_times | [CutOffTimeInput]!▾ | Required | Cut-off times per weekday for same-day processing |
Returns: UpdateLocationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
location | Location▾ | Optional | The updated location |
Example#
Delivery & parcels#
addItemsToParcel#
Add order items to a parcel for shipping. When no parcel_id is given, the items are packed into a new parcel; the payload returns both the updated items and the affected parcels.
Input: AddItemsToParcelInput!
| Name | Type | Required | Description |
|---|---|---|---|
parcel_id | String | Optional | The ID of an existing parcel to add the items to — omit to create a new parcel |
items | [String]! | Required | IDs of the items to add to the parcel |
Returns: AddItemsToParcelPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [ParcelItem]!▾ | Required | The items that were added |
parcels | [Parcel]!▾ | Required | The affected parcels |
Example#
addProviderOptionToItems#
Assign a carrier provider option (a specific carrier service, e.g. a signed or same-day delivery product) to a set of parcel items, so the resulting parcel is shipped with that carrier service.
Input: AddProviderOptionToItems!
| Name | Type | Required | Description |
|---|---|---|---|
provider_option_id | String! | Required | The ID of the carrier provider option to apply |
items | [String]! | Required | The IDs of the items to apply the provider option to |
Returns: AddProviderOptionToItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [ParcelItem]!▾ | Required | The updated parcel items |
parcel | Parcel▾ | Optional | The parcel the items belong to |
delivery | Delivery▾ | Optional | The delivery the items are shipped with |
Example#
addShippingMethodToItems#
Assign a shipping method to a specific set of items on an order, leaving the other items untouched. Use this when different items of one order should ship with different methods.
Input: AddShippingMethodToItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order the items belong to |
items | [String]! | Required | The IDs of the order items to assign the shipping method to |
shipping_method_id | String! | Required | The ID of the shipping method to apply |
Returns: AddShippingMethodToItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
addTrackTraceToItems#
Attach a track & trace number and tracking URL to a set of parcel items, so the shipment can be followed by the customer and in the fulfilment flow.
Input: AddTrackTraceToItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
track_trace_url | String! | Required | The carrier tracking URL for the shipment |
track_trace_number | String! | Required | The track & trace number issued by the carrier |
items | [String]! | Required | The IDs of the items the track & trace applies to |
Returns: AddTrackTraceToItemsPayload
| Name | Type | Required | Description |
|---|---|---|---|
parcels | [Parcel!]!▾ | Required | Parcels carrying the updated track & trace |
items | [CollectionItem!]!▾ | Required | Items the track & trace was attached to |
Example#
createParcelForDelivery#
Create a parcel for a delivery and assign specific delivery items to it, so the parcel can be announced to a carrier and shipped.
Input: CreateParcelForDeliveryInput!
| Name | Type | Required | Description |
|---|---|---|---|
delivery_id | String! | Required | The ID of the delivery to create the parcel for |
items | [String]! | Required | IDs of the delivery items to pack into the parcel |
Returns: CreateParcelForDeliveryPayload
| Name | Type | Required | Description |
|---|---|---|---|
parcels | [Parcel!]!▾ | Required | Parcels created for the delivery |
items | [CollectionItem!]!▾ | Required | Items assigned to the new parcel |
Example#
createShippingLabelForParcel#
Create a shipping label for an existing parcel. Optionally send the label straight to a connected label printer.
Input: CreateShippingLabelForParcelInput!
| Name | Type | Required | Description |
|---|---|---|---|
parcel_id | String! | Required | The ID of the parcel to create a shipping label for |
printer_id | Int64 | Optional | ID of the printer to send the label to directly |
Returns: CreateShippingLabelForParcelPayload!
| Name | Type | Required | Description |
|---|---|---|---|
parcel | Parcel▾ | Optional | The parcel including its new label |
Example#
removeItemsFromParcel#
Remove items from a parcel, for example when repacking a shipment. Returns the updated parcel.
Input: RemoveItemsFromParcelInput!
| Name | Type | Required | Description |
|---|---|---|---|
parcel_id | String! | Required | The ID of the parcel to remove the items from |
items | [String]! | Required | IDs of the items to remove from the parcel |
Returns: RemoveItemsFromParcelPayload!
| Name | Type | Required | Description |
|---|---|---|---|
parcel | Parcel▾ | Optional | The updated parcel |
Example#
setDeliveryStatusForItems#
Set the delivery status for one or more parcel items. Returns the updated items and the parcels they belong to.
Input: SetDeliveryStatusForItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
status | String! | Required | The delivery status to set on the items |
items | [String]! | Required | IDs of the items to update |
Returns: SetDeliveryStatusForItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [ParcelItem]!▾ | Required | The updated items |
parcels | [Parcel]!▾ | Required | The parcels the items belong to |
Example#
setMethodForDelivery#
Change the shipping method of an existing delivery, for example to switch a shipment to a different carrier service.
Input: SetMethodForDeliveryInput!
| Name | Type | Required | Description |
|---|---|---|---|
delivery_id | String! | Required | The ID of the delivery |
method_id | String! | Required | The ID of the shipping method to set |
Returns: SetMethodForDeliveryPayload!
| Name | Type | Required | Description |
|---|---|---|---|
delivery | Delivery▾ | Optional | The updated delivery |
Example#
setParcelStatus#
Set the status of a parcel, for example to mark it as delivered or ready to collect. Returns the updated parcel.
Input: SetParcelStatusInput!
| Name | Type | Required | Description |
|---|---|---|---|
parcel_id | String! | Required | The ID of the parcel |
status | ParcelStatus!▾ | Required | The status to set |
Returns: SetParcelStatusPayload!
| Name | Type | Required | Description |
|---|---|---|---|
parcel | Parcel▾ | Optional | The updated parcel |
Example#
setProviderOptionForDelivery#
Set the carrier (provider) option for a delivery, for example to switch a shipment to a different carrier service. Returns the updated delivery.
Input: SetProviderOptionForDeliveryInput!
| Name | Type | Required | Description |
|---|---|---|---|
delivery_id | String! | Required | The ID of the delivery |
provider_option_id | String! | Required | The ID of the carrier option to use for the delivery |
provider_option_name | String | Optional | Optional display name for the carrier option |
Returns: SetProviderOptionForDeliveryPayload!
| Name | Type | Required | Description |
|---|---|---|---|
delivery | Delivery▾ | Optional | The updated delivery |
Example#
setShippingAddressForDelivery#
Set the destination shipping address for a delivery. Provide a pickup point ID (spid), an existing address ID, or a full address object.
Input: SetShippingAddressForDeliveryInput!
| Name | Type | Required | Description |
|---|---|---|---|
delivery_id | String! | Required | The ID of the delivery |
spid | String | Optional | Service point (pickup point) ID to deliver to |
address_id | String | Optional | ID of an existing address to use |
address | AddressInput▾ | Optional | A new shipping address |
Returns: SetShippingAddressForDeliveryPayload!
| Name | Type | Required | Description |
|---|---|---|---|
delivery | Delivery▾ | Optional | The updated delivery |
Example#
Announcements#
addItemsToAnnouncement#
Add items to an inbound announcement, the notice of goods expected to arrive at a warehouse. Each item is identified by SKU and can carry a specification with cost, batch/serial numbers, weight and expiry.
Input: AddItemsToAnnouncementInput!
| Name | Type | Required | Description |
|---|---|---|---|
announcement_id | String! | Required | The ID of the announcement to add the items to |
items | [AnnouncementItemInput]!▾ | Required | The items to add to the announcement |
Returns: AddItemsToAnnouncementPayload!
| Name | Type | Required | Description |
|---|---|---|---|
announcement | Announcement▾ | Optional | The updated announcement |
Example#
createAnnouncement#
Announce an inbound shipment of goods to a warehouse location, for example a purchase delivery from a supplier or vendor. The announcement tells the receiving location what to expect and when.
Input: CreateAnnouncementInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String | Optional | Optional client-supplied ID for the announcement |
description | String | Optional | Free-form description of the announced delivery |
currency | Currency▾ | Optional | ISO 4217 currency code for the announced goods |
expected_at | Int64 | Optional | Expected arrival time as a Unix timestamp in milliseconds |
buyer_id | String! | Required | ID of the business buying / receiving the goods |
location_id | String! | Required | ID of the location where the goods will arrive |
from | AnnouncementFrom!▾ | Required | The party sending the goods |
Returns: CreateAnnouncementPayload!
| Name | Type | Required | Description |
|---|---|---|---|
announcement | Announcement▾ | Optional | The created announcement |
Example#
removeItemsFromAnnouncement#
Remove items from an inbound announcement — the notice of goods expected to arrive at a warehouse. Returns the updated announcement.
Input: RemoveItemsFromAnnouncementInput!
| Name | Type | Required | Description |
|---|---|---|---|
announcement_id | String! | Required | The ID of the announcement to remove the items from |
item_ids | [String]! | Required | IDs of the announcement items to remove |
Returns: RemoveItemsFromAnnouncementPayload!
| Name | Type | Required | Description |
|---|---|---|---|
announcement | Announcement▾ | Optional | The updated announcement |
Example#
setBuyerForAnnouncement#
Change the buying business on an announcement — the inbound shipment notice for a warehouse location. Optionally update the receiving location at the same time.
Input: SetBuyerForAnnouncementInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the announcement |
buyer_id | String! | Required | ID of the business buying / receiving the goods |
location_id | String | Optional | ID of the location where the goods will arrive |
Returns: SetBuyerForAnnouncementPayload!
| Name | Type | Required | Description |
|---|---|---|---|
announcement | Announcement▾ | Optional | The updated announcement |
Example#
setExpectedDateForAnnouncement#
Update the expected arrival date of an inbound announcement — the notice of goods expected to arrive at a warehouse.
Input: SetExpectedDateForAnnouncementInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the announcement |
expected_at | Int64! | Required | Expected arrival date — Unix timestamp in milliseconds |
Returns: SetExpectedDateForAnnouncementPayload!
| Name | Type | Required | Description |
|---|---|---|---|
announcement | Announcement▾ | Optional | The updated announcement |
Example#
setSupplierForAnnouncement#
Set the supplier on an inbound stock announcement, identifying which business the announced goods are coming from.
Input: SetSupplierForAnnouncementInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the announcement |
supplier | AnnouncementFrom!▾ | Required | The supplying entity |
Returns: SetSupplierForAnnouncementPayload!
| Name | Type | Required | Description |
|---|---|---|---|
announcement | Announcement▾ | Optional | The updated announcement |
Example#
Picklists#
markPicklistItemAsCollected#
Mark a single item on a picklist as collected, registering the warehouse position (for example a collection slot or tote) where it was placed. Returns the updated picklist.
Input: MarkPicklistItemAsCollectedInput!
| Name | Type | Required | Description |
|---|---|---|---|
picklist_id | String! | Required | The ID of the picklist |
item_id | String! | Required | The ID of the picklist item to mark as collected |
position | String! | Required | The position where the item was collected (e.g. a slot or tote code) |
Returns: MarkPicklistItemAsCollectedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
picklist | Picklist▾ | Optional | The updated picklist |
Example#
markPicklistItemAsPicked#
Mark a single item on a picklist as picked, for example after it has been taken from its warehouse location. Returns the updated picklist.
Input: MarkPicklistItemAsPickedInput!
| Name | Type | Required | Description |
|---|---|---|---|
picklist_id | String! | Required | The ID of the picklist |
item_id | String! | Required | The ID of the picklist item to mark as picked |
Returns: MarkPicklistItemAsPickedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
picklist | Picklist▾ | Optional | The updated picklist |
Example#
markPicklistItemAsUnpicked#
Revert a picked picklist item back to unpicked, for example when the wrong item was scanned or the item needs to go back to its location. Returns the updated picklist.
Input: MarkPicklistItemAsUnpickedInput!
| Name | Type | Required | Description |
|---|---|---|---|
picklist_id | String! | Required | The ID of the picklist |
item_id | String! | Required | The ID of the picklist item to mark as unpicked |
Returns: MarkPicklistItemAsUnpickedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
picklist | Picklist▾ | Optional | The updated picklist |
Example#
markPicklistItemsAsCollected#
Mark multiple picklist items as collected in one call, registering the warehouse position (for example a collection slot or tote) where they were placed. Returns the updated picklist.
Input: MarkPicklistItemsAsCollectedInput!
| Name | Type | Required | Description |
|---|---|---|---|
picklist_id | String! | Required | The ID of the picklist |
items | [CollectPicklistItemInput]!▾ | Required | The picklist items to mark as collected |
position | String! | Required | The position where the items were collected (e.g. a slot or tote code) |
Returns: MarkPicklistItemsAsCollectedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
picklist | Picklist▾ | Optional | The updated picklist |
Example#
markPicklistItemsAsPicked#
Mark multiple picklist items as picked in one call, for example after they have been taken from their warehouse locations. Returns the updated picklist.
Input: MarkPicklistItemsAsPickedInput!
| Name | Type | Required | Description |
|---|---|---|---|
picklist_id | String! | Required | The ID of the picklist |
items | [PickPicklistItemInput]!▾ | Required | The picklist items to mark as picked |
Returns: MarkPicklistItemsAsPickedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
picklist | Picklist▾ | Optional | The updated picklist |
Example#
markPicklistItemsAsUnpicked#
Revert one or more items on a warehouse picklist back to the unpicked state, for example when an item was scanned by mistake or needs to be re-picked.
Input: MarkPicklistItemsAsUnpickedInput!
| Name | Type | Required | Description |
|---|---|---|---|
picklist_id | String! | Required | The ID of the picklist |
items | [UnpickPicklistItemInput]!▾ | Required | The picklist items to mark as unpicked |
Returns: MarkPicklistItemsAsUnpickedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
picklist | Picklist▾ | Optional | The updated picklist |
Example#
setPicklistTag#
Set a tag on a picklist by picking an option for a tagging key, for example to mark a picklist for a specific carrier cut-off or picking zone. Returns the updated picklist.
Input: SetPicklistTagInput!
| Name | Type | Required | Description |
|---|---|---|---|
picklist_id | String! | Required | The ID of the picklist to tag |
key_id | String! | Required | The ID of the tagging key |
option_id | String! | Required | The ID of the option to set for the tagging key |
Returns: SetPicklistTagPayload!
| Name | Type | Required | Description |
|---|---|---|---|
picklist | Picklist▾ | Optional | The updated picklist |
Example#
Drawers#
closeDrawer#
Close a POS cash drawer, recording the counted (actual) amount and any skimmed amount. Returns the closed drawer together with a closing report.
Input: CloseDrawerInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the drawer to close |
user_id | String! | Required | The ID of the user closing the drawer |
actual_amount | Int64! | Required | Counted cash amount in cents |
skimmed_amount | Int64! | Required | Amount removed (skimmed) from the drawer in cents |
Returns: CloseDrawerPayload!
| Name | Type | Required | Description |
|---|---|---|---|
drawer | Drawer▾ | Optional | The closed drawer |
report | DrawerReport▾ | Optional | The closing report for the drawer session |
Example#
createDrawer#
Create a cash drawer for a point-of-sale channel. A drawer tracks cash amounts across register sessions and can be opened and closed per shift.
Input: CreateDrawerInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String | Optional | Optional client-supplied ID for the drawer |
label | String! | Required | Display label for the drawer (e.g. "Register 1") |
channel_id | String! | Required | ID of the POS channel the drawer belongs to |
Returns: CreateDrawerPayload!
| Name | Type | Required | Description |
|---|---|---|---|
drawer | Drawer▾ | Optional | The created drawer |
Example#
deleteDrawer#
Delete a POS cash drawer. Returns whether the deletion succeeded.
Input: DeleteDrawerInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the drawer to delete |
Returns: DeleteDrawerPayload!
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the drawer was deleted |
Example#
depositIntoDrawer#
Deposit a cash amount into an open POS drawer, with a note explaining the deposit. The drawer's expected amount is increased accordingly.
Input: DepositIntoDrawerInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the drawer to deposit into |
deposit_id | String | Optional | Optional client-supplied ID for the deposit (for idempotency) |
note | String! | Required | Note explaining the deposit (e.g. "Change float top-up") |
amount | Int64! | Required | Amount to deposit in cents |
Returns: DepositIntoDrawerPayload!
| Name | Type | Required | Description |
|---|---|---|---|
drawer | Drawer▾ | Optional | The updated drawer |
Example#
openDrawer#
Open a POS cash drawer for a new session, recording the counted starting amount. Returns the opened drawer together with the session report.
Input: OpenDrawerInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the drawer to open |
user_id | String! | Required | The ID of the user opening the drawer |
starting_amount | Int64! | Required | Counted cash amount at the start of the session, in cents |
Returns: OpenDrawerPayload!
| Name | Type | Required | Description |
|---|---|---|---|
drawer | Drawer▾ | Optional | The opened drawer |
report | DrawerReport▾ | Optional | The report for the opened drawer session |
Example#
updateDrawer#
Update the label of a point-of-sale cash drawer.
Input: UpdateDrawerInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the drawer to update |
label | String! | Required | New display label for the drawer (e.g. "Register 1") |
Returns: UpdateDrawerPayload!
| Name | Type | Required | Description |
|---|---|---|---|
drawer | Drawer▾ | Optional | The updated drawer |
Example#
withdrawFromDrawer#
Withdraw cash from a POS drawer, recording the amount and a note (for example a bank deposit). Returns the drawer with its updated expected amount.
Input: WithdrawFromDrawerInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the drawer to withdraw from |
withdrawal_id | String | Optional | Optional ID to reference this withdrawal |
note | String! | Required | Reason for the withdrawal (e.g. "Cash deposit to bank") |
amount | Int64! | Required | Amount to withdraw, in cents |
Returns: WithdrawFromDrawerPayload!
| Name | Type | Required | Description |
|---|---|---|---|
drawer | Drawer▾ | Optional | The drawer after the withdrawal |
Example#
Returns (RMA)#
addTrackTraceToReturnItems#
Attach a track & trace number to a set of return items, so the inbound return shipment can be followed until it arrives back at the warehouse.
Input: AddTrackTraceToReturnItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
track_trace_number | String! | Required | The track & trace number issued by the carrier for the return shipment |
items | [String]! | Required | The IDs of the return items the track & trace applies to |
Returns: AddTrackTraceToReturnItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The updated return items |
Example#
attachPhotoToRma#
Attach a photo to an item on an RMA (return), identified by its SKU — for example to document the condition of a returned product.
Input: AttachPhotoToRmaInput!
| Name | Type | Required | Description |
|---|---|---|---|
rma_id | String! | Required | The ID of the RMA |
sku | String! | Required | SKU of the RMA item to attach the photo to |
photo | Upload!▾ | Required | The photo file to upload |
Returns: AttachPhotoToRmaPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The updated RMA |
Example#
authorizeRmaItems#
Authorize or reject individual items on an RMA (return), optionally marking them as received and adding notes for the contact or vendor.
Input: AuthorizeRmaItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
rma_id | String! | Required | The ID of the RMA |
items | [AuthorizeRmaItemInput]!▾ | Required | The RMA items to update |
Returns: AuthorizeRmaItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The updated RMA |
Example#
createRma#
Create a new RMA (return merchandise authorisation) to register a customer return. The RMA starts empty — add the returned products with createRmaItems.
Input: CreateRmaInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String | Optional | Optional ID to assign to the RMA |
contact_id | String | Optional | The contact returning the goods |
organisation_id | String | Optional | The organisation returning the goods |
channel_id | String | Optional | The sales channel the return belongs to |
due_at | Int64 | Optional | When the return is due — Unix timestamp in milliseconds |
status | RmaStatus▾ | Optional | Initial status of the RMA |
Returns: CreateRmaPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The created RMA |
Example#
createRmaItems#
Add returned products to an existing RMA. Each item links a SKU to the original order it was bought on, optionally with a return reason and a note from the customer.
Input: CreateRmaItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
rma_id | String! | Required | The ID of the RMA to add items to |
items | [CreateRmaItemInput]!▾ | Required | The products being returned |
Returns: CreateRmaItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The updated RMA including the new items |
Example#
createRmaLabel#
Generate a return shipping label for an RMA through a shipping integration. The label is created for the selected carrier option and covers the returned items from the given orders.
Input: CreateRmaLabelInput!
| Name | Type | Required | Description |
|---|---|---|---|
rma_id | String! | Required | The ID of the RMA to create a label for |
id | String | Optional | Optional ID to assign to the label |
integration_id | String! | Required | The shipping integration that generates the label |
email | String! | Required | Email address of the customer shipping the return |
option_id | String! | Required | The carrier option to ship the return with |
meta_data | JsonObject▾ | Optional | Arbitrary metadata to attach to the label |
order_ids | [String]! | Required | The orders whose items are covered by this return label |
Returns: CreateRmaLabelPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The updated RMA |
Example#
deleteRma#
Permanently delete an RMA (return merchandise authorisation) by ID.
Input: DeleteRmaInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the RMA to delete |
Returns: DeleteRmaPayload!
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the RMA was deleted successfully |
Example#
deleteRmaItems#
Remove one or more items from an RMA (return merchandise authorisation). Returns the updated RMA without the removed items.
Input: DeleteRmaItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
rma_id | String! | Required | The ID of the RMA to remove items from |
items | [String]! | Required | IDs of the RMA items to remove |
Returns: DeleteRmaItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The updated RMA |
Example#
reviewRma#
Review a return (RMA) by authorizing or rejecting the returned quantities per SKU, optionally with a note per decision.
Input: ReviewRmaInput!
| Name | Type | Required | Description |
|---|---|---|---|
rma_id | String! | Required | The ID of the RMA to review |
decisions | [RmaDecision]!▾ | Required | One decision per SKU being reviewed |
Returns: ReviewRmaPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The reviewed RMA |
Example#
sendReturnEmail#
Send a return confirmation email to the customer for specific items of an order.
Input: SendReturnEmailInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
item_ids | [String]! | Required | The IDs of the returned order items to include in the email |
Returns: SendReturnEmailPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The order the email was sent for |
Example#
setProviderOptionForRma#
Set the carrier (provider) option a return (RMA) will be shipped back with. Returns the updated RMA.
Input: SetProviderOptionForRmaInput!
| Name | Type | Required | Description |
|---|---|---|---|
rma_id | String! | Required | The ID of the RMA |
provider_option | ProviderOptionOnRmaInput!▾ | Required | The carrier option to use for the return shipment |
Returns: SetProviderOptionForRmaPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The updated RMA |
Example#
setReturnMethodForRma#
Assign a return method to an RMA (return merchandise authorisation), determining how the customer sends the items back.
Input: SetReturnMethodForRmaInput!
| Name | Type | Required | Description |
|---|---|---|---|
rma_id | String! | Required | The ID of the RMA |
return_method_id | String! | Required | The ID of the return method to use |
Returns: SetReturnMethodForRmaPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The updated RMA |
Example#
startItemReturnProcess#
Start the return process for one or more items on an order. Optionally pass a contra_id per item to link the return to a contra (compensating) item.
Input: StartItemReturnProcessInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order the items belong to |
location_id | String | Optional | Location where the return is processed |
items | [ItemReturnProcessInput]!▾ | Required | The items to return |
Returns: StartItemReturnProcessPayload!
| Name | Type | Required | Description |
|---|---|---|---|
items | [CollectionItem]!▾ | Required | The items with the return process started |
Example#
updateRma#
Update an RMA (return merchandise authorisation): change its status, the linked contact or organisation, the return address, or the due date. Only the fields you provide are changed.
Input: UpdateRmaInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the RMA to update |
status | RmaStatus▾ | Optional | New status for the RMA |
address_id | String | Optional | ID of the return address |
contact_id | String | Optional | ID of the contact the RMA belongs to |
organisation_id | String | Optional | ID of the organisation the RMA belongs to |
due_at | Int64 | Optional | Due date as a Unix timestamp in milliseconds |
Returns: UpdateRmaPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The updated RMA |
Example#
updateRmaItems#
Update items on an RMA, for example to change the return reason or the customer note per item.
Input: UpdateRmaItemsInput!
| Name | Type | Required | Description |
|---|---|---|---|
rma_id | String! | Required | The ID of the RMA the items belong to |
items | [UpdateRmaItemInput]!▾ | Required | Items to update |
Returns: UpdateRmaItemsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
rma | Rma▾ | Optional | The RMA with the updated items |
Example#
Reservations#
createReservation#
Reserve stock in a warehouse for a customer. The reservation claims the requested quantities of each SKU for a business and sales channel until it expires.
Input: CreateReservationInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String | Optional | Optional ID to assign to the reservation |
notes | String | Optional | Free-form notes on the reservation |
customer | SetReservationContactInput!▾ | Required | The customer the stock is reserved for — pass an existing contact ID or a new contact |
channel_id | String! | Required | The sales channel the reservation is made through |
warehouse_id | String! | Required | The warehouse to reserve stock in |
business_id | String! | Required | The business the stock is reserved for |
expires_at | Int64! | Required | When the reservation expires — Unix timestamp in milliseconds |
items | [ReservationItemInput]!▾ | Required | The SKUs and quantities to reserve |
Returns: CreateReservationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
reservation | Reservation▾ | Optional | The created reservation |
Example#
removeReservation#
Remove a stock reservation by its ID, releasing the items it holds at the warehouse.
Input: RemoveReservationInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the reservation to remove |
Returns: RemoveReservationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
success | Boolean! | Required | Whether the reservation was removed successfully |
Example#
setContactForReservation#
Set the customer on a stock reservation — either by referencing an existing contact by ID or by supplying a new contact to create.
Input: SetContactForReservationInput!
| Name | Type | Required | Description |
|---|---|---|---|
reservation_id | String! | Required | The ID of the reservation |
customer | SetReservationContactInput!▾ | Required | The customer to set on the reservation — pass an existing contact ID or a new contact |
Returns: SetContactForReservationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
reservation | Reservation▾ | Optional | The updated reservation |
Example#
setNotesForReservation#
Set the notes on a stock reservation. The notes replace any previously set notes.
Input: SetNotesForReservationInput!
| Name | Type | Required | Description |
|---|---|---|---|
reservation_id | String! | Required | The ID of the reservation |
notes | String! | Required | The notes to set on the reservation |
Returns: SetNotesForReservationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
reservation | Reservation▾ | Optional | The updated reservation |
Example#
setReferencingNumberForReservation#
Set or update the external referencing number on a stock reservation, so you can link the reservation to a record in your own system (e.g. a quote or order number).
Input: SetReferencingNumberForReservationInput!
| Name | Type | Required | Description |
|---|---|---|---|
reservation_id | String! | Required | The ID of the reservation to update |
referencing_number | String! | Required | Your external reference number to attach to the reservation |
Returns: SetReferencingNumberForReservationPayload!
| Name | Type | Required | Description |
|---|---|---|---|
reservation | Reservation▾ | Optional | The updated reservation |
Example#
Services#
createService#
Define a new service — such as gift wrapping, customisation or assembly — that can be offered on order items. The schema describes the configuration options a customer can choose when adding the service.
Input: CreateServiceInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID | Optional | Optional ID to assign to the service |
name | String! | Required | Service name (default locale) |
description | String! | Required | Description shown to the customer |
instruction | String! | Required | Instruction for the warehouse on how to perform the service |
i18n | [InternationalizationInput]!▾ | Required | Localised name, description and instruction per locale |
type | ServiceType!▾ | Required | The kind of service |
priority | Int | Optional | Execution priority relative to other services |
schema | JsonObject!▾ | Required | JSON schema describing the configurable options of the service |
Returns: CreateServicePayload!
| Name | Type | Required | Description |
|---|---|---|---|
service | Service▾ | Optional | The created service |
Example#
markServiceTaskAsFailed#
Mark a service task on an order item (e.g. engraving, assembly or another value-added service) as failed, indicating the task could not be completed.
Input: MarkServiceTaskAsFailedInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the service task to mark as failed |
Returns: MarkServiceTaskAsFailedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
task | ServiceItemTask▾ | Optional | The updated service task |
Example#
markServiceTaskAsFinished#
Mark a service task on an order item (e.g. engraving, assembly or another value-added service) as finished, recording when work on the task was completed.
Input: MarkServiceTaskAsFinishedInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the service task to mark as finished |
Returns: MarkServiceTaskAsFinishedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
task | ServiceItemTask▾ | Optional | The updated service task |
Example#
markServiceTaskAsStarted#
Mark a service task on an order item (e.g. engraving, assembly or another value-added service) as started, recording when work on the task began.
Input: MarkServiceTaskAsStartedInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the service task to mark as started |
Returns: MarkServiceTaskAsStartedPayload!
| Name | Type | Required | Description |
|---|---|---|---|
task | ServiceItemTask▾ | Optional | The updated service task |
Example#
removeService#
Delete a service definition — such as gift wrapping or installation — by its ID.
Input: RemoveServiceInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the service to remove |
Returns: RemoveServicePayload!
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the service was removed successfully |
Example#
sortServices#
Reorder the services (e.g. gift wrapping, assembly, customisation) by passing their IDs in the desired priority order.
Input: SortServicesInput!
| Name | Type | Required | Description |
|---|---|---|---|
ids | [ID]! | Required | Service IDs in the desired order — the position in the array determines the priority |
Returns: SortServicesPayload!
| Name | Type | Required | Description |
|---|---|---|---|
services | [Service]!▾ | Required | The services in their new order |
Example#
updateService#
Update a service (such as gift wrapping, assembly or customisation): its name, description, instruction, translations, priority and configuration schema.
Input: UpdateServiceInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the service to update |
name | String! | Required | Name of the service |
description | String! | Required | Description of the service |
instruction | String! | Required | Instruction shown when the service is applied |
i18n | [InternationalizationInput]!▾ | Required | Translations per locale |
priority | Int | Optional | Priority used to order services |
schema | JsonObject! | Required | JSON schema describing the configuration options for the service |
Returns: UpdateServicePayload!
| Name | Type | Required | Description |
|---|---|---|---|
service | Service▾ | Optional | The updated service |
Example#
Projects#
createProject#
Create a project — a time-boxed container for orders tied to an audience, such as a B2B ordering window — with an optional organisation, shipping addresses and metadata.
Input: CreateProjectInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | String | Optional | Optional client-supplied ID for the project |
audience_id | String! | Required | ID of the audience the project belongs to |
name | String! | Required | Name of the project |
description | String | Optional | Description of the project |
organisation_id | String | Optional | ID of the organisation the project is for |
shipping | [CreateProjectShippingAddressInput]▾ | Optional | Shipping addresses available within the project |
metadata | JsonObject▾ | Optional | Arbitrary metadata for the project |
starts_at | Int64! | Required | Project start as a Unix timestamp in milliseconds |
ends_at | Int64! | Required | Project end as a Unix timestamp in milliseconds |
Returns: CreateProjectPayload!
| Name | Type | Required | Description |
|---|---|---|---|
project | Project▾ | Optional | The created project |
Example#
deleteProject#
Permanently delete a project by ID.
Input: DeleteProjectInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the project to delete |
Returns: DeleteProjectPayload!
| Name | Type | Required | Description |
|---|---|---|---|
is_successful | Boolean! | Required | Whether the project was deleted successfully |
Example#
updateProject#
Update an existing project's details, such as its name, description, linked organisation, shipping addresses and start/end dates. Only the fields you provide are changed.
Input: UpdateProjectInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the project to update |
name | String | Optional | New name for the project |
description | String | Optional | New description |
organisation_id | String | Optional | ID of the organisation the project belongs to |
shipping | [CreateProjectShippingAddressInput]▾ | Optional | Shipping addresses for the project |
metadata | JsonObject | Optional | Arbitrary JSON metadata to store on the project |
starts_at | Int64 | Optional | Project start as a Unix timestamp in milliseconds |
ends_at | Int64 | Optional | Project end as a Unix timestamp in milliseconds |
Returns: UpdateProjectPayload!
| Name | Type | Required | Description |
|---|---|---|---|
project | Project▾ | Optional | The updated project |
Example#
updateProjectContacts#
Replace the set of contacts linked to a project. The provided list of contact IDs becomes the project's full contact list.
Input: UpdateProjectContactsInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the project |
contacts | [String]! | Required | IDs of the contacts to link to the project |
Returns: UpdateProjectContactsPayload!
| Name | Type | Required | Description |
|---|---|---|---|
project | Project▾ | Optional | The updated project |
Example#
Agreements#
createAgreement#
Create a payment agreement — such as a down payment, post-paid or cash-on-delivery arrangement — with one or more conditions that define how and when amounts become due.
Input: CreateAgreementInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID | Optional | Optional client-supplied ID for the agreement |
is_default_enabled | Boolean! | Required | Whether the agreement is enabled by default |
enabled_rule_set_id | ID | Optional | ID of a rule set that determines when the agreement is enabled |
type | AgreementType!▾ | Required | The kind of agreement |
conditions | [AgreementConditionInput]!▾ | Required | Payment conditions that make up the agreement |
name | String! | Required | Name of the agreement |
instruction | String | Optional | Instruction text shown to the customer |
description | String | Optional | Description of the agreement |
i18n | [InternationalizationInput]!▾ | Required | Localized name, description and instruction per locale |
Returns: CreateAgreementPayload!
| Name | Type | Required | Description |
|---|---|---|---|
agreement | Agreement▾ | Optional | The created agreement |
Example#
removeAgreement#
Delete an agreement by its ID. Returns whether the removal succeeded.
Input: RemoveAgreementInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the agreement to remove |
Returns: RemoveAgreementPayload!
| Name | Type | Required | Description |
|---|---|---|---|
is_success | Boolean! | Required | Whether the agreement was removed successfully |
Example#
removeAgreementTemplateForCart#
Remove the agreement template that was set on a cart, so no agreement is generated from it for that cart.
Input: RemoveAgreementTemplateForCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | String! | Required | The ID of the cart |
Returns: RemoveAgreementTemplateForCartPayload!
| Name | Type | Required | Description |
|---|---|---|---|
cart | Cart▾ | Optional | The updated cart |
Example#
removeAgreementTemplateForOrder#
Remove the agreement template that was set on an order, so no agreement is generated from it for that order.
Input: RemoveAgreementTemplateForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
Returns: RemoveAgreementTemplateForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setAgreementTemplateForCart#
Attach an agreement template to a cart, so the customer is asked to accept the agreement during checkout.
Input: SetAgreementTemplateForCartInput!
| Name | Type | Required | Description |
|---|---|---|---|
cart_id | ID! | Required | The ID of the cart |
agreement_id | ID! | Required | The ID of the agreement template to attach |
Returns: SetAgreementTemplateForCartPayload!
| Name | Type | Required | Description |
|---|---|---|---|
cart | Cart▾ | Optional | The updated cart |
Example#
setAgreementTemplateForOrder#
Attach an agreement template to an order, so the customer is asked to accept the agreement as part of the order.
Input: SetAgreementTemplateForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | ID! | Required | The ID of the order |
agreement_id | ID! | Required | The ID of the agreement template to attach |
Returns: SetAgreementTemplateForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
setAgreementsForOrder#
Set the payment agreements for an order, such as a down payment, post-paid terms, cash on delivery or marketplace settlement. Each agreement defines an amount (or percentage) and when it becomes due.
Input: SetAgreementsForOrderInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | ID! | Required | The ID of the order |
agreements | [AgreementInput]!▾ | Required | The payment agreements to set on the order |
Returns: SetAgreementsForOrderPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The updated order |
Example#
updateAgreement#
Update an existing payment agreement — for example post-paid or down-payment terms — including its conditions, name, instruction and translations.
Input: UpdateAgreementInput!
| Name | Type | Required | Description |
|---|---|---|---|
id | ID! | Required | The ID of the agreement to update |
is_default_enabled | Boolean! | Required | Whether the agreement is enabled by default |
enabled_rule_set_id | ID | Optional | ID of the rule set that determines when the agreement is enabled |
conditions | [AgreementConditionInput]!▾ | Required | The payment conditions of the agreement |
type | AgreementType!▾ | Required | The kind of agreement |
name | String! | Required | Name of the agreement |
instruction | String | Optional | Instruction shown to the customer |
description | String | Optional | Description of the agreement |
i18n | [InternationalizationInput]!▾ | Required | Translations of the agreement per locale |
Returns: UpdateAgreementPayload!
| Name | Type | Required | Description |
|---|---|---|---|
agreement | Agreement▾ | Optional | The updated agreement |
Example#
Business#
addIntegrationToBusiness#
Link an integration to a business, for either purchase or order processing. The business then uses that integration for the given flow.
Input: AddIntegrationToBusinessInput!
| Name | Type | Required | Description |
|---|---|---|---|
business_id | String! | Required | The ID of the business to link the integration to |
integration_id | String! | Required | The ID of the integration to link |
type | BusinessIntegrationType!▾ | Required | The flow the integration is used for |
Returns: AddIntegrationToBusinessPayload!
| Name | Type | Required | Description |
|---|---|---|---|
business | Business▾ | Optional | The updated business |
Example#
removeIntegrationFromBusiness#
Unlink an integration from a business, so the business no longer uses it for its purchase or order flow.
Input: RemoveIntegrationFromBusinessInput!
| Name | Type | Required | Description |
|---|---|---|---|
business_id | String! | Required | The ID of the business to unlink the integration from |
integration_id | String! | Required | The ID of the integration to unlink |
Returns: RemoveIntegrationFromBusinessPayload!
| Name | Type | Required | Description |
|---|---|---|---|
business | Business▾ | Optional | The updated business |
Example#
Addresses & phone numbers#
createAddress#
Create a standalone address record that can later be linked to contacts, organisations, orders or locations. The response includes validation results for the submitted address.
Input: AddressInput!
| Name | Type | Required | Description |
|---|---|---|---|
country_code | String | Optional | ISO 3166-1 alpha-2 country code (e.g. NL, DE) |
administrative_area | String | Optional | State, province or region |
locality | String | Optional | City or town |
dependent_locality | String | Optional | Neighbourhood or district within the locality |
postal_code | String | Optional | Postal / ZIP code |
sorting_code | String | Optional | Postal sorting code (used in some countries) |
address_line_1 | String | Optional | Full first line of the address |
address_line_2 | String | Optional | Second address line |
address_line_3 | String | Optional | Third address line |
thoroughfare | String | Optional | Street name |
premise_number | PremiseNumber | Optional | House number — string or integer |
premise_number_suffix | String | Optional | Apartment/unit suffix (e.g. A, 2B) |
organisation | String | Optional | Company or organisation name at this address |
given_name | String | Optional | First name on address |
additional_name | String | Optional | Middle name(s) on address |
family_name | String | Optional | Last name on address |
override | Boolean | Optional | Skip address validation and store the address as-is |
Returns: CreateAddressPayload!
| Name | Type | Required | Description |
|---|---|---|---|
address | Address▾ | Optional | The created address |
Example#
createPhoneNumber#
Create a phone number record that can be linked to contacts, organisations or orders. The number is parsed and returned in both international and national formats.
Input: PhoneNumberInput!
| Name | Type | Required | Description |
|---|---|---|---|
country_code | String | Optional | ISO 3166-1 alpha-2 country code used to parse national numbers (e.g. NL) |
number | String! | Required | The phone number, in international (+31612345678) or national format |
Returns: CreatePhoneNumberPayload!
| Name | Type | Required | Description |
|---|---|---|---|
phone_number | PhoneNumber▾ | Optional | The created phone number |
Example#
Emails#
sendCancellationEmail#
Send a cancellation confirmation email to the customer for specific items of an order.
Input: SendCancellationEmailInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order |
item_ids | [String]! | Required | The IDs of the cancelled order items to include in the email |
Returns: SendCancellationEmailPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The order the email was sent for |
Example#
sendQuotationEmail#
Send a quotation email for an order to the customer.
Input: SendQuotationEmailInput!
| Name | Type | Required | Description |
|---|---|---|---|
order_id | String! | Required | The ID of the order to send the quotation for |
Returns: SendQuotationEmailPayload!
| Name | Type | Required | Description |
|---|---|---|---|
order | Order▾ | Optional | The order the quotation was sent for |
Example#
Files#
uploadFile#
Upload a single file and store it at the given path. The file itself is sent as a multipart upload (GraphQL multipart request); the variables carry the path and visibility.
Input: UploadFileInput!
| Name | Type | Required | Description |
|---|---|---|---|
file | FileUpload!▾ | Required | The file to upload |
Returns: UploadFilePayload!
| Name | Type | Required | Description |
|---|---|---|---|
uploaded_file | File▾ | Optional | The stored file |
Example#
uploadFiles#
Upload multiple files in a single request. Each file is sent as a multipart upload (GraphQL multipart request) with its own path and visibility.
Input: UploadFilesInput!
| Name | Type | Required | Description |
|---|---|---|---|
files | [FileUpload]!▾ | Required | The files to upload |
Returns: UploadFilesPayload!
| Name | Type | Required | Description |
|---|---|---|---|
uploaded_files | [File]!▾ | Required | The stored files, in the same order as the input |