Skip to main content

Hubble APIs for In2log (1.0.0)

Getting started

Hubble is the customer portal of In2log. It is a web platform that provides:

  • web access for In2log customers
  • a set of open APIs for automated communication with In2log services

Scope

This API documentation describes how to use Hubble for In2log warehouse and transportation operations.

A separate API documentation is available for In2log Freight Forwarding operations.

Implementation guidelines

To fully automate data exchange with In2log, the following flows should be implemented.

Note: This implementation is not strictly mandatory. A hybrid mode is possible, where part of the data is created or uploaded in bulk via Excel through the web platform.

Master data

Note: Master data can be embedded within logistics data. Refer to each API resource for more details.

Two categories of master data are required to operate with In2log warehouse services.

Variants (aka SKUs)

See Variants resource.

A Variant (SKU) is the smallest unit used for order and stock management. It contains the logistics data required for storage and picking operations: code, name, barcode (EAN), and packaging information (quantity per box, weight, dimensions, etc.).

Notes:

  • SKU objects can be embedded within inbound deliveries. In this case, the platform automatically creates or updates the SKU master data and deduplicates entries based on the SKU code
  • If In2log warehouse enriches or validates item master data at reception (e.g. measuring or weighing products), you can retrieve the updated data via the API

To create a new variant, use POST Variant or nest the variant in your Purchase Order.

To retrieve updated variants and synchronize logistics data in your systems, use GET Variants with:

  • updatedAt[after]=timestamp of last query

Variant packagings

If your SKUs have multiple packaging levels (e.g. inner cartons, outer cartons), you can define them using Variant Packaging.

You can create multiple packagings for a Variant that has been created previously by using the POST VariantPackaging operation.

In the same way than Variants, you can retrieve updated variant packagings and synchronize logistics data (dimensions, weight) in your systems,by using the GET VariantPackagings resource.

Connections

See Connections resource.

Connections represent entities that exchange goods with In2log warehouses (suppliers, customers, delivery addresses, etc.). They include name, contact, and address information.

Depending on the use case, connections must be assigned a specific relationship type:

  • Manufacturer: suppliers, used to facilitate goods receiving
  • Customer: B2B delivery points
  • Marketplace: B2C end customers
  • Entity: billing entity, if applicable

To create a new connection, use POST Connection.

Notes:

  • You may use a generic supplier, especially if goods originate from your own distribution center
  • For B2C (and non-recurring B2B customers), the consignee can be embedded directly within sales orders

Logistics orders

Warehouses

You can list the warehouses available under your contract by calling Warehouse Client resource.

Warehouses are returned in the warehouse field of the WarehouseClient resource.

Purchase Orders

See Purchase Orders resource.

To notify In2log of an incoming delivery, use POST PurchaseOrder.

At minimum, this information must include:

  • a unique reference number for operational identification
  • ideally, the origin supplier (defined as a Connection)
  • the destination warehouse (as retrieved in Warehouse Client)
  • a list of expected SKUs and quantities to be received

Sales Orders

See Sales Orders resource.

To send delivery orders to an In2log warehouse, use POST SalesOrder.

At minimum, this information must include:

  • a unique reference number for operational identification
  • consignee information (defined as a Connection)
  • the origin warehouse (as retrieved in Warehouse Client)
  • a list of SKUs and quantities to be shipped

You may also specify:

  • the carrier or carrier service to be used, or rely on Hubble's carrier selection logic
  • requested lot, serial number, or stock owner for fulfillment

Feedback to your systems

To automate your internal processes or retrieve operational data, you can query Hubble’s APIs.

Retrieve logistics order confirmations

Receiving confirmation

You can retrieve receiving confirmations by calling back the Purchase Order resource: GET Purchase Orders with the following query parameters:

  • status.code=80 (or 75 for partial reception)
  • updatedAt[after]=timestamp of last query

Shipment confirmation

See Fulfillments resource.

Fulfillment is a shipment of goods for a given Sales Order. They are created by In2log WMS. A single order may generate multiple fulfillments in case of partial shipments. If some goods can't be shipped, it will generated unfulfillable lines.

You can retrieve latest fulfillments by querying GET Fulfillments:

  • createdAt[after]=timestamp of last query

Alternatively, you can query GET Sales Orders for more detailed fulfillment status information.

Retrieve Packing List and Transportation Status

Shipping Units

See Shipping Units resource.

A Shipping Unit represents a parcel used to pack a sales order and serves as the base entity for transportation tracking.

Shipping Units are automatically created by In2log WMS. When track & trace is enabled and the carrier is supported, they are updated by the tracking service.

To understand how an order has been packed, use GET Shipping Units to retrieve the status and contents of Shipping Units associated with a specific Sales Order.

