Glue Warehouse service API-s

Overview

This document describes APIs that are available to integrate your own system with Posti’s warehouse service. See service description of the warehouse service at Warehouse service for ecommerce (in English) / Varastopalvelu verkkokauppiaille (in Finnish). Posti’s warehouse service is using the subset of the features provided Glue API’s, which enables dropshipping service also. The Glue is platform which provides Posti’s warehouse and dropshipping service.

Authentication of APIs is based on oAuth, which is described at Posti Authentication API. Once you have agreed to take warehouse service into use and decided to make integration to the warehouse service, Posti will send you API keys for the test and production environment. Use always test environment during the development. Posti will check your integration before you can go live.

When you take the service into use, you need to create your products to Glue before you can send orders to warehouse. Most likely the User Interface (UI) of the warehouse service is fastest method to create products if you have small amount products.

Following picture shows the flow when using APIs. You can make all operations using the User Interface, and almost all warehouse operations can be done by APIs also. You can implement only those APIs that are essential for you business. Inbound delivery is normally done via UI so you don’t need to think about it when developing integration.


GlueWarehouseServiceFlow

As a developer, do the following:

  1. Start from authentication. You need test account, which is provided by Posti. Test account is dedicated for Posti’s customer who has valid contract for the warehouse service.
  2. Create products 1) using the UI of the warehouse service at glue.helium.posti.com (test environment) / glue.posti.com (production) OR Products API (see description below)
  3. Create Sales Order with Orders API
  4. Contact Posti to validate content of your order message.
  5. Continue to develop other integrations

    Poll order statuses
    Poll product quantities

API Endpoints

Environment Protocol Host
Test HTTPS argon.ecom-api.posti.com
Prod HTTPS ecom-api.posti.com

Create Sales Order and poll its' status (Orders API)

Sales Order means, e.g. purchase of your products from on-line shop by end-customer, and order is fulfilled by warehouse. The Sales Order placed to warehouse service must have unique order ID. There are two options to form the unique order ID:

  1. Let the Glue to create the unique Order ID and send your own order ID in references.
  2. Order ID is provided by online shop with prefix, which is your company’s business ID.

Examples of both options are shown below.

Following table lists attributes that are import for the deliveries - wrong values result error in order handling:

externalId - This is order ID, maximum length is 20 characters. This must have your business ID as a prefix. Format is as follows: {business ID}-{unique order ID}.

The Glue creates the unique order ID in case this field is missing. Then order ID is returned in responce message and you shooul store it in your own system.

references.SO - This is additional reference for your order OR it can be used for order ID if you let the Glue to generate primary order ID.

deliveryAddress - recipient of the order. Include mobile phone number or email, preferably both, as they are used to send notice of arrival to recipient. “name” can include recipient’s name and Posti pick-up point name e.g. “Firstname Lastname c/o Posti pick-up point”

if “serviceCode” is “NOUTO” (pick up from warehouse) then email address is mandatory.

externalWarehouseId - This is system ID for the warehouse and it tells in which warehouse the product is stored and shipped from. It is always fixed value in case you have one warehouse at Posti, which is the most common case. The value is provided by Posti.

externalProductId - Unique product ID, maximum 20 characters. This must have your business ID as a prefix. Format is as follows: {business ID}-{unique product ID}. This product must be created in warehouse before your send the first sales order.

serviceCode - This is delivery method for the order. Following delivery services are supported by warehouse service:

Service and description serviceCode
Postipaketti (Postal parcel), delivery to Posti outlet or parcel locker. 2103
Pikkupaketti (small parcel), delivery to home address 2143
Kotipaketti (Home delivery), delivery to home addresses. 2104
Express-paketti (Express-parcel), delivery to business address 2102
Express-paketti Aamuksi (Express-parcel, morning), delivery to business address 2101
Express-rahti (Express-freight) 2144
Express-rahti, aamuksi (Express freight, morning) 2143
Express-rahti, illaksi (Express freight, evening) 2145
Parcel Connect, international deliveries 2711
Postipaketti Baltiaan (Postal parcel Baltics), international deliveries 2331
Express Business Day Paketti (parcel), international deliveries 2317
Express Business Day Lava (pallet), international deliveries 2318
Pick up from warehouse NOUTO

Please note that if the delivery requires some value added-services, for example “Fragile” or “Oversized”, product information can have that information, and the value added service is automatically added to those orders that have products that require value added service.

