---
title: "Update a partner"
method: PATCH
path: "/partners/{identifier}"
tags: ["Partners"]
---

# Update a partner

`PATCH /partners/{identifier}`

## Request

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

Update a partner. Lookup by slug (default), id, lasso_key, name, or external ID using the `?by=`
query param. Requires `partners_edit` permission.

Only the fields you send are changed. A field sent as null or an empty string is left as it
was: this endpoint cannot clear a field. Lookup objects (`managed_by`, `partner_type`, `tier`,
`segment`) must be objects such as `{"slug": "gold"}`; any other shape is a `400`, and one that
resolves to nothing is a `404`.

When `tier` and `segment` are both sent, the tier is applied first and then the reward plan,
so the plan you name wins over the tier's own plan.

## Path parameters

- `identifier` string, required

## Query parameters

- `by` 'slug' | 'id' | 'lasso_key' | 'name' | 'external'
- `external_system_type` string
- `external_object_type` string

## Request body

- object
  - `name` string
  - `website_url` string
  - `linkedin_url` string
  - `slug` string
  - `managed_by` ManagedBy: Resolve manager by email or CRM owner ID
    - `email` string
    - `crm_system_type` string
    - `crm_owner_id` string
  - `managed_by_id` string
  - `partner_type` ResourceLookup: Lookup by slug, id, or name
    - `slug` string
    - `id` string
    - `name` string
  - `tier` ResourceLookup: Lookup by slug, id, or name
    - `slug` string
    - `id` string
    - `name` string
  - `tier_change_reason` string
  - `segment` ResourceLookup: Lookup by slug, id, or name
    - `slug` string
    - `id` string
    - `name` string
  - `payment_terms` 'due_on_invoice' | 'net_10' | 'net_15' | 'net_30' | 'net_45' | 'net_60' | 'net_90' | 'end_of_month'
  - `payment_frequency` 'monthly' | 'quarterly' | 'semi_annually' | 'yearly'

## Response `200`

Partner updated

- object
  - `partner` Partner
    - `slug` string
    - `name` string
    - `crm_identifier` string
    - `website_url` string, nullable
    - `linkedin_url` string, nullable
    - `status` 'active' | 'deleted'
    - `partner_type` string, nullable
    - `segment` string, nullable
    - `managed_by` string, nullable: Email of the managing user
    - `payment_terms` 'due_on_invoice' | 'net_10' | 'net_15' | 'net_30' | 'net_45' | 'net_60' | 'net_90' | 'end_of_month', nullable
    - `payment_frequency` 'monthly' | 'quarterly' | 'semi_annually' | 'yearly', nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `400`: A lookup object was malformed
- `401`: Missing or invalid API key
- `403`: API key lacks required permission
- `404`: The partner, or a partner type, tier, reward plan or manager you named, could not be found
- `422`: The update was refused. A validation failure returns the usual `errors` list. A `?by=name` lookup that matches more than one partner, or a `?by=external` lookup without `external_object_type` for a system other than Salesforce, returns the same `errors` list (under field `identifier`) and also repeats the code as a single top-level `error`. Read `errors`; `error` is kept for integrations written against the older shape.
- `429`: Rate limit exceeded. Wait the number of seconds in `Retry-After`, then retry.

---

[API](https://skmtc.dev/onelasso/apis/lasso-rest-api.md) · [All operations](https://skmtc.dev/onelasso/apis/lasso-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/onelasso/apis/lasso-rest-api/revisions/bbc328f5e2d1?raw)
