Skip to main content

Webhooks are live for organisations with the Integrations feature enabled. Organisation owners can manage subscriptions in the app.

What are DataDoe Webhooks?

Webhooks let your systems receive HTTPS callbacks when selected Amazon order events are available in DataDoe. Instead of polling the API or MCP 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 order data into your ERP or WMS, or wake up downstream jobs when buyer info becomes available.

How do I set up a webhook?

  1. Open Integrations > Webhooks in DataDoe.
  2. Click New webhook and fill in:
    • Name — a label you recognise later.
    • Target URL — your HTTPS endpoint that accepts POST requests.
    • Message types — which events to subscribe to (see below).
    • 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 organisation — 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.

Which message types are available?

Message typeDescription
AMAZON_ORDER_UPDATEAn Amazon order update is available in DataDoe.
AMAZON_ORDER_BUYER_INFO_UPDATEBuyer info for an order is available in DataDoe.

More message types may be added over time.

How does matching work?

DataDoe delivers an event to every active subscription in your organisation where all of the following are true:

  • The event belongs to your organisation.
  • The event message type is included in the subscription.
  • The event seller or vendor is included in the subscription.

Matching does not depend on subscription name or target URL. If two subscriptions listen for the same message type and seller, both receive the same event in separate HTTPS POST requests.

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            "webhookId": "66666666-6666-4666-8666-666666666666",
10            "messageId": "44444444-4444-4444-8444-444444444444",
11            "messageType": "AMAZON_ORDER_UPDATE",
12            "messageSummary": {},
13            "messageData": {}
14        }
15    ]
16}
FieldMeaning
deliveryIdUnique ID for this HTTPS delivery attempt.
organizationIdYour DataDoe organisation.
webhookIdThe subscription ID that received this delivery.
messagesOne or more events batched into this POST.
messageIdUnique ID for a single event.
messageSummaryShort metadata about the event (structure varies by message type; see below).
messageDataEvent payload fields (structure varies by message type; see below).

AMAZON_ORDER_UPDATE

messageSummary fields (all optional; use camelCase):

FieldTypeDescription
marketplaceIdstringAmazon marketplace ID.
marketplaceCountryCodestringISO country code for the marketplace.
marketplaceCountryNamestringHuman-readable marketplace country name.
sellerOrVendorIdstringDataDoe seller or vendor context ID.
sellerOrVendorNamestringDataDoe seller or vendor display name.
marketplaceSellerIdstringAmazon Seller Central seller ID.
amazonOrderIdstringAmazon order ID.
orderPurchasedAtUtcstringOrder purchase timestamp in UTC (ISO-8601).
amazonOrderStatusstringOrder status, e.g. Pending, Shipped, Cancelled.
fulfillmentChannelstringAmazon or Merchant.
orderItemsarrayLine items for the order.

Each orderItems entry may include:

FieldType
skustring
childAsinstring
quantitynumber
itemPriceValuenumber
itemPriceCurrentnumber

messageData fields:

FieldTypeDescription
rawobjectRaw JSON payload received from Amazon.

AMAZON_ORDER_BUYER_INFO_UPDATE

messageSummary uses the same base fields as AMAZON_ORDER_UPDATE, but without orderItems.

messageData fields (all optional; use camelCase):

FieldType
buyerEmailstring
buyerNamestring
buyerCompanyNamestring
buyerPurchaseOrderNumberstring
recipientNamestring
recipientCompanyNamestring
recipientAddressLine1string
recipientAddressLine2string
recipientAddressLine3string
recipientCitystring
recipientDistrictOrCountystring
recipientStateOrRegionstring
recipientMunicipalitystring
recipientPostalCodestring
recipientCountryCodestring
recipientPhonestring
recipientAddressTypestring
recipientExtendedFieldsJSON
orderItemsGiftMessagesJSON
orderItemsCustomizedUrlsJSON

The webhookId inside each message is an event correlation ID from DataDoe's pipeline. The top-level webhookId is your subscription ID.

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 organisation owners with the webhook name, target URL, and HTTP status (if available).
  3. Logs the attempt in DataDoe (status, HTTP code, error message, message count).

Resume the subscription from Integrations > Webhooks after you fix the endpoint, then use Resume.

Delivery logs and aggregate stats are visible in the Webhooks table in the app. Each subscription shows its last 10 delivery attempts.

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

How much do Webhooks cost?

Each successfully delivered message costs 0.01 AI Tokens.

Examples:

  • A POST with 1 message costs 0.01 AI Tokens.
  • A POST with 99 messages costs 0.99 AI Tokens.

Charges apply only after your endpoint returns a 2xx response. Failed deliveries are not charged.

If your organisation has no AI Tokens left for the required amount, DataDoe skips the delivery and does not call your endpoint. Top up plan tokens or increase your spending limit in Settings to resume deliveries.

Token balances shown in the app are rounded down to whole numbers for display and billing summaries.

Webhooks complement DataDoe's scheduled and real-time data pipelines described in Data Fetch Periods. They are the recommended way to push order-related updates to your own systems without polling.

Where can I get help?

Questions or early feedback? Use the contact form (opens in a new tab).