Skip to main content
Settlement webhooks are separate from order.updated. Marketplace finance can arrive hours or days after an order, and providers can later adjust, reverse, or void the same financial evidence. OmniCommerce treats a Shopee, Lazada, TikTok Shop, Shopify, Zalora, or Amazon push as a signal. It fetches the marketplace’s authoritative finance detail, normalizes it into one order-and-currency settlement aggregate, and emits a developer webhook only when that committed aggregate changes.

Events

Subscribe with POST /api/v1/webhooks. These keys can be combined with product, order, return, and look events in the same subscription. Use GET /api/v1/settlements with settlements:read for bootstrap and pull reconciliation, and GET /api/v1/settlements/{settlementId} for one latest snapshot. The pull API represents snapshots created by this event pipeline; run the finance backfill before expecting older historical orders.

Example

The Lazada finance panel shown in OmniCommerce is represented as normalized money fields and an auditable fee breakdown:
All money values are decimal strings paired with an ISO 4217 currency. Never sum settlement resources across currencies without an explicit FX conversion.

Status model

paymentReceived, when present, is a separate formula-backed unit-economics value with formulaId and formulaVersion. It is not the seller settlement net and should not replace marketplaceNet.

Processing guidance

Use id as the delivery idempotency key. Track the highest resourceVersion for each subject.id, and ignore older versions that arrive out of order. Apply the complete data.settlement snapshot rather than incrementally replaying changedFields. If a provider push arrives before finance is ready, OmniCommerce does not expose the provider’s partial body. A later finance refresh creates or updates the normalized settlement resource. Duplicate source upserts that do not change the resource produce no new public event.