Connect Whop to Nevian

Time needed: about 5 minutesLast updated:

Send every Whop payment to Nevian with one signed webhook, so each sale, renewal, refund and dispute shows up next to the ad that brought the buyer.

What you need

  • A Whop business where you can open the Developer tab of the dashboard.
  • A Nevian workspace with an active plan (Beginner, Pro or Enterprise), where you are the owner, an admin or a member. Viewers can't connect integrations.
  • The two tabs side by side: Nevian on Integrations and the Whop dashboard.

Steps

  1. In Nevian, open Integrations, click Add integration (Connect provider when nothing is connected yet) and pick Whop. In the Connect Whop window, have the platform open in another tab, then click Next to get your private URL.

    The Connect Whop window in Nevian, with the Next button highlighted.
  2. Nevian creates your private Webhook URL. Click the copy button next to it and leave this window open: the Webhook secret field below is where you paste Whop's secret in step 6.

    The Webhook URL in the Connect Whop window, with its copy button highlighted.
  3. In Whop, open the Developer tab of your dashboard, go to Webhooks and click Create webhook.

    The Webhooks page in Whop's Developer tab, with the Create webhook button highlighted.
  4. Paste the URL as the endpoint URL, keep the API version on v1 and select the events payment.succeeded, payment.pending, payment.failed, payment.canceled, refund.created, refund.updated, dispute.created and dispute.updated. Create the webhook.

    Whop's new webhook form with the pasted Nevian URL highlighted, API version v1 and the eight events selected.
  5. In the webhooks table, copy the signing secret from the Secret column (it starts with ws_).

    The Nevian webhook in Whop's table, with the copy button of the ws_ secret highlighted.
  6. Back in Nevian, paste it in the Webhook secret field and click Next. Keep the test step open until the first event arrives, then click Done. Nevian saves it and checks the signature of every call.

    The Connect Whop window with the webhook secret pasted and the Next button highlighted.
  7. In Whop, open the row actions of the webhook and send a test event.

    The row actions menu of the Nevian webhook in Whop, with Send event highlighted.
  8. In Nevian, the Whop card in Integrations turns Connected a few seconds after the test arrives.

    The Whop card in Nevian's Integrations list showing Connected.

Check that it works

  • The Whop card in Integrations says Connected and shows the time of the last event.
  • Logs › Webhooks lists the test exactly as Whop sent it. Nevian recognises Whop's sample event and marks it as a test: it never counts in revenue or conversions.
  • For real sales, send the click ID in the checkout metadata as btk, read on your page with bt.clickId(). Embedded checkout: <Checkout metadata={{ btk: bt.clickId() }}>. A checkout configuration your server creates: add metadata.btk and send the buyer to its purchase_url. Whop copies the metadata to the payment and to its webhooks.
  • A plain whop.com checkout or product link doesn't carry the click ID: that sale is tied to its visit by the buyer's email, when your pages identified the buyer with bt('identify', email).

Problems

"Waiting for the first event…" doesn't change

Whop hasn't sent anything to Nevian yet. In Whop, check that the webhook's URL is the whole Nevian URL and that the payment events are selected, then send the test again from the row actions. If you rotated the key in Nevian, the old URL stops working: copy the new one from the integration's Connection tab.

"Whop reached Nevian, but the call was rejected"

The signature didn't match the Webhook secret saved in Nevian, or the call was older than five minutes. Copy the secret again from the Secret column (the whole ws_ value), open the Whop card in Integrations, go to the Connection tab, click Replace, paste it and click Save.

"Webhook secret missing" on the card

You clicked Close before pasting the secret. Every Whop call is rejected until it is saved: paste it in the Connection tab of the Whop card and click Save.

Refunds don't change the sale

A webhook pinned through Whop's API to version 2026-09-02-1 or later sends refunds without the payment total, so Nevian logs them and keeps the sale as it was. Use a webhook without a version pin, like the one this tutorial creates. A partial refund is logged too: only a full refund changes the sale.

"no matching click" on a real sale

The test never has a click, so this is normal there. On a real sale it means the payment arrived without btk in its metadata: check the checkout code above. Whop explains its webhooks in its own developer guide.

Still stuck? Write to [email protected].

Images are drawings of Whop's and Nevian's screens, not screenshots; the real screen may look a little different.