pickupPointId - This is an additional identifier of the pick-up point address and its' value can be obtained from Location Service API (field name pupCode). You do not need to use this if delivery address is recipient’s own address. Note that you need separate authentication/credentials for the Location Service API, see more information at developer.posti.fi

Option 1) Order ID created by Glue and use your own order ID as reference

PUT /ecommerce/v3/order

Example payload
{
  "references" : [
    {
      "name" : "SO",
      "value" : "{your own order ID}"
    }
  ],
  "deliveryAddress": {
    "name": "Firstname Lastname c/o Posti pick up point",
    "streetAddress": "Recipient Street 1",
    "postalCode": "00230",
    "postOffice": "HELSINKI",
    "country": "FI",
    "telephone": "0501234567",
    "email": "firstname.lastname@recipient.fi"
  },
  "serviceCode": "2103",
  "pickupPointId":"002303200",
  "rows": [
    {
      "externalProductId": "{business ID}-{unique product ID 1}",
      "productEANCode": "product_id_1",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 1
    },
    {
      "externalProductId": "{business ID}-{unique product ID 2}",
      "productEANCode": "product_id_2",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 2
    }
  ]
}
    

Response
{
  "externalId": "PCJ-PQV-74Z",
  "clientId": "0109357-9",
  "metadata": {
    "insertDate": "2021-11-19T06:39:55.637+00:00",
    "updateDate": "2021-11-19T06:39:55.637+00:00",
    "documentType": "SalesOrder"
  },
  "references": [
    {
      "name": "SO",
      "value": "{your own order ID}"
    }
  ],
  "orderDate": "2021-11-19T08:39:55.636+02:00",
  "vendor": {
    "externalId": "0109357-9",
    "name": "Posti Oy",
    "streetAddress": "Postintaival 7 A 3 123 12",
    "postalCode": "00230",
    "postOffice": "Helsinki",
    "country": "FI",
    "telephone": "+358440300967",
    "email": "gluetests1@itella.com"
  },
  "sender": {
    "externalId": "0109357-9",
    "name": "Posti Oy",
    "streetAddress": "Postintaival 7 A 3 123 12",
    "postalCode": "00230",
    "postOffice": "Helsinki",
    "country": "FI",
    "telephone": "+358440300967",
    "email": "gluetests1@itella.com"
  },
  "deliveryAddress": {
    "name": "Firstname Lastname c/o Posti pick up point",
    "streetAddress": "Recipient Street 1",
    "postalCode": "00230",
    "postOffice": "HELSINKI",
    "country": "FI",
    "telephone": "0501234567",
    "email": "firstname.lastname@recipient.fi"
  },
  "serviceCode": "2103",
  "pickupPointId": "002303200",
  "status": {
    "value": "Created",
    "timestamp": "2021-11-19T08:39:55.529+02:00"
  },
  "rows": [
    {
      "externalProductId": "{business ID}-{unique product ID 2}",
      "productEANCode": "product_id_1",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 1
    },
    {
      "externalProductId": "{business ID}-{unique product ID 2}",
      "productEANCode": "product_id_2",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 2
    }
  ]
}
    

Option 2) Use your own order ID as primary order ID

Send your own order ID in “externalId”. Note that maximum length of the externalId is 20 characters.

PUT /ecommerce/v3/order

Example payload
{
  "externalId":"{business ID}-{your own order ID}",
  "deliveryAddress": {
    "name": "Firstname Lastname",
    "streetAddress": "Recipient Street 1",
    "postalCode": "00000",
    "postOffice": "HELSINKI",
    "country": "FI",
    "telephone": "0501234567",
    "email": "firstname.lastname@recipient.fi"
  },
  "serviceCode": "2103",
  "rows": [
    {
      "externalProductId": "{business ID}-{unique product ID 1}",
      "productEANCode": "product_id_1",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 1
    },
    {
      "externalProductId": "{business ID}-{unique product ID 2}",
      "productEANCode": "product_id_2",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 2
    }
  ]
}
    

