Leads

Update a lead

Update a referral's details or move it to another status. Lookup by slug (default), id, email, company_name, or external ID using the ?by= query param. Requires partners_edit, and payment_write as well when remove_rewards is true.

Only the fields you send are changed. Fields this endpoint does not list are ignored, with one exception: status is refused with a 400, because it is create-only. Use the mark_as_* flags instead. Blank company_name, contact_name or email values are ignored.

Status changes

Only one status change can be requested per call; sending two is a 422. A change that is not available from the referral's current status is a 422 (Cannot transition lead from <status> via <event>). Marking an already closed_lost referral as closed lost succeeds without doing anything, so a retry is safe.

FlagAllowed when the referral is
mark_as_acceptedopen, rejected, closed_lost
mark_as_qualifiedopen, accepted
mark_as_closed_wonaccepted, qualified
mark_as_closed_lostany status except closed_lost (where it is a no-op)
mark_as_rejectedany status
mark_as_churnedqualified, closed_won
mark_as_expiredopen, accepted, qualified
mark_as_revived (deprecated)rejected, churned, expired

mark_as_revived is deprecated and kept only for existing integrations; new integrations should avoid it.

A mark_as_* flag, like remove_rewards, is on only when sent as true (or the string "true", "1" or "yes", for form-encoded callers). Any other value, including false, "false" and "0", leaves it off and does not count toward the one-change limit.

Removing rewards

remove_rewards removes every reward on the referral and voids their draft and payment-ready invoices, so it requires payment_write in addition to partners_edit. A key without it gets a 403 and nothing in the request is applied. If any reward has a finalized or paid invoice, nothing in the request is applied and the call is a 422 with code invoice_locked, the same refusal DELETE /leads/{lead_identifier}/rewards/{id} gives. Void or reverse those invoices first.

Reassigning the partner contact

Send one partner_member_* selector to attribute the referral to a different contact at the same partner. Rewards already calculated keep paying the contact they were calculated for; the response carries a REWARD_ATTRIBUTION_UNCHANGED warning when that is the case.

patch/leads/{identifier}

Request

  • Base URL: https://api.lassotech.com/api/v1/rest
  • URL: https://api.lassotech.com/api/v1/rest/leads/{identifier}
  • Auth: API key in header x-lasso-access-token

Path parameters

identifierstring required

Lead identifier (slug by default, or value matching by param)

Query parameters

by'slug' | 'id' | 'email' | 'company_name' | 'external'

How to read the referral identifier in the path. See Resource Lookup.

external_system_typestring

Required when by=external. e.g. HUBSPOT, SALESFORCE, PIPEDRIVE

external_object_typestring

Required when by=external (optional for a Salesforce partner). e.g. company, deal, opportunity, account

Request body

mark_as_acceptedboolean
mark_as_qualifiedboolean
mark_as_rejectedboolean
mark_as_closed_wonboolean
mark_as_closed_lostboolean
mark_as_churnedboolean
mark_as_revivedboolean

Restores a rejected, churned or expired referral to whatever status it was in immediately beforehand, with no way to request a different target. Retained so existing integrations keep working; prefer an explicit status transition where one is available for your use case.

mark_as_expiredboolean
partner_member_slugstring

Attribute the referral to this partner contact, by Lasso Partner Contact Key. Slug wins over email, which wins over a CRM contact ID.

partner_member_emailstring email

Attribute the referral to the partner contact with this email.

partner_member_hubspot_contact_idstring

Attribute the referral to the partner contact linked to this HubSpot contact.

partner_member_salesforce_contact_idstring

Attribute the referral to the partner contact linked to this Salesforce contact.

partner_member_pipedrive_person_idstring

Attribute the referral to the partner contact linked to this Pipedrive person.

expires_atstring date-time nullable

Lead expiration date. Set to null to clear.

billing_start_datestring date nullable

Overrides the date this referral's billing starts from, which Lasso otherwise derives from your billing settings (for example the closed-won date or the date of the first revenue). Invoicing starts from the calendar month containing this date. Send null to go back to the derived date. Must be an ISO 8601 date; an invalid value is a 422 reported against billing_start_date.

company_namestring
contact_namestring
emailstring
amountnumber float

Estimated deal amount

expected_close_datestring date
co_soldboolean

Mark as co-sold

remove_rewardsboolean

Remove all rewards from the referral and void their draft and payment-ready invoices (typically used with co_sold). Requires payment_write. Refused with invoice_locked when any reward has a finalized or paid invoice. See Removing rewards above.

internal_notesstring
external_notesstring

Example request

{
  "partner_member_slug": "PC-A1B2C3",
  "billing_start_date": "2026-10-01"
}

Response

Lead updated

Example response

{
  "lead": {
    "slug": "abc-123",
    "source_type": "referral_link",
    "company_name": "Lead Company",
    "contact_name": "Jane Doe",
    "email": "jane@leadco.com",
    "partner_slug": "acme-corp",
    "partner_lasso_key": "P-A1B2C3",
    "partner_member": {
      "slug": "PC-A1B2C3"
    },
    "currency_code": "USD",
    "billing_start_date": "2026-10-01"
  },
  "warnings": [
    {
      "field": "partner_member",
      "message": "SKIPPED_REWARDS: Referral Bonus pays the partner contact and no partner contact was supplied, so it was not applied to this referral."
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.