---
title: "partially update one existing referralCampaign"
method: PATCH
path: "/api/servicereferral/referralCampaigns/{identifier}"
tags: ["referralCampaigns"]
---

# partially update one existing referralCampaign

`PATCH /api/servicereferral/referralCampaigns/{identifier}`

Partially update one existing referralCampaign

## Path parameters

- `identifier` string, uuid, required

## Request body

- ReferralCampaign
  - `uuid` string, uuid
  - `createdAt` string, date-time
  - `createdBy` string, uuid
  - `lastUpdatedAt` string, date-time
  - `lastUpdatedBy` string, uuid
  - `lastUpdatedByAudience` string
  - `lastUpdatedByAudienceUuid` string, uuid
  - `lastUpdatedByImpersonatedBy` string, uuid
  - `lastUpdatedByCompanyUuid` string, uuid
  - `lastUpdatedByEnterpriseUuid` string, uuid
  - `version` number — schema version number
  - `companyUuid` string, uuid, required
  - `status` 'draft' | 'published' | 'archived', required
  - `title` string, required
  - `description` string
  - `segmentUuids` string[]
  - `virtualSegments` object[]
    - `uuid` string, uuid
    - `createdAt` string, date-time
    - `createdBy` string, uuid
    - `lastUpdatedAt` string, date-time
    - `lastUpdatedBy` string, uuid
    - `lastUpdatedByAudience` string
    - `lastUpdatedByAudienceUuid` string, uuid
    - `lastUpdatedByImpersonatedBy` string, uuid
    - `lastUpdatedByCompanyUuid` string, uuid
    - `lastUpdatedByEnterpriseUuid` string, uuid
    - `name` string, required
    - `description` string
    - `filters` string
    - `filterValues` string
    - `pipeline` string
    - `reference` object — For automatic segments, set a reference to make it easier to retrieve/update/delete when that reference changes
    - `companyUuid` string, uuid
    - `subscriptions` object[]
      - `service` 'activity' | 'attendance' | 'authorization' | 'broker' | 'compliance' | 'compliancev2' | 'communicate' | 'employment' | 'integrations' | 'logger' | 'media' | 'messaging' | 'ocr' | 'occupations-mcp' | 'organizations' | 'pool' | 'pulse' | 'referral' | 'scheduler' | 'security' | 'segmentation' | 'staff' | 'support' | 'todo' | 'workforce'
      - `key` string
    - `segmentType` 'unitary' | 'default' | 'automatic' | 'observer' | 'worker_notification' | 'employer_notification'
    - `forceMatch` boolean — if true, will match worker even if they have the property `segmentEnabled` to true
    - `dynamicFilters` object, nullable
      - `event` string, required
      - `eventOffsetDirection` 'before' | 'after' | 'on', required
      - `offsetDays` number
      - `finalOffsetDirection` 'before' | 'after' | 'on'
    - `observerRecurrence` object, nullable
      - `type` 'annual', required
    - `observerTemplate` boolean — when enabled, this is meant to be a template/blueprint for actual observerSegments
    - `baseObserverSegmentUuids` string[]
    - `timezone` string
  - `positions` object[]
    - `uuid` string, required
    - `name` string, required
  - `locations` object[]
    - `uuid` string, required
    - `name` string, required
  - `default` boolean
  - `messages` object
    - `email` object
      - `enabled` boolean, required
      - `subject` string
      - `content` string
    - `sms` object
      - `enabled` boolean, required
      - `content` string
  - `incentives` object[]
    - `rewardType` 'both' | 'worker' | 'applicant', required
    - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
    - `cashValue` number, required
    - `numberOfDays` number
    - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
    - `payoutConditions` object[]
      - `conditions` object[], required
        - `numberOfDays` number, required
        - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
      - `attributeConditions` object[]
        - `customAttributeUuid` string, uuid, required
        - `customAttributeName` string
        - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
        - `value` union, required
          - string
          - string[]
  - `incentive` object
    - `rewardType` 'both' | 'worker' | 'applicant', required
    - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
    - `cashValue` number, required
    - `numberOfDays` number
    - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
    - `payoutConditions` object[]
      - `conditions` object[], required
        - `numberOfDays` number, required
        - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
      - `attributeConditions` object[]
        - `customAttributeUuid` string, uuid, required
        - `customAttributeName` string
        - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
        - `value` union, required
          - string
          - string[]
  - `reminder` object
    - `enabled` boolean, required — Whether the reminder is enabled
    - `scheme` 'every' | 'once after' — Frequency of the reminder
    - `count` number — Frequency count the reminder is sent
    - `unitOfTime` 'day' | 'week' | 'month' — Type of frequency for the reminder (day, week, or month)
    - `remindAt` string, date-time — The specific time the reminder is sent
    - `messages` object
      - `email` object
        - `enabled` boolean, required
        - `subject` string
        - `content` string
      - `sms` object
        - `enabled` boolean, required
        - `content` string
  - `duration` object
    - `startsAt` string, date-time, required
    - `endsAt` string, date-time
    - `indefinite` boolean, required
  - `draft` object
    - `title` string
    - `segmentUuids` string[]
    - `positions` object[]
      - `uuid` string, required
      - `name` string, required
    - `locations` object[]
      - `uuid` string, required
      - `name` string, required
    - `messages` object
      - `email` object
        - `enabled` boolean, required
        - `subject` string
        - `content` string
      - `sms` object
        - `enabled` boolean, required
        - `content` string
    - `reminder` object
      - `enabled` boolean, required — Whether the reminder is enabled
      - `scheme` 'every' | 'once after' — Frequency of the reminder
      - `count` number — Frequency count the reminder is sent
      - `unitOfTime` 'day' | 'week' | 'month' — Type of frequency for the reminder (day, week, or month)
      - `remindAt` string, date-time — The specific time the reminder is sent
      - `messages` object
        - `email` object
          - `enabled` boolean, required
          - `subject` string
          - `content` string
        - `sms` object
          - `enabled` boolean, required
          - `content` string
    - `duration` object
      - `startsAt` string, date-time, required
      - `endsAt` string, date-time
      - `indefinite` boolean, required
    - `incentives` object[]
      - `rewardType` 'both' | 'worker' | 'applicant', required
      - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
      - `cashValue` number, required
      - `numberOfDays` number
      - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
      - `payoutConditions` object[]
        - `conditions` object[], required
          - `numberOfDays` number, required
          - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
        - `attributeConditions` object[]
          - `customAttributeUuid` string, uuid, required
          - `customAttributeName` string
          - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
          - `value` union, required
            - string
            - string[]
    - `incentive` object
      - `rewardType` 'both' | 'worker' | 'applicant', required
      - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
      - `cashValue` number, required
      - `numberOfDays` number
      - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
      - `payoutConditions` object[]
        - `conditions` object[], required
          - `numberOfDays` number, required
          - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
        - `attributeConditions` object[]
          - `customAttributeUuid` string, uuid, required
          - `customAttributeName` string
          - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
          - `value` union, required
            - string
            - string[]
    - `limitAvailability` boolean
    - `customAttributeUuid` string, uuid
  - `limitAvailability` boolean
  - `customAttributeUuid` string, uuid
  - `virtualCustomAttribute` object
    - `uuid` string, uuid
    - `createdAt` string, date-time — Creation timestamp
    - `createdBy` string, uuid — Creator UUID
    - `lastUpdatedAt` string, date-time — Last update timestamp
    - `lastUpdatedBy` string, uuid — Last updater UUID
    - `lastUpdatedByAudience` string — Audience of last updater
    - `lastUpdatedByAudienceUuid` string, uuid — Audience UUID of last updater
    - `lastUpdatedByImpersonatedBy` string, uuid — Impersonator UUID
    - `lastUpdatedByCompanyUuid` string, uuid — Company UUID of last updater
    - `lastUpdatedByEnterpriseUuid` string, uuid — Enterprise UUID of last updater
    - `companyUuid` string, uuid — Company UUID
    - `label` string, required
    - `key` string
    - `dataType` 'string' | 'number' | 'date' | 'boolean' | 'select' | 'address' | 'media' | 'signature' | 'complianceDocument', required
    - `description` string
    - `options` object[]
      - `value` string, required
      - `label` string
      - `hireValue` unknown
    - `resource` string
    - `resourceIdentifier` string, uuid
    - `readOnly` boolean — If true, this attribute cannot be modified. Can only be set by system.
    - `hidden` boolean — If true, this attribute won't be shown. Can only be set by system.
    - `protected` boolean — If true, this attribute can only be accessed by users with certain rights.
    - `hireDataKeyId` integer — The ID of the hire data key

