User Guide

AuctionEdge Webhooks User Guide

This guide walks you through using the AuctionEdge Webhooks dashboard to subscribe to real-time auction events, monitor deliveries, and troubleshoot failures.


Getting Started

Creating an Account

  1. Navigate to the signup page and provide your email, name, and password (minimum 8 characters).
  2. After signup you are automatically logged in and redirected to the dashboard.
  3. Your account is assigned a Customer ID and API Key visible on the dashboard overview.

Logging In

Enter your email and password on the login page. Sessions are valid for 7 days. After expiry you will be redirected to log in again.


Dashboard Overview

The overview page shows:

Quick Start

  1. Go to Subscriptions and add your webhook URL for each event type in the sandbox environment.
  2. Trigger test events in sandbox and verify delivery on the Deliveries page.
  3. When ready, click Promote to Production to copy your sandbox subscriptions to the production environment.
  4. Monitor the Deliveries page and check Dead Letters for any failures.

Managing Subscriptions

Navigate to Subscriptions from the sidebar.

Environments

Use the Sandbox and Production tabs to switch between environments.

Adding a Subscription

  1. Select an Event Type from the dropdown. The dropdown is searchable and populated from the full event catalog (see the API Reference for the complete list).
  2. Enter the Webhook URL where you want events delivered. This must be an HTTPS endpoint that returns a 2xx status code.
  3. Click Save.

You can subscribe to one webhook URL per event type per environment. Saving again with the same event type updates the URL.

Deleting a Subscription

Click the delete button next to any subscription in the list. The subscription is removed immediately.

Promoting to Production

When your sandbox subscriptions are tested and working, click Promote to Production on the sandbox tab. This copies all active sandbox subscriptions to production. Existing production subscriptions for the same event types are updated with the sandbox webhook URLs.


Monitoring Deliveries

Navigate to Deliveries from the sidebar. This page shows the history of all webhook delivery attempts.

Filtering

Use the environment dropdown to filter by All environments, Sandbox, or Production.

Delivery Table

Each row shows:

ColumnDescription
EventThe event type (e.g., ae.asset.deal.sold.ams)
EnvSandbox or Production badge
Statussuccess, failed, or pending
AttemptsNumber of delivery attempts (max 3)
HTTPThe HTTP response status code from your endpoint
DeliveredTimestamp of the last delivery attempt

Viewing Event Details

Click any row to expand it and see:

Click the row again to collapse the detail view.

Pagination

If you have more than 50 deliveries, click Load more at the bottom to fetch the next page.

Retention

Delivery records are retained for 60 days in the dashboard. After 60 days they are archived and no longer visible in the UI.


Dead Letter Queue

Navigate to Dead Letters from the sidebar. This page shows events that failed all 3 delivery attempts.

DLQ Table

ColumnDescription
EventThe event type
EnvSandbox or Production
Webhook URLThe endpoint that failed to accept delivery
Failure ReasonError message or HTTP response details
AttemptsNumber of attempts made (always 3)
Moved to DLQTimestamp when the event was moved to the dead letter queue
ActionReplay button or replayed timestamp

Viewing Event Details

Click any row to expand it and see the full detail view including:

Replaying Failed Events

If you've fixed the issue with your endpoint:

Replayed events are delivered directly to your webhook URL without re-applying auction ID filtering (since the event was already matched to your account on the original delivery attempt).

Once replayed, the row is dimmed and shows the replay timestamp instead of the replay button.

Retention

DLQ records are retained for 60 days, same as deliveries.


Settings

Navigate to Settings from the sidebar.

Auction IDs

Your account must have auction IDs assigned to receive events. Auction IDs represent the auction locations you operate (e.g., daanw, cpaa, rckfrd).

Important: If no auction IDs are assigned, you will not receive any webhook events. This is an intentional safe default. The dispatcher checks each event's auction-id field against your list and only delivers events that match.


Verifying Webhook Signatures

Every webhook delivery includes HMAC-SHA256 signature headers so you can verify the request came from AuctionEdge and hasn't been tampered with.

Headers Included

HeaderDescription
X-Webhook-Signaturesha256=<hex-digest> computed over {timestamp}.{payload}
X-Webhook-TimestampUnix epoch seconds when the signature was generated
X-Webhook-EventThe event type (e.g., ae.asset.deal.sold.ams)

Verification Steps

  1. Retrieve your signing secret from the dashboard API (GET /signing-secret).
  2. Extract the X-Webhook-Timestamp and raw request body.
  3. Compute HMAC-SHA256("{timestamp}.{body}") using your signing secret.
  4. Compare the hex digest with the value after sha256= in the X-Webhook-Signature header.
  5. Optionally, check that the timestamp is within an acceptable window (e.g., 5 minutes) to prevent replay attacks.

Example (Node.js)

const crypto = require('crypto');

function verifySignature(secret, timestamp, body, signature) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(`${timestamp}.${body}`)
    .digest('hex');
  return `sha256=${expected}` === signature;
}

// In your webhook handler:
const isValid = verifySignature(
  process.env.WEBHOOK_SIGNING_SECRET,
  req.headers['x-webhook-timestamp'],
  JSON.stringify(req.body),
  req.headers['x-webhook-signature']
);

Rotating Your Signing Secret

Call POST /signing-secret/rotate to generate a new signing secret. After rotation, all future deliveries will use the new secret. Update your webhook handler with the new secret promptly to avoid verification failures.


Environments

EnvironmentPurposeEvent Source
SandboxTesting and developmentPer-subscription EventBridge rules; use the test event publisher to trigger events
ProductionLive auction eventsEvents from the organization-wide EventBridge bus matching ae.* event types

Both environments deliver events through the same pipeline (SQS queue, dispatcher Lambda, retry logic, DLQ). The only difference is the event source.

Retry Behavior

Failed deliveries are retried up to 3 total attempts:

  1. Immediate delivery
  2. Retry after 5 seconds
  3. Retry after 30 seconds

If all 3 attempts fail, the event is moved to the Dead Letter Queue where you can inspect it and replay it once the issue is resolved.


Webhook Payload Format

When a webhook event is delivered to your endpoint, it arrives as an HTTP POST with a JSON body. The body is the detail object from the original EventBridge event.

Every event includes an auction-id field identifying the auction location. See the API Reference for the full list of event types and their payload schemas.