hummel CONNECT Gateway (0.2)

Download OpenAPI specification:Download

Introduction

Welcome to the hummel CONNECT Gateway API.

hummel CONNECT Gateway API provides programmatic access to Product information, Availability and allows partners to create and track Orders.

Questions and support

If you need help or have any questions to the APIs or your specific integration, please create a ticket through our service desk and we will get back to you as soon as possible.

Authentication

OAuth2 is used for authentication. You should have received a client secret used to request a token and an api key to identify your client.

If you are using the .NET platform you can use the Microsoft.Identity library with:

Tenant ID: 52c7c612-ac6c-420c-88d2-cb752f797d6b
Client ID: 4e46d82c-f238-4e9f-ad63-d0965cad07c8

If not, here is a small recipe:

POST https://login.microsoftonline.com/52c7c612-ac6c-420c-88d2-cb752f797d6b/oauth2/v2.0/token

with form-encoded content:

client_id=4e46d82c-f238-4e9f-ad63-d0965cad07c8&scope=api%3A%2F%2F4e46d82c-f238-4e9f-ad63-d0965cad07c8%2F.default&client_secret=XXX&grant_type=client_credentials

will return a json object with the access_token.

The api key must be sent as a standard HTTP header with the key hml-api-key.

Handling changes

All GET api endpoints are built around sequenceNo, these numbers are ever increasing and will be updated when changes occur. They are also part of the output. While it is also possible to get changes per datetime, it is not recommended as it can lead to missing changes. Results will always be ordered by sequenceNo in ascending order.

Rate limits

The API uses rate limits to ensure each client gets their fair share of the shared resources.

When using sequenceNo you can do 1 request per endpoint every 2 seconds. Bursts are allowed to temporarily exceed this limit but only for shorter periods.

When not using sequenceNo then the limit is 1 request per endpoint every 15 seconds.

If you hit the rate limit, a 429 status code will be returned. Furthermore the RetryAfter header will be filled out to enable proper retries.

Availability

The availability API streams what is available per variant no.

Available quantity is what is available right now, while next availabilities is an ordered list of incoming stock available at a later date.

Get availability information.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
ItemNo
string [ 0 .. 20 ] characters

Filter by item no.

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Availability information.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Availability
Response samples
[
  • {
    }
]

CreditNotes

The credit notes API endpoints allows once to fetch either full credit notes with lines or headers and lines individually.

Credit notes can be fetched either by their no or as deltas using sequence no.

Get credit notes with all attached properties.

SecurityOAuth2
Request
query Parameters
CreditNo
string [ 0 .. 30 ] characters

Filter by sales credit no.

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Credit notes with all attached properties.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/CreditNotes/Full
Response samples
[
  • {
    }
]

Get credit notes.

SecurityOAuth2
Request
query Parameters
CreditNo
string [ 0 .. 30 ] characters

Filter by sales credit no.

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Credit notes.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/CreditNotes
Response samples
[
  • {
    }
]

Get credit note lines.

SecurityOAuth2
Request
query Parameters
CreditNo
string [ 0 .. 30 ] characters

Filter by sales credit no.

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Credit note lines.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/CreditNotes/Lines
Response samples
[
  • {
    }
]

Invoices

The invoices API endpoints allows once to fetch either full invoices with lines or headers and lines individually.

Invoices can be fetched either by their no or as deltas using sequence no.

Get invoices with all attached properties.

SecurityOAuth2
Request
query Parameters
InvoiceNo
string [ 0 .. 30 ] characters

Filter by sales invoice no.

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Invoices with all attached properties.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Invoices/Full
Response samples
[
  • {
    }
]

Get invoices.

SecurityOAuth2
Request
query Parameters
InvoiceNo
string [ 0 .. 30 ] characters

Filter by sales invoice no.

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Invoices.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Invoices
Response samples
[
  • {
    }
]

Get invoice lines.

SecurityOAuth2
Request
query Parameters
InvoiceNo
string [ 0 .. 30 ] characters

Filter by sales invoice no.

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Invoice lines.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Invoices/Lines
Response samples
[
  • {
    }
]

Items

The items API endpoints can overall be split into two categories: ItemsFull and individual endpoints for each specific part of an item.

ItemsFull is easy to work with because it gives the full tree from item, to color to color sizes and season collections. The flipside is that all this information must be transferred on each change to an item even if only one variant is changed. Because of this, it is also possible to use the APIs like Items or ItemColorSizes to get only those specific changes.

The hierarchy:

  • Item
    • Translation
    • Colors
      • Media
      • Composition
      • Color size / variant
        • SeasonCollection
        • Translation
        • Listprice
        • UnitPrice
        • Bullet

Existing products might at some point no longer be available, we want to export this information to external partners so they can handle them properly. To do this we products with DEAD OR BLOCKED item status are exported for 3 months after they enter this status. One must not create new orders on these products.

Get items with all attached properties.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
ItemNo
string [ 0 .. 20 ] characters

Filter by item no.

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Items with all attached properties.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemsFull
Response samples
[
  • {
    }
]

Get items.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Items.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items
Response samples
[
  • {
    }
]

Get item translations.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Item translations.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemTranslations
Response samples
[
  • {
    }
]

Get item colors.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Item colors.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemColors
Response samples
[
  • {
    }
]

Get item color compositions.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Item color compositions.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemColorCompositions
Response samples
[
  • {
    }
]

