Skip to main content

Hubble APIs for VU Logistics (1.2.0)

Getting started

Hubble is the customer portal of VU Logistics. It is a web platform that offers:

  • a web access for VU Logistics customer
  • a set of open APIs for automatic communication with VU Logistics services

Minimum implementation

In order to fully automate data feed to VU Logistics, the following flows need to be implemented:

Note: This implementation is not fully mandatory: it is possible to implement a hybrid mode where part of the data is uploaded from Excel through the web platform.

Master data

2 categories of master data is required to communicate with VU Logistics:

  • SKUs: this is the smallest unit for managing stock. For furniture with several parcels (= components), each parcel is a SKU. See POST SKU
  • Suppliers: entity that deliver goods to VU Logistics warehouses, used to facilitate receiving of your goods. See POST Supplier

Note: it is possible to nest SKU object in any Reception. In that case, the platform will feed SKU Master from reception data and will automatically deduplicate data based on SKU code

Logistics data

  • In order to inform VU Logistics of an incoming delivery, use POST Reception
  • In order to send your customer orders to VU Logistics warehouse , use POST Order

Get feedback

In order to automatize processes in your systems, or get data if necessary, you can retrieve data from Hubble open APIs

Logistics statuses

Receiving confirmation: you can get receiving confirmation by using GET Receptions and using the below query parameters:

  • status.code=80
  • updatedAt[after]=timestamp of last query

Order status and transportation information: you can get shipment confirmation by using GET Orders and using the below query parameters:

  • fulfillmentStatus.code=80
  • updatedAt[after]=timestamp of last query

Stocks

Stocks: you can retrieve stocks by using GET Stocks

Stocks movements: you can retrieve stocks movements (all stock changes not due to reception or shipment: for example change to damage, stock loss, ...) by using GET Stocks movements

Technical

Authentication

Hubble APIs can be accessed by Bearer token. The token is valid for one year.

Date and times

All times are recorded in UTC timezone.

Base URLs

Production: api.thehubble.co

Sandbox: api.sandbox.thehubble.co

Suppliers

Create new Supplier

In Hubble suppliers are one type of Connection. To create a new supplier in Hubble, please use the endpoint /connections, specifying the relationship as Manufacturer

Request Body schema:

The new Supplier resource

company
required
integer

Id of your company in Hubble. Please contact the team to get the value.

code
required
string unique

Code of the supplier

name
required
string

Name of the supplier

relationship
required
string

Type of the connection. For suppliers, use Manufacturer

Responses

Request samples

Content type
{
  • "company": 1,
  • "code": "SUPPLIER01",
  • "name": "MY BEST SUPPLIER",
  • "relationship": "Manufacturer"
}

Response samples

Content type
{
  • "id": 1,
  • "code": "SUPPLIER01",
  • "name": "MY BEST SUPPLIER",
  • "relationship": "Manufacturer"
}

Retrieves the collection of Supplier resources.

Retrieves the collection of Supplier resources.

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

pagination
boolean

Enable or disable pagination

name
string.*

Search for suppliers, by name.

code
string

Query one supplier for a specific code

code[]
Array of strings

Query suppliers based on a list of codes

relationship
string
Enum: "Manufacturer" "Customer" "Marketplace" "Entity" "Forwarder" "Warehouse"

Query connection by type. For suppliers, use Manufacturer

Responses

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

SKUs

Create new SKU

Create a new SKU in Hubble.

Request Body schema:

The new SKU resource

company
required
integer

Id of your company in Hubble. Please contact the team to get the value.

sku
required
string <= 14 characters unique

SKU code

name
required
string

SKU name

description1
string

SKU long description

ean
required
string

EAN of the selling unit

eanBox
string

EAN of the master carton. To be provided if quantity per box > 1

quantityPerBox
required
number > 0

Number if selling unit in a full master carton

length
required
number > 0

Length of the product in cm

width
required
number > 0

Width of the product in cm

height
required
number > 0

Height of the product in cm

grossWeight
required
number > 0

Weight of the selling unit, in kg

grossWeightBox
required
number > 0

Weight of the master carton, in kg

buyPrice
required
number > 0

Product value, used for transportation claims

supplier
required
integer

Id of the Supplier resource.

Responses

