Create a referral
Create a referral (lead) for an existing partner.
Identifying the partner
Supply exactly one of partner_lasso_key, partner_slug, partner_id, partner_name, or the partner_external_system_type + partner_external_object_type + partner_external_identifier triple.
partner_lasso_key is the Lasso Partner Key (P-A1B2C3). It is generated when the partner is created and can never change, so it is the right value to store on your own partner records. Slugs are editable and names are not unique.
Identifying the referred prospect
email is required, and so is a name: contact_name, company_name, or both.
Linking to your CRM
Passing a CRM deal, opportunity or lead ID (hubspot_deal_id, salesforce_opportunity_id, salesforce_lead_id, pipedrive_deal_id) links the referral to that record as it is created. Once linked, changes in your CRM flow to the referral, so you do not need to send updates yourself.
If your Salesforce org tracks referrals on a custom object, pass that record's ID as salesforce_custom_referral_object_id. It can be sent on its own or together with an opportunity or lead ID, and every ID sent is linked.
Idempotency
This endpoint is idempotent on those deal, opportunity, lead and custom referral object IDs. If a referral already carries the ID you send, that referral is returned with 200 OK and nothing is created, so a retried workflow is safe. Nothing else in the request is applied to it; warnings lists what was skipped. If it belongs to a different partner than the one you named, you get a 409 instead. Contact and company IDs are not used for this, because separate referrals can share one company.
Recording history
status, closed_won_at, skip_rewards and backfill let you import referrals that already happened. They apply only when the referral is created, never on a 200 match.
Partner contacts and rewards
If every reward on the partner's reward plan pays the partner contact and you name no contact, the referral would earn nothing, so the request is refused with 422 unless skip_rewards is set. If only some do, the referral is created and the skipped rewards are listed in warnings.
Requires partners_edit permission.
Request
- Base URL: https://api.lassotech.com/api/v1/rest
- URL: https://api.lassotech.com/api/v1/rest/leads
- Auth: API key in header x-lasso-access-token
Request body
Example request
{
"partner_lasso_key": "P-A1B2C3",
"partner_slug": "acme-corp",
"partner_external_system_type": "HUBSPOT",
"partner_external_object_type": "custom_partner_object",
"email": "jane@leadco.com",
"contact_name": "Jane Doe",
"company_name": "Lead Inc",
"website": "https://leadco.com",
"amount": 24000,
"expected_close_date": "2026-11-30",
"partner_member_slug": "PC-A1B2C3",
"partner_member_email": "contact@partner.com",
"status": "closed_won",
"closed_won_at": "2026-06-01T12:00:00Z",
"hubspot_deal_id": "12345",
"salesforce_custom_referral_object_id": "a0X5e00000AbCdEFGH"
}Response
A referral already existed for the supplied CRM opportunity ID and was returned unchanged. Nothing else in your request was applied, so warnings lists anything you asked for that differs from the existing referral. Use PUT /leads/{identifier} to change it.
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.