Skip to main content
Account statement events use the same names in developer webhook subscriptions, AOP event triggers and Project event triggers. Subscribe with POST /api/v1/webhooks or select Account Statements in webhook settings. All marketplace connections use the same event contract. A statement change can emit several specific events. Each has its own id and an increasing resourceVersion, scoped to the statement or sync run. Deduplicate with X-Omni-Event-Id. An unchanged header emits no update, and a replay of the same transaction snapshot emits no second completion. A fresh successful refresh can emit transactions.synced even when its amounts have not changed. The first refresh after event support is enabled establishes an initial event snapshot for existing statements. Payment changes use status.changed instead of updated. Reconciliation events include a changed difference or amount basis even if the reconciliation status remains the same. Statement events contain data.statement, changedFields, previousPaymentStatus and previousReconciliationStatus. Store sync events contain data.sync and previousStatus. Sync counts represent successful or failed statement refreshes, including overlapping discovery windows; they are not distinct statement counts. Monetary fields are decimal strings with four decimal places, in the accompanying currency. A null currency is unresolved; do not combine amounts across currencies. expectedAmount, linesNet and gap use the same reconciliation calculation as the Account Statements page. Shopee amountBasis: "released_income" means income released to the seller wallet, not a confirmed bank withdrawal. Events contain no native PDF, download URL, marketplace token or raw provider payload. The delivery envelope includes schemaVersion, id, type, organizationId, occurredAt, publishedAt, resourceVersion, source and subject. Verify the standard webhook signature. In AOPs and Projects, event variables include the statement/run ID, marketplace, store account, currency, payment/reconciliation status, totals and sync counts. Conditions can select a marketplace or store, detect a reconciliation gap, or filter failed refreshes. Pair monetary conditions with a currency condition.