Skip to main content
POST
Use this endpoint when you want to record a lead signup from your own backend instead of relying on the browser pixel. The typical flow is:
  1. Track the click with POST /v1/clicks — store the returned id as your clickId.
  2. Once the visitor signs up in your application, call POST /v1/signups with that clickId plus their email and/or your internal user ID.
The endpoint is idempotent: calling it twice with the same clickId returns the existing referral without creating duplicates. If the affiliate’s program has a lead incentive configured, this call also creates the commission transaction and fires the transaction.created webhook in addition to referral.lead.

Body Parameters

string
required
The click ID returned by POST /v1/clicks. Must belong to your team.
string
The lead’s email address. Either email or external_user_id must be provided. Silently ignored when the program has email tracking disabled.
string
Your internal identifier for the lead (e.g. database user ID). Either email or external_user_id must be provided.
string
The lead’s display name. Maximum 255 characters. Silently ignored when the program has name tracking disabled.

Response

boolean
true on success. Returns false only on validation, auth, or not-found errors.
object
The referral object after conversion.

Status codes

Fraud checks

The same fraud checks that run for browser-side signups (self-referral, disposable email, paid traffic) also apply here. If any check is configured in BLOCK mode and rejects the signup:
  • The referral status is set to rejected instead of lead.
  • The referral.lead webhook is not emitted.
  • No lead-incentive commission is created.
  • The endpoint still returns 201 Created with the rejected referral object — inspect data.status to detect blocks.

Webhooks fired

  • POST /v1/clicks — track the click that you’ll later convert.
  • POST /v1/referrals — alternative endpoint when you want to skip the click stage and record a referral directly.