{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/blackbaud/main/json-schema/blackbaud-constituent-edit-schema.json",
  "title": "ConstituentEdit",
  "description": "Constituents are the individuals and organizations who support your organization by contributing time, money, and resources. The constituent entity stores information about donors, prospects, volunteers, general supporters, and more.",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/blackbaud-constituent-api-openapi.yml#/components/schemas/ConstituentEdit",
  "type": "object",
  "properties": {
    "birthdate": {
      "$ref": "#/$defs/FuzzyDate",
      "description": "The constituent's birthdate. For individuals only."
    },
    "deceased": {
      "description": "Indicates whether the constituent is deceased. For individuals only.",
      "type": "boolean"
    },
    "deceased_date": {
      "$ref": "#/$defs/FuzzyDate",
      "description": "The date when the constituent died. For individuals only."
    },
    "first": {
      "description": "The constituent's first name. For individuals only. Character limit: 50.",
      "maxLength": 50,
      "minLength": 0,
      "type": "string"
    },
    "former_name": {
      "description": "The constituent's former name. For individuals only. Character limit: 100.",
      "maxLength": 100,
      "minLength": 0,
      "type": "string"
    },
    "gender": {
      "description": "The constituent's gender. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListGenders\"><b>Gender</b></a> table. This property defaults to <i>Unknown</i> if no value is provided. For individuals only.",
      "type": "string"
    },
    "gives_anonymously": {
      "description": "Indicates whether the constituent gives anonymously.",
      "type": "boolean"
    },
    "inactive": {
      "description": "Indicates whether the constituent is inactive.",
      "type": "boolean"
    },
    "last": {
      "description": "The constituent's last name. For individuals only. Character limit: 100.",
      "maxLength": 100,
      "minLength": 0,
      "type": "string"
    },
    "lookup_id": {
      "description": "The user-defined identifier for the constituent.",
      "type": "string"
    },
    "marital_status": {
      "description": "The constituent's marital status. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListMaritalStatuses\"><b>Marital Status</b></a> table.  For individuals only.",
      "type": "string"
    },
    "middle": {
      "description": "The constituent's middle name. For individuals only. Character limit: 50.",
      "maxLength": 50,
      "minLength": 0,
      "type": "string"
    },
    "name": {
      "description": "If the constituent's <code>type</code> is <i>Individual</i>, this is a computed field that does not apply to edit operations. If the <code>type</code> is <i>Organization</i>, this field cannot be changed to null and represents the organization's name. Character limit: 60.",
      "type": "string"
    },
    "preferred_name": {
      "description": "The constituent's preferred name. For individuals only. Character limit: 50.",
      "maxLength": 50,
      "minLength": 0,
      "type": "string"
    },
    "suffix": {
      "description": "The constituent's primary suffix. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListSuffixes\"><b>Suffixes</b></a> table. For individuals only.",
      "type": "string"
    },
    "suffix_2": {
      "description": "The constituent's secondary suffix. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListSuffixes\"><b>Suffixes</b></a> table. For individuals only.",
      "type": "string"
    },
    "title": {
      "description": "The constituent's primary title. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListTitles\"><b>Titles</b></a> table. For individuals only.",
      "type": "string"
    },
    "title_2": {
      "description": "The constituent's secondary title. Available values are the entries in the <a href=\"https://developer.sky.blackbaud.com/docs/services/56b76470069a0509c8f1c5b3/operations/ListTitles\"><b>Titles</b></a> table. For individuals only.",
      "type": "string"
    },
    "birthplace": {
      "description": "The birthplace of the constituent. For individuals only.",
      "type": "string"
    },
    "ethnicity": {
      "description": "The ethnicity of the constituent. For individuals only.",
      "type": "string"
    },
    "income": {
      "description": "The income for the constituent. For individuals only.",
      "type": "string"
    },
    "religion": {
      "description": "The religion of the constituent. For individuals only.",
      "type": "string"
    },
    "industry": {
      "description": "The industry of the constituent. For organizations only.",
      "type": "string"
    },
    "matches_gifts": {
      "description": "Indicates if the constituent matches gifts. For organizations only.",
      "type": "boolean"
    },
    "matching_gift_per_gift_min": {
      "$ref": "#/$defs/Currency",
      "description": "The minimum matching gift per gift for the constituent. For organizations only."
    },
    "matching_gift_per_gift_max": {
      "$ref": "#/$defs/Currency",
      "description": "The maximum matching gift per gift for the constituent. For organizations only."
    },
    "matching_gift_total_min": {
      "$ref": "#/$defs/Currency",
      "description": "The minimum matching gift total for the constituent. For organizations only."
    },
    "matching_gift_total_max": {
      "$ref": "#/$defs/Currency",
      "description": "The maximum matching gift total for the constituent. For organizations only."
    },
    "matching_gift_factor": {
      "format": "double",
      "description": "The matching gift factor for the constituent. For organizations only.",
      "type": "number"
    },
    "matching_gift_notes": {
      "description": "The matching gift notes for the constituent. For organizations only.",
      "type": "string"
    },
    "num_employees": {
      "format": "int32",
      "description": "The number of employees for the constituent. For organizations only.",
      "type": "integer"
    },
    "is_memorial": {
      "description": "Indicates whether the constituent is for honor/memorial.",
      "type": "boolean"
    },
    "is_solicitor": {
      "description": "Indicates whether the constituent is a solicitor.",
      "type": "boolean"
    },
    "no_valid_address": {
      "description": "Indicates whether the constituent does not have a valid address.",
      "type": "boolean"
    },
    "receipt_type": {
      "description": "The receipt type of the constituent.",
      "enum": [
        "One receipt per gift",
        "Consolidated receipts"
      ],
      "type": "string"
    },
    "target": {
      "description": "The target of the constituent.",
      "type": "string"
    },
    "requests_no_email": {
      "description": "Indicates whether the constituent requests no email.",
      "type": "boolean"
    },
    "num_subsidiaries": {
      "format": "int32",
      "description": "The number of subsidiaries for the constituent. For organizations only.",
      "type": "integer"
    },
    "parent_corporation_id": {
      "format": "int32",
      "description": "The parent corporation identifier of the constituent. For organizations only.",
      "type": "integer"
    },
    "parent_corporation_name": {
      "description": "The parent corporation name of the constituent. For organizations only.",
      "type": "string"
    }
  },
  "x-hidden": true,
  "x-display-name": "Edit constituent",
  "x-display-id": "EditConstituent",
  "$defs": {
    "Currency": {
      "description": "For consistency, currency is configured at the organization level. This ensures that all monetary amounts are consistent, regardless of where they are entered or viewed.",
      "type": "object",
      "properties": {
        "value": {
          "format": "double",
          "description": "The monetary value.",
          "type": "number"
        }
      }
    },
    "FuzzyDate": {
      "description": "Fuzzy dates provide a versatile date type to create partial dates such as February 9 (with no year indicated).",
      "type": "object",
      "properties": {
        "d": {
          "format": "int32",
          "description": "The day in the fuzzy date.",
          "type": "integer"
        },
        "m": {
          "format": "int32",
          "description": "The month in the fuzzy date.",
          "type": "integer"
        },
        "y": {
          "format": "int32",
          "description": "The year in the fuzzy date.",
          "type": "integer"
        }
      },
      "x-display-name": "Fuzzy date",
      "x-display-id": "FuzzyDate"
    }
  }
}