Response
{
  "externalId": "{business ID}-{your own order ID}",
  "clientId": "0109357-9",
  "metadata": {
    "insertDate": "2021-11-19T06:42:45.132+00:00",
    "updateDate": "2021-11-19T06:42:45.132+00:00",
    "documentType": "SalesOrder"
  },
  "orderDate": "2021-11-19T08:42:45.132+02:00",
  "vendor": {
    "externalId": "0109357-9",
    "name": "Posti Oy",
    "streetAddress": "Postintaival 7 A 3 123 12",
    "postalCode": "00230",
    "postOffice": "Helsinki",
    "country": "FI",
    "telephone": "+358440300967",
    "email": "gluetests1@itella.com"
  },
  "sender": {
    "externalId": "0109357-9",
    "name": "Posti Oy",
    "streetAddress": "Postintaival 7 A 3 123 12",
    "postalCode": "00230",
    "postOffice": "Helsinki",
    "country": "FI",
    "telephone": "+358440300967",
    "email": "gluetests1@itella.com"
  },
  "deliveryAddress": {
    "name": "Firstname Lastname",
    "streetAddress": "Recipient Street 1",
    "postalCode": "00000",
    "postOffice": "HELSINKI",
    "country": "FI",
    "telephone": "0501234567",
    "email": "firstname.lastname@recipient.fi"
  },
  "serviceCode": "2103",
  "status": {
    "value": "Created",
    "timestamp": "2021-11-19T08:42:45.104+02:00"
  },
  "rows": [
    {
      "externalProductId": "{business ID}-{unique product ID 1}",
      "productEANCode": "product_id_1",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 1
    },
    {
      "externalProductId": "{business ID}-{unique product ID 2}",
      "productEANCode": "product_id_2",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 2
    }
  ]
}
    

Poll order status

You can poll order status to get information about delivered orders with tracking codes to your own system.

Following statuses are available:

Status Description
Viewed Order has been successfully transferred to warehouse. This status will be replaced with status “Submitted” in the beginning of 2022.
Submitted Order has been successfully transferred to warehouse. This is a new status which will be available in 2022.
Created Order has been successfully received by GLUE but not yet transferred to warehouse.
Delivered Order has been picked and packed, and it is ready for delivery. Tracking code of the delivery is available. Note that delivery may have multiple tracking codes.
Error This is caused be error in system. One reason can be invalid content of the order.
Cancelled Order has been cancelled. One of the reasons can be invalid product quantities or delivery problems.

You have following options to poll order status:

Orders changed since time stamp (e.g. 2021-11-16T00:01:22.000Z):

GET /ecommerce/v3/orders?updatedFrom=2021-11-16T00%3A01%3A22.000Z