Request samples

Content type
{
  • "company": 1,
  • "sku": "SKU001",
  • "name": "MY BEST SKU",
  • "description1": "Queen Bed Frame Heavy Duty Low Profile Metal Platform No Box Spring Needed, Easy to Assembly, Noise Free, Black",
  • "ean": "3131781932260",
  • "eanBox": "23131781932260",
  • "quantityPerBox": 24,
  • "length": 120.5,
  • "width": 83,
  • "height": 15.5,
  • "grossWeight": 12.5,
  • "grossWeightBox": 12.5,
  • "buyPrice": 30.9,
  • "supplier": "id"
}

Response samples

Content type
{
  • "id": 1,
  • "sku": "SKU001",
  • "name": "MY BEST SKU",
  • "description1": "Queen Bed Frame Heavy Duty Low Profile Metal Platform No Box Spring Needed, Easy to Assembly, Noise Free, Black",
  • "ean": "3131781932260",
  • "eanBox": "23131781932260",
  • "quantityPerBox": 24,
  • "length": 120.5,
  • "width": 83,
  • "height": 15.5,
  • "grossWeight": 12.5,
  • "grossWeightBox": 12.5,
  • "buyPrice": 30.9,
  • "supplier": {
    }
}

Retrieves the collection of Supplier resources.

Retrieves the collection of Supplier resources.

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

pagination
boolean

Enable or disable pagination

name
string.*

Search for SKU, by name.

sku
string

Query one SKU for a specific code

code[]
Array of strings

Query SKUs based on a list of codes

Responses

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Receptions

Create new Reception

Create a new Reception in Hubble.

Request Body schema:

The new Reception resource

company
required
integer

Id of your company in Hubble. Please contact the team to get the value.

orderNumber
required
string <= 13 characters unique

Delivery number used as a reference for receiving. For containers, please use Container number

referenceNumber
string

Purchase order number, displayed on the BL

warehouseLocation
required
integer

ID of the warehouse where the goods are shipped to. For Amblainville warehouse, always 13

supplier
required
integer

ID of Supplier resource

orderType
string
Enum: "SEMI" "CONT20" "CONT40" "CONT40HC" "CONT45HC"

Delivery type can be one of the following :

  • SEMI : When delivery to the Warehouse is done by truck
  • CONT20: When delivery to the Warehouse is done by container 20 feet
  • CONT40: When delivery to the Warehouse is done by container 40 feet
  • CONT40HC: When delivery to the Warehouse is done by container 40 feet High Cube
  • CONT45HC: When delivery to the Warehouse is done by container 45 feet High Cube
object (POAttributes)

Non-mandatory attributes for Receptions

dueAt
required
string <date-time>

ETA in warehouse (UTC)

required
Array of objects (PurchaseOrderLineItem)

Responses

Request samples

Content type
{
  • "company": 1,
  • "orderNumber": "CMDU1234569",
  • "referenceNumber": "PO123456-1",
  • "warehouseLocation": 13,
  • "supplier": 1,
  • "orderType": "STANDARD",
  • "attributes": {
    },
  • "dueAt": "2024-01-01T14:00:00+00:00:00",
  • "purchaseOrderLineItems": [
    ]
}

Response samples

Content type
{
  • "company": 1,
  • "orderNumber": "CMDU1234569",
  • "referenceNumber": "PO123456-1",
  • "warehouseLocation": 13,
  • "orderType": "STANDARD",
  • "attributes": {
    },
  • "dueAt": "2024-01-01T14:00:00+00:00:00",
  • "receivedAt": "2024-01-01T15:22:18+00:00:00",
  • "status": {
    },
  • "purchaseOrderLineItems": [
    ]
}

Retrieves the collection of Receptions resources.

Retrieves the collection of Receptions resources.

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

pagination
boolean

Enable or disable pagination

orderNumber
string.*

Search for a specific order number.

referenceNumber
string

Search for a specific reference number

status.code
string
Enum: 10 20 80 95 99

Query by receiving status:

  • 10: Created
  • 20: The Reception has been synchronized with WMS
  • 80: Received
  • 95: Cancellation requested
  • 99: Cancelled
status.code[]
Array of strings

Query by several receiving statuses

createdAt[before]
string <date-time>

