Event Systems at a Glance
ERP Webhooks
What they are: Signed HTTP requests that JTL sends to your app when data changes in the merchant’s ERP. An item is edited, an order is paid, stock moves between warehouses, and your endpoint hears about it within seconds. How they work: You declare the topics you want and an HTTPS endpoint in your app manifest. When a matching change occurs, JTL posts a signed request to that endpoint. The payload carries the key of the entity that changed rather than the entity itself, so your handler verifies the signature, acknowledges the delivery, and then fetches the current record through the GraphQL API. When to use them:- Keeping your own store in sync with ERP data
- Triggering work when an order reaches a status your app cares about
- Reacting to stock movements, returns, or payment changes without polling
Manifest Configuration
Subscriptions live undercapabilities.erp.webhooks in your app.json:
Key Characteristics
For the topic list and the handler implementation, see Webhook Topics and Handling Webhooks.
AppBridge Events
In development: AppBridge publish/subscribe events are in development and not yet available. This section will be updated when the API ships.
- Notifying the JTL App Shell that your app completed an action (e.g. order verification finished)
- Reacting to user navigation or context changes in the JTL-Wawi
- Coordinating between your app and other platform components
Publish and Subscribe
AppBridge events will support two capabilities:- Publishing events: your app notifies the host that something happened (for example, a verification step completed or a generated description is ready to insert).
- Subscribing to events: your app listens for events from the host and reacts when context changes (for example, the merchant navigates to a different record).
resource:action naming convention (for example, order:verification:complete or inventory:updated) so the intent of an event is clear from its name alone.
Key Characteristics
Setup Handshake
What they are: A URL defined in your app’sapp.json that JTL loads in an iframe when a merchant installs your app.
How they work: You define a configurationUrl in the lifecycle section of your manifest. When a merchant installs your app, JTL loads that URL inside the JTL Hub. Your app shows its onboarding UI, completes the AppBridge handshake, and signals setup is done by calling appBridge.method.call('setupCompleted').
When to use it:
- Showing onboarding UI when a merchant installs your app
- Verifying the session token from AppBridge and persisting the tenant connection
- Collecting any configuration the merchant needs to provide
Manifest Configuration
The setup URL is defined in yourapp.json:
Key Characteristics
For implementation details, see the Quick Start: From Scratch guide, which walks through the full setup handshake.
SCX Events (Polling)
What they are: An event queue for marketplace channel integrations. When sellers (merchants using JTL) take actions like creating a new product offer, updating prices, or shipping an order, those actions are queued as events. Your channel integration polls the queue, processes the events, and acknowledges them. How they work: This is a pull-based system, not push-based. JTL doesn’t send events to your server. Instead, your app periodically callsGET /v1/channel/event to check for new events, processes them, and then calls DELETE /v1/channel/event to acknowledge them. Unacknowledged events are redelivered.
When to use them:
- Processing new product listings from sellers
- Handling order status updates (paid, shipped, cancelled)
- Syncing attribute and category changes
Poll → Process → Acknowledge
- Poll: Your app calls
GET /v1/channel/eventat regular intervals (recommended: every 60 seconds) - Process: Handle each event based on its
type(new offer, order update, attribute change, etc.) - Acknowledge: Call
DELETE /v1/channel/eventwith the IDs of events you’ve successfully processed
Event Structure
Each event in theeventList has this shape:
Acknowledging Events
After processing, acknowledge events by sending their IDs:Key Characteristics
Best Practices for SCX Event Polling
Choosing the Right Event System
What’s Next?
Handling Webhooks
Declare subscriptions, receive deliveries, and fetch the changed entity.
Marketplace Channels: Channel API
Full guide to building a marketplace channel integration, including SCX event handling.
Error Handling
Handle failures in event processing and API calls.