The order integration works in testing and silently breaks in production — a webhook signature check skipped, a duplicate event unhandled, a weight-unit mismatch that only triggers on certain orders. The mistakes that actually break order sync.
The security mistake
Webhook endpoints that trust any POST are injectable — verify the HMAC signature or accept that anyone can push fake orders into your shipping pipeline. It's the boring validation that separates real integrations from demo-quality ones.
The duplicate-event problem
Webhooks retry on timeout — the same 'order created' event arrives twice, and without idempotency you book two shipments for one order. The dedupe check (external order ID exists?) is the line that prevents double-shipping.
The unit and timezone traps
Weight in grams vs kilograms, paise vs rupees, IST vs UTC — the integration that 'works' but produces silently-wrong data. A 500g order booked as 0.5kg vs 500kg are both parseable; only one is right. Test with real-world values, not just 'it returns 200'.
The silent-failure trap
A webhook handler that returns 200 then fails internally swallows the error — the order never reaches shipping, nobody notices until a customer asks. Log failures loudly; alert on them; the silent failure is worse than the loud one.
Pure Parcel runs the whole stack described here — one place for every carrier.
See how →The playbook
Verify webhook signatures
HMAC-check or it's not a webhook, it's a suggestion.
Dedupe on order ID
Idempotent handlers survive webhook retries.
Test real units
Grams vs kg, IST vs UTC — the subtle bugs.
Alert on handler failures
200-then-crash is the worst failure mode.
