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

# Lead Signup

> Fired when a new lead signs up through a promoter's referral link.

Your endpoint will receive this event each time a lead signs up via a referral link tracked by FirstPromoter.

## Payload

<ResponseField name="event" type="object">
  <Expandable title="properties">
    <ResponseField name="id" type="number">
      Unique ID of the event.
    </ResponseField>

    <ResponseField name="type" type="string">
      Always `lead_signup` for this event.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 timestamp of when the event occurred.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="data" type="object">
  <Expandable title="properties">
    <ResponseField name="id" type="number">
      ID of the lead.
    </ResponseField>

    <ResponseField name="status" type="string">
      Current state of the lead (e.g., `signup`, `active`, `cancelled`).
    </ResponseField>

    <ResponseField name="email" type="string">
      Email address of the lead.
    </ResponseField>

    <ResponseField name="uid" type="string">
      External user ID you passed when tracking the lead.
    </ResponseField>

    <ResponseField name="customer_since" type="string">
      Timestamp of when the lead became a paying customer. `null` until they convert.
    </ResponseField>

    <ResponseField name="cancelled_at" type="string">
      Timestamp of when the lead cancelled. `null` if not cancelled.
    </ResponseField>

    <ResponseField name="plan_name" type="string">
      Name of the plan the lead is subscribed to.
    </ResponseField>

    <ResponseField name="suspicion" type="string">
      Fraud suspicion level: `no_suspicion`, `same_ip_suspicion`, `same_promoter_email`, or `ad_source`. `same_ip_suspicion` and `same_promoter_email` both indicate a self-referral.
    </ResponseField>

    <ResponseField name="username" type="string">
      Username of the lead, if provided.
    </ResponseField>

    <ResponseField name="website" type="string">
      Website of the lead, if provided.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Timestamp of when the lead was created.
    </ResponseField>

    <ResponseField name="split_promotion_id" type="number">
      ID of the split promotion, if applicable.
    </ResponseField>

    <ResponseField name="split_percentage_value" type="number">
      Percentage split value, if applicable.
    </ResponseField>

    <ResponseField name="promoter" type="object">
      The promoter who referred this lead.

      <Expandable title="properties">
        <ResponseField name="id" type="number">ID of the promoter.</ResponseField>
        <ResponseField name="status" type="string">Status of the promoter (e.g., `active`, `pending`).</ResponseField>
        <ResponseField name="cust_id" type="string">External customer ID of the promoter.</ResponseField>
        <ResponseField name="email" type="string">Email address of the promoter.</ResponseField>
        <ResponseField name="created_at" type="string">Timestamp of when the promoter was created.</ResponseField>
        <ResponseField name="temp_password" type="string">Temporary password set on account creation.</ResponseField>
        <ResponseField name="default_promotion_id" type="number">ID of the promoter's default promotion.</ResponseField>
        <ResponseField name="pref" type="string">Internal preference token for the promoter.</ResponseField>
        <ResponseField name="default_ref_id" type="string">Default referral ID used in links.</ResponseField>
        <ResponseField name="note" type="string">Admin note on the promoter's profile.</ResponseField>
        <ResponseField name="w8_form_url" type="string">URL of the W-8 tax form, if uploaded.</ResponseField>
        <ResponseField name="w9_form_url" type="string">URL of the W-9 tax form, if uploaded.</ResponseField>
        <ResponseField name="parent_promoter_id" type="number">ID of the parent promoter in a multi-tier setup.</ResponseField>
        <ResponseField name="earnings_balance" type="object">Total commissions earned, broken down by unit (e.g., `cash`, `points`).</ResponseField>
        <ResponseField name="current_balance" type="object">Current unpaid balance, broken down by unit.</ResponseField>
        <ResponseField name="paid_balance" type="object">Total paid out balance, broken down by unit.</ResponseField>
        <ResponseField name="auth_token" type="string">Authentication token for the promoter's affiliate dashboard.</ResponseField>

        <ResponseField name="profile" type="object">
          <Expandable title="properties">
            <ResponseField name="id" type="number">ID of the profile.</ResponseField>
            <ResponseField name="first_name" type="string">First name.</ResponseField>
            <ResponseField name="last_name" type="string">Last name.</ResponseField>
            <ResponseField name="website" type="string">Website URL.</ResponseField>
            <ResponseField name="company_name" type="string">Company name.</ResponseField>
            <ResponseField name="phone_number" type="string">Phone number.</ResponseField>
            <ResponseField name="address" type="string">Mailing address.</ResponseField>
            <ResponseField name="vat_id" type="string">VAT identification number.</ResponseField>
            <ResponseField name="country" type="string">Two-letter country code.</ResponseField>
            <ResponseField name="paypal_email" type="string">PayPal email for payouts.</ResponseField>
            <ResponseField name="avatar_url" type="string">URL of the promoter's avatar image.</ResponseField>
            <ResponseField name="description" type="string">Bio or description.</ResponseField>

            <ResponseField name="social_accounts" type="object">
              Social profile URLs keyed by platform (`twitter`, `youtube`, `facebook`, `linkedin`, `instagram`, `tiktok`, `twitch`). Each entry has a `url` string.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="promotions" type="array">
          Array of promotion objects — one per campaign the promoter is enrolled in. See the promotion object fields below.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="promotion" type="object">
      The specific promotion (campaign enrollment) that generated this lead.

      <Expandable title="properties">
        <ResponseField name="id" type="number">ID of the promotion.</ResponseField>
        <ResponseField name="status" type="string">Status (e.g., `offer_running`, `offer_inactive`).</ResponseField>
        <ResponseField name="ref_id" type="string">Referral ID used in this promotion's links.</ResponseField>
        <ResponseField name="promo_code" type="string">Promoter-facing promo code.</ResponseField>
        <ResponseField name="customer_promo_code" type="string">Customer-facing discount code.</ResponseField>
        <ResponseField name="target_reached_at" type="string">Timestamp when the target reward was unlocked.</ResponseField>
        <ResponseField name="promoter_id" type="number">ID of the promoter.</ResponseField>
        <ResponseField name="campaign_id" type="number">ID of the campaign.</ResponseField>
        <ResponseField name="referral_link" type="string">Full referral URL.</ResponseField>
        <ResponseField name="campaign_name" type="string">Name of the campaign.</ResponseField>
        <ResponseField name="hidden" type="boolean">Whether this promotion is hidden from the affiliate dashboard.</ResponseField>
        <ResponseField name="visitors_count" type="number">Total visitors tracked through this promotion.</ResponseField>
        <ResponseField name="leads_count" type="number">Total leads referred.</ResponseField>
        <ResponseField name="customers_count" type="number">Total customers converted.</ResponseField>
        <ResponseField name="active_customers_count" type="number">Currently active (non-cancelled) customers.</ResponseField>
        <ResponseField name="sales_count" type="number">Total number of sales.</ResponseField>
        <ResponseField name="sales_total" type="number">Total sales value in cents.</ResponseField>
        <ResponseField name="refunds_count" type="number">Total number of refunds.</ResponseField>
        <ResponseField name="refunds_total" type="number">Total refund value in cents (negative).</ResponseField>
        <ResponseField name="cancellations_count" type="number">Total cancellations.</ResponseField>
        <ResponseField name="current_offer" type="object">The active discount offer for referrals.</ResponseField>
        <ResponseField name="current_referral_reward" type="object">The active commission reward for this promotion.</ResponseField>
        <ResponseField name="current_promotion_reward" type="object">The active non-monetary or milestone reward.</ResponseField>
        <ResponseField name="current_target_reward" type="object">The active target-based reward, if set.</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## Example