When track & trace is enabled, Shipping Unit statuses evolve over time. Instead of polling Shipping Units, it is recommended to rely on Shipping Unit Events to monitor status changes more efficiently.

Alternatively, you can retrieve transportation information at the order level using GET Sales Orders, which provides:

  • the overall transportation status (transportationStatus)
  • the related Shipping Units (shippingUnits)

Shipping Unit Events

See Shipping Unit Events resource.

When track & trace is enabled and the carrier is supported, the system generates Shipping Unit Events for each transportation update received from the carrier.

Some events also update the Shipping Unit status—for example, setting it to Delivered when the shipment is completed.

Use GET Shipping Unit Events to retrieve the latest transportation events and integrate real-time tracking data into your system.

Retrieve stock information

Physical stocks

See Stocks resource.

Retrieve stock levels using GET Stocks, per SKU and at the lowest granularity managed in Hubble.

Quantities include:

  • Available stock: quantities available for picking
  • Allocated stock: quantities assigned to sales orders not yet shipped
  • Incoming stock: quantities on purchase orders not yet received
  • Locked stock: quantities blocked in the WMS (not sellable)

Stock movements

See Stock Movements resource.

Stock movements track any inventory changes not related to reception or shipment (e.g. damage, loss).

Retrieve stock movements using GET Stock Movements if you need to synchronize them to your systems.

Technical implementation

Authentication

Hubble APIs are accessed using a Bearer token. Tokens are valid for one year.

Date and time

All timestamps are expressed in UTC, with ISO-8601 format. For example: 2024-01-01T14:00:00+00:00

Base URLs

Production: api.thehubble.co
Sandbox: api.sandbox.thehubble.co

Connections

Create new Connection

Create a new connection, such as supplier, customer, or others.

Request Body schema:

The new Connection resource

company
required
integer

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

code
string <= 14 characters unique

Code of the connection. Can be empty if using Hubble's counters

name
required
string <= 30 characters

Name of the connection

relationship
required
string
Enum: "Manufacturer" "Customer" "Marketplace" "Entity"

Depending on the use case, connections must be assigned different relationship

  • Manufacturer: for suppliers, used to facilitate goods receiving
  • Customer: for B2B delivery points
  • Marketplace: for B2C end customers
  • Entity: for billing information, if applicable
countryCode
string or null

country (ISO alpha-2)

state
string or null

State or province

city
string or null

City

zipcode
string or null

Zipcode

streetAddress
string or null

Address line 1

streetAddress2
string or null

Address line 2

streetAddress3
string or null

Address line 3

email
string or null

Contact email

contactName
string or null

Contact name

phone
string or null

Contact phone number

Responses

Request samples

Content type
{
  • "company": 1,
  • "code": "SUPPLIER01",
  • "name": "MY BEST SUPPLIER",
  • "relationship": "Manufacturer",
  • "countryCode": "CN",
  • "state": "Guangdong",
  • "city": "Anytown",
  • "zipcode": "12345A",
  • "streetAddress": "123 Main street",
  • "streetAddress2": null,
  • "streetAddress3": null,
  • "email": "john.dow@example.com",
  • "contactName": "John Doe",
  • "phone": "1234567890"
}

Response samples

Content type
{
  • "id": 1,
  • "company": 1,
  • "code": "SUPPLIER01",
  • "name": "MY BEST SUPPLIER",
  • "relationship": "Manufacturer",
  • "countryCode": "CN",
  • "state": "Guangdong",
  • "city": "Anytown",
  • "zipcode": "12345A",
  • "streetAddress": "123 Main street",
  • "streetAddress2": null,
  • "streetAddress3": null,
  • "email": "john.dow@example.com",
  • "contactName": "John Doe",
  • "phone": "1234567890"
}

List Connections

List Connections

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

name
string.*

Search for connections, by name.

code
string

Query one connections for a specific code

code[]
Array of strings

Query connections based on a list of codes

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

Query connection by type

Responses

Response samples

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

Variants

Create new Variant

Create a new Variant in Hubble.

Request Body schema:

The new Variant resource

company
required
integer

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

sku
required
string <= 17 characters unique

SKU code

name
required
string

SKU name

description1
string

SKU long description

ean
required
string

EAN of the selling unit

length
number

Length of the product in cm

width
number

Width of the product in cm

height
number

Height of the product in cm

grossWeight
number

Weight of the selling unit, in kg

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",
  • "length": 120.5,
  • "width": 83,
  • "height": 15.5,
  • "grossWeight": 0.5
}

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",
  • "length": 120.5,
  • "width": 83,
  • "height": 15.5,
  • "grossWeight": 12.5
}

List Variants

List Variants

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

name
string.*

Search for Variant, by name.

sku
string

Query one Variant for a specific SKU code

code[]
Array of strings

