Locally
Your handler needs a public URL. Tunnel to it:Confirm it actually arrived
Do not infer delivery from your own logs alone. Check both ends:1
Trigger an event
Collect into a test virtual account.
2
Watch your endpoint
You should see one POST with a
flick-signature header.3
Answer 2xx
A non-2xx is treated as a failure, and the event may be retried or dropped.
4
Replay if you missed it
POST /merchant/resend-webhook with the transaction id.A checklist worth keeping
- Reject a bad
flick-signaturewith401— and verify that you do, by sending one - Return
2xxbefore doing slow work, not after - Handle the same
data.Idtwice without double-crediting - Handle an unknown
statuswithout crashing; new events get added - Read amounts as minor units