> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joinmarkt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks & IPN

> Receive payment and order status updates from Join Markt and payment providers.

Join Markt combines **provider IPN/webhooks** (Stripe, NOWPayments, PayPal, …) with internal order status updates.

## Order settlement (store sales)

Payment providers POST to Join Markt webhook routes under `/api/...`. Signatures are verified with the secrets configured in platform or store settings. Reject invalid signatures with `401`.

Deep reference: [Incoming Webhooks](/api/webhooks-overview).

## SaaS subscription (vendor plans)

Crypto upgrades for Premium / Business use a dedicated IPN:

```txt theme={null}
POST /api/billing/nowpayments/webhook
```

`order_id` values are prefixed with `saas_`. On `finished` / `confirmed`, Join Markt grants or extends the plan.

## Implementation tips

1. Endpoints must be **public HTTPS** (no localhost without a tunnel)
2. Respond quickly with `2xx`; do heavy work after ack if needed
3. Treat webhooks as **at-least-once** — make handlers idempotent
4. Log `payment_id` / `order_id` for support

## Related

* [Incoming Webhooks](/api/webhooks-overview)
* [Checkout links](/developers/checkout-links)
* [Supported payment methods](/guides/payment-methods)
