Define a canonical order ID namespace that includes the channel prefix and the channel-native order ID (e.g. 'dd:12345', 'ue:67890') to avoid cross-channel ID collisions
Store each ingested order's canonical ID in a fast lookup store (Redis or a database unique index) before injection into the POS
On receipt of any inbound order webhook, check the deduplication store first; if the canonical ID already exists, return 200 OK without re-injecting
Set a TTL on deduplication records appropriate to the retry window of each channel (typically 24–72 hours) to avoid unbounded storage growth
Log all deduplication hits with full payload for debugging; channel retries on your side may indicate upstream delivery failures worth investigating
Known gotchas
Delivery channels may deliver the same order webhook multiple times, especially if your endpoint was temporarily unavailable — idempotency is not optional
Do not rely solely on channel order IDs for deduplication; some channels include a retry attempt counter in headers that can help distinguish genuine retries from duplicates
The deduplication check and the POS injection must be atomic or guarded; a race condition between two concurrent webhook deliveries for the same order can bypass a naive check-then-insert pattern
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp