@adcp/sdk API Reference - v14.3.0
    Preparing search index...

    Interface WholesaleFeedWebhook

    Account-level webhook payload fired when a seller's wholesale product feed or wholesale signals feed changes. Registered through sync_accounts.accounts[].notification_configs[] using product.* / signal.* / wholesale_feed.bulk_change event_types. The payload carries the actual change event so receivers can update a local mirror without polling. list_products(if_feed_version) and get_signals(if_wholesale_feed_version) are the canonical repair paths after missed, stale, or distrusted pushes; wholesale get_products remains the 3.x product compatibility path.

    interface WholesaleFeedWebhook {
        idempotency_key: string;
        notification_id: string;
        notification_type:
            | "product.created"
            | "product.updated"
            | "product.priced"
            | "product.removed"
            | "signal.created"
            | "signal.updated"
            | "signal.priced"
            | "signal.removed"
            | "wholesale_feed.bulk_change";
        fired_at: string;
        subscriber_id: string;
        account_id: string;
        wholesale_feed_version: string;
        product_payload_view?: "canonical"
        | "legacy";
        previous_wholesale_feed_version?: string;
        cache_scope: "account" | "public";
        event: WholesaleFeedEvent;
        ext?: ExtensionObject;
    }
    Index
    idempotency_key: string

    Sender-generated key stable across retries of the same webhook fire. Receivers MUST dedupe by this key, scoped to the authenticated sender identity.

    16

    255

    ^[A-Za-z0-9_.:-]{16,255}$

    notification_id: string

    Stable identifier for this logical wholesale feed event. MUST equal event.event_id. Re-emissions of the same logical event reuse this value under a new idempotency_key.

    uuid

    notification_type:
        | "product.created"
        | "product.updated"
        | "product.priced"
        | "product.removed"
        | "signal.created"
        | "signal.updated"
        | "signal.priced"
        | "signal.removed"
        | "wholesale_feed.bulk_change"

    Wholesale feed notification type discriminator. MUST match event.event_type.

    fired_at: string

    ISO 8601 timestamp when the seller initiated this webhook fire. Distinct from event.created_at, which is when the seller observed or recorded the feed change.

    date-time

    subscriber_id: string

    Identifies which notification_configs[] entry is receiving this fire. Echoed from the registered subscriber_id.

    1

    64

    ^[A-Za-z0-9_.:-]{1,64}$

    account_id: string

    Seller account identifier for the account scope that registered this webhook through sync_accounts.accounts[].notification_configs[]. Required because wholesale feed webhooks are account-anchored notifications.

    wholesale_feed_version: string

    Opaque post-change version token for the affected wholesale feed. Store it only after applying the event. A stale mirror repairs with its last applied version; uncertain or bulk repair omits the conditional token.

    product_payload_view?: "canonical" | "legacy"

    Product representation selected by the receiving notification config. Present on product.* fires; canonical uses canonical_product/canonical_pricing_options and legacy uses product/pricing_options.

    previous_wholesale_feed_version?: string

    Opaque version token for the affected wholesale feed before this change, when the seller can cheaply provide it. Receivers MAY use this to detect obvious gaps, but MUST NOT require it.

    cache_scope: "account" | "public"

    Cache layer affected by this change. MUST equal event.payload.applies_to.scope. Mirrors the cache_scope returned by list_products / get_signals for the affected wholesale feed.