Query Variants based on a list of SKU codes

Responses

Response samples

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

Variant Packagings

Create a new Variant Packaging

Authorizations:
None
Request Body schema:
variant
required
string

IRI of the associated variant (SKU).

code
required
string or null

Packaging code (e.g. INNER_CARTON or OUTER_CARTON). Must be unique per variant.

ean
string or null

EAN barcode associated with this packaging level.

quantity
integer or null

Number of base units (eaches) contained in this packaging.

length
number or null <float>

Length of the packaging in centimeters (cm).

width
number or null <float>

Width of the packaging in centimeters (cm).

height
number or null <float>

Height of the packaging in centimeters (cm).

grossWeight
number or null <float>

Total weight of the packaging including contents, in kilograms (kg).

netWeight
number or null <float>

Weight of the contents excluding packaging, in kilograms (kg).

level
string or null
Enum: "PCB" "SPCB" "UVC"

Matching packaging hierarchy level for In2log WMS:

  • PCB for master cartons or outer cartons
  • SPCB for inner cartons
  • UVC for piece level packagings (each)
type
string or null

Type of packaging (e.g. BOX, PALLET, BAG).

supplier
string or null

Id of the associated supplier connection.

Responses

Request samples

Content type
{
  • "variant": "/api/variants/1",
  • "code": "OUTER_CARTON",
  • "ean": "5901234123457",
  • "quantity": 6,
  • "length": 30.5,
  • "width": 20,
  • "height": 10,
  • "grossWeight": 1.5,
  • "netWeight": 1.2,
  • "level": "PCB",
  • "type": "BOX",
  • "supplier": 5
}

Response samples

Content type
{
  • "id": 42,
  • "variant": {
    },
  • "code": "OUTER_CARTON",
  • "ean": "5901234123457",
  • "quantity": 6,
  • "length": 30.5,
  • "width": 20,
  • "height": 10,
  • "grossWeight": 1.5,
  • "netWeight": 1.2,
  • "level": "PCB",
  • "type": "BOX",
  • "supplier": {
    },
  • "createdAt": "2024-01-15T10:30:00+00:00",
  • "updatedAt": "2024-01-15T10:30:00+00:00"
}

List Variant Packagings

query Parameters
page
integer
Default: 1

Page number for pagination

itemsPerPage
integer
Default: 30

Number of items per page

ean
string

Filter by exact EAN code

code
string

Filter by exact packaging code

variant
string

Filter by exact variant IRI (e.g. /api/variants/1)

variant.name
string

Filter by partial variant name

variant.sku
string

Filter by exact variant SKU

order[createdAt]
string
Enum: "asc" "desc"

Order by creation date

order[updatedAt]
string
Enum: "asc" "desc"

Order by last update date

Responses

Response samples

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

Warehouse Clients

List Warehouses assigned to your company

Authorizations:
None
query Parameters
page
integer
Default: 1
itemsPerPage
integer
Default: 30
company.id
integer

Filter by exact company ID

company
string

Filter by exact company IRI (e.g. /api/companies/1)

warehouse
string

Filter by exact warehouse IRI

Responses

Response samples

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

Purchase Orders

Create new Purchase Order

Create a new Purchase Order 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 <= 27 characters unique

Unique identifier to identify operationally the delivery, used as a reference for receiving.

referenceNumber
string

Additional reference number

warehouseLocation
required
integer

ID of the warehouse where the goods are shipped to

supplier
required
integer

ID of Connection resource used as supplier

orderType
string

Purchase order type

dueAt
string <date-time>

Planned receiving date in warehouse (UTC)

required
Array of objects (PurchaseOrderLineItem)

Responses

Request samples

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

Response samples

Content type
{
  • "company": 1,
  • "orderNumber": "PO-2600021",
  • "referenceNumber": null,
  • "warehouseLocation": {
    },
  • "orderType": "string",
  • "dueAt": "2024-01-01T14:00:00+00:00:00",
  • "receivedAt": "2024-01-01T15:22:18+00:00:00",
  • "status": {
    },
  • "purchaseOrderLineItems": [
    ]
}

List Purchase Orders

List Purchase Orders

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

orderNumber
string.*

Search for a specific order number.

referenceNumber
string

Search for a specific reference number

status.code
string
Enum: 10 20 70 75 80 95 99

Query by receiving status:

  • 10: Created
  • 20: The Reception has been synchronized with WMS
  • 70: On docks
  • 75: Partially received
  • 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": {
    }
}

Sales Orders

Create new Sales Order

Create a new Sales Order in Hubble.

Request Body schema:

The new Sales 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
string

Customer's order number

warehouseLocation
required
integer

ID of the warehouse where the goods are shipped from

required
integer or Connection (object)
integer or Connection (object)
required
Array of objects (SalesOrderLineItem)