Response
{
  "links": [],
  "content": [
    {
      "externalId": "PCJ-PQV-74Z",
      "clientId": "0109357-9",
      "metadata": {
        "insertDate": "2021-11-19T06:39:55.637+00:00",
        "updateDate": "2021-11-19T06:39:56.426+00:00",
        "documentType": "SalesOrder"
      },
      "references": [
        {
          "name": "SO",
          "value": "{your own order ID}"
        }
      ],
      "orderDate": "2021-11-19T08:39:55.636+02:00",
      "vendor": {
        "externalId": "0109357-9",
        "name": "Posti Oy",
        "streetAddress": "Postintaival 7 A 3 123 12",
        "postalCode": "00230",
        "postOffice": "Helsinki",
        "country": "FI",
        "telephone": "+358440300967",
        "email": "gluetests1@itella.com"
      },
      "sender": {
        "externalId": "0109357-9",
        "name": "Posti Oy",
        "streetAddress": "Postintaival 7 A 3 123 12",
        "postalCode": "00230",
        "postOffice": "Helsinki",
        "country": "FI",
        "telephone": "+358440300967",
        "email": "gluetests1@itella.com"
      },
      "deliveryAddress": {
        "name": "Firstname Lastname c/o Posti pick up point",
        "streetAddress": "Recipient Street 1",
        "postalCode": "00230",
        "postOffice": "HELSINKI",
        "country": "FI",
        "telephone": "0501234567",
        "email": "firstname.lastname@recipient.fi"
      },
      "serviceCode": "2103",
      "pickupPointId": "002303200",
      "totalWholeSalePrice": 0.0,
      "status": {
        "value": "Submitted",
        "timestamp": "2021-11-19T08:39:56.403+02:00"
      },
      "rows": [
        {
          "externalProductId": "{business ID}-{unique product ID 1}",
          "productEANCode": "product_id_1",
          "externalWarehouseId": "{warehouse ID}",
          "quantity": 1.0,
          "status": {
            "value": "Created",
            "timestamp": "2021-11-19T08:39:56.403+02:00"
          }
        },
        {
          "externalProductId": "{business ID}-{unique product ID 2}",
          "productEANCode": "product_id_2",
          "externalWarehouseId": "{warehouse ID}",
          "quantity": 2.0,
          "status": {
            "value": "Created",
            "timestamp": "2021-11-19T08:39:56.403+02:00"
          }
        }
      ]
    },
    {
      "externalId": "businessID-yourownorderID",
      "clientId": "0109357-9",
      "metadata": {
        "insertDate": "2021-11-19T06:42:45.132+00:00",
        "updateDate": "2021-11-19T06:42:45.912+00:00",
        "documentType": "SalesOrder"
      },
      "orderDate": "2021-11-19T08:42:45.132+02:00",
      "vendor": {
        "externalId": "0109357-9",
        "name": "Posti Oy",
        "streetAddress": "Postintaival 7 A 3 123 12",
        "postalCode": "00230",
        "postOffice": "Helsinki",
        "country": "FI",
        "telephone": "+358440300967",
        "email": "gluetests1@itella.com"
      },
      "sender": {
        "externalId": "0109357-9",
        "name": "Posti Oy",
        "streetAddress": "Postintaival 7 A 3 123 12",
        "postalCode": "00230",
        "postOffice": "Helsinki",
        "country": "FI",
        "telephone": "+358440300967",
        "email": "gluetests1@itella.com"
      },
      "deliveryAddress": {
        "name": "Firstname Lastname",
        "streetAddress": "Recipient Street 1",
        "postalCode": "00000",
        "postOffice": "HELSINKI",
        "country": "FI",
        "telephone": "0501234567",
        "email": "firstname.lastname@recipient.fi"
      },
      "serviceCode": "2103",
      "totalWholeSalePrice": 0.0,
      "status": {
        "value": "Submitted",
        "timestamp": "2021-11-19T08:42:45.903+02:00"
      },
      "rows": [
        {
          "externalProductId": "{business ID}-{unique product ID 1}",
          "productEANCode": "product_id_1",
          "externalWarehouseId": "{warehouse ID}",
          "quantity": 1.0,
          "status": {
            "value": "Created",
            "timestamp": "2021-11-19T08:42:45.903+02:00"
          }
        },
        {
          "externalProductId": "{business ID}-{unique product ID 2}",
          "productEANCode": "product_id_2",
          "externalWarehouseId": "{warehouse ID}",
          "quantity": 2.0,
          "status": {
            "value": "Created",
            "timestamp": "2021-11-19T08:42:45.903+02:00"
          }
        }
      ]
    }
  ],
  "page": {
    "size": 200,
    "totalElements": 2,
    "totalPages": 1,
    "number": 0
  }
}
    


Status of one order, based on your own order ID as reference (Option 1):

GET /ecommerce/v3/orders?refName=SO&refValue={your own order ID}

Response
{
  "links": [],
  "content": [
    {
      "externalId": "PCJ-PQV-74Z",
      "clientId": "0109357-9",
      "metadata": {
        "insertDate": "2021-11-19T06:39:55.637+00:00",
        "updateDate": "2021-11-19T06:39:56.426+00:00",
        "documentType": "SalesOrder"
      },
      "references": [
        {
          "name": "SO",
          "value": "{your own order ID}"
        }
      ],
      "orderDate": "2021-11-19T08:39:55.636+02:00",
      "vendor": {
        "externalId": "0109357-9",
        "name": "Posti Oy",
        "streetAddress": "Postintaival 7 A 3 123 12",
        "postalCode": "00230",
        "postOffice": "Helsinki",
        "country": "FI",
        "telephone": "+358440300967",
        "email": "gluetests1@itella.com"
      },
      "sender": {
        "externalId": "0109357-9",
        "name": "Posti Oy",
        "streetAddress": "Postintaival 7 A 3 123 12",
        "postalCode": "00230",
        "postOffice": "Helsinki",
        "country": "FI",
        "telephone": "+358440300967",
        "email": "gluetests1@itella.com"
      },
      "deliveryAddress": {
        "name": "Firstname Lastname c/o Posti pick up point",
        "streetAddress": "Recipient Street 1",
        "postalCode": "00230",
        "postOffice": "HELSINKI",
        "country": "FI",
        "telephone": "0501234567",
        "email": "firstname.lastname@recipient.fi"
      },
      "serviceCode": "2103",
      "pickupPointId": "002303200",
      "totalWholeSalePrice": 0.0,
      "status": {
        "value": "Submitted",
        "timestamp": "2021-11-19T08:39:56.403+02:00"
      },
      "rows": [
        {
          "externalProductId": "{business ID}-{unique product ID 1}",
          "productEANCode": "product_id_1",
          "externalWarehouseId": "{warehouse ID}",
          "quantity": 1.0,
          "status": {
            "value": "Created",
            "timestamp": "2021-11-19T08:39:56.403+02:00"
          }
        },
        {
          "externalProductId": "{business ID}-{unique product ID 2}",
          "productEANCode": "product_id_2",
          "externalWarehouseId": "{warehouse ID}",
          "quantity": 2.0,
          "status": {
            "value": "Created",
            "timestamp": "2021-11-19T08:39:56.403+02:00"
          }
        }
      ]
    }
  ],
  "page": {
    "size": 200,
    "totalElements": 1,
    "totalPages": 1,
    "number": 0
  }
}
    