## Response `202`

updated referralCampaign. Wrapped in a JsonAPI root response.

- object
  - `data` ReferralCampaign
    - `uuid` string, uuid
    - `createdAt` string, date-time
    - `createdBy` string, uuid
    - `lastUpdatedAt` string, date-time
    - `lastUpdatedBy` string, uuid
    - `lastUpdatedByAudience` string
    - `lastUpdatedByAudienceUuid` string, uuid
    - `lastUpdatedByImpersonatedBy` string, uuid
    - `lastUpdatedByCompanyUuid` string, uuid
    - `lastUpdatedByEnterpriseUuid` string, uuid
    - `version` number — schema version number
    - `companyUuid` string, uuid, required
    - `status` 'draft' | 'published' | 'archived', required
    - `title` string, required
    - `description` string
    - `segmentUuids` string[]
    - `virtualSegments` object[]
      - `uuid` string, uuid
      - `createdAt` string, date-time
      - `createdBy` string, uuid
      - `lastUpdatedAt` string, date-time
      - `lastUpdatedBy` string, uuid
      - `lastUpdatedByAudience` string
      - `lastUpdatedByAudienceUuid` string, uuid
      - `lastUpdatedByImpersonatedBy` string, uuid
      - `lastUpdatedByCompanyUuid` string, uuid
      - `lastUpdatedByEnterpriseUuid` string, uuid
      - `name` string, required
      - `description` string
      - `filters` string
      - `filterValues` string
      - `pipeline` string
      - `reference` object — For automatic segments, set a reference to make it easier to retrieve/update/delete when that reference changes
      - `companyUuid` string, uuid
      - `subscriptions` object[]
        - `service` 'activity' | 'attendance' | 'authorization' | 'broker' | 'compliance' | 'compliancev2' | 'communicate' | 'employment' | 'integrations' | 'logger' | 'media' | 'messaging' | 'ocr' | 'occupations-mcp' | 'organizations' | 'pool' | 'pulse' | 'referral' | 'scheduler' | 'security' | 'segmentation' | 'staff' | 'support' | 'todo' | 'workforce'
        - `key` string
      - `segmentType` 'unitary' | 'default' | 'automatic' | 'observer' | 'worker_notification' | 'employer_notification'
      - `forceMatch` boolean — if true, will match worker even if they have the property `segmentEnabled` to true
      - `dynamicFilters` object, nullable
        - `event` string, required
        - `eventOffsetDirection` 'before' | 'after' | 'on', required
        - `offsetDays` number
        - `finalOffsetDirection` 'before' | 'after' | 'on'
      - `observerRecurrence` object, nullable
        - `type` 'annual', required
      - `observerTemplate` boolean — when enabled, this is meant to be a template/blueprint for actual observerSegments
      - `baseObserverSegmentUuids` string[]
      - `timezone` string
    - `positions` object[]
      - `uuid` string, required
      - `name` string, required
    - `locations` object[]
      - `uuid` string, required
      - `name` string, required
    - `default` boolean
    - `messages` object
      - `email` object
        - `enabled` boolean, required
        - `subject` string
        - `content` string
      - `sms` object
        - `enabled` boolean, required
        - `content` string
    - `incentives` object[]
      - `rewardType` 'both' | 'worker' | 'applicant', required
      - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
      - `cashValue` number, required
      - `numberOfDays` number
      - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
      - `payoutConditions` object[]
        - `conditions` object[], required
          - `numberOfDays` number, required
          - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
        - `attributeConditions` object[]
          - `customAttributeUuid` string, uuid, required
          - `customAttributeName` string
          - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
          - `value` union, required
            - string
            - string[]
    - `incentive` object
      - `rewardType` 'both' | 'worker' | 'applicant', required
      - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
      - `cashValue` number, required
      - `numberOfDays` number
      - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
      - `payoutConditions` object[]
        - `conditions` object[], required
          - `numberOfDays` number, required
          - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
        - `attributeConditions` object[]
          - `customAttributeUuid` string, uuid, required
          - `customAttributeName` string
          - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
          - `value` union, required
            - string
            - string[]
    - `reminder` object
      - `enabled` boolean, required — Whether the reminder is enabled
      - `scheme` 'every' | 'once after' — Frequency of the reminder
      - `count` number — Frequency count the reminder is sent
      - `unitOfTime` 'day' | 'week' | 'month' — Type of frequency for the reminder (day, week, or month)
      - `remindAt` string, date-time — The specific time the reminder is sent
      - `messages` object
        - `email` object
          - `enabled` boolean, required
          - `subject` string
          - `content` string
        - `sms` object
          - `enabled` boolean, required
          - `content` string
    - `duration` object
      - `startsAt` string, date-time, required
      - `endsAt` string, date-time
      - `indefinite` boolean, required
    - `draft` object
      - `title` string
      - `segmentUuids` string[]
      - `positions` object[]
        - `uuid` string, required
        - `name` string, required
      - `locations` object[]
        - `uuid` string, required
        - `name` string, required
      - `messages` object
        - `email` object
          - `enabled` boolean, required
          - `subject` string
          - `content` string
        - `sms` object
          - `enabled` boolean, required
          - `content` string
      - `reminder` object
        - `enabled` boolean, required — Whether the reminder is enabled
        - `scheme` 'every' | 'once after' — Frequency of the reminder
        - `count` number — Frequency count the reminder is sent
        - `unitOfTime` 'day' | 'week' | 'month' — Type of frequency for the reminder (day, week, or month)
        - `remindAt` string, date-time — The specific time the reminder is sent
        - `messages` object
          - `email` object
            - `enabled` boolean, required
            - `subject` string
            - `content` string
          - `sms` object
            - `enabled` boolean, required
            - `content` string
      - `duration` object
        - `startsAt` string, date-time, required
        - `endsAt` string, date-time
        - `indefinite` boolean, required
      - `incentives` object[]
        - `rewardType` 'both' | 'worker' | 'applicant', required
        - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
        - `cashValue` number, required
        - `numberOfDays` number
        - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
        - `payoutConditions` object[]
          - `conditions` object[], required
            - `numberOfDays` number, required
            - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
          - `attributeConditions` object[]
            - `customAttributeUuid` string, uuid, required
            - `customAttributeName` string
            - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
            - `value` union, required
              - …
      - `incentive` object
        - `rewardType` 'both' | 'worker' | 'applicant', required
        - `currency` 'USD' | 'GBP' | 'EUR' | 'ARS' | 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'INR' | 'PHP' | 'NZD' | 'SAR' | 'COP' | 'GTQ', required
        - `cashValue` number, required
        - `numberOfDays` number
        - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted'
        - `payoutConditions` object[]
          - `conditions` object[], required
            - `numberOfDays` number, required
            - `payoutCondition` 'daysAfterStart' | 'daysAfterHire' | 'shiftsCompleted', required
          - `attributeConditions` object[]
            - `customAttributeUuid` string, uuid, required
            - `customAttributeName` string
            - `dataType` 'string' | 'number' | 'boolean' | 'date' | 'select', required
            - `value` union, required
              - …
      - `limitAvailability` boolean
      - `customAttributeUuid` string, uuid
    - `limitAvailability` boolean
    - `customAttributeUuid` string, uuid
    - `virtualCustomAttribute` object
      - `uuid` string, uuid
      - `createdAt` string, date-time — Creation timestamp
      - `createdBy` string, uuid — Creator UUID
      - `lastUpdatedAt` string, date-time — Last update timestamp
      - `lastUpdatedBy` string, uuid — Last updater UUID
      - `lastUpdatedByAudience` string — Audience of last updater
      - `lastUpdatedByAudienceUuid` string, uuid — Audience UUID of last updater
      - `lastUpdatedByImpersonatedBy` string, uuid — Impersonator UUID
      - `lastUpdatedByCompanyUuid` string, uuid — Company UUID of last updater
      - `lastUpdatedByEnterpriseUuid` string, uuid — Enterprise UUID of last updater
      - `companyUuid` string, uuid — Company UUID
      - `label` string, required
      - `key` string
      - `dataType` 'string' | 'number' | 'date' | 'boolean' | 'select' | 'address' | 'media' | 'signature' | 'complianceDocument', required
      - `description` string
      - `options` object[]
        - `value` string, required
        - `label` string
        - `hireValue` unknown
      - `resource` string
      - `resourceIdentifier` string, uuid
      - `readOnly` boolean — If true, this attribute cannot be modified. Can only be set by system.
      - `hidden` boolean — If true, this attribute won't be shown. Can only be set by system.
      - `protected` boolean — If true, this attribute can only be accessed by users with certain rights.
      - `hireDataKeyId` integer — The ID of the hire data key
  - `meta` ResponsesPartMeta
    - `timestamp` string, date-time, required
    - `verb` 'OPTION' | 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE'
    - `path` string
    - `jti` string
    - `rid` string
    - `count` number
    - `status` string
    - `duration` number
    - `size` number

## Other responses

- `500` — default error response

---

[API](https://skmtc.net/fountain/apis/hire-public-api.md) · [All operations](https://skmtc.net/fountain/apis/hire-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fountain/hire-public-api/versions/5f406c0e9462/schema)
