Queries#

Queries are read-only operations used to fetch data from the API. All queries are sent as POST requests to https://afosto.app/graphql.

·
Note:Some queries (such as account) require a user token obtained via logInCustomer. Most other queries work with a standard API key.

account#

Fetch the currently authenticated account. Requires a user token.

No arguments.

Returns: Account

NameTypeRequiredDescription
email
String!
RequiredEmail address
given_name
String!
RequiredFirst name
additional_name
String!
RequiredMiddle name
family_name
String!
RequiredLast name

Example#

query {
  account {
    email
    given_name
    family_name
    orders(first: 10) {
      nodes {
        id
        number
        total
      }
    }
  }
}

address#

Fetch an address by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the address

Returns: Address

NameTypeRequiredDescription
id
ID!
RequiredThe ID
address_line_1
String!
RequiredStreet address line 1
address_line_2
String
OptionalStreet address line 2
locality
String!
RequiredCity / locality

Example#

query GetAddress($id: String!) {
  address(id: $id) {
    id
    address_line_1
    address_line_2
    locality
    postal_code
    country_code
    administrative_area
    dependent_locality
  }
}
{
  "id": "8f2e4a71-b3c9-4d5e-a1f0-6789abcd0123"
}

addressOptions#

Fetch the address formatting rules for a country: which address fields are required or allowed, expected input formats, and the administrative areas (e.g. provinces) with their municipalities. Useful for building and validating address forms.

Arguments:

NameTypeRequiredDescription
country_code
String
OptionalISO country code to fetch address options for (e.g. "NL")

Returns: AddressOptions

NameTypeRequiredDescription
country_code
String!
OptionalISO country code these options apply to
required
[String]!
OptionalAddress fields that are required in this country
allowed
[String]!
OptionalAddress fields that are allowed in this country
format
AddressOptionFormats!
OptionalExpected input formats per address field
prefix
AddressOptionPrefixes!
OptionalPrefixes used per address field
types
AddressOptionTypes!
OptionalField type hints per address component
administrative_areas
[AdministrativeArea]!
OptionalAdministrative areas (e.g. provinces or states) of the country

Example#

query AddressOptionsQuery($country_code: String) {
  addressOptions(country_code: $country_code) {
    country_code
    required
    allowed
    format {
      postal_code
      address_line_1
    }
    administrative_areas {
      code
      name
    }
  }
}
{
  "country_code": "NL"
}

agreement#

Fetch a single payment agreement by ID. Agreements define payment terms — such as down payments, post-payment, cash on delivery, or marketplace settlement — including their conditions and localized texts.

Arguments:

NameTypeRequiredDescription
id
ID!
RequiredThe ID of the agreement

Returns: Agreement

NameTypeRequiredDescription
id
ID!
OptionalUnique agreement ID
is_default_enabled
Boolean!
OptionalWhether this agreement is enabled by default
enabled_rule_set
RuleSet
OptionalRule set that determines when this agreement is enabled
conditions
[AgreementCondition]!
OptionalPayment conditions attached to the agreement
type
AgreementType!
OptionalAgreement type
name
String!
OptionalAgreement name
instructions
String!
OptionalPayment instructions shown to the customer
description
String!
OptionalAgreement description
i18n
[Internationalization]!
OptionalLocalized name, description and instructions
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query AgreementQuery($id: ID!) {
  agreement(id: $id) {
    id
    name
    type
    description
    instructions
    is_default_enabled
    conditions {
      type
      amount
      is_percentage
    }
    created_at
  }
}
{
  "id": "agr_x9k2mQ"
}

agreements#

Fetch a paginated list of payment agreements, optionally narrowed with a query filter. Agreements define payment terms such as down payments, post-payment, cash on delivery, or marketplace settlement.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
query
QueryFilter
OptionalOpaque query filter to narrow results

Returns: AgreementConnection!

