Skip to main content
Webhooks send Privy events to an external system as they happen — when a contact signs up, completes a coupon, or places a tracked order.

Add a webhook

  • Select Settings in the lower left corner of your dashboard.
  • Under Integrations, select Webhooks.
  • Click Add Webhook and choose Slack or Custom.
  • Configure the Method (GET or POST — Slack webhooks always use POST), the destination URL, and the Triggers (Signups, Orders), then Save.
Use the Test button on any configured webhook to fire a request at your endpoint immediately.

Example payload

Here is an example webhook payload for a signup event. custom_fields is a single-level nested object of any custom fields collected with the signup, or null if there are none.
{
    "id": 999999,
    "email": "test@example.com",
    "first_name": "Test",
    "last_name": "User",
    "custom_fields": {
        "favorite_color": "blue"
    },
    "created_at": null,
    "updated_at": null,
    "campaign": {
        "id": 1,
        "title": "Newsletter signup"
    }
}

Endpoint requirements

Your webhook endpoint must be a publicly accessible URL that resolves to an IP address in one of the public ranges. For example, you cannot use any URL that resolves to 127.0.0.1 or equivalent. We recommend using HTTP basic authentication to add a layer of security to your webhook endpoint (e.g., https://name:password@example.com/post). Your server will need to reply with an HTTP 200 response to let you know you’ve received the webhook. If it does not respond with an HTTP 200, Privy will not return the server’s HTTP response code or response body to you for inspection.