Query receptions created before a given timestamp

createdAt[after]
string <date-time>

Query receptions created after a given timestamp

updatedAt[before]
string <date-time>

Query receptions updated after a given timestamp

updatedAt[after]
string <date-time>

Query receptions updated before a given timestamp

receivedAt[before]
string <date-time>

Query receptions received before a given timestamp

receivedAt[after]
string <date-time>

Query receptions received after a given timestamp

Responses

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Orders

Create new Order

Create a new Order in Hubble.

Request Body schema:

The new Order resource

company
required
integer

Id of your company in Hubble. Please contact the team to get the value.

orderNumber
required
string <= 17 characters unique

Order number

externalOrderNumber
required
string

Customer's order number

deliveryMode
string
Enum: "ECO" "STANDARD" "UNPACKING" "MOUNTING"

Delivery mode can be one of the following :

  • ECO for a delivery in the street close to the home
  • STANDARD for a delivery in a home
  • UNPACKING for a delivery in the home and removal of the packaging
  • MOUNTING for a delivery in the home with the mounting of the product
warehouseLocation
required
integer

ID of the warehouse where the goods are shipped from. For Amblainville warehouse, always 13

required
object (ShipTo)

Receiver's information

required
Array of objects (SalesOrderLineItem)

Order lines

Array of objects (ServiceLineItem)

Service lines can be used to request take back of old products at the same time than delivery, for destruction

Responses

Request samples

Content type
{
  • "company": 1,
  • "orderNumber": "ORDER-0001",
  • "externalOrderNumber": "CO-0123",
  • "deliveryMode": "STANDARD",
  • "warehouseLocation": 13,
  • "shipTo": {
    },
  • "salesOrderLineItems": [
    ],
  • "serviceLineItems": [
    ]
}

Response samples

Content type
{
  • "company": 1,
  • "orderNumber": "ORDER-0001",
  • "externalOrderNumber": "CO-0123",
  • "deliveryMode": "STANDARD",
  • "warehouseLocation": 13,
  • "shipTo": {
    },
  • "salesOrderLineItems": [
    ],
  • "serviceLineItems": [
    ],
  • "shippedAt": "2024-01-01T15:22:18+00:00:00",
  • "fulfillmentStatus": {
    },
  • "transportationStatus": {
    },
  • "attributes": {
    }
}

Retrieves the collection of Orders resources.

Retrieves the collection of Orders resources.

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

pagination
boolean

Enable or disable pagination

orderNumber
string.*

Search for a specific order number.

externalOrderNumber
string

Search for a specific external order number

status.code
string
Enum: 10 20 80 95 99

Query by fulfillment status:

  • 10: Created
  • 20: The Order has been synchronized with WMS
  • 80: Shipped
  • 95: Cancellation requested
  • 99: Cancelled
status.code[]
Array of strings

Query by several fulfillment statuses

createdAt[before]
string <date-time>

Query orders created before a given timestamp

createdAt[after]
string <date-time>

Query orders created after a given timestamp

updatedAt[before]
string <date-time>

Query orders updated after a given timestamp

updatedAt[after]
string <date-time>

Query orders updated before a given timestamp

receivedAt[before]
string <date-time>

Query orders shipped before a given timestamp

receivedAt[after]
string <date-time>

Query orders shipped after a given timestamp

Responses

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Stocks

Retrieves the collection of Stocks resources.

Retrieves the collection of Stocks resources.

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

pagination
boolean

Enable or disable pagination

variant.id
string

Query by SKU id

variant.id[]
Array of strings

Query by several SKU ids

variant.sku
string

Query for a given SKU code

Responses

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}

Retrieves the collection of Stock Movements resources.

Retrieves the collection of Stock Movements resources.

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

pagination
boolean

Enable or disable pagination

variant.id
string

Query by SKU id

variant.id[]
Array of strings

Query by several SKU ids

variant.sku
string

Query for a given SKU code

createdAt[before]
string <date-time>

Query movements created before a given timestamp

createdAt[after]
string <date-time>

Query movements created after a given timestamp

Responses

Response samples

Content type
{
  • "hydra:member": [
    ],
  • "hydra:totalItems": 0,
  • "hydra:view": {
    },
  • "hydra:search": {
    }
}