Skip to main content

What are DataDoe Webhooks?

DataDoe Webhooks let your systems receive HTTPS callbacks when selected events happen for your Sellers and Vendors. Instead of polling DataDoe or the Selling Partner API (SP API) for changes, DataDoe POSTs a JSON payload to an endpoint you control as soon as matching events are ready.

Use Webhooks to trigger automations, sync Amazon events into your enterprise resource planning (ERP) or warehouse management system (WMS), or wake up downstream jobs when new notification data becomes available.

How do I set up a webhook?

  1. Open Integrations > Webhooks (opens in a new tab) in DataDoe.
  2. Click New webhook and fill in:
    • Name — a label you recognize later
    • Target URL — your HTTPS endpoint that accepts POST requests
    • Message types — which events to subscribe to
    • Sellers and Vendors — which DataDoe accounts should be included
    • Secret header (optional) — a custom header name and value DataDoe sends on every delivery so you can verify requests
  3. Save the subscription. It starts in the Active state.

You can create multiple subscriptions per Organization, for example one endpoint for your ERP and another for an internal queue. When a single event matches more than one active subscription, DataDoe delivers it to each matching subscription separately.

What do webhook deliveries cost?

Each delivered message costs 0.05 AI Tokens and can pause the subscription if the AI Token balance runs out. See Subscription and pricing.

High-volume message types can deliver many events. The catalog marks those types as high volume. The token cost applies to every message type.

How to secure my webhooks?

A secret HTTP header helps your endpoint reject forged webhook requests. In Integrations > Webhooks (opens in a new tab), set a header name and a long, random value when you create or edit a webhook. Store the value securely on your server. Compare the incoming header with the stored value before processing the payload, and reject requests if the header is missing or incorrect.

Which message types are available?

Message typeDescription
AMAZON_ORDER_UPDATEAn Amazon order was created or updated.
AMAZON_ORDER_BUYER_INFO_UPDATEBuyer or recipient information for an Amazon order was updated.
AMAZON_ACCOUNT_STATUS_CHANGEDThe status of an Amazon selling account changed.
AMAZON_ANY_OFFER_CHANGEDOffer information for an item on an Amazon marketplace changed. High volume.
AMAZON_B2B_ANY_OFFER_CHANGEDBusiness offer information for an item changed. High volume.
AMAZON_BRANDED_ITEM_CONTENT_CHANGEContent for an item associated with a registered brand changed. Brand Registry only.
AMAZON_DETAIL_PAGE_TRAFFIC_EVENTTraffic on an Amazon product detail page changed. High volume.
AMAZON_FBA_OUTBOUND_SHIPMENT_STATUSThe status of an outbound Fulfillment by Amazon shipment changed. Brazil FBA Onsite only.
AMAZON_FEE_PROMOTIONAn Amazon fee promotion became available or changed.
AMAZON_ITEM_INVENTORY_EVENT_CHANGEInventory information for an Amazon item changed.
AMAZON_ITEM_SALES_EVENT_CHANGESales information for an Amazon item changed. High volume.
AMAZON_ITEM_PRODUCT_TYPE_CHANGEThe product type assigned to an Amazon item changed. Brand Registry only.
AMAZON_LISTINGS_ITEM_STATUS_CHANGEThe status of an Amazon listings item changed.
AMAZON_LISTINGS_ITEM_ISSUES_CHANGEIssues associated with an Amazon listings item changed.
AMAZON_LISTINGS_ITEM_MFN_QUANTITY_CHANGEThe merchant-fulfilled quantity for a listings item changed.
AMAZON_PRICING_HEALTHAn Amazon offer became ineligible for the Featured Offer because of an uncompetitive price.
AMAZON_TRANSACTION_UPDATEAmazon transaction information became available or changed.
AMAZON_FBA_INVENTORY_AVAILABILITY_CHANGESFulfillment by Amazon inventory availability changed.
AMAZON_SHIPMENT_TRACKING_MILESTONE_CHANGEDAn Amazon Tracking API shipment milestone changed. Available for the US Tracking API. Requires a subscription for each tracking identifier. DataDoe does not subscribe automatically.