Order lines

Responses

Request samples

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

Response samples

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

List Sales Orders

List Sales Orders

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

orderNumber
string.*

Search for a specific order number.

externalOrderNumber
string

Search for a specific external order number

status.code
string
Enum: 10 20 30 35 40 50 75 80 95 99

Query by fulfillment status:

  • 10: Created
  • 20: The Order has been synchronized with WMS
  • 30: The Order has been waved in WMS
  • 35: Picking has started for the order
  • 40: Picking is finished for the order
  • 50: Order has been packed
  • 75: Order is partially shipped
  • 80: Order has been 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": {
    }
}

Fulfillments

List fulfillments

query Parameters
page
integer
Default: 1

Page number for pagination

itemsPerPage
integer
Default: 30

Number of items per page

id
integer

Filter by exact ID

company.id
integer

Filter by exact company ID

company
string

Filter by exact company IRI (e.g. /api/companies/1)

fulfillmentNumber
string

Filter by exact fulfillment number

status
string

Filter by exact status IRI

status.code
string

Filter by exact status code

warehouse
string

Filter by exact warehouse IRI

warehouse.id
integer

Filter by exact warehouse ID

salesOrder
string

Filter by exact sales order IRI

salesOrder.id
integer

Filter by exact sales order ID

salesOrder.orderNumber
string

Filter by exact sales order number

salesOrder.externalOrderNumber
string

Filter by exact sales order external order number

order
string

Filter by exact order IRI

order.id
integer

Filter by exact order ID

order.orderNumber
string

Filter by exact order number

order.externalOrderNumber
string

Filter by exact order external order number

shipment
string

Filter by exact shipment IRI

shipment.id
integer

Filter by exact shipment ID

trackingNumber
string

Filter by exact tracking number

carrier
string

Filter by exact carrier IRI

carrier.id
integer

Filter by exact carrier ID

carrierService
string

Filter by exact carrier service IRI

carrierService.id
integer

Filter by exact carrier service ID

createdAt[before]
string <date-time>

Filter by createdAt before date

createdAt[strictly_before]
string <date-time>
createdAt[after]
string <date-time>
createdAt[strictly_after]
string <date-time>
updatedAt[before]
string <date-time>
updatedAt[strictly_before]
string <date-time>
updatedAt[after]
string <date-time>
updatedAt[strictly_after]
string <date-time>
fulfilledAt[before]
string <date-time>

Filter by fulfilledAt before date (null values excluded)

fulfilledAt[strictly_before]
string <date-time>
fulfilledAt[after]
string <date-time>
fulfilledAt[strictly_after]
string <date-time>
order[id]
string
Enum: "asc" "desc"
order[createdAt]
string
Enum: "asc" "desc"
order[updatedAt]
string
Enum: "asc" "desc"
order[fulfillmentNumber]
string
Enum: "asc" "desc"
order[fulfilledAt]
string
Enum: "asc" "desc"

Responses

Response samples

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

Shipping Units

List Shipping Units

List Shipping Units

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

shippingTrackingNumber
string
shippingUnitNumber
string
shipment.shipmentNumber
string
shippingUnitStatus
string
shippingUnitStatus[]
Array of strings
shippingUnitStatus.code
string
shippingUnitStatus.code[]
Array of strings
shipTo.name
string
salesOrder.orderNumber
string
createdAt[before]
string
createdAt[strictly_before]
string
createdAt[after]
string
createdAt[strictly_after]
string
updatedAt[before]
string
updatedAt[strictly_before]
string
updatedAt[after]
string
updatedAt[strictly_after]
string
completedAt[before]
string
completedAt[strictly_before]
string
completedAt[after]
string
completedAt[strictly_after]
string

Responses

Response samples

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

Shipping Unit Events

List Shipping Unit Events

query Parameters
page
integer
Default: 1

Page number for pagination

itemsPerPage
integer
Default: 30

Number of items per page

severity
integer

Filter by exact severity level

shippingUnitStatus.code
string

Filter by exact shipping unit status code

Responses

Response samples

Content type
{
  • "id": 0,
  • "shippingUnit": {
    },
  • "occurredAt": "2019-08-24T14:15:22Z",
  • "location": "string",
  • "latitude": 0,
  • "longitude": 0,
  • "message": "string",
  • "statusDetail": "string",
  • "shippingUnitStatus": {
    },
  • "severity": 0,
  • "updatedBy": "../словник",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Stocks

List Stocks

List Stocks

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

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": {
    }
}

Stock Movements

List Stock Movements

List Stock Movements

query Parameters
page
integer
Default: 1

The collection page number

itemsPerPage
integer [ 0 .. 10000 ]
Default: 30

The number of items per page

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": {
    }
}