<ResponseExample>
  ```json Response theme={null}
  {
    "event": {
      "id": 22736304,
      "type": "lead_signup",
      "created_at": "2024-10-03T13:45:20.103Z"
    },
    "data": {
      "id": 21381518,
      "state": "signup",
      "email": "goqucugo@mailinator.com",
      "uid": "",
      "customer_since": null,
      "cancelled_at": null,
      "plan_name": null,
      "suspicion": "no_suspicion",
      "username": null,
      "website": null,
      "created_at": "2024-10-03T13:45:20.031Z",
      "split_promotion_id": null,
      "custom_fields": null,
      "split_percentage_value": null,
      "visitor_sub_id": null,
      "promotion": {
        "id": 4210924,
        "status": "offer_running",
        "ref_id": "afpxunub",
        "promo_code": null,
        "customer_promo_code": null,
        "target_reached_at": null,
        "promoter_id": 3920164,
        "campaign_id": 13202,
        "referral_link": "https://www.example.com?_get=afpxunub",
        "current_offer": {
          "id": 67212,
          "name": "5% discount coupon",
          "amount": 5,
          "unit": "discount_per",
          "default_promo_code": "EXAMPLE-5"
        },
        "current_referral_reward": {
          "id": 128312,
          "amount": 0,
          "type": "per_referral",
          "unit": "cash",
          "name": "20% recurring commission",
          "per_of_sale": 20,
          "default_promo_code": ""
        },
        "current_promotion_reward": null,
        "current_target_reward": null,
        "campaign_name": "Main Campaign",
        "hidden": false,
        "visitors_count": 2,
        "leads_count": 4,
        "customers_count": 3,
        "refunds_count": 1,
        "cancellations_count": 1,
        "sales_count": 3,
        "sales_total": 201000,
        "refunds_total": -1000,
        "active_customers_count": 2
      },
      "promoter": {
        "id": 3920164,
        "status": "active",
        "cust_id": "",
        "email": "promoter@example.com",
        "created_at": "2022-04-26T15:28:24.800Z",
        "temp_password": null,
        "default_promotion_id": 4210919,
        "pref": "db1znwe",
        "default_ref_id": "myrefid",
        "note": null,
        "w8_form_url": null,
        "w9_form_url": null,
        "parent_promoter_id": null,
        "earnings_balance": { "cash": 50744 },
        "current_balance": { "cash": 20044 },
        "paid_balance": { "cash": 30700 },
        "auth_token": "hjsmLQwMounBWxeqQS2cMXYp8epADJmB",
        "profile": {
          "id": 3947800,
          "first_name": "Jane",
          "last_name": "Smith",
          "website": "https://janesmith.com",
          "company_name": "",
          "phone_number": "",
          "address": "",
          "vat_id": "",
          "country": "US",
          "paypal_email": "",
          "avatar_url": "",
          "description": null,
          "social_accounts": {
            "twitter": { "url": "" },
            "youtube": { "url": "" },
            "facebook": { "url": "" },
            "linkedin": { "url": "" },
            "instagram": { "url": "" }
          }
        },
        "promotions": []
      }
    }
  }
  ```
</ResponseExample>