What does DataDoe send to my endpoint?

DataDoe sends an HTTPS POST with Content-Type: application/json. The body has this shape:

json
1{
2    "deliveryId": "550e8400-e29b-41d4-a716-446655440000",
3    "organizationId": "11111111-1111-4111-8111-111111111111",
4    "webhookId": "33333333-3333-4333-8333-333333333333",
5    "messages": [
6        {
7            "organizationId": "11111111-1111-4111-8111-111111111111",
8            "sellerOrVendorId": "22222222-2222-4222-8222-222222222222",
9            "messageId": "44444444-4444-4444-8444-444444444444",
10            "messageType": "AMAZON_ORDER_UPDATE",
11            "messageSummary": {},
12            "messageData": {}
13        }
14    ]
15}

Each body field is described below:

FieldMeaning
deliveryIdUnique ID for this HTTPS delivery attempt.
organizationIdYour DataDoe Organization.
webhookIdThe subscription ID that received this delivery.
messagesOne or more events batched into this POST.
sellerOrVendorIdDataDoe Seller or Vendor context ID for the event.
messageIdUnique ID for a single event. Use this for idempotency and deduplication.
messageTypeEvent type, for example AMAZON_ORDER_UPDATE.
messageSummaryShort metadata about the event (structure varies by message type).
messageDataEvent payload fields (structure varies by message type).

Detailed webhook message schemas are in the interactive Webhooks Messages Schemas page.

The 16 SP-API notification message types share a stable contract. Their messageSummary always includes marketplaceId, sellerOrVendorId, spApiNotificationId, spApiNotificationType, and eventTimeUtc. It can also include marketplaceCountryCode, marketplaceCountryName, sellerOrVendorName, and marketplaceSellerId. Their messageData includes the Amazon notificationMetadata and the payload routed to the selected Seller or Vendor connection. The two order message types retain their order-specific schemas.

How do I subscribe to shipment tracking updates?

DataDoe does not subscribe to shipment tracking automatically. Before you can receive AMAZON_SHIPMENT_TRACKING_MILESTONE_CHANGED events, start an AMAZON_SHIPMENT_TRACKING_SUBSCRIBE Action for each tracking identifier. This Action is available to Sellers and Vendors on the US Tracking API only.

In MCP, use actions_details_schema_get to load the Action details, then call actions_start. Each entry in trackingIdentifiers must contain exactly one identifier field. For example:

json
1{
2    "type": "AMAZON_SHIPMENT_TRACKING_SUBSCRIBE",
3    "sellerOrVendorId": "YOUR_SELLER_OR_VENDOR_ID",
4    "details": {
5        "trackingIdentifiers": [
6            {
7                "carrierTracking": {
8                    "trackingNumber": "YOUR_TRACKING_NUMBER"
9                }
10            }
11        ]
12    }
13}

After Amazon accepts the subscription, create a DataDoe webhook and select AMAZON_SHIPMENT_TRACKING_MILESTONE_CHANGED as a message type. See Actions for the full Action workflow and the REST API option.

If you configured a secret header, DataDoe includes it on every request using the header name you chose.

What should my endpoint return?

Return any 2xx HTTP status to acknowledge successful processing. Non-2xx responses or network errors are treated as delivery failures.

What happens when a delivery fails?

If your endpoint returns a non-2xx status or the request cannot be completed, DataDoe:

  1. Pauses the subscription automatically.
  2. Emails Organization members.

After you fix the endpoint, open Integrations > Webhooks (opens in a new tab) and select Resume.

If you believe an invalid delivery is an error on DataDoe's side, please use the contact form (opens in a new tab).

What are the target URL requirements?

Target URLs must:

  • use HTTPS
  • use a domain name (not a raw IP address)
  • not use localhost or *.localhost
  • accept POST requests

Webhooks complement DataDoe's scheduled and real-time data pipelines described in Data Fetch Periods. Webhooks are the recommended way to get real-time data updates.

Where can I get help?

Use the contact form (opens in a new tab).