GraphQL World Of Cd Keys API reference
Explore World Of Cd Keys's API reference documentation.
This page will help you get up and running with the API.
API Endpoints
# Sandbox:
https://api.stage.wock.digitalwarehou.se/graphql
# Production:
https://api.worldofcdkeys.com/graphql
Headers
Authorization: Bearer <YOUR_TOKEN_HERE>
Authentication
All GraphQL API queries require a valid JWT access token passed in the request header as Authorization.
It could be acquired by calling the access token URL endpoint with tenant id parameter with proper client id, client secret, and scope, which will be delivered to you by our helpdesk. Parameters are different between environments.
We are using Azure Active Directory and client credentials flow, so here is an example of how to acquire a token: Access token request with a shared secret
The generated token is valid for 360 seconds (10 minutes).
GraphQL
We use the GraphQL server to create this API to give our clients as much flexibility as possible. With that, you can query only for properties that you need in your daily work.
For development/test purposes we strongly recommend using Insomnia client because it supports GraphQL schemas better than the other API clients, with autocompletion and real-time schema preview. To autocomplete and preview the schema documentation in Insomnia, you need to be authenticated first and then refresh the schema in the client's program itself.
Endpoints
GraphQL queries/mutations are executed by sending POST HTTP requests to the endpoint proper for the environment. It's available in the upper part of the documentation. Let's assume we want to use the sandbox, and we need to make a POST request to https://api.stage.wock.digitalwarehou.se/graphql.
If we want to use GET requests, we need to make a GET request to https://api.stage.wock.digitalwarehou.se/graphql?query=our_query_body_goes_here (only applies to queries, mutations are not supported in GET requests).
Queries
Queries begin with one of the objects listed under QueryRoot. The QueryRoot is the schemas entry-point for queries.
Queries are equivalent to making a GET request in REST.
Mutations
Mutations begin with one of the objects listed under MutationRoot. The MutationRoot is the schema’s entry-point for mutations.
Mutations are equivalent to making a POST request in REST, so they are mutating (modifying) the state, like creating an order.
Status and error codes
All API queries return HTTP status codes that contain more information about the response.
200 OK
GraphQL HTTP status codes are different from REST API status codes. Most importantly, the GraphQL API can return a 200 OK response code in cases that would typically produce 4xx or 5xx errors in REST.
Error handling
The error object's response contains additional detail to help you debug your operation.
Response
{
"errors": [
{
"message": "Products in your order must be unique. You cannot order the same product twice.",
"extensions": {
"code": "PRODUCT_UNIQUE_ERR"
"correlationId": "8b77ccc823f869598fe156d822603664"
}
}
],
"data": {
"createOrder": null
}
}
Webhooks
We have prepared two webhooks for global usage. To register webhooks, please contact our support and send URLs to register, along with neccessary header keys with values to allow us reach your API.
Product webhook
Description: The webhook is triggered when product was updated, added or removed.
Content-Type: application/json
Headers:
Event-Type:product
POSTExample payload:
Payload body
{
"id": 420,
"type": "PRODUCT_UPDATED",
"updatedAt": "2025-04-17T04:20:00.0000000"
}
Payload properties explanation:
| Field | Type | Description |
|---|---|---|
id |
int | Product ID |
type |
string (enum) | Type of product notification, see table below |
updatedAt |
string | Date of change (UTC) in format YYYY-MM-DDThh:mm:ss.sssZ |
Product notification type:
| Name | Explanation |
|---|---|
PRODUCT_CREATED |
New product has been created on the platform |
PRODUCT_DELETED |
Existing product has been removed from the platform |
PRODUCT_UPDATED |
Any property on existing product has been updated (stock, price, region, language, etc.) |
Delivery webhook
Description: The webhook is triggered when delivery is ready for download.
Content-Type: application/json
Headers:
Event-Type:delivery
POSTExample payload:
Payload body
{
"id": "d121c283-7634-479a-ac5f-402f4d3a337f",
"createdAt": "2025-04-17T04:20:00.0000000"
}
Payload properties explanation:
| Field | Type | Description |
|---|---|---|
id |
string (guid) | Id of order for which delivery is ready |
createdAt |
string | Date of change (UTC) in format YYYY-MM-DDThh:mm:ss.sssZ |
Webhooks handling
Please remember we send only bare minimum properties in the webhook, because incoming data shouldn't be treated as source of truth nor your data should not rely on it. To use it efficiently please refetch given product or delivery from API after receiving message on webhook.
Any webhook endpoint has to respond with any 2xx status code and with empty body. If not, we will try to retry delivery several times.
We recommend to use 204 No Content status.
Keep in mind, that we are allowed to disable your endpoint when too many failed responses have been detected.
Webhooks are sent asynchronously, so the order in which they are sent may not be preserved.
Improvements/bugs
We are open to hearing your suggestions, so don't hesitate to contact us when you see a possibility for improvement or a bug.
If you can, always please attach a correlationId from the error response. Enjoy!
Changelog
01.03.2025
- Important - changed type name returned in orders query from
OrderResponseCollectionSegmenttoOrdersCollectionSegment - Important - changed type name returned in products query from
ProductResponseCollectionSegmenttoProductsCollectionSegment - Added
statusfilterable & sortable property to OrderResponse used in response for orders query - Added
partnerProductIdproperty to OrderCreatedLineResponse used in response for createOrder mutation - Marked
isBundleproperty as deprecated in OrderProductResponse used in response for orders query - Marked
isSubBundleproperty as deprecated in OrderProductResponse used in response for orders query - Marked
isBundleproperty as deprecated in ProductResponse used in response for products query - Marked
isSubBundleproperty as deprecated in ProductResponse used in response for products query - Marked
productPartnerIdproperty as deprecated in ProductResponse used in response for products query - Added
productPartnerIdsproperty to ProductResponse used in response for products query - Added
partnerProductIdproperty to OutboundDeliveryProductResponse used in deliveries query - Added
stockLimitproperty to PartnerResponse used in partner query
- Added
excludedRegionsandexcludedLanguagesproperties to ProductResponse (products query) - Added
usedproperty to PartnerResponse (partner query)
Queries
delivery
Description
Returns keys from Outbound Delivery in the following statuses:
| Ready for download |
| Partially downloaded |
| Completed |
Response
Returns an OutboundDeliveryResponse
Example
Query
query delivery(
$orderId: UUID,
$legacyOrderId: String
) {
delivery(
orderId: $orderId,
legacyOrderId: $legacyOrderId
) {
products {
details {
id
name
platform
region
language
}
keys {
id
key
downloadedAt
mimeType
subKeys {
id
key
downloadedAt
mimeType
subKeys {
...OutboundDeliveryKeyResponseFragment
}
}
}
deliveryIdentifier
partnerProductId
}
orderId
legacyOrderId
archives {
link
password
}
status {
ready
error
}
}
}
Variables
{
"orderId": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"legacyOrderId": "xyz789"
}
Response
{
"data": {
"delivery": {
"products": [OutboundDeliveryProductResponse],
"orderId": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"legacyOrderId": "xyz789",
"archives": [OutboundDeliveryArchiveFileResponse],
"status": OutboundDeliveryStatusResponse
}
}
}
orders
Description
Returns list of Outbound Orders in the Ready for download status
Response
Returns an OrdersCollectionSegment
Arguments
| Name | Description |
|---|---|
skip - Int
|
|
take - Int
|
|
where - OrderResponseFilterInput
|
|
order - [OrderResponseSortInput!]
|
Example
Query
query orders(
$skip: Int,
$take: Int,
$where: OrderResponseFilterInput,
$order: [OrderResponseSortInput!]
) {
orders(
skip: $skip,
take: $take,
where: $where,
order: $order
) {
pageInfo {
hasNextPage
hasPreviousPage
}
items {
id
legacyId
createdAt
products {
id
name
isBundle
isSubBundle
quantity
price
children {
id
name
isBundle
isSubBundle
quantity
price
children {
...OrderProductResponseFragment
}
}
}
identifier
status
}
totalCount
}
}
Variables
{
"skip": 123,
"take": 987,
"where": OrderResponseFilterInput,
"order": [OrderResponseSortInput]
}
Response
{
"data": {
"orders": {
"pageInfo": CollectionSegmentInfo,
"items": [OrderResponse],
"totalCount": 987
}
}
}
partner
Description
Returns partner's financial balance. Gives an idea of how many orders can be placed within the credit line granted by the supplier. It's changed only after successfully created delivery for an placed order
Response
Returns a PartnerResponse
Example
Query
query partner {
partner {
id
available
used
partnerType
stockLimit
}
}
Response
{
"data": {
"partner": {
"id": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"available": Decimal,
"used": Decimal,
"partnerType": "xyz789",
"stockLimit": 987
}
}
}
product
Description
Returns details of a single product
Response
Returns a ProductResponse
Arguments
| Name | Description |
|---|---|
id - Int
|
Example
Query
query product($id: Int) {
product(id: $id) {
language
lastUpdateDateTime
quantity {
text
image
all
}
bulkPrices {
price
minimumQuantity
}
productPartnerId
bundleItems {
id
name
platform
language
region
isSubBundle
}
isBundle
id
name
platform
region
currency
isDisabled
lastUpdatedPriceDateTime
lastIncreasedStockDateTime
productPartnerIds
languages
regions
excludedLanguages
excludedRegions
}
}
Variables
{"id": 123}
Response
{
"data": {
"product": {
"language": "abc123",
"lastUpdateDateTime": "2007-12-03T10:15:30Z",
"quantity": QuantityResponse,
"bulkPrices": [BulkPriceResponse],
"productPartnerId": "xyz789",
"bundleItems": [ProductSubBundleResponse],
"isBundle": false,
"id": 123,
"name": "abc123",
"platform": "xyz789",
"region": "xyz789",
"currency": "xyz789",
"isDisabled": false,
"lastUpdatedPriceDateTime": "2007-12-03T10:15:30Z",
"lastIncreasedStockDateTime": "2007-12-03T10:15:30Z",
"productPartnerIds": ["abc123"],
"languages": ["xyz789"],
"regions": ["xyz789"],
"excludedLanguages": ["abc123"],
"excludedRegions": ["xyz789"]
}
}
}
products
Description
Returns product list that are available for purchase
Response
Returns a ProductsCollectionSegment
Arguments
| Name | Description |
|---|---|
skip - Int
|
|
take - Int
|
|
where - ProductResponseFilterInput
|
|
order - [ProductResponseSortInput!]
|
Example
Query
query products(
$skip: Int,
$take: Int,
$where: ProductResponseFilterInput,
$order: [ProductResponseSortInput!]
) {
products(
skip: $skip,
take: $take,
where: $where,
order: $order
) {
pageInfo {
hasNextPage
hasPreviousPage
}
items {
language
lastUpdateDateTime
quantity {
text
image
all
}
bulkPrices {
price
minimumQuantity
}
productPartnerId
bundleItems {
id
name
platform
language
region
isSubBundle
}
isBundle
id
name
platform
region
currency
isDisabled
lastUpdatedPriceDateTime
lastIncreasedStockDateTime
productPartnerIds
languages
regions
excludedLanguages
excludedRegions
}
totalCount
}
}
Variables
{
"skip": 987,
"take": 987,
"where": ProductResponseFilterInput,
"order": [ProductResponseSortInput]
}
Response
{
"data": {
"products": {
"pageInfo": CollectionSegmentInfo,
"items": [ProductResponse],
"totalCount": 123
}
}
}
Mutations
createOrder
Description
Request to create a brand new order. Only available for External partner type. When an error occurs, then the following codes will be in response (errors[].extensions.code) as it's stated here:
| Code | Explanation |
|---|---|
| ORDER_ERR | The information needed to create order is wrong. |
| ORDER_KEY_TYPE_ERR | Key type is incorrect. |
| PARTNER_BALANCE_ERR | The available amount limit has been reached for the partner. |
| PARTNER_ERR | Partner info in the system is incorrect. Contact support. |
| PARTNER_NOT_FOUND | You are not assigned to any partner. Contact support. |
| PRODUCT_NOT_FOUND | One of the requested products is not valid or not found. |
| PRODUCT_PRICE_MISMATCH | The price for a product changed. Retrieve the product or products list to check the updated prices. |
| PRODUCT_QTY_ERR | Maximal ordered product quantity exceeded. The client cannot order more keys than available for the product in one order. |
| PRODUCT_STOCK_MISMATCH | The stock for a product changed. Retrieve the product or products list to check the updated stock. |
| PRODUCT_UNIQUE_ERR | One of the products is requested more than once in the same order. |
Response
Returns an OrderCreatedResponse
Arguments
| Name | Description |
|---|---|
input - CreateOrderInput!
|
Example
Query
mutation createOrder($input: CreateOrderInput!) {
createOrder(input: $input) {
orderId
partnerOrderId
products {
productId
price
quantity
keyType
partnerProductId
}
}
}
Variables
{"input": CreateOrderInput}
Response
{
"data": {
"createOrder": {
"orderId": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"partnerOrderId": "xyz789",
"products": [OrderCreatedLineResponse]
}
}
}
deleteOrder
Description
Request to delete order in 'New' or 'Ready for download' status
Types
Boolean
Description
The Boolean scalar type represents true or false
BooleanOperationFilterInput
BulkPriceResponse
BulkPriceResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [BulkPriceResponseFilterInput!]
|
|
or - [BulkPriceResponseFilterInput!]
|
|
price - DecimalOperationFilterInput
|
|
minimumQuantity - IntOperationFilterInput
|
Example
{
"and": [BulkPriceResponseFilterInput],
"or": [BulkPriceResponseFilterInput],
"price": DecimalOperationFilterInput,
"minimumQuantity": IntOperationFilterInput
}
BulkPriceResponseSortInput
Fields
| Input Field | Description |
|---|---|
price - SortEnumType
|
|
minimumQuantity - SortEnumType
|
Example
{"price": "ASC", "minimumQuantity": "ASC"}
CollectionSegmentInfo
Description
Information about the offset pagination
Example
{"hasNextPage": true, "hasPreviousPage": true}
CreateOrderInput
Description
Partners credit line must not be exceeeded
Fields
| Input Field | Description |
|---|---|
products - [CreateOrderProductInput!]!
|
Array of products |
Example
{"products": [CreateOrderProductInput]}
CreateOrderProductInput
Description
At least one product must be ordered
Fields
| Input Field | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
productId - Int!
|
Product Id | ||||||||
quantity - Int!
|
Quantity of given product - more than 0, cannot exceed 500 (hard limit), and cannot exceed product availability | ||||||||
unitPrice - Decimal!
|
Unit price - must match product price (from a product or products queries) | ||||||||
keyType - Int
|
A key type which you want to order for the product
|
||||||||
partnerProductId - String
|
Here you can add your product id so it can be matched with order line and delivery line |
Example
{
"productId": 123,
"quantity": 987,
"unitPrice": Decimal,
"keyType": 123,
"partnerProductId": "abc123"
}
DateTime
Description
The DateTime scalar represents an ISO-8601 compliant date time type
Example
"2007-12-03T10:15:30Z"
DateTimeOperationFilterInput
Example
{
"eq": "2007-12-03T10:15:30Z",
"neq": "2007-12-03T10:15:30Z",
"in": ["2007-12-03T10:15:30Z"],
"nin": ["2007-12-03T10:15:30Z"],
"gt": "2007-12-03T10:15:30Z",
"ngt": "2007-12-03T10:15:30Z",
"gte": "2007-12-03T10:15:30Z",
"ngte": "2007-12-03T10:15:30Z",
"lt": "2007-12-03T10:15:30Z",
"nlt": "2007-12-03T10:15:30Z",
"lte": "2007-12-03T10:15:30Z",
"nlte": "2007-12-03T10:15:30Z"
}
Decimal
Description
The built-in Decimal scalar type
Example
Decimal
DecimalOperationFilterInput
Example
{
"eq": Decimal,
"neq": Decimal,
"in": [Decimal],
"nin": [Decimal],
"gt": Decimal,
"ngt": Decimal,
"gte": Decimal,
"ngte": Decimal,
"lt": Decimal,
"nlt": Decimal,
"lte": Decimal,
"nlte": Decimal
}
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1
Example
987
IntOperationFilterInput
Example
{
"eq": 123,
"neq": 123,
"in": [987],
"nin": [987],
"gt": 987,
"ngt": 987,
"gte": 123,
"ngte": 123,
"lt": 123,
"nlt": 987,
"lte": 123,
"nlte": 987
}
ListFilterInputTypeOfBulkPriceResponseFilterInput
Fields
| Input Field | Description |
|---|---|
all - BulkPriceResponseFilterInput
|
|
none - BulkPriceResponseFilterInput
|
|
some - BulkPriceResponseFilterInput
|
|
any - Boolean
|
Example
{
"all": BulkPriceResponseFilterInput,
"none": BulkPriceResponseFilterInput,
"some": BulkPriceResponseFilterInput,
"any": false
}
ListFilterInputTypeOfOrderProductResponseFilterInput
Fields
| Input Field | Description |
|---|---|
all - OrderProductResponseFilterInput
|
|
none - OrderProductResponseFilterInput
|
|
some - OrderProductResponseFilterInput
|
|
any - Boolean
|
Example
{
"all": OrderProductResponseFilterInput,
"none": OrderProductResponseFilterInput,
"some": OrderProductResponseFilterInput,
"any": false
}
ListFilterInputTypeOfOutboundDeliveryKeyResponseFilterInput
Fields
| Input Field | Description |
|---|---|
all - OutboundDeliveryKeyResponseFilterInput
|
|
none - OutboundDeliveryKeyResponseFilterInput
|
|
some - OutboundDeliveryKeyResponseFilterInput
|
|
any - Boolean
|
Example
{
"all": OutboundDeliveryKeyResponseFilterInput,
"none": OutboundDeliveryKeyResponseFilterInput,
"some": OutboundDeliveryKeyResponseFilterInput,
"any": false
}
ListFilterInputTypeOfProductSubBundleResponseFilterInput
Fields
| Input Field | Description |
|---|---|
all - ProductSubBundleResponseFilterInput
|
|
none - ProductSubBundleResponseFilterInput
|
|
some - ProductSubBundleResponseFilterInput
|
|
any - Boolean
|
Example
{
"all": ProductSubBundleResponseFilterInput,
"none": ProductSubBundleResponseFilterInput,
"some": ProductSubBundleResponseFilterInput,
"any": false
}
ListStringOperationFilterInput
Fields
| Input Field | Description |
|---|---|
all - StringOperationFilterInput
|
|
none - StringOperationFilterInput
|
|
some - StringOperationFilterInput
|
|
any - Boolean
|
Example
{
"all": StringOperationFilterInput,
"none": StringOperationFilterInput,
"some": StringOperationFilterInput,
"any": true
}
OrderCreatedLineResponse
OrderCreatedResponse
Fields
| Field Name | Description |
|---|---|
orderId - UUID!
|
Order Id - this property is used in delivery query |
partnerOrderId - String
|
|
products - [OrderCreatedLineResponse!]!
|
Example
{
"orderId": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"partnerOrderId": "xyz789",
"products": [OrderCreatedLineResponse]
}
OrderProductResponse
Example
{
"id": 987,
"name": "xyz789",
"isBundle": true,
"isSubBundle": false,
"quantity": 123,
"price": Decimal,
"children": [OrderProductResponse]
}
OrderProductResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [OrderProductResponseFilterInput!]
|
|
or - [OrderProductResponseFilterInput!]
|
|
id - IntOperationFilterInput
|
|
name - StringOperationFilterInput
|
|
isBundle - BooleanOperationFilterInput
|
|
isSubBundle - BooleanOperationFilterInput
|
|
quantity - IntOperationFilterInput
|
|
price - DecimalOperationFilterInput
|
|
children - ListFilterInputTypeOfOrderProductResponseFilterInput
|
Example
{
"and": [OrderProductResponseFilterInput],
"or": [OrderProductResponseFilterInput],
"id": IntOperationFilterInput,
"name": StringOperationFilterInput,
"isBundle": BooleanOperationFilterInput,
"isSubBundle": BooleanOperationFilterInput,
"quantity": IntOperationFilterInput,
"price": DecimalOperationFilterInput,
"children": ListFilterInputTypeOfOrderProductResponseFilterInput
}
OrderResponse
Fields
| Field Name | Description | ||||||
|---|---|---|---|---|---|---|---|
id - UUID!
|
Order Id - this property retrieved from this endpoint response is used in the delivery query | ||||||
legacyId - String
|
Order Id - from the legacy platform. Only applies to orders which are migrated | ||||||
createdAt - DateTime!
|
Timestamp of order creation, UTC | ||||||
products - [OrderProductResponse!]!
|
An array of ordered products | ||||||
identifier - String!
|
Internal identifier of the order | ||||||
status - Int!
|
Status of the order
|
Example
{
"id": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"legacyId": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"products": [OrderProductResponse],
"identifier": "xyz789",
"status": 987
}
OrderResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [OrderResponseFilterInput!]
|
|
or - [OrderResponseFilterInput!]
|
|
id - UuidOperationFilterInput
|
|
legacyId - StringOperationFilterInput
|
|
identifier - StringOperationFilterInput
|
|
createdAt - DateTimeOperationFilterInput
|
|
status - IntOperationFilterInput
|
|
products - ListFilterInputTypeOfOrderProductResponseFilterInput
|
Example
{
"and": [OrderResponseFilterInput],
"or": [OrderResponseFilterInput],
"id": UuidOperationFilterInput,
"legacyId": StringOperationFilterInput,
"identifier": StringOperationFilterInput,
"createdAt": DateTimeOperationFilterInput,
"status": IntOperationFilterInput,
"products": ListFilterInputTypeOfOrderProductResponseFilterInput
}
OrderResponseSortInput
Fields
| Input Field | Description |
|---|---|
id - SortEnumType
|
|
legacyId - SortEnumType
|
|
identifier - SortEnumType
|
|
createdAt - SortEnumType
|
|
status - SortEnumType
|
Example
{
"id": "ASC",
"legacyId": "ASC",
"identifier": "ASC",
"createdAt": "ASC",
"status": "ASC"
}
OrdersCollectionSegment
Fields
| Field Name | Description |
|---|---|
pageInfo - CollectionSegmentInfo!
|
Information to aid in pagination |
items - [OrderResponse!]
|
|
totalCount - Int!
|
Example
{
"pageInfo": CollectionSegmentInfo,
"items": [OrderResponse],
"totalCount": 123
}
OutboundDeliveryArchiveFileResponse
OutboundDeliveryArchiveFileResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [OutboundDeliveryArchiveFileResponseFilterInput!]
|
|
or - [OutboundDeliveryArchiveFileResponseFilterInput!]
|
|
link - StringOperationFilterInput
|
|
password - StringOperationFilterInput
|
Example
{
"and": [OutboundDeliveryArchiveFileResponseFilterInput],
"or": [OutboundDeliveryArchiveFileResponseFilterInput],
"link": StringOperationFilterInput,
"password": StringOperationFilterInput
}
OutboundDeliveryKeyResponse
Fields
| Field Name | Description |
|---|---|
id - UUID!
|
|
key - String!
|
Key in plain text or base64 depends on mime-type |
downloadedAt - DateTime
|
Datetime of key first download |
mimeType - String!
|
Mime-type of a key: text (text/plain) or image (image/png, image/jpeg, image/gif, image/bmp) |
subKeys - [OutboundDeliveryKeyResponse!]!
|
Keys linked with that key. For example DLC, bundle or another dependent key |
Example
{
"id": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"key": "abc123",
"downloadedAt": "2007-12-03T10:15:30Z",
"mimeType": "abc123",
"subKeys": [OutboundDeliveryKeyResponse]
}
OutboundDeliveryKeyResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [OutboundDeliveryKeyResponseFilterInput!]
|
|
or - [OutboundDeliveryKeyResponseFilterInput!]
|
|
id - UuidOperationFilterInput
|
|
key - StringOperationFilterInput
|
|
downloadedAt - DateTimeOperationFilterInput
|
|
mimeType - StringOperationFilterInput
|
|
subKeys - ListFilterInputTypeOfOutboundDeliveryKeyResponseFilterInput
|
Example
{
"and": [OutboundDeliveryKeyResponseFilterInput],
"or": [OutboundDeliveryKeyResponseFilterInput],
"id": UuidOperationFilterInput,
"key": StringOperationFilterInput,
"downloadedAt": DateTimeOperationFilterInput,
"mimeType": StringOperationFilterInput,
"subKeys": ListFilterInputTypeOfOutboundDeliveryKeyResponseFilterInput
}
OutboundDeliveryProductDetailsResponse
OutboundDeliveryProductDetailsResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [OutboundDeliveryProductDetailsResponseFilterInput!]
|
|
or - [OutboundDeliveryProductDetailsResponseFilterInput!]
|
|
id - IntOperationFilterInput
|
|
name - StringOperationFilterInput
|
|
platform - StringOperationFilterInput
|
|
region - StringOperationFilterInput
|
|
language - StringOperationFilterInput
|
Example
{
"and": [
OutboundDeliveryProductDetailsResponseFilterInput
],
"or": [
OutboundDeliveryProductDetailsResponseFilterInput
],
"id": IntOperationFilterInput,
"name": StringOperationFilterInput,
"platform": StringOperationFilterInput,
"region": StringOperationFilterInput,
"language": StringOperationFilterInput
}
OutboundDeliveryProductResponse
Fields
| Field Name | Description |
|---|---|
details - OutboundDeliveryProductDetailsResponse!
|
Details of a product |
keys - [OutboundDeliveryKeyResponse!]!
|
Array of keys |
Arguments |
|
deliveryIdentifier - String!
|
|
partnerProductId - String
|
|
Example
{
"details": OutboundDeliveryProductDetailsResponse,
"keys": [OutboundDeliveryKeyResponse],
"deliveryIdentifier": "abc123",
"partnerProductId": "abc123"
}
OutboundDeliveryProductResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [OutboundDeliveryProductResponseFilterInput!]
|
|
or - [OutboundDeliveryProductResponseFilterInput!]
|
|
deliveryIdentifier - StringOperationFilterInput
|
|
partnerProductId - StringOperationFilterInput
|
|
details - OutboundDeliveryProductDetailsResponseFilterInput
|
|
keys - ListFilterInputTypeOfOutboundDeliveryKeyResponseFilterInput
|
Example
{
"and": [OutboundDeliveryProductResponseFilterInput],
"or": [OutboundDeliveryProductResponseFilterInput],
"deliveryIdentifier": StringOperationFilterInput,
"partnerProductId": StringOperationFilterInput,
"details": OutboundDeliveryProductDetailsResponseFilterInput,
"keys": ListFilterInputTypeOfOutboundDeliveryKeyResponseFilterInput
}
OutboundDeliveryResponse
Description
Keys from Outbound Delivery in the Ready for download, Partially downloaded or Completed statuses
Fields
| Field Name | Description |
|---|---|
products - [OutboundDeliveryProductResponse!]!
|
Array of products |
Arguments |
|
orderId - UUID!
|
Id of an order to which delivery is assigned |
legacyOrderId - String
|
Id of an order to which delivery is assigned - from legacy platform. Only applies to orders which are migrated |
archives - [OutboundDeliveryArchiveFileResponse!]!
|
An array of URLs to archives with .zip files contains keys. Only available for External partner type. Otherwise it will return an empty array |
Arguments |
|
status - OutboundDeliveryStatusResponse!
|
Indicates the status of the delivery |
Arguments |
|
Example
{
"products": [OutboundDeliveryProductResponse],
"orderId": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"legacyOrderId": "xyz789",
"archives": [OutboundDeliveryArchiveFileResponse],
"status": OutboundDeliveryStatusResponse
}
OutboundDeliveryStatusResponse
Description
Describes the status of the delivery as follows:
| ready | error | description |
|---|---|---|
| false | null | Order was created, but delivery is not ready yet |
| false | not null | Order wasn't created, and an error occured. Check the error and create an order again |
| true | null | Order was created successfully, delivery is in the 'Ready for download' status |
Example
{"ready": true, "error": "xyz789"}
OutboundDeliveryStatusResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [OutboundDeliveryStatusResponseFilterInput!]
|
|
or - [OutboundDeliveryStatusResponseFilterInput!]
|
|
ready - BooleanOperationFilterInput
|
|
error - StringOperationFilterInput
|
Example
{
"and": [OutboundDeliveryStatusResponseFilterInput],
"or": [OutboundDeliveryStatusResponseFilterInput],
"ready": BooleanOperationFilterInput,
"error": StringOperationFilterInput
}
PartnerResponse
Example
{
"id": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"available": Decimal,
"used": Decimal,
"partnerType": "xyz789",
"stockLimit": 123
}
ProductResponse
Fields
| Field Name | Description |
|---|---|
language - String!
|
Language shortcodes |
lastUpdateDateTime - DateTime!
|
Last product (metadata like name, language, region / price / stock) update. This datetime property could be used in the following way: let's assume your's API is refreshing the products list from the API every 10 minutes after the first initial seed. If 02.05.2022 12:00 was the last refetch, then in the next refresh (at 12:10) you can add a filter to query like "give me all products which have a lastUpdateDateTime greater than 02.05.2022 12:00". In the result, you will get only products that were updated in this short period of time (from 12:00 - 12:10) instead of querying all products list |
quantity - QuantityResponse
|
Product's available quantity |
bulkPrices - [BulkPriceResponse!]!
|
Prices for a product are based on the quantity which you want to order |
Arguments
|
|
productPartnerId - String
|
This field is deprecated. Please use ProductPartnerIds instead. |
bundleItems - [ProductSubBundleResponse!]!
|
This field is deprecated. Will be removed in future. |
isBundle - Boolean!
|
This field is deprecated. Will be removed in future. |
id - Int!
|
|
name - String!
|
|
platform - String!
|
|
region - String!
|
|
currency - String!
|
|
isDisabled - Boolean!
|
|
lastUpdatedPriceDateTime - DateTime!
|
|
lastIncreasedStockDateTime - DateTime!
|
|
productPartnerIds - [String!]!
|
|
languages - [String!]!
|
|
regions - [String!]!
|
|
excludedLanguages - [String!]!
|
|
excludedRegions - [String!]!
|
|
Example
{
"language": "xyz789",
"lastUpdateDateTime": "2007-12-03T10:15:30Z",
"quantity": QuantityResponse,
"bulkPrices": [BulkPriceResponse],
"productPartnerId": "abc123",
"bundleItems": [ProductSubBundleResponse],
"isBundle": true,
"id": 987,
"name": "abc123",
"platform": "xyz789",
"region": "xyz789",
"currency": "xyz789",
"isDisabled": false,
"lastUpdatedPriceDateTime": "2007-12-03T10:15:30Z",
"lastIncreasedStockDateTime": "2007-12-03T10:15:30Z",
"productPartnerIds": ["abc123"],
"languages": ["xyz789"],
"regions": ["abc123"],
"excludedLanguages": ["xyz789"],
"excludedRegions": ["xyz789"]
}
ProductResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [ProductResponseFilterInput!]
|
|
or - [ProductResponseFilterInput!]
|
|
id - IntOperationFilterInput
|
|
name - StringOperationFilterInput
|
|
platform - StringOperationFilterInput
|
|
language - StringOperationFilterInput
|
|
region - StringOperationFilterInput
|
|
quantity - QuantityResponseFilterInput
|
|
currency - StringOperationFilterInput
|
|
isBundle - BooleanOperationFilterInput
|
|
isDisabled - BooleanOperationFilterInput
|
|
lastUpdateDateTime - DateTimeOperationFilterInput
|
|
bundleItems - ListFilterInputTypeOfProductSubBundleResponseFilterInput
|
|
productPartnerId - StringOperationFilterInput
|
|
productPartnerIds - ListStringOperationFilterInput
|
|
bulkPrices - ListFilterInputTypeOfBulkPriceResponseFilterInput
|
|
languages - ListStringOperationFilterInput
|
|
regions - ListStringOperationFilterInput
|
|
excludedLanguages - ListStringOperationFilterInput
|
|
excludedRegions - ListStringOperationFilterInput
|
Example
{
"and": [ProductResponseFilterInput],
"or": [ProductResponseFilterInput],
"id": IntOperationFilterInput,
"name": StringOperationFilterInput,
"platform": StringOperationFilterInput,
"language": StringOperationFilterInput,
"region": StringOperationFilterInput,
"quantity": QuantityResponseFilterInput,
"currency": StringOperationFilterInput,
"isBundle": BooleanOperationFilterInput,
"isDisabled": BooleanOperationFilterInput,
"lastUpdateDateTime": DateTimeOperationFilterInput,
"bundleItems": ListFilterInputTypeOfProductSubBundleResponseFilterInput,
"productPartnerId": StringOperationFilterInput,
"productPartnerIds": ListStringOperationFilterInput,
"bulkPrices": ListFilterInputTypeOfBulkPriceResponseFilterInput,
"languages": ListStringOperationFilterInput,
"regions": ListStringOperationFilterInput,
"excludedLanguages": ListStringOperationFilterInput,
"excludedRegions": ListStringOperationFilterInput
}
ProductResponseSortInput
Fields
| Input Field | Description |
|---|---|
id - SortEnumType
|
|
name - SortEnumType
|
|
platform - SortEnumType
|
|
language - SortEnumType
|
|
region - SortEnumType
|
|
quantity - QuantityResponseSortInput
|
|
currency - SortEnumType
|
|
isBundle - SortEnumType
|
|
isDisabled - SortEnumType
|
|
lastUpdateDateTime - SortEnumType
|
|
productPartnerId - SortEnumType
|
Example
{
"id": "ASC",
"name": "ASC",
"platform": "ASC",
"language": "ASC",
"region": "ASC",
"quantity": QuantityResponseSortInput,
"currency": "ASC",
"isBundle": "ASC",
"isDisabled": "ASC",
"lastUpdateDateTime": "ASC",
"productPartnerId": "ASC"
}
ProductSubBundleResponse
ProductSubBundleResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [ProductSubBundleResponseFilterInput!]
|
|
or - [ProductSubBundleResponseFilterInput!]
|
|
id - IntOperationFilterInput
|
|
name - StringOperationFilterInput
|
|
platform - StringOperationFilterInput
|
|
language - StringOperationFilterInput
|
|
region - StringOperationFilterInput
|
|
isSubBundle - BooleanOperationFilterInput
|
Example
{
"and": [ProductSubBundleResponseFilterInput],
"or": [ProductSubBundleResponseFilterInput],
"id": IntOperationFilterInput,
"name": StringOperationFilterInput,
"platform": StringOperationFilterInput,
"language": StringOperationFilterInput,
"region": StringOperationFilterInput,
"isSubBundle": BooleanOperationFilterInput
}
ProductsCollectionSegment
Description
A segment of a collection
Fields
| Field Name | Description |
|---|---|
pageInfo - CollectionSegmentInfo!
|
Information to aid in pagination |
items - [ProductResponse]
|
A flattened list of the items |
totalCount - Int!
|
Example
{
"pageInfo": CollectionSegmentInfo,
"items": [ProductResponse],
"totalCount": 987
}
QuantityResponse
QuantityResponseFilterInput
Fields
| Input Field | Description |
|---|---|
and - [QuantityResponseFilterInput!]
|
|
or - [QuantityResponseFilterInput!]
|
|
text - IntOperationFilterInput
|
|
image - IntOperationFilterInput
|
|
all - IntOperationFilterInput
|
Example
{
"and": [QuantityResponseFilterInput],
"or": [QuantityResponseFilterInput],
"text": IntOperationFilterInput,
"image": IntOperationFilterInput,
"all": IntOperationFilterInput
}
QuantityResponseSortInput
Fields
| Input Field | Description |
|---|---|
text - SortEnumType
|
|
image - SortEnumType
|
|
all - SortEnumType
|
Example
{"text": "ASC", "image": "ASC", "all": "ASC"}
SortEnumType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"ASC"
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text
Example
"xyz789"
StringOperationFilterInput
Example
{
"and": [StringOperationFilterInput],
"or": [StringOperationFilterInput],
"eq": "abc123",
"neq": "abc123",
"contains": "abc123",
"ncontains": "abc123",
"in": ["abc123"],
"nin": ["abc123"],
"startsWith": "xyz789",
"nstartsWith": "xyz789",
"endsWith": "abc123",
"nendsWith": "xyz789"
}
UUID
Example
"4eaa85ae-5973-446b-b87b-fbaa48c1faa7"
UuidOperationFilterInput
Example
{
"eq": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"neq": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"in": [
"4eaa85ae-5973-446b-b87b-fbaa48c1faa7"
],
"nin": [
"4eaa85ae-5973-446b-b87b-fbaa48c1faa7"
],
"gt": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"ngt": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"gte": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"ngte": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"lt": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"nlt": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"lte": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7",
"nlte": "4eaa85ae-5973-446b-b87b-fbaa48c1faa7"
}