Skip to content

Payment webhooks aren't arriving

When the webhook log has no rows for a provider you use, nothing from that provider is reaching your store. This is a routing problem, not a signature one.

Every delivery that reaches the store leaves a row, including the ones that did nothing:

BASH
bin/plugin kahunacart webhooks
bin/plugin kahunacart webhooks --provider stripe --limit 50

Fix it

  1. Prove the webhook address is reachable from outside. It is {route}/webhook/{provider}, which with the default route is /shop/webhook/stripe:
BASH
curl -i -X POST https://your-site.com/shop/webhook/stripe -d '{}'
  1. Read the answer:
Answer What it means
A JSON body with 400 Correct. The address works, and the signature check rejected your empty test. Check the URL registered at the provider.
404 The address is wrong. Check the store's route setting and that KahunaCart and the provider plugin are enabled.
  1. Check the URL registered at the provider matches your site's address exactly, including https:// and www if your site uses it.
  2. Press Set up webhook on the provider's card at KahunaCart → Setup → Payments. It adopts an existing endpoint instead of creating a duplicate.

Note

Changing the store's route changes every webhook URL. Press Set up webhook again on each provider, then delete the old endpoint in the provider's dashboard.

bin/plugin kahunacart check also runs a Webhook reachability check and prints the address providers deliver to.

More detail

Was this helpful?

More in Payments

See all in Payments