Status of one order, based on order ID provided by Glue (Option 1):

GET /ecommerce/v3/orders/{order ID}

Response
{
  "externalId": "PCJ-PQV-74Z",
  "clientId": "0109357-9",
  "metadata": {
    "insertDate": "2021-11-19T06:39:55.637+00:00",
    "updateDate": "2021-11-19T06:39:56.426+00:00",
    "documentType": "SalesOrder"
  },
  "references": [
    {
      "name": "SO",
      "value": "{your own order ID}"
    }
  ],
  "orderDate": "2021-11-19T08:39:55.636+02:00",
  "vendor": {
    "externalId": "0109357-9",
    "name": "Posti Oy",
    "streetAddress": "Postintaival 7 A 3 123 12",
    "postalCode": "00230",
    "postOffice": "Helsinki",
    "country": "FI",
    "telephone": "+358440300967",
    "email": "gluetests1@itella.com"
  },
  "sender": {
    "externalId": "0109357-9",
    "name": "Posti Oy",
    "streetAddress": "Postintaival 7 A 3 123 12",
    "postalCode": "00230",
    "postOffice": "Helsinki",
    "country": "FI",
    "telephone": "+358440300967",
    "email": "gluetests1@itella.com"
  },
  "deliveryAddress": {
    "name": "Firstname Lastname c/o Posti pick up point",
    "streetAddress": "Recipient Street 1",
    "postalCode": "00230",
    "postOffice": "HELSINKI",
    "country": "FI",
    "telephone": "0501234567",
    "email": "firstname.lastname@recipient.fi"
  },
  "serviceCode": "2103",
  "pickupPointId": "002303200",
  "totalWholeSalePrice": 0.0,
  "status": {
    "value": "Submitted",
    "timestamp": "2021-11-19T08:39:56.403+02:00"
  },
  "rows": [
    {
      "externalProductId": "{business ID}-{unique product ID 1}",
      "productEANCode": "product_id_1",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 1.0,
      "status": {
        "value": "Created",
        "timestamp": "2021-11-19T08:39:56.403+02:00"
      }
    },
    {
      "externalProductId": "{business ID}-{unique product ID 2}",
      "productEANCode": "product_id_2",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 2.0,
      "status": {
        "value": "Created",
        "timestamp": "2021-11-19T08:39:56.403+02:00"
      }
    }
  ]
}
    


Status of one order (Option 2):

GET /ecommerce/v3/orders/{business ID}-{your own order ID}

