Skip to main content
Join Markt listens for inbound payment webhooks. Sellers do not register arbitrary outbound webhook URLs through a public API today (unlike Komerza’s user webhook CRUD).

Purpose

Gateways POST to /api/{gateway}/webhook. Handlers verify signatures, locate the order, and call completeOrderFromGateway → fulfillment.

Gateways with webhook routes

adyen, amazon-ps, authorizenet, cryptomus, lemon-squeezy, misticpay, mollie, nowpayments, paypal, revolut, shopify, skrill, square, stripe, sumup, whop. PayPal also exposes /api/paypal/ipn.

Integrator checklist

  1. Configure the webhook URL in the gateway dashboard to your deployment (https://YOUR_APP_ORIGIN/api/stripe/webhook, etc.).
  2. Store the signing secret in server env / seller payment settings — never in embed JS.
  3. Expect retries from the gateway; handlers should be idempotent with respect to already-paid orders.
  4. CSRF is exempt for these prefixes; signature verification is the auth layer.

Outbound webhooks

Not available as a first-class public API in the current deployment. If you need order events in your own system, poll delivery endpoints with a checkout token you issued, or build on gateway-side notifications.

Manual confirm paths

Cash App / PayPal F&F / Venmo F&F / custom payments settle through seller confirm routes (session required), not external gateway webhooks.