1. Overview
Omisell Developer Portal | API Documentation & Integration Guides
  • Authentication
  • Common Errors
  • Overview
    • Introduction
    • Push Mechanism
    • Status overview
    • Accounting - API Call Flow
    • ERP Integration Flow
    • API Rate Limits
    • Guide: Direct Integration
    • MCP Server
    • Pagination
  • Changelog
    • 🔐 API Security Upgrade
    • Orders
    • Returns Order
    • Products
    • Shipments
    • Push mechanism
  • API Refference
    • Location
      • Get Country List
      • Get Province List By Country
      • Get District List By Province
      • Get SubDistrict List By District
    • Product
      • Get Product Category
      • Get Product List
      • Add Product
      • Get Product Detail
      • Update Product Detail
      • Get Product Detail by SKU
      • Update Product Detail by SKU
    • Inventory
      • Adjust Stock
      • Delisted Stock
      • Adjust Stock(Old)
    • Serial Number
      • Adjust Serial Number
    • Catalogue
      • Get Catalogue List
      • Get Catalogue Detail
    • Orders
      • Get Order List
      • Add Order
      • Update Document Order
      • Get Order Detail
      • Update Order
      • Cancel Order
      • Get Order Finance
      • Get Returns Receiving Note
      • Get Goods Receipts
    • Returns Order
      • Get Returns Order List
      • Add Order Return
      • Get Return Order Detail
    • Shipments
      • Get Shipment List
      • Add Shipment
      • Update Document Shipment
      • Update Shipment Status
      • Get Shipment Detail
    • Order Dropship
    • Pickup Address
      • Get Pickup List
      • Get WMS Pickup Map
    • Shop
      • Get Shop List
    • Finance
      • Get Order Revenue
      • Get Order Return Revenue
    • Customer
      • Get Customer Review List
    • Public
      • Get Seller by Partner
  • Webhooks
    • Order Status Push
    • Return Order Status Push
    • Shipment Status Push
    • Sale Invoice Request
  • eCommerce Platform
    • PrestaShop
    • Magento
    • Shopify
    • Woocommerce
    • Zalora
  1. Overview

Push Mechanism

1. Push Mechanism#

Subscribing to Omisell Push Mechanism helps you get immediate notifications when a specific event occurs. This lets you receive timely updates without having to periodically poll the API endpoint.
NOTE
Push Mechanism on the Omisell Platform Console is equivalent to what's commonly known as webhooks.
Here's an overview of how Push Mechanism works on Omisell Open Platform:
1.
You subscribe to a specific push type for your platform and define a callback URL.
2.
The specific event, such as an order status update, happens.
3.
Omisell sends an HTTP POST request to the defined callback URL.
4.
You receive a notification via your defined callback URL.
INFO
Push Mechanism (webhooks) on Omisell Platform only notifies you that data for the specific event has changed. To get more updated information, make a call to the corresponding API. You're encouraged to use both to enhance your systems' integration efficiency.

2. Events#

2.1. Order Status Push#

EventEvent nameDescription
order.createdOrder - Created⚠️ Fires when the order reaches 300 Approved, NOT when the order is created. An order created through POST /order/add without approve: true stays at 200 New and never receives this event.
order.processingOrder - ProcessingPush when the order has been created for shipment
order.update_serialOrder - Update Lot/SerialPush when order has change Lot/Serial number during packing
order.ready_to_shipOrder - Ready to ShipPush when the order is ready to ship
order.shippedOrder - ShippedPush when the order has been handed over to the shipping carrier
order.partially_completedOrder - Partially CompletedPush when one package of a multi-package order is completed
order.completedOrder - CompletedPush when the order is completed
order.returnedOrder - ReturnedPush when order status is Returned
order.cancelledOrder - CancelledPush when order status is Cancelled
order.reconciledOrder - ReconciledPush when order status is Reconciled
order.return_receiveOrder - Return ReceivePush when the order is return receive at the warehouse
order.exceptionsOrder - ExceptionsPush when the order is Exceptions
order.courier_lost_itemsOrder - Courier lost itemsPush when the order is Courier lost items