Response
{
  "externalId": "PCJ-PQV-74Z",
  "clientId": "0109357-9",
  "metadata": {
    "insertDate": "2021-11-19T06:39:55.637+00:00",
    "updateDate": "2021-11-19T06:39:56.426+00:00",
    "documentType": "SalesOrder"
  },
  "references": [
    {
      "name": "SO",
      "value": "{your own order ID}"
    }
  ],
  "orderDate": "2021-11-19T08:39:55.636+02:00",
  "vendor": {
    "externalId": "0109357-9",
    "name": "Posti Oy",
    "streetAddress": "Postintaival 7 A 3 123 12",
    "postalCode": "00230",
    "postOffice": "Helsinki",
    "country": "FI",
    "telephone": "+358440300967",
    "email": "gluetests1@itella.com"
  },
  "sender": {
    "externalId": "0109357-9",
    "name": "Posti Oy",
    "streetAddress": "Postintaival 7 A 3 123 12",
    "postalCode": "00230",
    "postOffice": "Helsinki",
    "country": "FI",
    "telephone": "+358440300967",
    "email": "gluetests1@itella.com"
  },
  "deliveryAddress": {
    "name": "Firstname Lastname c/o Posti pick up point",
    "streetAddress": "Recipient Street 1",
    "postalCode": "00230",
    "postOffice": "HELSINKI",
    "country": "FI",
    "telephone": "0501234567",
    "email": "firstname.lastname@recipient.fi"
  },
  "serviceCode": "2103",
  "pickupPointId": "002303200",
  "totalWholeSalePrice": 0.0,
  "status": {
    "value": "Submitted",
    "timestamp": "2021-11-19T08:39:56.403+02:00"
  },
  "rows": [
    {
      "externalProductId": "{business ID}-{unique product ID 1}",
      "productEANCode": "product_id_1",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 1.0,
      "status": {
        "value": "Created",
        "timestamp": "2021-11-19T08:39:56.403+02:00"
      }
    },
    {
      "externalProductId": "{business ID}-{unique product ID 2}",
      "productEANCode": "product_id_2",
      "externalWarehouseId": "{warehouse ID}",
      "quantity": 2.0,
      "status": {
        "value": "Created",
        "timestamp": "2021-11-19T08:39:56.403+02:00"
      }
    }
  ]
}
    

Products (Products API)

Product information can be inputted manually, imported from Excel or send via API. You can create and update product information, and query quantities.

Create or modify product information

Product ID is unique, and it must have business ID as a prefix.

Following product information is mandatory (field name in parenthesis):

“eanCode” is EAN code of the product. It can be used also as second product Id is the product has one.

“product“ section creates the product into the database and “balances” publishes it into the warehouse.

"catalogExternalId" is the ID for your warehouse. Posti provides you the value when you start integration.

One JSON message can include multiple products. You can use the same message to create and update product information. If product exists already, content is overwritten by new content.

PUT /ecommerce/v3/inventory

Example payload
[
  {
    "product": {
      "externalId": "{business ID}-{product ID}",
      "eanCode": "123456789012",
      "measurements": {
        "weight": 1.43,
        "length": 0.2,
        "width": 0.065,
        "height": 0.45
      },
      "unitOfMeasure": "KPL",
      "descriptions": {
        "fi": {
          "name": "product name"
        }
      }
    },
    "balances": [
      {
        "productExternalId": "{business ID}-{product ID}",
        "retailerId": "{business ID}",
        "catalogExternalId": "{warehouse ID}",
        "wholesalePrice": 10.10
      }
    ]
  }
]
    


Response: 200 OK

Get product quantities

Use the following endpoint to get product quantities:

GET /ecommerce/v3/inventory/balances

You get paginated response with max 2000 products per page.

quantity is the stock you have available for new orders.

Example payload
{
  "links": [],
  "content": [
    {
      "productExternalId": "{business ID}-{product ID 1}",
      "eanCode": "123456789013",
      "retailerId": "{business ID}",
      "catalogExternalId": "{warehouse ID}",
      "quantity": 187.0,
      "allocated": 23,
      "wholesalePrice": 6.99,
      "currency": "EUR"
    },
    {
      "productExternalId": "{business ID}-{product ID 2}",
      "eanCode": "123456789012",
      "retailerId": "{business ID}",
      "catalogExternalId": "{warehouse ID}",
      "quantity": 167.0,
      "allocated": 13,
      "wholesalePrice": 7.99,
      "currency": "EUR"
    }
  ],
  "page": {
    "size": 2000,
    "totalElements": 2,
    "totalPages": 1,
    "number": 0
  }
}
    


To get following pages, use the following

GET /ecommerce/v3/inventory/balances?page=1

Default page that your receive without page parameter is page= 0 (see in above response value: “number”:0). Based on the value of “totalPages” you need to loop through all the pages.

In this example there is total of 412638 products with balances and there is 207 pages:

  "page": {
    "size": 2000,
    "totalElements": 412638,
    "totalPages": 207,
    "number": 0
  }