Skip to main content
This guide covers how product and offer listings flow from JTL-Wawi to your channel, how to report listing status back to sellers, and how to keep stock levels synchronized.
What you’ll learn:
  • How listings are transmitted via seller events
  • How to report listing status (in-progress, listed, failed) back to sellers
  • How to synchronize stock using the dedicated endpoints

Listing Sync Flow

Listings are transmitted by the Seller:Offer.New and Seller:Offer.Update events. Each time listing data changes, JTL-Wawi transmits the entire listing again. Listing synchronization flow from seller to channel

Essential Properties

It is generally not necessary to provide attributes for essential data, as each listing already implements a set of essential properties by default, including title, description, GTIN, quantity, and price.

Pictures and Images

Product or listing images are transmitted as a link along with the listing event.
Image links have a lifetime of 7 days after the listing event was triggered. Make sure to download and store images if you need them beyond that period.
The filename is generated based on the file content, so each separate image will have a unique filename derived from its content.

Listing State

We highly recommend informing the seller about the processing status of their listings. Most marketplaces use an asynchronous listing process during which the listing data is curated in a semi-automated process that may take some time. Listing state transitions
Send this state to inform the seller that the listing process is now in progress:
// POST /v1/channel/offer/in-progress
{
  "offerList": [
    {
      "offerId": 1,
      "sellerId": "1",
      "startedAt": "2022-11-28T01:00:13+00"
    }
  ]
}

Stock Updates

The Stock Updates API enables channels to keep their inventory synchronized with seller stock levels.

Available Methods

There are multiple ways to synchronize stock:
MethodEndpointUse Case
Per-sellerGET /v1/channel/offer/stock-updatesParallel per-seller processing. Higher rate limit.
All sellersGET /v1/channel/offer/stock-updates/allGet stock changes for all active sellers in a single call.
Event-basedSeller:Offer.StockUpdate eventConsuming the seller event directly.
The Seller:Offer.StockUpdate event is not recommended and will be deprecated. Use the stock update endpoints instead.

Example Request and Response

// GET /v1/channel/offer/stock-updates/all?updatedAfter=2025-12-29T00:00:00+00:00
{
  "stockUpdateList": [
    {
      "channel": "MYCHANNEL",
      "sellerId": "SELLER001",
      "offerId": 4711,
      "channelOfferId": "SKU-WIDGET-001",
      "quantity": 25,
      "updatedAt": "2025-12-29T10:15:30+00:00"
    },
    {
      "channel": "MYCHANNEL",
      "sellerId": "SELLER002",
      "offerId": 8822,
      "channelOfferId": "SKU-GADGET-042",
      "quantity": 0,
      "updatedAt": "2025-12-29T11:22:45+00:00"
    }
  ],
  "lastUpdatedAt": "2025-12-29T11:22:45+00:00"
}

Incremental Sync Pattern

For efficient synchronization, use the lastUpdatedAt value from the response as the updatedAfter parameter in your next request.
Incremental stock sync using lastUpdatedAt cursor
1. First call:    GET /v1/channel/offer/stock-updates/all?updatedAfter=2025-12-01T00:00:00Z
   Response:      lastUpdatedAt = "2025-12-29T11:22:45+00:00"

2. Next call:     GET /v1/channel/offer/stock-updates/all?updatedAfter=2025-12-29T11:22:45+00:00
   Response:      lastUpdatedAt = "2025-12-29T14:30:00+00:00"

3. Continue...

Next Steps

Order Management

Handle orders, cancellations, returns, and refunds.

Channel API Overview

Review events, metadata, and media content handling.

Seller Management

Seller sign-up, update, and unlink flows.

Rate Limits

Per-endpoint quotas and 429 handling.

Channel API Reference

Endpoint-level reference for the Channel API.

Postman Collection

Try the API with ready-made requests.