<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://payhook.co/blog/</id>
  <title>PayHook blog</title>
  <subtitle>Articles on payment webhooks: how Stripe, Paddle, Lemon Squeezy, Polar and Dodo Payments sign events, what their error messages mean, and how to fix them.</subtitle>
  <link rel="self" type="application/atom+xml" href="https://payhook.co/feed.xml"/>
  <link rel="alternate" type="text/html" href="https://payhook.co/blog/"/>
  <updated>2026-09-25T00:00:00Z</updated>
  <author><name>PayHook</name><uri>https://payhook.co/</uri></author>
  <entry>
    <id>https://payhook.co/blog/polar-webhook-signature-verification-failed/</id>
    <title>Polar webhook signature: the September 2026 key change and legacy secrets</title>
    <link rel="alternate" type="text/html" href="https://payhook.co/blog/polar-webhook-signature-verification-failed/"/>
    <published>2026-09-25T00:00:00Z</published>
    <updated>2026-09-25T00:00:00Z</updated>
    <summary>Why @polar-sh/sdk can answer &quot;No matching signature found&quot; for a Polar webhook secret issued after 8 September 2026, which key your secret uses, and how to verify both.</summary>
    <category term="polar"/>
    <category term="signatures"/>
  </entry>
</feed>
