Skip to main content

Locally

Your handler needs a public URL. Tunnel to it:
Register the tunnel URL in the dashboard, then trigger a real event with your test key — a small virtual-account collection is the quickest.

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-signature with 401 — and verify that you do, by sending one
  • Return 2xx before doing slow work, not after
  • Handle the same data.Id twice without double-crediting
  • Handle an unknown status without crashing; new events get added
  • Read amounts as minor units