---
title: "Update Referral Partner"
method: PATCH
path: "/referrals/partners/{referral_partner_id}"
tags: ["Referrals"]
---

# Update Referral Partner

`PATCH /referrals/partners/{referral_partner_id}`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/referrals/partners/{referral_partner_id}`
- Auth: none declared

## Path parameters

- `referral_partner_id` string, uuid, required

## Request body

- UpdateReferralPartnerRequest
  - `is_active` boolean, nullable
  - `sa_contact_id` integer, nullable: The partner's SmartAdvocate contact id. 0 clears it.
  - `sa_attorney_contact_id` integer, nullable: Referring attorney contact under an attorney-kind source. 0 clears it.
  - `referral_source_kind` 'attorney' | 'other' | 'paid' | 'none', nullable: Book the partner's contact as the case's referral source of this kind (attorney = Referring Law Firm, other = Other Referral, paid = Advertise); none = the partner is not the source
  - `case_contact_role` string, nullable: Attach the partner's contact in this case role, e.g. "Intake Paralegal"
  - `intake_performed_by` string, nullable: The firm's label for who took the intake, e.g. "Tiffany Feng"
  - `test_account` boolean, nullable: Developers only: its referrals are always dry runs

## Response `200`

Successful Response

- ReferralPartnerResponse
  - `referral_partner_id` string, uuid, required
  - `name` string, required
  - `firm_name` string, nullable
  - `email` string, nullable
  - `phone_number` string, nullable
  - `has_login` boolean, required: Whether a portal login exists for this partner
  - `login_kind` 'partner' | 'firm_user', nullable: partner = a portal-only account; firm_user = one of the firm's own users
  - `sa_contact_id` integer, nullable
  - `sa_attorney_contact_id` integer, nullable
  - `referral_source_kind` 'attorney' | 'other' | 'paid', nullable
  - `case_contact_role` string, nullable
  - `intake_performed_by` string, nullable
  - `test_account` boolean: Its referrals never reach SmartAdvocate (always a dry run)
  - `is_active` boolean, required
  - `referral_count` integer
  - `created_at` string, date-time, required
  - `set_password_link` string, nullable: Only returned when a developer invited with skip_invite_email; must be delivered to the partner out of band.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-21** `62b223e8ec22`: 2 info
  - added the new optional request property `test_account`
  - added the optional property `test_account` to the response with the `200` status
- **2026-10-16** `4ceb1e8613ee`: 1 info
  - added the optional property `login_kind` to the response with the `200` status
- **2026-10-16** `b3a39dc007df`: 2 warning, 8 info
  - removed the request property `sa_firm_contact_id`
  - removed the optional property `sa_firm_contact_id` from the response with the `200` status
  - added the new optional request property `case_contact_role`
  - added the new optional request property `intake_performed_by`
  - …6 more
- **2026-10-16** `47c26f79c0d8`: 4 info
  - added the new optional request property `sa_attorney_contact_id`
  - added the new optional request property `sa_firm_contact_id`
  - added the optional property `sa_attorney_contact_id` to the response with the `200` status
  - added the optional property `sa_firm_contact_id` to the response with the `200` status
- **2026-09-17** `0afcd7c31ce2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/referrals/partners/:referral_partner_id/patch.md)

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