2.2. Shipment (DO) Status Push#

EventEvent nameDescription
shipment.createdShipment - CreatedPush when the shipment has been successfully created
shipment.ready_to_shipShipment - Ready to ShipPush when shipment status is RTS
shipment.shippedShipment - ShippedPush when shipment status is Shipped
shipment.delivery_failureShipment - Failed Delivery AttemptPush when shipment status is Failed Delivery Attempt
shipment.deliveredShipment - Delivered⚠️ Fires for both 800 Delivered and 317 Courier lost items. Do not mark a delivery successful on this event alone — read data.status_id to tell them apart.
shipment.returnedShipment - ReturnedPush when shipment status is Returned
shipment.cancelledShipment - CancelledPush when shipment status is Cancelled
shipment.exceptionsShipment - ExceptionsPush when shipment status is Exceptions

2.3. Returns Order Push#

EventEvent nameDescription
order_return.requestedReturn Order - RequestedPush when the return order is requested
order_return.acceptedReturn Order - AcceptedPush when the return order is accepted
order_return.processingReturn Order - ProcessingPush when the return order is processing
order_return.refund_paidReturn Order - ReturnedPush when the return order is refund paid
order_return.closedReturn Order - Closed⚠️ Subscribable but never fires: no return-order status maps to this event.
order_return.cancelledReturn Order - CancelledPush when the return order is cancelled

2.4. Payload format#

Every subscription carries a format. The default is cus, and the payload documented under Webhooks in the API reference is that format:
{ "data": { …object summary… }, "shop_id": …, "seller_id": …, "platform": …, "event": …, "timestamp": …, "request_id": … }
WARNING
A subscription created with a different format receives a different, much larger payload for the same event. If your subscription was set up by Omisell for an ERP integration, confirm the format before coding against the examples.

3. How to Set Up Webhook#

3.1. Add Hook#

image.png

3.2. Monitoring API Call & Push Log#

image.png

3.4. Push Authorization#

To prevent cyberattacks, we have provided an authorization signature for each Push request, which can be located in the Authorization field of the HTTP request header. With this, you can identify Omisell's authorization information.
This step is technically optional, but we strongly recommend that developers validate the request by generating the authorization signature and ensuring it matches the one from the Push request.
Example of Omisell's request headers:

4. Retry Schedule#

If a delivery fails, Omisell retries with an increasing delay. ⚠️ The schedule below applies to most events, except order.processing and shipment.created — those two go through a separate tracking mechanism (a retry × 1 hour window, capped at 3 attempts) instead of this backoff schedule.
AttemptCountdown (Seconds)Human Readable Delay
1st Retry300s5 minutes
2nd Retry600s10 minutes
3rd Retry1,200s20 minutes
4th Retry2,400s40 minutes
5th Retry4,800s1 hour 20 minutes

5. Webhook Delivery Monitoring & Auto-Disable#

To keep webhook delivery reliable, our system continuously monitors the success rate of deliveries to your endpoint.

5.1. How It's Measured#

We look at deliveries over the last 6 hours.
Success = your endpoint returns an HTTP 2xx status (200, 201, …).
Failure = a 4xx/5xx status, or the endpoint is unreachable (timeout/no response).
Success rate = successful deliveries / total deliveries.
We only evaluate once there is enough data: at least 40 deliveries in the 6-hour window. Below this, no warning or disable is triggered (to avoid judging on too small a sample).

5.2. Warning#

WARNING
When the success rate drops below 70%, a warning is recorded (at most once every 30 minutes). The warning clears automatically once the success rate returns to 70% or above.

5.3. Disable#

DANGER
When the success rate drops below 30%, your webhook subscription will be disabled.
Please check your endpoint (callback URL) and make sure it can receive webhooks normally before re-enabling.
The system does not re-enable automatically — you need to re-activate the subscription yourself after fixing the issue.

5.4. Monitoring Status#

You can view your webhook health (success rate, total deliveries, response codes) in the webhook list on the management portal.
Modified at 2026-11-03 04:22:18
Previous
Introduction
Next
Status overview
Built with