Get media permalinks.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Item media permalinks.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemColorMedia
Response samples
[
  • {
    }
]

Get item color sizes.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Item color sizes.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemColorSizes
Response samples
[
  • {
    }
]

Get item color size translations.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Item color size translations.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemColorSizeTranslations
Response samples
[
  • {
    }
]

Get item color size season collections.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Item color size season collections.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemColorSizeSeasonCollections
Response samples
[
  • {
    }
]

Get item color size list prices.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Item color size list prices.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemColorSizeListPrices
Response samples
[
  • {
    }
]

Get item color size unit prices.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Item color size unit prices.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemColorSizeUnitPrices
Response samples
[
  • {
    }
]

Get bullet points.

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
query Parameters
Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Bullet points.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Items/ItemColorSizeBulletPoints
Response samples
[
  • {
    }
]

Orders

The orders API endpoints allows customers to place orders and to receive status on these orders.

There are two overall types of orders:

  • Normal and Replenishment
  • Batch

Normal and replenishment orders are created once and cannot be changed once created. Batch on the other hand allows one to keep adding lines to an open order until it is closed. The order is automatically closed when a new order begins. When this happens is something that agreed between hummel and you. The currently active order returned in the external document no field. As this is automatically assigned for Batch, it should be left blank in input.

Create/add order(s).

This endpoint supports asynchronous streaming.

SecurityOAuth2
Request
Request Body schema:

Order creation request.

Array (non-empty)
externalDocumentNo
required
string [ 0 .. 35 ] characters
Default: ""

Unique order reference per customer no.

requestedDeliveryDate
string or null <date>

Optional delivery date, set to today for earliest possible delivery.

object (IOrderCustomerAddress)

Customer information.

object (IOrderContactAddress)

Contact information.

phoneNo
string or null [ 0 .. 30 ] characters
Default: ""

Phone number

email
string or null <email> [ 0 .. 80 ] characters
Default: ""

E-mail address

orderType
required
string (OrderTypeString)

Wrapper type for to use with strings.

Enum: "Normal" "Replenishment" "Batch"
company
required
string (OrderCompanyString)

Wrapper type for to use with strings.

Enum: "B2B" "US"
required
object (IOrderCustomerAddress)

Customer information.

required
Array of objects (IOrderLineCreateRequest)

Order lines

Responses
200

The created order(s).

202

Request for creation of the order has been accepted, but results can not be returned before processing completes.

400

Bad Request

401

Unauthorized

403

Forbidden

409

Conflict

422

Unprocessable Entity

500

Internal Server Error

503

Service Unavailable

post/api/v0.2/Order
Request samples
[
  • {
    }
]
Response samples
[
  • {
    }
]

Get orders with all attached properties.

SecurityOAuth2
Request
query Parameters
ExternalDocumentNo
string [ 0 .. 20 ] characters

Filter by external document no. (Unique order reference).

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Orders with all attached properties.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Orders/Full
Response samples
[
  • {
    }
]

Get orders.

SecurityOAuth2
Request
query Parameters
ExternalDocumentNo
string [ 0 .. 20 ] characters

Filter by external document no. (Unique order reference).

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Orders.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Orders
Response samples
[
  • {
    }
]

Get order lines.

SecurityOAuth2
Request
query Parameters
ExternalDocumentNo
string [ 0 .. 20 ] characters

Filter by external document no. (Unique order reference).

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Order lines.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/Orders/Lines
Response samples
[
  • {
    }
]

SalesOrders

The sales orders API endpoints allows once to fetch either full sales orders with lines or headers and lines individually.

Sales orders can be fetched either by their no or as deltas using sequence no.

These endpoints expose all sales orders as opposed to the orders APIs that only expose orders created using connect.

Get sales orders with all attached properties.

SecurityOAuth2
Request
query Parameters
OrderNo
string [ 0 .. 30 ] characters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Sales orders with all attached properties.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/SalesOrders/Full
Response samples
[
  • {
    }
]

Get sales orders.

SecurityOAuth2
Request
query Parameters
OrderNo
string [ 0 .. 30 ] characters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Sales orders.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/SalesOrders
Response samples
[
  • {
    }
]

Get sales order lines.

SecurityOAuth2
Request
query Parameters
OrderNo
string [ 0 .. 30 ] characters
FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Sales order lines.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/SalesOrders/Lines
Response samples
[
  • {
    }
]

ShipmentStatus

The shipment status API endpoint allows one to follow the status of an order, from approved approved to invoiced. The data will include shipment and invoice information.

Get shipment status.

SecurityOAuth2
Request
query Parameters
SalesOrderNo
string [ 0 .. 20 ] characters

Filter by sales order no.

ExternalDocumentNo
string [ 0 .. 35 ] characters

Filter by external document no.

FromDateTime
string <date-time>

Filter by results having been updated after, and including, this date and time.

ToDateTime
string <date-time>

Filter results having been updated before, and including, this date and time.

Limit
integer <int32> [ 1 .. 1000 ]

Max. records to return. Range 1-1000.

Example: Limit=50
FromSequenceNo
integer <int64> >= 0

Filter result by sequence no. being greater than this value.

Responses
200

Shipment status.

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

503

Service Unavailable

get/api/v0.2/Sync/ShipmentStatus
Response samples
[
  • {
    }
]