NameTypeRequiredDescription
nodes
[Agreement]!
OptionalThe agreements on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query AgreementsQuery($first: Int, $after: String) {
  agreements(first: $first, after: $after) {
    nodes {
      id
      name
      type
      is_default_enabled
      conditions {
        type
        amount
        is_percentage
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "after": null
}

announcement#

Fetch a single delivery announcement by ID. An announcement notifies a location or warehouse of an expected incoming delivery (e.g. from a supplier), including the announced items and receiving statistics.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the announcement

Returns: Announcement

NameTypeRequiredDescription
id
ID!
OptionalUnique announcement ID
type
String!
OptionalAnnouncement type
state
AnnouncementState!
OptionalCurrent state
status
AnnouncementState!
OptionalCurrent status (alias of state)
number
String!
OptionalHuman-readable announcement number
description
String!
OptionalAnnouncement description
currency
Currency!
OptionalISO 4217 currency code
expected_at
DateTime!
OptionalExpected delivery date
buyer
Business
OptionalThe buying business
location
Location
OptionalReceiving location
sender
DeliveryRequestSender!
OptionalThe sending party of the delivery
supplier
Business
OptionalThe supplying business
items
[AnnouncementItem]!
OptionalAnnounced delivery items
statistics
AnnouncementStatistics!
OptionalReceiving progress statistics
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query AnnouncementQuery($id: String!) {
  announcement(id: $id) {
    id
    number
    state
    description
    expected_at
    supplier {
      id
      name
    }
    items {
      sku
      state
      cost_price
    }
    statistics {
      items
      pending
      received
    }
    created_at
  }
}
{
  "id": "ann_7hR4tW"
}

announcementItem#

Fetch a single delivery announcement item by ID. An announcement item is one announced unit of an incoming delivery, including its cost price, specification (batch, serial, weight), the parent announcement, and the related product.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the announcement item

Returns: DeliveryAnnouncementItem

NameTypeRequiredDescription
id
ID!
OptionalUnique announcement item ID
state
String!
OptionalCurrent state of the item
status
String!
OptionalCurrent status of the item
sku
String!
OptionalProduct SKU
cost_price
Int64!
OptionalCost price in cents
specification
AnnouncementItemSpecification!
OptionalItem specification details
meta_data
JsonObject
OptionalArbitrary metadata
announcement
Announcement
OptionalParent delivery announcement
product
Product
OptionalThe related product
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query AnnouncementItemQuery($id: String!) {
  announcementItem(id: $id) {
    id
    sku
    state
    cost_price
    specification {
      batch_number
      serial_number
    }
    announcement {
      id
      number
      expected_at
    }
    product {
      sku
      label
      brand
    }
    created_at
  }
}
{
  "id": "ani_3fJ8pL"
}

announcements#

Fetch a paginated list of delivery announcements — notifications of expected incoming deliveries — filtered by state, buyer, or receiving location.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
filters
AnnouncementsFilterInput!
RequiredFilters to apply

Returns: AnnouncementConnection!

NameTypeRequiredDescription
announcements
[Announcement]!
OptionalThe announcements on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query AnnouncementsQuery($first: Int, $filters: AnnouncementsFilterInput!) {
  announcements(first: $first, filters: $filters) {
    announcements {
      id
      number
      state
      expected_at
      supplier {
        name
      }
      statistics {
        items
        pending
        received
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "filters": {
    "state": "PENDING",
    "location_id": "loc_8dK3nB"
  }
}

bucket#

Fetch a single bucket by ID. A bucket is a named endpoint with its connected integrations, identified by a code.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the bucket

Returns: Bucket

NameTypeRequiredDescription
id
ID!
OptionalUnique bucket ID
name
String!
OptionalBucket name
endpoint
String!
OptionalEndpoint URL of the bucket
code
String!
OptionalUnique bucket code
integrations
[Integration]!
OptionalIntegrations connected to the bucket
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query BucketQuery($id: String!) {
  bucket(id: $id) {
    id
    name
    code
    endpoint
    integrations {
      id
      name
      app_code
      is_installed
    }
    created_at
  }
}
{
  "id": "bkt_5wQ9rT"
}

buckets#

Fetch a paginated list of buckets — named endpoints with their connected integrations — with optional ordering by name or date.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
orderBy
BucketsOrderByInput
OptionalOrdering of the results
sort
BucketsOrderByInput
OptionalAlternative sort input (same shape as orderBy)

Returns: BucketConnection!

NameTypeRequiredDescription
buckets
[Bucket]!
OptionalThe buckets on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query BucketsQuery($first: Int, $orderBy: BucketsOrderByInput) {
  buckets(first: $first, orderBy: $orderBy) {
    buckets {
      id
      name
      code
      endpoint
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "orderBy": {
    "created_at": "DESC"
  }
}

business#

Fetch a physical store location by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the business

Returns: Business

NameTypeRequiredDescription
id
ID!
RequiredThe ID
type
String!
RequiredBusiness type
name
String!
RequiredName
email
String
OptionalEmail address

Example#

query GetBusiness($id: String!) {
  business(id: $id) {
    id
    name
    email
    addressing {
      visiting {
        address_line_1
        locality
        postal_code
        country_code
      }
    }
    openings {
      day
      open
      close
    }
  }
}
{
  "id": "3c7d1e5f-9a2b-4f8e-b6d0-1234abcd5678"
}

See also: businesses

businesses#

Fetch a paginated list of business locations.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
type
String
OptionalFilter by business type
sort
BusinessesSortInput
OptionalSort order

Returns: Business

NameTypeRequiredDescription
id
ID!
RequiredThe ID
type
String!
RequiredBusiness type
name
String!
RequiredName
email
String
OptionalEmail address

Example#

query ListBusinesses($first: Int) {
  businesses(first: $first) {
    businesses {
      id
      name
      type
      email
      addressing {
        visiting {
          address_line_1
          locality
          country_code
        }
      }
      openings {
        day_of_week
        windows {
          start
          end
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10
}

See also: business

cart#

Fetch a cart by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the cart
intent
TrackingEvent
OptionalOptional tracking event

Returns: Cart

NameTypeRequiredDescription
id
ID!
RequiredThe ID of the cart
number
String!
RequiredCart number
total
Money!
RequiredTotal value
subtotal
Money!
RequiredTotal before discounts

Example#

query GetCart($id: String!) {
  cart(id: $id) {
    id
    number
    total
    currency
    is_including_vat
    items {
      label
      quantity
      total
      sku
    }
    delivery {
      address {
        address_line_1
        locality
        postal_code
        country_code
      }
    }
    checkout {
      url
    }
  }
}
{"id": "72fca344-2a6f-4c3e-b4ca-029920b2522a"}

channel#

Fetch a channel (storefront) by ID. If no ID is provided, the default channel is returned.

Arguments:

NameTypeRequiredDescription
id
String
OptionalThe ID of the channel (optional — omit for default)

Returns: Channel

NameTypeRequiredDescription
id
ID!
RequiredThe ID
name
String!
RequiredChannel name
type
String!
RequiredChannel type
description
String!
RequiredChannel description

Example#

query GetChannel {
  channel {
    id
    name
    locale
    branding {
      colors {
        primary
        secondary
      }
    }
  }
}

claim#

Fetch a single inventory claim by ID. A claim holds a quantity of a product in a warehouse for a business — for example a reservation or commitment — until it expires.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the claim

Returns: Claim

NameTypeRequiredDescription
id
ID!
OptionalUnique claim ID
product
Product!
OptionalThe claimed product
quantity
Int!
OptionalClaimed quantity
state
ClaimState!
OptionalCurrent state of the claim
status
ClaimState!
OptionalCurrent status (alias of state)
expires_at
DateTime!
OptionalWhen the claim expires
warehouse
Warehouse!
OptionalWarehouse holding the claimed stock
business
Business!
OptionalBusiness the claim belongs to
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query ClaimQuery($id: String!) {
  claim(id: $id) {
    id
    quantity
    state
    expires_at
    product {
      sku
      label
    }
    warehouse {
      id
      label
    }
    business {
      id
      name
    }
    created_at
  }
}
{
  "id": "clm_2vN6xD"
}

comment#

Fetch a single task comment by ID. Comments are notes attached to tasks and include the comment body, the parent task and the user who wrote it.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe comment ID

Returns: Comment

NameTypeRequiredDescription
id
ID!
OptionalUnique comment ID
body
String!
OptionalThe comment text
sub
String!
OptionalSubject identifier of the comment author
task
Task!
OptionalThe task this comment belongs to
created_at
DateTime!
OptionalCreation date
user
User
OptionalThe user who wrote the comment

Example#

query GetComment($id: String!) {
  comment(id: $id) {
    id
    body
    created_at
    user {
      id
      name
      email
    }
    task {
      id
      title
      status
    }
  }
}
{
  "id": "cmt_8fK2nQ"
}

contact#

Fetch a contact by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the contact
version
String
OptionalOptional version string for cache busting

Returns: Contact

NameTypeRequiredDescription
id
ID!
RequiredThe ID
email
String!
RequiredEmail address
given_name
String!
RequiredFirst name
family_name
String
OptionalLast name

Example#

query GetContact($id: String!) {
  contact(id: $id) {
    id
    email
    given_name
    family_name
    is_verified
    addressing {
      shipping {
        primary {
          address_line_1
          locality
          postal_code
          country_code
        }
      }
    }
  }
}
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

delivery#

Fetch a single delivery by ID. A delivery represents a planned shipment from a sender to a receiver, including the shipping method, carrier options, the from/to addresses and the parcels it is packed into.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe delivery ID

Returns: Delivery

NameTypeRequiredDescription
id
ID!
OptionalUnique delivery ID
number
String!
OptionalHuman-readable delivery number
status
String!
OptionalCurrent delivery status
handle_at
DateTime!
OptionalDate the delivery should be handled
expected_at
DateTime!
OptionalExpected delivery date
method
ShippingMethod
OptionalThe shipping method used for this delivery
provider_method
ProviderOption
OptionalMethod as resolved by the shipping provider
provider_option
ProviderOption
OptionalSelected carrier option from the shipping provider
from
ShippingAddresses!
OptionalSender address, pickup point or location
to
ShippingAddresses!
OptionalReceiver address, pickup point or location
parcels
[Parcel]!
OptionalParcels that make up this delivery
handled_at
DateTime!
OptionalDate the delivery was handled
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetDelivery($id: String!) {
  delivery(id: $id) {
    id
    number
    status
    handle_at
    expected_at
    method {
      name
      carrier
    }
    to {
      address {
        locality
        postal_code
        country_code
      }
    }
    parcels {
      id
      number
      status
      track_trace {
        url
        number
      }
    }
  }
}
{
  "id": "dlv_4Hj8sK"
}

deliveryRequest#

Fetch a single delivery request by ID. A delivery request asks a sender — a business, supplier or one of your locations — to deliver a set of items, and tracks the state of each requested item until the request is closed.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe delivery request ID

Returns: DeliveryRequest

NameTypeRequiredDescription
id
ID!
OptionalUnique delivery request ID
state
DeliveryRequestItemState!
OptionalCurrent state of the request
status
DeliveryRequestItemState!
OptionalAlias of state
number
String!
OptionalHuman-readable request number
description
String!
OptionalRequest description
currency
Currency!
OptionalISO 4217 currency code
close_at
DateTime!
OptionalDate the request closes
sender
DeliveryRequestSender!
OptionalThe party asked to deliver the items
requester
Business
OptionalThe business that requested the delivery
location
Location
OptionalThe location the items should be delivered to
items
[DeliveryRequestItem]!
OptionalThe items requested for delivery
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetDeliveryRequest($id: String!) {
  deliveryRequest(id: $id) {
    id
    number
    state
    description
    currency
    close_at
    sender {
      supplier {
        id
        name
      }
    }
    items {
      id
      sku
      state
      cost_price
    }
    created_at
  }
}
{
  "id": "dvr_7Km3pW"
}

deliveryRequestItem#

Fetch a single delivery request item by ID. The item describes one requested product line — its SKU, cost price and fulfilment state — together with the delivery request, order and product it relates to.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe delivery request item ID

Returns: ListedDeliveryRequestItem

NameTypeRequiredDescription
id
ID!
OptionalUnique delivery request item ID
sku
String!
OptionalSKU of the requested product
state
DeliveryRequestItemState!
OptionalCurrent item state
status
DeliveryRequestItemState!
OptionalAlias of state
cost_price
Money!
OptionalCost price of the item
position
String!
OptionalWarehouse position
order
Order
OptionalThe order the item is requested for
order_item
CollectionItem
OptionalThe order item the request covers
meta_data
JsonObject!
OptionalArbitrary metadata
request
DeliveryRequest
OptionalThe delivery request this item belongs to
product
Product
OptionalThe requested product
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetDeliveryRequestItem($id: String!) {
  deliveryRequestItem(id: $id) {
    id
    sku
    state
    cost_price
    position
    request {
      id
      number
      close_at
    }
    product {
      sku
      label
      brand
    }
    order {
      id
      number
    }
  }
}
{
  "id": "dri_2Nc7vB"
}

drawer#

Fetch a single POS cash drawer by ID, including its current status, the sales channel it belongs to, the starting float and the expected cash amount based on registered mutations.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe drawer ID

Returns: Drawer

NameTypeRequiredDescription
id
ID!
OptionalUnique drawer ID
label
String!
OptionalDrawer label (e.g. "Register 1")
channel
Channel!
OptionalThe sales channel the drawer belongs to
status
DrawerStatus!
OptionalCurrent drawer status
starting_amount
Money!
OptionalStarting float when the drawer was opened
expected_amount
Money!
OptionalExpected cash amount based on registered mutations
last_started_at
DateTime
OptionalWhen the current or last session started
last_closed_at
DateTime
OptionalWhen the drawer was last closed
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetDrawer($id: String!) {
  drawer(id: $id) {
    id
    label
    status
    starting_amount
    expected_amount
    last_started_at
    last_closed_at
    channel {
      id
      name
    }
  }
}
{
  "id": "drw_x9k2mQ"
}

drawerMutation#

Fetch a single cash drawer mutation by ID. A drawer mutation records a manual deposit into or withdrawal from a POS drawer, with a note explaining the change and the affected amount.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe drawer mutation ID

Returns: DrawerMutation

NameTypeRequiredDescription
id
ID!
OptionalUnique mutation ID
type
MutationType!
OptionalMutation type
note
String!
OptionalNote explaining the mutation
amount
Money!
OptionalThe mutated amount
status
String!
OptionalMutation status
drawer
Drawer!
OptionalThe drawer the mutation applies to
created_at
DateTime!
OptionalCreation date

Example#

query GetDrawerMutation($id: String!) {
  drawerMutation(id: $id) {
    id
    type
    note
    amount
    status
    drawer {
      id
      label
      status
    }
    created_at
  }
}
{
  "id": "drm_5Tq8wZ"
}

drawerReport#

Fetch a single drawer report by ID. A drawer report covers one till session and reconciles the starting float, the expected amount, the counted (actual) amount and the skimmed and closing amounts, together with all cash mutations registered during the session.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe drawer report ID

Returns: DrawerReport

NameTypeRequiredDescription
id
ID!
OptionalUnique report ID
start_at
DateTime!
OptionalStart of the reported session
end_at
DateTime!
OptionalEnd of the reported session
drawer
Drawer!
OptionalThe drawer the report is for
user
User
OptionalThe user who closed the drawer
starting_amount
Money!
OptionalFloat at the start of the session
expected_amount
Money!
OptionalExpected amount based on registered mutations
actual_amount
Money!
OptionalCounted amount at close
skimmed_amount
Money!
OptionalAmount skimmed (taken to the safe or bank)
closing_amount
Money!
OptionalAmount left in the drawer at close
mutations
[DrawerMutation]!
OptionalCash mutations registered during the session
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetDrawerReport($id: String!) {
  drawerReport(id: $id) {
    id
    start_at
    end_at
    starting_amount
    expected_amount
    actual_amount
    skimmed_amount
    closing_amount
    drawer {
      id
      label
    }
    user {
      name
    }
    mutations {
      id
      type
      amount
      note
    }
  }
}
{
  "id": "drp_9Lm4xT"
}

drawerReports#

Fetch a paginated list of drawer reports. Each report reconciles one till session — starting float, expected, counted, skimmed and closing amounts — and can be filtered by drawer or by open/closed sessions.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
filters
DrawerReportsFilterInput
OptionalFilter the reports
query
QueryFilter
OptionalOpaque query filter to narrow results

Returns: DrawerReportConnection!

NameTypeRequiredDescription
nodes
[DrawerReport]!
OptionalThe drawer reports on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ListDrawerReports($first: Int, $filters: DrawerReportsFilterInput) {
  drawerReports(first: $first, filters: $filters) {
    nodes {
      id
      start_at
      end_at
      starting_amount
      expected_amount
      actual_amount
      closing_amount
      drawer {
        id
        label
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "filters": {
    "drawer_id": ["drw_x9k2mQ"],
    "is_open": false
  }
}

drawers#

Fetch a paginated list of POS cash drawers, filtered by ID, sales channel or state. Each drawer carries its current status, starting float and expected cash amount.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
filters
DrawersFilterInput!
RequiredFilter the drawers

Returns: DrawerConnection!

NameTypeRequiredDescription
nodes
[Drawer]!
OptionalThe drawers on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ListDrawers($first: Int, $filters: DrawersFilterInput!) {
  drawers(first: $first, filters: $filters) {
    nodes {
      id
      label
      status
      starting_amount
      expected_amount
      last_started_at
      channel {
        id
        name
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "filters": {
    "channel_ids": ["chn_3Fb9kR"],
    "state": ["OPEN"]
  }
}

file#

Fetch a single stored file (such as a product image, invoice PDF, or other uploaded asset) by its ID, including its public URL and metadata.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique ID of the file to fetch

Returns: File

NameTypeRequiredDescription
id
ID!
OptionalUnique file ID
filename
String!
OptionalOriginal file name
label
String!
OptionalHuman-readable label for the file
dir
String!
OptionalDirectory path the file is stored under
type
String!
OptionalFile type (e.g. image, document)
mime
String!
OptionalMIME type (e.g. "image/jpeg")
url
String!
OptionalURL where the file can be accessed
metadata
JsonObject
OptionalArbitrary metadata attached to the file
meta_data
JsonObject
OptionalArbitrary metadata attached to the file (alias of metadata)
is_public
Boolean!
OptionalWhether the file is publicly accessible
is_listed
Boolean!
OptionalWhether the file is shown in file listings
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetFile($id: String!) {
  file(id: $id) {
    id
    filename
    label
    mime
    url
    is_public
    created_at
  }
}
{
  "id": "fil_x9k2mQ"
}

index#

Fetch a single search index configuration by ID, including its field mappings, synonyms, ranking rules, and facet settings.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique ID of the index to fetch

Returns: Index

NameTypeRequiredDescription
id
ID!
OptionalUnique index ID
name
String!
OptionalIndex name
alias
String!
OptionalAlias used to query the index
state
IndexState!
OptionalCurrent state of the index
status
IndexState!
OptionalCurrent status of the index (alias of state)
source
IndexSource!
OptionalData source that feeds the index
synonyms
[Synonym]!
OptionalSynonym mappings applied during search
fields
[IndexField]!
OptionalField mappings from source data to index fields
stop_words
[String]!
OptionalWords ignored during search
ranking_rules
[String]!
OptionalOrdered ranking rules applied to results
facet_fields
[String]!
OptionalFields available for faceting
search_fields
[String]!
OptionalFields that are searched
distinct_field
String!
OptionalField used to deduplicate results
display_fields
[String]!
OptionalFields returned in search results
available_fields
[String]!
OptionalAll fields available on the index
filters
[IndexFilter]!
OptionalFilters configured on the index
last_processed_at
DateTime!
OptionalWhen the index was last processed
is_active
Boolean!
OptionalWhether the index is active
has_pending_updates
Boolean!
OptionalWhether the index has updates waiting to be processed
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetIndex($id: String!) {
  index(id: $id) {
    id
    name
    alias
    state
    is_active
    has_pending_updates
    search_fields
    facet_fields
    synonyms {
      from
      to
    }
    last_processed_at
  }
}
{
  "id": "idx_x9k2mQ"
}

inventory#

Fetch a paginated list of inventory records across your warehouses. Filter by SKU, warehouse, or business to see stock levels, reservations, costs, and positions per product.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
ids
[String]
OptionalFilter by inventory record ID(s)
sku
String
OptionalFilter by product SKU
warehouse_id
String
OptionalFilter by warehouse ID
business_id
String
OptionalFilter by business ID
filters
InventoryFilterInput
OptionalCombined inventory filters
query
QueryFilter
OptionalOpaque query filter to narrow results

Returns: InventoryConnection!

NameTypeRequiredDescription
nodes
[Inventory]!
OptionalThe inventory records on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query InventoryQuery($first: Int, $sku: String, $warehouse_id: String) {
  inventory(first: $first, sku: $sku, warehouse_id: $warehouse_id) {
    nodes {
      id
      sku
      quantity
      quantity_available
      quantity_reserved
      quantity_expected
      product {
        label
        brand
      }
      warehouse {
        id
        label
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "sku": "SKU-1001",
  "warehouse_id": "whs_x9k2mQ"
}

inventoryAtLocation#

Fetch a summary of the stock present at a single location, optionally narrowed to a specific SKU or warehouse position. Useful for store or warehouse staff checking what is on hand at their site.

Arguments:

NameTypeRequiredDescription
filter
InventoryAtLocationFilter!
RequiredLocation filter for the lookup

Returns: InventoryAtLocationPayload!

NameTypeRequiredDescription
items
[InventorySummary]!
OptionalStock summaries at the location

Example#

query InventoryAtLocation($filter: InventoryAtLocationFilter!) {
  inventoryAtLocation(filter: $filter) {
    items {
      product {
        sku
        label
      }
      position
      quantity_on_hand
      quantity_available
      quantity_reserved
      batch_number
      expires_at
    }
  }
}
{
  "filter": {
    "location_id": "loc_x9k2mQ",
    "sku": "SKU-1001"
  }
}

inventoryItems#

Fetch a paginated list of individual inventory items filtered by SKU, serial number, or batch number. Each item represents a distinct stock record with its own state, position, and cost.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
filters
InventoryItemFilterInput!
RequiredFilters to select inventory items

Returns: InventoryItemConnection!

NameTypeRequiredDescription
nodes
[InventoryItem]!
OptionalThe inventory items on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query InventoryItemsQuery($first: Int, $filters: InventoryItemFilterInput!) {
  inventoryItems(first: $first, filters: $filters) {
    nodes {
      id
      sku
      quantity
      state
      reason
      batch_number
      serial_number
      warehouse {
        id
        label
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "filters": {
    "sku": ["SKU-1001"],
    "batch_number": ["BATCH-2026-04"]
  }
}

inventoryList#

Fetch a single inventory count list (stock take) by ID, including the location it applies to, the items to be counted, and its progress timestamps.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique ID of the inventory list to fetch

Returns: InventoryList

NameTypeRequiredDescription
id
ID!
OptionalUnique inventory list ID
state
String!
OptionalCurrent state of the count
status
String!
OptionalCurrent status of the count (alias of state)
number
String!
OptionalHuman-readable list number
location
Location
OptionalLocation where the count takes place
business
Business
OptionalBusiness the count belongs to
description
String!
OptionalDescription of the count
inventorize_at
DateTime!
OptionalWhen the count is planned
items
InventoryListItemConnection!
OptionalPaginated items to be counted
started_at
DateTime!
OptionalWhen the count was started
finished_at
DateTime!
OptionalWhen the count was finished
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetInventoryList($id: String!) {
  inventoryList(id: $id) {
    id
    number
    state
    description
    location {
      id
      name
    }
    inventorize_at
    started_at
    finished_at
    items {
      nodes {
        sku
        state
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
}
{
  "id": "invl_x9k2mQ"
}

invoice#

Fetch an invoice by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the invoice

Returns: Invoice

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredInvoice number
subtotal
Money!
RequiredSubtotal (scalar — integer in cents)
total_ex_vat
Money!
RequiredTotal excluding VAT (scalar — integer in cents)

Example#

query GetInvoice($id: String!) {
  invoice(id: $id) {
    id
    number
    total
    currency
    pdf_url
    billing_address {
      address_line_1
      locality
      postal_code
      country_code
    }
    lines {
      label
      quantity
      total
    }
    created_at
  }
}
{
  "id": "d4e5f6a7-b8c9-0123-4567-890abcdef012"
}

item#

Fetch a single collection item (physical inventory item) by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the item

Returns: CollectionItem

NameTypeRequiredDescription
id
ID!
RequiredThe ID (CollectionItem ID, UUID)
sku
String!
RequiredSKU
label
String!
RequiredDisplay name
product
Product!
RequiredThe associated product

Example#

query GetItem($id: String!) {
  item(id: $id) {
    id
    sku
    label
    status
    is_available
    is_allocated
    product {
      sku
      label
    }
    order {
      id
      number
    }
  }
}
{
  "id": "5a6b7c8d-9e0f-1234-5678-9abcdef01234"
}

See also: items

items#

Fetch a paginated list of collection items (inventory items) with filtering.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
filters
CollectionItemFilterInput!
RequiredFilter criteria

Returns: CollectionItem

NameTypeRequiredDescription
id
ID!
RequiredThe ID (CollectionItem ID, UUID)
sku
String!
RequiredSKU
label
String!
RequiredDisplay name
product
Product!
RequiredThe associated product

Example#

query ListItems($filters: CollectionItemFilterInput!) {
  items(filters: $filters) {
    id
    sku
    label
    status
    is_available
    is_allocated
    order {
      id
      number
    }
  }
}
{
  "first": 10,
  "filters": {
    "order_id": "72fca344-2a6f-4c3e-b4ca-029920b2522a"
  }
}

See also: item

list#

Fetch a single task list by ID, including its tasks, ranking, and role-based access settings. Lists group tasks (system-generated or user-created) into boards.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique ID of the list to fetch

Returns: List

NameTypeRequiredDescription
id
ID!
OptionalUnique list ID
label
String!
OptionalList label
description
String!
OptionalList description
parent_list
List
OptionalParent list, when this list is nested
rank
Int!
OptionalSort rank of the list
rbac
Rbac!
OptionalRole-based access control settings
tasks
[Task]!
OptionalTasks on this list
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date
deleted_at
DateTime!
OptionalDeletion date, when the list has been deleted

Example#

query GetList($id: String!) {
  list(id: $id) {
    id
    label
    description
    rank
    tasks {
      id
      title
      status
      type
      assignee
      due_at
    }
    created_at
  }
}
{
  "id": "lst_x9k2mQ"
}

location#

Fetch a single physical location (store, warehouse site, or pickup point) by ID, including its address, opening hours, cut-off times, and linked warehouse and integrations.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique ID of the location to fetch

Returns: Location

NameTypeRequiredDescription
id
ID!
OptionalUnique location ID
name
String!
OptionalLocation name
address
Address
OptionalAddress of the location
openings
[Opening]!
OptionalOpening hours per day of the week
cut_off_times
[CutOffTime]!
OptionalOrder cut-off times per day of the week
imi_integration
Integration
OptionalIntegration used for in-store inventory management
fulfilment_integration
Integration
OptionalIntegration used for fulfilment at this location
warehouse
Warehouse
OptionalWarehouse linked to this location
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date
deleted_at
DateTime!
OptionalDeletion date, when the location has been deleted

Example#

query GetLocation($id: String!) {
  location(id: $id) {
    id
    name
    address {
      address_line_1
      postal_code
      locality
      country_code
    }
    openings {
      day_of_week
      windows {
        start
        end
      }
    }
    warehouse {
      id
      label
    }
    created_at
  }
}
{
  "id": "loc_x9k2mQ"
}

locations#

Fetch a paginated list of physical locations (stores, warehouse sites, pickup points), with optional ID filtering and sorting.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
id
IdFilter
OptionalFilter by location ID(s)
sort
LocationsSortInput
OptionalSort order for the results

Returns: LocationConnection!

NameTypeRequiredDescription
locations
[Location]!
OptionalThe locations on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query LocationsQuery($first: Int, $sort: LocationsSortInput) {
  locations(first: $first, sort: $sort) {
    locations {
      id
      name
      address {
        locality
        country_code
      }
      warehouse {
        id
        label
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "sort": { "name": "ASC" }
}

order#

Fetch an order by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the order
options
OrderOptionsInput
OptionalOptions to control included pricing data

Returns: Order

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredOrder number
total
Money!
RequiredTotal value
currency
Currency!
RequiredCurrency code

Example#

query GetOrder($id: String!) {
  order(id: $id) {
    id
    number
    status
    total
    currency
    ordered_at
    customer {
      contact {
        email
        given_name
        family_name
      }
    }
    items {
      label
      sku
      quantity
      total
    }
    payments {
      amount
      details {
        status
      }
    }
  }
}
{"id": "72fca344-2a6f-4c3e-b4ca-029920b2522a"}

See also: orders

orders#

Fetch a paginated list of orders with filtering.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
id
IdFilter
OptionalFilter by order ID(s)
progress
OrderProgressFilter
OptionalFilter by progress
created_at
InequalityFilter
OptionalFilter by creation date
number
NumberFilter
OptionalFilter by order number
email
String
OptionalFilter by customer email

Returns: Order

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredOrder number
total
Money!
RequiredTotal value
currency
Currency!
RequiredCurrency code

Example#

query ListOrders($first: Int, $email: String) {
  orders(first: $first, email: $email) {
    orders {
      id
      number
      status
      total
      currency
      ordered_at
      customer {
        contact {
          email
          given_name
          family_name
        }
      }
      items {
        label
        sku
        quantity
        total
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "email": "jan@example.nl"
}

See also: order

organisation#

Fetch an organisation by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the organisation
version
String
OptionalOptional version string

Returns: Organisation

NameTypeRequiredDescription
id
ID!
RequiredThe ID
name
String
OptionalOrganisation name
type
OrganisationType!
RequiredType of organisation
number
String
OptionalOrganisation number

Example#

query GetOrganisation($id: String!) {
  organisation(id: $id) {
    id
    name
    coc_number
    registration {
      vat_number
      country_code
    }
    addressing {
      billing {
        primary {
          address_line_1
          locality
          country_code
        }
      }
    }
  }
}
{
  "id": "b2c3d4e5-f6a7-8901-2345-67890abcdef0"
}

parcel#

Fetch a parcel (shipment) by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the parcel

Returns: Parcel

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredParcel number
status
ParcelStatus!
RequiredCurrent status
track_trace
TrackTrace!
RequiredTrack & trace details

Example#

query GetParcel($id: String!) {
  parcel(id: $id) {
    id
    number
    status
    track_trace {
      number
      url
    }
    items {
      sku
      label
    }
    created_at
  }
}
{
  "id": "c3d4e5f6-a7b8-9012-3456-7890abcdef01"
}

See also: parcels

parcels#

Fetch a paginated list of parcels with filtering.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
id
IdFilter
OptionalFilter by parcel ID(s)
delivery_id
IdFilter
OptionalFilter by delivery ID
track_trace_number
String
OptionalFilter by track & trace number

Returns: Parcel

NameTypeRequiredDescription
id
ID!
RequiredThe ID
number
String!
RequiredParcel number
status
ParcelStatus!
RequiredCurrent status
track_trace
TrackTrace!
RequiredTrack & trace details

Example#

query ListParcels($first: Int) {
  parcels(first: $first) {
    nodes {
      id
      number
      status
      track_trace {
        number
        url
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10
}

See also: parcel

payment#

Fetch a single payment by ID, including the charged amounts, payment status, PSP details, any refunds and the order it belongs to.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe payment ID

Returns: Payment

NameTypeRequiredDescription
id
ID!
OptionalUnique payment ID
type
String!
OptionalPayment type
token
String!
OptionalPayment token
amount
Money!
OptionalPayment amount
amount_fee
Money!
OptionalFee charged on top of the payment amount
amount_total
Money!
OptionalTotal amount including fees
amount_paid
Money!
OptionalAmount actually paid so far
status
PaymentStatus!
OptionalPayment status
reference
PaymentReference!
OptionalThe entity this payment refers to
description
String
OptionalPayment description
return_url
String!
OptionalURL the customer returns to after paying
is_refund
Boolean!
OptionalWhether this payment is a refund
is_paid
Boolean!
OptionalWhether the payment is paid
is_captured
Boolean!
OptionalWhether the payment is captured
is_pre_authorized
Boolean!
OptionalWhether the payment is pre-authorized
is_authorized
Boolean!
OptionalWhether the payment is authorized
is_cancelled
Boolean!
OptionalWhether the payment is cancelled
is_expired
Boolean!
OptionalWhether the payment is expired
is_pending
Boolean!
OptionalWhether the payment is pending
currency
Currency!
OptionalISO 4217 currency code
method_id
String!
OptionalPayment method ID used
issuer_id
String!
OptionalIssuer ID (e.g. the selected iDEAL bank)
refunds
[Payment]
OptionalRefund payments linked to this payment
paid_at
DateTime!
OptionalDate the payment was paid
psp_payment
PspPayment
OptionalDetails of the payment at the payment service provider
order
Order
OptionalThe order this payment belongs to
express
Express
OptionalExpress checkout details (e.g. PayPal Express)
meta_data
JsonObject
OptionalArbitrary metadata

Example#

query GetPayment($id: String!) {
  payment(id: $id) {
    id
    status
    amount
    amount_paid
    currency
    method_id
    is_paid
    is_refund
    paid_at
    reference {
      entity_id
      entity_type
    }
    order {
      id
      number
    }
  }
}
{
  "id": "pay_k2mQ9x"
}

paymentMethod#

Fetch a payment method by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the payment method

Returns: PaymentMethod

NameTypeRequiredDescription
id
ID!
RequiredThe ID
code
String!
RequiredPayment method code
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled

Example#

query GetPaymentMethod($id: String!) {
  paymentMethod(id: $id) {
    id
    code
    name
    description
    is_enabled
    pricing {
      fixed { amount is_including_vat }
      percentage { amount is_including_vat }
    }
    issuers {
      id
      label
    }
  }
}
{
  "id": "e5f6a7b8-c9d0-1234-5678-90abcdef0123"
}

See also: paymentMethods

paymentMethods#

Fetch a paginated list of available payment methods.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
codes
[String!]
OptionalFilter by payment method codes
is_manual
Boolean
OptionalFilter by manual payment methods
sort
PaymentMethodsOrderByInput
OptionalSort order

Returns: PaymentMethod

NameTypeRequiredDescription
id
ID!
RequiredThe ID
code
String!
RequiredPayment method code
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled

Example#

query ListPaymentMethods($first: Int) {
  paymentMethods(first: $first) {
    methods {
      id
      code
      name
      is_enabled
      is_manual
      pricing {
        fixed { amount }
        percentage { amount }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 20
}

See also: paymentMethod

phoneNumber#

Fetch a phone number by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the phone number

Returns: PhoneNumber

NameTypeRequiredDescription
id
ID!
RequiredThe ID
country_code
String!
RequiredCountry calling code
national
String!
RequiredNational number
number
String!
RequiredFull international number

Example#

query GetPhoneNumber($id: String!) {
  phoneNumber(id: $id) {
    id
    country_code
    national
    number
  }
}
{
  "id": "f6a7b8c9-d0e1-2345-6789-0abcdef12345"
}

picklist#

Fetch a single picklist by ID, including the warehouse location it is picked at, per-order picking statistics, its items and their picking state.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe picklist ID

Returns: Picklist

NameTypeRequiredDescription
id
ID!
OptionalUnique picklist ID
number
String!
OptionalPicklist number
state
PicklistState!
OptionalCurrent picklist state
status
PicklistState!
OptionalCurrent picklist status (alias of state)
business
Business!
OptionalThe business the picklist belongs to
location
Location!
OptionalWarehouse location the picklist is picked at
settings
PicklistSettings!
OptionalPicklist processing settings
statistics
[PicklistStatistics]!
OptionalPicking statistics per order on the picklist
due_at
DateTime!
OptionalDate the picklist is due
items
[PicklistItem]!
OptionalThe items on the picklist
tags
[Tag]!
OptionalTags attached to the picklist
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetPicklist($id: String!) {
  picklist(id: $id) {
    id
    number
    status
    due_at
    location {
      id
      name
    }
    items {
      id
      sku
      position
      status
      is_picked
    }
    created_at
  }
}
{
  "id": "pkl_x9k2mQ"
}

picklistItem#

Fetch a single picklist item by ID, including its picking state, warehouse position, the order and order item it belongs to, and the picklist it is on.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe picklist item ID

Returns: ListedPicklistItem

NameTypeRequiredDescription
id
ID!
OptionalUnique picklist item ID
sku
String!
OptionalSKU of the product to pick
position
String!
OptionalWarehouse position of the item
state
PicklistItemState!
OptionalPicking state of the item
status
PicklistItemState!
OptionalPicking status of the item (alias of state)
order
Order!
OptionalThe order the item belongs to
order_item
CollectionItem!
OptionalThe order item being picked
is_collected
Boolean!
OptionalWhether the item has been collected
is_picked
Boolean!
OptionalWhether the item has been picked
meta_data
JsonObject!
OptionalArbitrary metadata
picklist
Picklist
OptionalThe picklist this item is on
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetPicklistItem($id: String!) {
  picklistItem(id: $id) {
    id
    sku
    position
    status
    is_picked
    is_collected
    order {
      id
      number
    }
    picklist {
      id
      number
    }
    created_at
  }
}
{
  "id": "pki_m4Rt8w"
}

picklistItems#

Fetch a paginated list of items on a picklist, grouped by the fields you specify (e.g. by SKU) and optionally filtered by picking state, SKU, position or order.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
picklist_id
String!
RequiredID of the picklist to list items for
filters
PicklistItemFilterInput
OptionalFilter the items on the picklist
groupBy
[String]!
RequiredField names to group items by (e.g. "sku")
group
[String]!
RequiredGroup values to narrow the result to

Returns: PicklistItemConnection!

NameTypeRequiredDescription
items
[PicklistItemGroup]!
OptionalThe grouped picklist items on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query PicklistItemsQuery($picklist_id: String!, $first: Int, $groupBy: [String]!, $group: [String]!, $filters: PicklistItemFilterInput) {
  picklistItems(picklist_id: $picklist_id, first: $first, groupBy: $groupBy, group: $group, filters: $filters) {
    items {
      ids
      sku
      quantity
      positions {
        position
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "picklist_id": "pkl_x9k2mQ",
  "first": 25,
  "groupBy": ["sku"],
  "group": [],
  "filters": {
    "is_picked": false
  }
}

picklistPreset#

Fetch a single picklist preset by ID. A preset holds the configuration used to generate picklists, such as the processing mode, location, order and item limits, and restrictions on channels, delivery methods, assignees and SKUs.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe picklist preset ID

Returns: PicklistPreset

NameTypeRequiredDescription
id
ID!
OptionalUnique preset ID
description
String!
OptionalPreset description
configuration
PicklistPresetConfiguration!
OptionalConfiguration used when generating picklists from this preset
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetPicklistPreset($id: String!) {
  picklistPreset(id: $id) {
    id
    description
    configuration {
      default_processing
      limit_orders
      limit_items
      is_single_sku_required
      location {
        id
        name
      }
    }
    created_at
  }
}
{
  "id": "pkp_w7Tn3b"
}

picklistPresets#

Fetch a paginated list of picklist presets — reusable configurations for generating picklists.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination

Returns: PicklistPresetConnection!

NameTypeRequiredDescription
nodes
[PicklistPreset]!
OptionalThe picklist presets on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query PicklistPresetsQuery($first: Int, $after: String) {
  picklistPresets(first: $first, after: $after) {
    nodes {
      id
      description
      configuration {
        default_processing
        limit_orders
        limit_items
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "after": null
}

price#

Fetch a price from a price list by item ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the price entry

Returns: Price

NameTypeRequiredDescription
id
ID!
RequiredThe ID
sku
String!
RequiredSKU this price applies to
amount
Money!
RequiredThe price amount
original_amount
Money!
RequiredOriginal undiscounted amount

Example#

query GetPrice($id: String!) {
  price(id: $id) {
    id
    sku
    amount
    original_amount
    list {
      id
      name
    }
    vat {
      percentage
    }
  }
}
{
  "id": "a7b8c9d0-e1f2-3456-7890-abcdef012345"
}

priceList#

Fetch a single price list by ID, including its currency, VAT handling and the prices it contains per SKU.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe price list ID

Returns: PriceList

NameTypeRequiredDescription
id
ID!
OptionalUnique price list ID
name
String!
OptionalPrice list name
is_included_vat
Boolean!
OptionalWhether prices in this list include VAT
currency
Currency!
OptionalISO 4217 currency code
prices
[Price]!
OptionalThe prices in this list
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date
deleted_at
DateTime!
OptionalDeletion date

Example#

query GetPriceList($id: String!) {
  priceList(id: $id) {
    id
    name
    currency
    is_included_vat
    prices {
      sku
      amount
      original_amount
      active_since
    }
    created_at
  }
}
{
  "id": "prl_t5Vb2n"
}

priceRule#

Fetch a single price rule by ID. Price rules apply discounts or price adjustments to a target when their rule set matches, optionally granting incentive products.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe price rule ID

Returns: PriceRule

NameTypeRequiredDescription
id
ID!
OptionalUnique price rule ID
name
String!
OptionalPrice rule name
reference
String!
OptionalExternal reference for the rule
i18n
[PriceRuleTranslation]!
OptionalLocalized rule names
target
String!
OptionalWhat the rule targets (e.g. items or the order)
rule_set
RuleSet
OptionalRule set that determines when this rule applies
target_rule_set
RuleSet
OptionalRule set that selects the items the adjustment applies to
incentives
[Incentive]!
OptionalIncentive products granted when the rule applies
adjustment
PriceRuleAdjustment!
OptionalThe price adjustment applied by this rule
adjustments
[PriceRuleAdjustment]!
OptionalAll price adjustments applied by this rule
grant_limit
Int!
OptionalMaximum number of times the rule may be granted
priority
Int!
OptionalPriority relative to other rules
is_last_rule
Boolean!
OptionalWhether no further rules are evaluated after this one
is_strict
Boolean!
OptionalWhether the rule is applied strictly
is_active
Boolean!
OptionalWhether the rule is currently active
active_at
Int64!
OptionalUnix milliseconds timestamp the rule becomes active
expires_at
Int64!
OptionalUnix milliseconds timestamp the rule expires
created_at
Int64!
OptionalUnix milliseconds creation timestamp
updated_at
Int64!
OptionalUnix milliseconds last update timestamp

Example#

query GetPriceRule($id: String!) {
  priceRule(id: $id) {
    id
    name
    reference
    target
    priority
    is_active
    adjustment {
      amount
      is_discount
      is_percentage
    }
    active_at
    expires_at
  }
}
{
  "id": "prr_h8Kd4z"
}

product#

Fetch a product by SKU.

Arguments:

NameTypeRequiredDescription
sku
String!
RequiredThe SKU of the product

Returns: Product

NameTypeRequiredDescription
sku
String!
RequiredSKU
label
String!
RequiredDisplay name
slug
String!
RequiredURL slug
brand
String!
RequiredBrand name

Example#

query GetProduct($sku: String!) {
  product(sku: $sku) {
    sku
    label
    brand
    images {
      url
      position
    }
    filters {
      key
      value
    }
    prices {
      amount
      list {
        name
      }
    }
  }
}
{"sku": "BLK-HOODIE-M"}

See also: products

products#

Fetch products by a list of SKUs.

Arguments:

NameTypeRequiredDescription
skus
[String!]!
RequiredList of SKUs to fetch

Returns: Product

NameTypeRequiredDescription
sku
String!
RequiredSKU
label
String!
RequiredDisplay name
slug
String!
RequiredURL slug
brand
String!
RequiredBrand name

Example#

query GetProducts($skus: [String!]!) {
  products(skus: $skus) {
    sku
    label
    brand
    images {
      url
      position
    }
    prices {
      amount
      list {
        name
      }
    }
    created_at
  }
}
{
  "skus": ["BLK-HOODIE-M", "WHT-TEE-L", "NVY-JOGGER-S"]
}

See also: product

productViewingHistory#

Fetch a product viewing history list by token.

Arguments:

NameTypeRequiredDescription
token
String!
RequiredThe token of the viewing history

Returns: ProductViewingHistory

NameTypeRequiredDescription
label
String!
RequiredLabel
token
String!
RequiredToken identifier
items
[ViewingHistoryItem!]!
RequiredViewed items
expires_at
DateTime!
RequiredExpiration date

Example#

query GetViewingHistory($token: String!) {
  productViewingHistory(token: $token) {
    token
    items {
      sku
      viewed_at
    }
  }
}
{
  "token": "b8c9d0e1-f2a3-4567-890a-bcdef0123456"
}

project#

Fetch a single project by ID. A project groups orders, contacts, shipping addresses and files for an organisation over a defined period (from starts_at to ends_at).

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe project ID

Returns: Project

NameTypeRequiredDescription
id
ID!
OptionalUnique project ID
version
String!
OptionalProject version
audience
Audience!
OptionalAudience the project belongs to
name
String!
OptionalProject name
number
String!
OptionalProject number
description
String!
OptionalProject description
organisation
Organisation
OptionalOrganisation the project belongs to
shipping
[Address]!
OptionalShipping addresses linked to the project
meta_data
JsonObject
OptionalArbitrary metadata
starts_at
DateTime!
OptionalDate the project starts
ends_at
DateTime!
OptionalDate the project ends
orders
ProjectOrderConnection!
OptionalPaginated orders in the project
contacts
[Contact]!
OptionalContacts linked to the project
files
[File]!
OptionalFiles attached to the project
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date
deleted_at
DateTime!
OptionalDeletion date

Example#

query GetProject($id: String!) {
  project(id: $id) {
    id
    name
    number
    description
    starts_at
    ends_at
    organisation {
      id
      name
    }
    contacts {
      id
      email
      name
    }
    orders {
      nodes {
        id
        number
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
}
{
  "id": "prj_g6Xc7p"
}

proxy#

Fetch a single search proxy by ID. A proxy fronts one or more search indexes and holds the search configuration for a channel, such as filter behaviour, autocomplete and click tracking.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the proxy to fetch

Returns: Proxy

NameTypeRequiredDescription
key
String!
OptionalPublic key used to address the proxy
filters
ProxyFilters!
OptionalFilter behaviour configuration
is_autocomplete
Boolean!
OptionalWhether autocomplete is enabled for this proxy
click_tracking
ProxyClickTracking!
OptionalClick tracking configuration
indexes
[ProxyIndex]!
OptionalSearch indexes served by this proxy
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetProxy($id: String!) {
  proxy(id: $id) {
    key
    is_autocomplete
    filters {
      show_for
      sorting
      options_count
    }
    click_tracking {
      is_enabled
    }
    indexes {
      id
      name
      alias
      state
      is_active
    }
    created_at
  }
}
{
  "id": "prx_j4W8nQ"
}

reorderNotification#

Fetch a single reorder notification configuration by ID. A reorder notification emails a list of recipients on a schedule whenever products in a warehouse drop below their reorder point.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the reorder notification to fetch

Returns: ReorderNotification

NameTypeRequiredDescription
id
ID!
OptionalUnique reorder notification ID
warehouse
Warehouse!
OptionalWarehouse the notification watches
businesses
[Business]!
OptionalBusinesses the notification applies to
schedules
[ReorderNotificationSchedule]!
OptionalWeekly schedule on which notification emails are sent
recipients
[ReorderNotificationRecipient]!
OptionalPeople who receive the notification emails
is_enabled
Boolean!
OptionalWhether the notification is enabled
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetReorderNotification($id: String!) {
  reorderNotification(id: $id) {
    id
    is_enabled
    warehouse {
      id
      label
    }
    schedules {
      week_day
      hour
      minute
      timezone
    }
    recipients {
      name
      email_address
    }
    created_at
  }
}
{
  "id": "ron_p2K7vX"
}

reorderNotificationItem#

Fetch a single reorder notification item by ID. An item represents one product in a warehouse that has hit its reorder point, along with whether it has already been included in a notification email.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the reorder notification item to fetch

Returns: ReorderNotificationItem

NameTypeRequiredDescription
id
ID!
OptionalUnique reorder notification item ID
product
Product!
OptionalProduct that needs reordering
warehouse
Warehouse!
OptionalWarehouse where the stock is low
business
Business!
OptionalBusiness the item belongs to
preference
StockPreference
OptionalStock preference that triggered the notification
is_notified
Boolean!
OptionalWhether a notification has been sent for this item
notified_at
DateTime!
OptionalWhen the notification was sent
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetReorderNotificationItem($id: String!) {
  reorderNotificationItem(id: $id) {
    id
    is_notified
    notified_at
    product {
      sku
      label
    }
    warehouse {
      id
      label
    }
    preference {
      reorder_point
      minimum_quantity
      optimal_quantity
    }
  }
}
{
  "id": "rni_t8B3wL"
}

reorderNotificationItems#

Fetch a paginated list of reorder notification items for a warehouse and business — products that have hit their reorder point, optionally filtered by SKU or notification status.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
filters
ReorderNotificationItemsFilterInput!
RequiredFilters to narrow the items

Returns: ReorderNotificationItemsConnection!

NameTypeRequiredDescription
nodes
[ReorderNotificationItem]!
OptionalThe reorder notification items on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ListReorderNotificationItems($first: Int, $filters: ReorderNotificationItemsFilterInput!) {
  reorderNotificationItems(first: $first, filters: $filters) {
    nodes {
      id
      is_notified
      product {
        sku
        label
      }
      preference {
        reorder_point
      }
      notified_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 25,
  "filters": {
    "warehouse_id": "whs_m3F6kD",
    "business_id": "bsn_a7T2rP",
    "is_notified": false
  }
}

reorderNotifications#

Fetch a paginated list of reorder notification configurations for a warehouse and business, optionally filtered by recipient email or enabled state.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
filters
ReorderNotificationFilterInput!
RequiredFilters to narrow the notifications

Returns: ReorderNotificationsConnection!

NameTypeRequiredDescription
nodes
[ReorderNotification]!
OptionalThe reorder notifications on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ListReorderNotifications($first: Int, $filters: ReorderNotificationFilterInput!) {
  reorderNotifications(first: $first, filters: $filters) {
    nodes {
      id
      is_enabled
      recipients {
        name
        email_address
      }
      schedules {
        week_day
        hour
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "filters": {
    "warehouse_id": "whs_m3F6kD",
    "business_id": "bsn_a7T2rP",
    "is_enabled": true
  }
}

replenishment#

Fetch a single replenishment by ID. A replenishment moves stock towards a target — restocking from a supplier, relocating between warehouses, or exporting — and carries the items with their suggested and ordered quantities.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the replenishment to fetch

Returns: Replenishment

NameTypeRequiredDescription
id
ID!
OptionalUnique replenishment ID
number
String!
OptionalHuman-readable replenishment number
type
ReplenishmentType!
OptionalWhat the replenishment does
state
ReplenishmentState!
OptionalReplenishment state
status
ReplenishmentState!
OptionalReplenishment status
supplier
Business
OptionalSupplier the stock is ordered from
filters
[ReplenishmentFilter]!
OptionalFilters that selected the items in this replenishment
source
ReplenishmentSource
OptionalWhere the stock comes from
target
ReplenishmentTarget
OptionalWhere the stock goes
items
ReplenishmentItemConnection!
OptionalPaginated items in this replenishment
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetReplenishment($id: String!) {
  replenishment(id: $id) {
    id
    number
    type
    status
    supplier {
      id
      name
    }
    target {
      warehouse {
        id
        label
      }
    }
    items {
      nodes {
        id
        quantity_suggested
        quantity_units_ordered
        product {
          sku
          label
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
    created_at
  }
}
{
  "id": "rpl_g5H9sN"
}

replenishmentItem#

Fetch a single replenishment item by ID — one product line within a replenishment, with its suggested, ordered, announced and open quantities plus the source and target warehouse or business.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the replenishment item to fetch

Returns: ReplenishmentItem

NameTypeRequiredDescription
id
ID!
OptionalUnique replenishment item ID
product
Product!
OptionalProduct being replenished
state
ReplenishmentState!
OptionalItem state
status
ReplenishmentState!
OptionalItem status
quantity_units_ordered
Int!
OptionalUnits ordered
quantity_suggested
Int!
OptionalSuggested quantity to order
quantity_available
Int!
OptionalQuantity currently available
quantity_needed
Int!
OptionalQuantity needed
quantity_announced
Int!
OptionalQuantity announced for delivery
quantity_open
Int!
OptionalQuantity still open
quantity_reorder
Int!
OptionalReorder point quantity
quantity_maximum
Int!
OptionalMaximum stock quantity
unit
String!
OptionalOrdering unit
unit_quantity
Int!
OptionalNumber of pieces per unit
target_warehouse
Warehouse
OptionalWarehouse the stock moves to
target_business
Business
OptionalBusiness the stock moves to
source_warehouse
Warehouse
OptionalWarehouse the stock comes from
source_business
Business
OptionalBusiness the stock comes from
replenishment
Replenishment!
OptionalReplenishment this item belongs to
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetReplenishmentItem($id: String!) {
  replenishmentItem(id: $id) {
    id
    status
    product {
      sku
      label
    }
    quantity_suggested
    quantity_units_ordered
    quantity_available
    quantity_open
    unit
    unit_quantity
    replenishment {
      id
      number
    }
    created_at
  }
}
{
  "id": "rpi_k8D3vT"
}

reservation#

Fetch a single stock reservation by ID. A reservation holds quantities of products in a warehouse for a contact via a channel — for example a click-and-collect order — until it expires, and exposes the underlying stock claims.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the reservation to fetch

Returns: Reservation

NameTypeRequiredDescription
id
ID!
OptionalUnique reservation ID
number
String!
OptionalHuman-readable reservation number
referencing_number
String!
OptionalExternal reference number (e.g. an order number)
notes
String!
OptionalFree-form notes on the reservation
channel
Channel!
OptionalChannel the reservation was made through
contact
Contact
OptionalContact the stock is reserved for
warehouse
Warehouse!
OptionalWarehouse holding the reserved stock
business
Business!
OptionalBusiness the reservation belongs to
items
[ReservationItem]!
OptionalReserved products and quantities
claims
[Claim]!
OptionalStock claims backing this reservation
expires_at
DateTime!
OptionalWhen the reservation expires
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetReservation($id: String!) {
  reservation(id: $id) {
    id
    number
    referencing_number
    contact {
      email
      given_name
      family_name
    }
    warehouse {
      id
      label
    }
    items {
      product {
        sku
        label
      }
      quantity
    }
    expires_at
    created_at
  }
}
{
  "id": "rsv_p2K7wF"
}

returnMethod#

Fetch a return method by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the return method

Returns: ReturnMethod

NameTypeRequiredDescription
id
String!
RequiredThe ID
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled
carrier
String
OptionalCarrier name

Example#

query GetReturnMethod($id: String!) {
  returnMethod(id: $id) {
    id
    name
    is_enabled
    carrier
    description
    pricing {
      amount
    }
  }
}
{
  "id": "d0e1f2a3-b4c5-6789-0abc-def012345678"
}

See also: returnMethods

returnMethods#

Fetch a paginated list of return methods.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
query
QueryFilter
OptionalSearch filter string

Returns: ReturnMethod

NameTypeRequiredDescription
id
String!
RequiredThe ID
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled
carrier
String
OptionalCarrier name

Example#

query ListReturnMethods($first: Int) {
  returnMethods(first: $first) {
    nodes {
      id
      name
      is_enabled
      carrier
      pricing {
        fixed { amount }
        percentage { amount }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10
}

See also: returnMethod

rma#

Fetch a single RMA (return merchandise authorisation) by ID, including the returned items with their reasons and authorisation status, the chosen return method and the available shipping options.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the RMA to fetch

Returns: Rma

NameTypeRequiredDescription
id
ID!
OptionalUnique RMA ID
number
String!
OptionalHuman-readable RMA number
status
RmaStatus!
OptionalRMA status
contact
Contact
OptionalContact returning the items
organisation
Organisation
OptionalOrganisation the return belongs to
address
Address
OptionalPickup or return address
due_at
Int64!
OptionalDeadline for the return (Unix ms timestamp)
items
[RmaItem]!
OptionalItems being returned
options
RmaOptions!
OptionalOptions available for handling the return
return_method
ReturnMethod
OptionalChosen return method
provider_option
ProviderOption
OptionalChosen carrier product for the return shipment
channel
Channel
OptionalChannel the return was requested through
created_at
Int64!
OptionalCreation timestamp (Unix ms)
updated_at
Int64!
OptionalLast update timestamp (Unix ms)

Example#

query GetRma($id: String!) {
  rma(id: $id) {
    id
    number
    status
    contact {
      email
      given_name
      family_name
    }
    items {
      id
      status
      reason
      is_received
      product {
        sku
        label
      }
      order {
        number
      }
    }
    return_method {
      name
      carrier
    }
    due_at
    created_at
  }
}
{
  "id": "rma_x9k2mQ"
}

rmas#

Fetch a paginated list of RMAs (return merchandise authorisations). Each RMA groups the items a customer wants to return, together with the contact, return method and due date, and can be filtered by status.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
filters
RmaFiltersInput!
RequiredFilters to narrow the RMA list

Returns: RmaConnection!

NameTypeRequiredDescription
nodes
[Rma]!
OptionalThe RMAs on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ListRmas($first: Int, $filters: RmaFiltersInput!) {
  rmas(first: $first, filters: $filters) {
    nodes {
      id
      number
      status
      due_at
      contact {
        email
        given_name
        family_name
      }
      items {
        id
        is_received
        contact_note
      }
      return_method {
        name
        carrier
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "filters": {
    "status": "OPEN"
  }
}

ruleSet#

Fetch a single rule set by ID, optionally pinned to a specific version. Rule sets hold prioritised rules with when/then clauses that drive conditional behaviour on the platform, such as enabling payment agreements or shipping methods.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the rule set to fetch
version
String
OptionalSpecific rule set version to fetch (defaults to the latest)

Returns: RuleSet

NameTypeRequiredDescription
id
ID!
OptionalUnique rule set ID
type
String!
OptionalRule set type
version
String!
OptionalRule set version
category
String!
OptionalRule set category
entity
EntityReference!
OptionalEntity the rule set applies to
result
RuleSetResult!
OptionalResult produced when the rule set is evaluated
rules
[Rule]!
OptionalRules in this set, evaluated by priority
meta_data
JsonObject
OptionalFree-form metadata attached to the rule set

Example#

query GetRuleSet($id: String!, $version: String) {
  ruleSet(id: $id, version: $version) {
    id
    type
    version
    category
    entity {
      id
      type
    }
    result {
      type
    }
    rules {
      id
      name
      priority
    }
  }
}
{
  "id": "rls_x9k2mQ",
  "version": null
}

searchPicklistItem#

Find a single picklist item position matching a SKU, picklist, location and/or collection state. Used in warehouse picking flows to look up where an order item should be picked from and where it is headed.

Arguments:

NameTypeRequiredDescription
picklist_id
String
OptionalLimit the search to a specific picklist
sku
String
OptionalSKU of the item to find
is_collected
Boolean!
RequiredMatch items that have (or have not) been collected
state
PicklistItemState
OptionalFilter by picklist item state
status
PicklistItemState
OptionalFilter by picklist item status
location_id
String
OptionalLimit the search to a specific location

Returns: PicklistItemPosition

NameTypeRequiredDescription
id
ID!
OptionalUnique picklist item position ID
sku
String!
OptionalSKU of the item at this position
order
Order!
OptionalOrder the item belongs to
order_item
CollectionItem!
OptionalThe order item to pick
source
String!
OptionalPosition to pick the item from
target
String!
OptionalPosition to bring the item to
list
Picklist
OptionalPicklist the item is on
is_collected
Boolean!
OptionalWhether the item has been collected
is_picked
Boolean!
OptionalWhether the item has been picked

Example#

query FindPicklistItem($sku: String, $picklist_id: String, $is_collected: Boolean!) {
  searchPicklistItem(sku: $sku, picklist_id: $picklist_id, is_collected: $is_collected) {
    id
    sku
    source
    target
    is_picked
    is_collected
    order {
      id
      number
    }
    order_item {
      label
      image
    }
    list {
      id
      number
    }
  }
}
{
  "sku": "TSHIRT-BLK-M",
  "picklist_id": "pkl_x9k2mQ",
  "is_collected": false
}

searchPicklistItems#

Search across picklist item positions with a paginated result. Returns the pick position, target position and underlying order item for each match, so warehouse staff can work through open picks.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
query
QueryFilter
OptionalOpaque query filter to narrow results

Returns: PicklistItemsConnection!

NameTypeRequiredDescription
nodes
[PicklistItemPosition]!
OptionalThe picklist item positions on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query SearchPicklistItems($first: Int, $after: String) {
  searchPicklistItems(first: $first, after: $after) {
    nodes {
      id
      sku
      source
      target
      is_picked
      is_collected
      order {
        number
      }
      order_item {
        label
        image
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 20,
  "after": null
}

searchRmaItems#

Search order items that are eligible for return, with pagination. Filter by channel, SKU, order, contact or organisation, or by items whose warranty or withdrawal window is still open after a given date.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
filters
RmaItemFiltersInput!
RequiredFilters to narrow the search

Returns: SearchRmaItemConnection!

NameTypeRequiredDescription
nodes
[SearchRmaItem]!
OptionalThe returnable order items on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query SearchRmaItems($first: Int, $filters: RmaItemFiltersInput!) {
  searchRmaItems(first: $first, filters: $filters) {
    nodes {
      id
      label
      brand
      image
      status
      warranty_expires_at
      withdrawal_expires_at
      order {
        id
        number
      }
      product {
        sku
        slug
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "filters": {
    "contact_id": "cnt_x9k2mQ",
    "withdrawal_expires_after": 1767225600000
  }
}

service#

Fetch a single service by ID. Services are extra operations offered on order items — such as gift wrapping, customisation, assembly, preparation or packaging — including their localized texts and configuration schema.

Arguments:

NameTypeRequiredDescription
id
ID!
RequiredID of the service to fetch

Returns: Service

NameTypeRequiredDescription
id
ID!
OptionalUnique service ID
name
String!
OptionalService name
description
String!
OptionalService description
instruction
String!
OptionalInstruction shown when executing the service
i18n
[Internationalization]!
OptionalLocalized name, description and instruction
type
ServiceType!
OptionalKind of service
priority
Int
OptionalExecution priority of the service
version
String!
OptionalService version
schema
JsonObject!
OptionalJSON schema describing the service configuration
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetService($id: ID!) {
  service(id: $id) {
    id
    name
    type
    description
    instruction
    priority
    version
    i18n {
      locale
      name
    }
    created_at
    updated_at
  }
}
{
  "id": "srv_x9k2mQ"
}

services#

Fetch a paginated list of services offered on order items, such as gift wrapping, customisation, assembly, preparation and packaging.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
query
QueryFilter
OptionalOpaque query filter to narrow results

Returns: ServicesConnection!

NameTypeRequiredDescription
nodes
[Service]!
OptionalThe services on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ListServices($first: Int, $after: String) {
  services(first: $first, after: $after) {
    nodes {
      id
      name
      type
      description
      priority
      i18n {
        locale
        name
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "after": null
}

serviceTasks#

Fetch a paginated list of service tasks. A service task is a unit of work — such as gift wrapping or assembling a specific order item — with its configuration, the user executing it and start/end timestamps.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
query
QueryFilter
OptionalOpaque query filter to narrow results

Returns: ServiceTasksConnection!

NameTypeRequiredDescription
nodes
[ServiceItemTask]!
OptionalThe service tasks on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ListServiceTasks($first: Int, $after: String) {
  serviceTasks(first: $first, after: $after) {
    nodes {
      id
      status
      service {
        name
        type
      }
      order {
        number
      }
      order_item {
        sku
        label
      }
      started_at
      ended_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "after": null
}

shelf#

Fetch a single shelf by ID. A shelf links a SKU to a warehouse position for a business, with a stock limit and an optional temporary flag — the building block for locating inventory in a warehouse.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the shelf to fetch

Returns: Shelf

NameTypeRequiredDescription
id
ID!
OptionalUnique shelf ID
sku
String!
OptionalSKU stored on this shelf
position
Position!
OptionalWarehouse position of the shelf
position_limit
Int64!
OptionalMaximum number of items the shelf can hold
is_temporary
Boolean!
OptionalWhether the shelf is a temporary placement
business
Business!
OptionalBusiness that owns the stock on this shelf
warehouse
Warehouse!
OptionalWarehouse the shelf is in
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetShelf($id: String!) {
  shelf(id: $id) {
    id
    sku
    position_limit
    is_temporary
    position {
      id
      type
      status
    }
    warehouse {
      id
      label
      type
    }
    business {
      id
      name
    }
    created_at
  }
}
{
  "id": "shf_x9k2mQ"
}

shelves#

Fetch a paginated list of shelves — the physical positions where a SKU is stored inside a warehouse. Filter by SKU, warehouse, or business to inspect where stock is located.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
sku
String
OptionalFilter shelves by product SKU
warehouse_id
String
OptionalFilter shelves by warehouse ID
business_id
String
OptionalFilter shelves by business ID

Returns: ShelfConnection!

NameTypeRequiredDescription
nodes
[Shelf]!
OptionalThe shelves on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ShelvesQuery($first: Int, $sku: String, $warehouse_id: String) {
  shelves(first: $first, sku: $sku, warehouse_id: $warehouse_id) {
    nodes {
      id
      sku
      position_limit
      is_temporary
      position {
        id
        notes
      }
      warehouse {
        id
        label
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "sku": "TSHIRT-BLUE-M",
  "warehouse_id": "wrh_x9k2mQ"
}

shippingMethod#

Fetch a shipping method by ID.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredThe ID of the shipping method

Returns: ShippingMethod

NameTypeRequiredDescription
id
String!
RequiredThe ID
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled
carrier
String
OptionalCarrier name

Example#

query GetShippingMethod($id: String!) {
  shippingMethod(id: $id) {
    id
    name
    is_enabled
    carrier
    pricing {
      amount
    }
    is_same_day
    is_pickup_point
    is_signed
  }
}
{
  "id": "e1f2a3b4-c5d6-7890-abcd-ef0123456789"
}

See also: shippingMethods

shippingMethods#

Fetch a paginated list of shipping methods.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to returnDefault: 10
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
sort
ShippingMethodsOrderByInput
OptionalSort order

Returns: ShippingMethod

NameTypeRequiredDescription
id
String!
RequiredThe ID
name
String!
RequiredDisplay name
is_enabled
Boolean!
RequiredWhether enabled
carrier
String
OptionalCarrier name

Example#

query ListShippingMethods($first: Int) {
  shippingMethods(first: $first) {
    methods {
      id
      name
      is_enabled
      carrier
      is_same_day
      is_pickup_point
      pricing {
        fixed { amount }
        percentage { amount }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 20
}

See also: shippingMethod

shippingProviderOptions#

Fetch the shipping options offered by connected carrier integrations, such as parcel services with their cost, dimension, and weight constraints. Narrow the list by IDs or by filters like carrier, country, or shipping method.

Arguments:

NameTypeRequiredDescription
ids
[String]
OptionalRestrict to specific provider option IDs
filters
ShippingProviderOptionsFiltersInput
OptionalFilter the available provider options

Returns: [ProviderOption]!

NameTypeRequiredDescription
id
ID!
OptionalUnique provider option ID
name
String!
OptionalName of the shipping option
carrier
String!
OptionalCarrier that offers this option
description
String!
OptionalDescription of the option
cost
ProviderOptionCost
OptionalCost of the shipping option
dimension
ProviderOptionDimension
OptionalMaximum parcel dimensions
weight
ProviderOptionWeight
OptionalWeight range for this option
integration
Integration
OptionalCarrier integration that provides this option

Example#

query ShippingProviderOptionsQuery($filters: ShippingProviderOptionsFiltersInput) {
  shippingProviderOptions(filters: $filters) {
    id
    name
    carrier
    description
    cost {
      currency
      amount
    }
    dimension {
      length
      width
      height
    }
    weight {
      min
      max
    }
  }
}
{
  "filters": {
    "carrier": "postnl",
    "country_code": "NL"
  }
}

stockMutations#

Fetch a paginated list of stock mutations — every change to inventory levels, such as allocations, restocks, corrections, and register sales — including their processing status and channel sync messages.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
query
QueryFilter
OptionalOpaque query filter to narrow results

Returns: StockMutationsConnection!

NameTypeRequiredDescription
nodes
[StockMutation]!
OptionalThe stock mutations on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query StockMutationsQuery($first: Int, $after: String) {
  stockMutations(first: $first, after: $after) {
    nodes {
      id
      source
      status
      new_quantity
      product {
        sku
        label
      }
      location {
        id
        name
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "after": null
}

stockPreference#

Fetch a single stock preference by ID. A stock preference defines the inventory rules for a SKU in a warehouse, such as minimum, maximum, and optimal quantities, the reorder point, and whether backorders are allowed.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the stock preference to fetch

Returns: StockPreference

NameTypeRequiredDescription
id
ID!
OptionalUnique stock preference ID
sku
String!
OptionalSKU the preference applies to
minimum_quantity
Int64!
OptionalMinimum stock quantity to keep
maximum_quantity
Int64!
OptionalMaximum stock quantity to keep
optimal_quantity
Int64!
OptionalOptimal stock quantity
reorder_point
Int64!
OptionalQuantity at which a reorder is triggered
is_restricted_to_single_position
Boolean!
OptionalWhether the SKU may only occupy a single warehouse position
preorder_deadline_at
DateTime
OptionalDeadline until which preorders are accepted
is_backorder_allowed
Boolean!
OptionalWhether backorders are allowed for this SKU
is_notified
Boolean!
OptionalWhether a low-stock notification has been sent
notified_at
DateTime
OptionalDate the notification was sent
business
Business!
OptionalBusiness the preference belongs to
warehouse
Warehouse!
OptionalWarehouse the preference applies to
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query StockPreferenceQuery($id: String!) {
  stockPreference(id: $id) {
    id
    sku
    minimum_quantity
    maximum_quantity
    optimal_quantity
    reorder_point
    is_backorder_allowed
    warehouse {
      id
      label
    }
    created_at
  }
}
{
  "id": "stp_x9k2mQ"
}

stockPreferences#

Fetch a paginated list of stock preferences — the inventory rules per SKU and warehouse, such as minimum, maximum, and optimal quantities and the reorder point. Filter by SKU, warehouse, or business.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
sku
String
OptionalFilter preferences by product SKU
warehouse_id
String
OptionalFilter preferences by warehouse ID
business_id
String
OptionalFilter preferences by business ID

Returns: StockPreferenceConnection!

NameTypeRequiredDescription
nodes
[StockPreference]!
OptionalThe stock preferences on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query StockPreferencesQuery($first: Int, $warehouse_id: String) {
  stockPreferences(first: $first, warehouse_id: $warehouse_id) {
    nodes {
      id
      sku
      minimum_quantity
      optimal_quantity
      reorder_point
      is_backorder_allowed
      warehouse {
        id
        label
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "warehouse_id": "wrh_x9k2mQ"
}

supplies#

Fetch a paginated list of supplies — inbound goods-receiving sessions in which announced or purchased items are registered, cross-docked, and distributed to warehouse positions. Filter by state to find pending or in-progress receipts.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
before
String
OptionalCursor for backward pagination
state
SupplyStateFilter
OptionalFilter by supply state
status
SupplyStateFilter
OptionalFilter by supply status (alias of state)

Returns: SupplyConnection!

NameTypeRequiredDescription
supplies
[Supply]!
OptionalThe supplies on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query SuppliesQuery($first: Int, $state: SupplyStateFilter) {
  supplies(first: $first, state: $state) {
    supplies {
      id
      number
      state
      due_at
      started_at
      location {
        id
        name
      }
      overages {
        sku
        position
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "state": {
    "operator": "EQ",
    "value": "IN_PROGRESS"
  }
}

supply#

Fetch a single supply by ID — an inbound goods-receiving session including its announcements, purchase orders, cross-dock distributions, and overages.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the supply to fetch

Returns: Supply

NameTypeRequiredDescription
id
ID!
OptionalUnique supply ID
number
String!
OptionalSupply number
state
SupplyState!
OptionalCurrent state of the supply
status
SupplyState!
OptionalCurrent status (alias of state)
announcements
[Announcement]!
OptionalSupplier announcements linked to this supply
due_at
DateTime!
OptionalDate the supply is due
settings
SupplySettings!
OptionalProcessing settings for the supply
started_at
DateTime!
OptionalDate receiving started
cancelled_at
DateTime!
OptionalDate the supply was cancelled
finished_at
DateTime!
OptionalDate receiving finished
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date
crossdock_proposal
CrossDockProposal
OptionalProposed cross-dock match for a scanned item
crossdock_distribution
[CrossDockDistribution]!
OptionalCross-dock distributions applied during this supply
purchases
[SupplyPurchase]!
OptionalPurchase orders received in this supply
overages
[SupplyOverage]!
OptionalItems received in excess of what was expected
business
Business
OptionalBusiness receiving the supply
location
Location
OptionalLocation where the supply is received

Example#

query SupplyQuery($id: String!) {
  supply(id: $id) {
    id
    number
    state
    due_at
    started_at
    announcements {
      id
      number
      status
      statistics {
        items
        received
        missing
      }
    }
    overages {
      sku
      position
    }
  }
}
{
  "id": "sup_x9k2mQ"
}

table#

Fetch a single data table by ID or category. Tables define how listing data (such as orders or products) is sourced, processed, and displayed, including their columns and saved views.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID (or category value) of the table to fetch
category
QueryTableBy
OptionalHow to interpret the id argument

Returns: Table

NameTypeRequiredDescription
id
ID!
OptionalUnique table ID
name
String!
OptionalTable name
category
String!
OptionalTable category
is_system_table
Boolean!
OptionalWhether this is a built-in system table
sourcing
Sourcing!
OptionalHow the table sources its data
processing
Processing!
OptionalProcessing rules applied to sourced data
columns
[Columns]!
OptionalColumn definitions of the table
views
[View]!
OptionalSaved views on this table
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query TableQuery($id: String!, $category: QueryTableBy) {
  table(id: $id, category: $category) {
    id
    name
    category
    is_system_table
    columns {
      key
      label
      type
      is_sortable
      is_visible
    }
    views {
      id
      label
      is_default
      pagesize
    }
  }
}
{
  "id": "orders",
  "category": "CATEGORY"
}

task#

Fetch a single task by ID, including its status, list, comments, and attachments. Tasks are to-dos on the tenant's work lists, created by users or generated by the system.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredID of the task to fetch

Returns: Task

NameTypeRequiredDescription
id
ID!
OptionalUnique task ID
title
String!
OptionalTask title
description
String!
OptionalTask description
due_at
Int
OptionalDue timestamp
status
TaskStatus!
OptionalCurrent status of the task
type
TaskType!
OptionalOrigin of the task
list
List!
OptionalThe list the task belongs to
rank
Int!
OptionalSort rank within the list
assignee
String
OptionalUser the task is assigned to
system
System
OptionalSystem metadata for system-generated tasks
comments
[Comment]!
OptionalComments on the task
attachments
[Attachment]!
OptionalFiles attached to the task
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query TaskQuery($id: String!) {
  task(id: $id) {
    id
    title
    description
    status
    type
    rank
    assignee
    list {
      id
      label
    }
    comments {
      id
      body
      created_at
    }
    created_at
  }
}
{
  "id": "tsk_x9k2mQ"
}

transport#

Fetch a single transport by ID. A transport is a planned, route-based delivery run that bundles one or more orders with a pickup and delivery moment.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique transport ID

Returns: Transport

NameTypeRequiredDescription
id
ID!
OptionalUnique transport ID
number
String!
OptionalHuman-readable transport number
state
TransportState!
OptionalCurrent transport state
route_label
String!
OptionalLabel of the route this transport belongs to
delivery_at
DateTime!
OptionalPlanned delivery moment
pickup_at
DateTime!
OptionalPlanned pickup moment
orders
[Order]!
OptionalOrders included in this transport
items
[SummarizedItem]!
OptionalSummarized items carried in this transport
integration
Integration
OptionalIntegration that manages this transport

Example#

query GetTransport($id: String!) {
  transport(id: $id) {
    id
    number
    state
    route_label
    pickup_at
    delivery_at
    orders {
      id
      number
    }
    items {
      sku
      label
      quantity
    }
  }
}
{
  "id": "trp_x9k2mQ"
}

transports#

Fetch a paginated list of transports — planned, route-based delivery runs that bundle orders with pickup and delivery moments. Results can be narrowed with a query filter.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination
query
QueryFilter
OptionalOpaque query filter to narrow results

Returns: TransportConnection!

NameTypeRequiredDescription
transports
[Transport]!
OptionalThe transports on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ListTransports($first: Int, $after: String) {
  transports(first: $first, after: $after) {
    transports {
      id
      number
      state
      route_label
      pickup_at
      delivery_at
      items {
        sku
        label
        quantity
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "after": null
}

user#

Fetch a single user by ID. Users are the staff accounts of a tenant (back office and POS), including their roles and verification state.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique user ID

Returns: User

NameTypeRequiredDescription
id
ID!
OptionalUnique user ID
email
String!
OptionalEmail address of the user
name
String!
OptionalFull name of the user
is_verified
Boolean!
OptionalWhether the user has verified their account
is_pending_invite
Boolean!
OptionalWhether the user still has a pending invite
is_primary
Boolean!
OptionalWhether this is the primary user of the tenant
is_pin_only
Boolean!
OptionalWhether the user can only sign in with a PIN (e.g. POS-only accounts)
tenant
Tenant!
OptionalTenant the user belongs to
roles
[Role]!
OptionalRoles assigned to the user
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetUser($id: String!) {
  user(id: $id) {
    id
    email
    name
    is_verified
    is_primary
    is_pin_only
    roles {
      id
      name
      is_system_role
    }
    created_at
  }
}
{
  "id": "usr_x9k2mQ"
}

vatException#

Fetch a single VAT exception by ID. A VAT exception overrides the VAT rate for a specific SKU in a specific country (optionally narrowed to an administrative area).

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique VAT exception ID

Returns: VatException

NameTypeRequiredDescription
id
ID!
OptionalUnique VAT exception ID
sku
String!
OptionalSKU the exception applies to
country_code
String!
OptionalISO country code where the exception applies
administrative_area
String
OptionalAdministrative area (state/province) the exception is limited to
reference
Int!
OptionalReference number of the exception
vat_rate
Float!
OptionalVAT rate applied instead of the default (e.g. 9.0)

Example#

query GetVatException($id: String!) {
  vatException(id: $id) {
    id
    sku
    country_code
    administrative_area
    reference
    vat_rate
  }
}
{
  "id": "vex_x9k2mQ"
}

view#

Fetch a saved table view by ID. A view stores the column layout, sorting, page size and filters for a data table, plus the roles that may use it.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique view ID

Returns: View

NameTypeRequiredDescription
id
ID!
OptionalUnique view ID
label
String!
OptionalDisplay label of the view
columns
String!
OptionalColumn configuration of the view
pagesize
Int!
OptionalNumber of rows shown per page
sort
String!
OptionalSort configuration of the view
category
String!
OptionalCategory the view belongs to
is_default
Boolean!
OptionalWhether this is the default view for its table
table
Table!
OptionalTable this view is defined on
rbac
Rbac!
OptionalRole-based access control for the view
filters
[Filters]!
OptionalFilters applied by the view
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date

Example#

query GetView($id: String!) {
  view(id: $id) {
    id
    label
    pagesize
    sort
    category
    is_default
    filters {
      key
      operator
      value
    }
    table {
      id
      name
    }
  }
}
{
  "id": "viw_x9k2mQ"
}

warehouse#

Fetch a single warehouse by ID, including its location, linked businesses and storage positions.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique warehouse ID

Returns: Warehouse

NameTypeRequiredDescription
id
ID!
OptionalUnique warehouse ID
label
String!
OptionalWarehouse label
location
Location!
OptionalPhysical location of the warehouse
type
WarehouseType!
OptionalWarehouse type
businesses
[Business]!
OptionalBusinesses linked to this warehouse
is_restricted_to_single_position
Boolean!
OptionalWhether each SKU is restricted to a single position
position_limit
Int64!
OptionalMaximum number of positions allowed
position_count
Int64!
OptionalCurrent number of positions
positions
[Position]!
OptionalStorage positions in the warehouse
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date
deleted_at
DateTime!
OptionalDeletion date

Example#

query GetWarehouse($id: String!) {
  warehouse(id: $id) {
    id
    label
    type
    is_restricted_to_single_position
    position_count
    position_limit
    location {
      id
      name
    }
    positions {
      id
      state
      type
      rank
    }
  }
}
{
  "id": "wh_x9k2mQ"
}

warehouseItem#

Fetch a single warehouse item by ID — one unit of physical stock, with its position, batch and serial numbers, weight and cost value.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique warehouse item ID

Returns: WarehouseItem

NameTypeRequiredDescription
id
ID!
OptionalUnique warehouse item ID
sku
String!
OptionalStock keeping unit
quantity
Int!
OptionalQuantity of this item
state
String!
OptionalCurrent state of the item
status
String!
OptionalCurrent status of the item
reason
String
OptionalReason attached to the item (e.g. for a correction)
position
Position
OptionalStorage position the item is stored at
rfid
String!
OptionalRFID tag of the item
batch_number
String!
OptionalBatch number
serial_number
String!
OptionalSerial number
expires_at
DateTime!
OptionalExpiry date of the item
warehouse
Warehouse!
OptionalWarehouse the item belongs to
business
Business!
OptionalBusiness that owns the stock
created_at
DateTime!
OptionalCreation date
updated_at
DateTime!
OptionalLast update date
weight
Weight!
OptionalWeight of the item
cost
MonetaryValue!
OptionalCost value of the item
gtin
[String]!
OptionalGlobal trade item numbers

Example#

query GetWarehouseItem($id: String!) {
  warehouseItem(id: $id) {
    id
    sku
    quantity
    status
    batch_number
    serial_number
    expires_at
    position {
      id
      type
    }
    warehouse {
      id
      label
    }
    weight {
      amount
      unit
    }
    cost {
      amount
      currency
    }
  }
}
{
  "id": "whi_x9k2mQ"
}

warehouses#

Fetch a paginated list of warehouses, including each warehouse's location, type and position counts.

Arguments:

NameTypeRequiredDescription
first
Int
OptionalNumber of items to return
after
String
OptionalCursor for forward pagination

Returns: WarehouseConnection!

NameTypeRequiredDescription
nodes
[ListedWarehouse]!
OptionalThe warehouses on this page
pageInfo
PageInfo!
OptionalPagination info

Example#

query ListWarehouses($first: Int, $after: String) {
  warehouses(first: $first, after: $after) {
    nodes {
      id
      label
      type
      position_count
      position_limit
      location {
        id
        name
      }
      created_at
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}
{
  "first": 10,
  "after": null
}

wishlist#

Fetch a wishlist by token.

Arguments:

NameTypeRequiredDescription
token
String!
RequiredThe token of the wishlist

Returns: Wishlist

NameTypeRequiredDescription
label
String!
RequiredLabel
token
String!
RequiredToken identifier
items
[WishlistItem!]!
RequiredItems on the wishlist
expires_at
DateTime!
RequiredExpiration date

Example#

query GetWishlist($token: String!) {
  wishlist(token: $token) {
    token
    label
    items {
      sku
      added_at
    }
  }
}
{
  "token": "c9d0e1f2-a3b4-5678-90ab-cdef01234567"
}

zone#

Fetch a single zone by ID. A zone groups a set of countries (e.g. for shipping or delivery coverage), optionally gated by a rule set.

Arguments:

NameTypeRequiredDescription
id
String!
RequiredUnique zone ID

Returns: Zone

NameTypeRequiredDescription
id
ID!
OptionalUnique zone ID
name
String!
OptionalZone name
rule_set
RuleSet
OptionalRule set that determines when this zone applies
countries
[String]!
OptionalISO country codes covered by this zone

Example#

query GetZone($id: String!) {
  zone(id: $id) {
    id
    name
    countries
    rule_set {
      id
      type
      category
    }
  }
}
{
  "id": "zon_x9k2mQ"
}
Query Runnerhttps://afosto.app/graphql

No query loaded

Click play on any code block in the docs to load a query here.