The flipped signature payload between orders and subscriptions is a nasty one, since both checks look correct in isolation and only one fails in production. Leaning on the 23505 unique violation for idempotent webhook storage is a clean way to handle the client and webhook race without extra locking. Good call on keeping currency in subunits too.