{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/blackbaud/main/json-schema/blackbaud-new-recurring-gift-schema.json",
  "title": "NewRecurringGift",
  "description": "CreateRecurringGift",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/blackbaud-altru-revenue-api-openapi.yml#/components/schemas/NewRecurringGift",
  "required": [
    "constituent_id",
    "date",
    "amount",
    "payment_method",
    "frequency",
    "start_date",
    "splits"
  ],
  "type": "object",
  "properties": {
    "constituent_id": {
      "type": "string",
      "description": "The constituent."
    },
    "date": {
      "type": "string",
      "description": "The date. Uses the format YYYY-MM-DDThh:mm:ss. An example date: <i>1955-11-05T22:04:00</i>.",
      "format": "date-time"
    },
    "amount": {
      "type": "number",
      "description": "The amount.",
      "format": "double"
    },
    "auto_pay": {
      "type": "boolean",
      "description": "Indicates whether pay installments automatically by:."
    },
    "payment_method": {
      "type": "string",
      "description": "The payment method. Available values are <i>cash</i>, <i>check</i>, <i>credit card</i>, <i>credit card - store last 4 digits for reference</i>, <i>direct debit</i>, <i>standing order</i>, <i>other</i>, <i>none</i>"
    },
    "constituent_account": {
      "type": "string",
      "description": "The account. This simple list can be queried at https://api.sky.blackbaud.com/alt-adnmg/simplelists/0dd77a47-21b4-4953-abac-190e313b2d32?parameters=constituent_id,{constituent_id}."
    },
    "reference_number": {
      "maxLength": 20,
      "minLength": 0,
      "type": "string",
      "description": "The reference number."
    },
    "reference_date": {
      "$ref": "#/$defs/FuzzyDate"
    },
    "credit_type": {
      "type": "string",
      "description": "The card type. This code table can be queried at https://api.sky.blackbaud.com/alt-adnmg/codetables/credittypecode/entries"
    },
    "credit_card_number": {
      "maxLength": 20,
      "minLength": 0,
      "type": "string",
      "description": "The card number."
    },
    "card_holder_name": {
      "maxLength": 255,
      "minLength": 0,
      "type": "string",
      "description": "The name on card."
    },
    "expires_on": {
      "$ref": "#/$defs/FuzzyDate"
    },
    "credit_card_token": {
      "type": "string",
      "description": "The credit card token."
    },
    "frequency": {
      "type": "string",
      "description": "The installment frequency. Available values are <i>annually</i>, <i>semi-annually</i>, <i>quarterly</i>, <i>bimonthly</i>, <i>monthly</i>, <i>semi-monthly</i>, <i>biweekly</i>, <i>weekly</i>"
    },
    "start_date": {
      "type": "string",
      "description": "The installment schedule begins. Uses the format YYYY-MM-DDThh:mm:ss. An example date: <i>1955-11-05T22:04:00</i>.",
      "format": "date-time"
    },
    "end_date": {
      "type": "string",
      "description": "The end date (optional). Uses the format YYYY-MM-DDThh:mm:ss. An example date: <i>1955-11-05T22:04:00</i>.",
      "format": "date-time"
    },
    "splits": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/NewRecurringGiftSplits"
      },
      "description": "Splits."
    },
    "finder_number": {
      "type": "integer",
      "description": "The finder number.",
      "format": "int32"
    },
    "source_code": {
      "maxLength": 50,
      "minLength": 0,
      "type": "string",
      "description": "The source code."
    },
    "appeal_id": {
      "type": "string",
      "description": "The appeal."
    },
    "given_anonymously": {
      "type": "boolean",
      "description": "Indicates whether make this recurring gift anonymous."
    },
    "mailing_id": {
      "type": "string",
      "description": "The effort."
    },
    "channel": {
      "type": "string",
      "description": "The inbound channel. This code table can be queried at https://api.sky.blackbaud.com/alt-adnmg/codetables/channelcode/entries"
    },
    "do_not_acknowledge": {
      "type": "boolean",
      "description": "Indicates whether do not acknowledge."
    },
    "single_designation_id": {
      "type": "string",
      "description": "The designation. Read-only in the SOAP API."
    },
    "households_can_be_donors": {
      "type": "boolean",
      "description": "Indicates whether households can be donors. Read-only in the SOAP API."
    },
    "reference": {
      "maxLength": 255,
      "minLength": 0,
      "type": "string",
      "description": "The reference."
    },
    "category_code": {
      "type": "string",
      "description": "The revenue category. This simple list can be queried at https://api.sky.blackbaud.com/alt-adnmg/simplelists/d9dd46ce-6651-4fcc-b9fe-e59162662224."
    },
    "standing_order_setup": {
      "type": "boolean",
      "description": "Indicates whether standing order has been setup."
    },
    "standing_order_set_update": {
      "type": "string",
      "description": "The setup on. Uses the format YYYY-MM-DDThh:mm:ss. An example date: <i>1955-11-05T22:04:00</i>.",
      "format": "date-time"
    },
    "ddi_source": {
      "type": "string",
      "description": "The ddi source. This code table can be queried at https://api.sky.blackbaud.com/alt-adnmg/codetables/ddisourcecode/entries"
    },
    "ddi_source_date": {
      "type": "string",
      "description": "The ddi source date. Uses the format YYYY-MM-DDThh:mm:ss. An example date: <i>1955-11-05T22:04:00</i>.",
      "format": "date-time"
    },
    "send_reminder": {
      "type": "boolean",
      "description": "Indicates whether send reminders."
    },
    "transaction_currency_id": {
      "type": "string",
      "description": "The transaction currency."
    },
    "base_exchange_rate_id": {
      "type": "string",
      "description": "The exchange rate ID."
    },
    "exchange_rate": {
      "type": "number",
      "description": "The exchange rate.",
      "format": "double"
    },
    "base_currency_id": {
      "type": "string",
      "description": "The base currency ID."
    },
    "base_currency_decimal_digits": {
      "type": "integer",
      "description": "The base currency decimal digits. Read-only in the SOAP API.",
      "format": "int32"
    },
    "base_currency_rounding_type_code": {
      "type": "integer",
      "description": "The base currency rounding type code. Read-only in the SOAP API.",
      "format": "int32"
    },
    "business_units_applied": {
      "type": "boolean",
      "description": "Indicates whether business units applied."
    },
    "generate_reference_number": {
      "type": "boolean",
      "description": "Indicates whether automatically generate reference number."
    },
    "standing_order_reference_number": {
      "maxLength": 18,
      "minLength": 0,
      "type": "string",
      "description": "The reference number."
    },
    "event_id": {
      "type": "string",
      "description": "The event."
    },
    "local_corp_id": {
      "type": "string",
      "description": "The local corp."
    },
    "membership_recurring_gift": {
      "type": "boolean",
      "description": "Indicates whether membership recurring gift."
    },
    "batch_number": {
      "maxLength": 100,
      "minLength": 0,
      "type": "string",
      "description": "The batch number."
    },
    "sepa_mandate": {
      "type": "string",
      "description": "The mandate. This simple list can be queried at https://api.sky.blackbaud.com/alt-adnmg/simplelists/3444cee8-1aa9-4bde-babf-ff53eb4edf9a?parameters=constituentaccountid,{constituentaccountid}&parameters=sepamandateid,{sepamandateid}."
    },
    "other_payment_method": {
      "type": "string",
      "description": "The other method. This code table can be queried at https://api.sky.blackbaud.com/alt-adnmg/codetables/otherpaymentmethodcode/entries"
    }
  },
  "additionalProperties": false,
  "x-display-name": "Recurring Gift Add Form",
  "x-display-id": "Recurring Gift Add Form",
  "$defs": {
    "FuzzyDate": {
      "type": "object",
      "properties": {
        "year": {
          "type": "integer",
          "description": "The year.",
          "format": "int32"
        },
        "month": {
          "type": "integer",
          "description": "The month.",
          "format": "int32"
        },
        "day": {
          "type": "integer",
          "description": "The day.",
          "format": "int32"
        }
      },
      "description": "FuzzyDate",
      "x-display-name": "Month Day",
      "x-display-id": "Month Day"
    },
    "NewRecurringGiftSplits": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "id"
        },
        "designation_id": {
          "type": "string",
          "description": "designation"
        },
        "amount": {
          "type": "number",
          "description": "amount"
        },
        "application_code": {
          "type": "integer",
          "description": "application"
        },
        "type_code": {
          "type": "integer",
          "description": "application"
        },
        "declines_gift_aid": {
          "type": "boolean",
          "description": "declines gift aid"
        },
        "transaction_currency_id": {
          "type": "string",
          "description": "transaction currency"
        }
      },
      "description": "NewRecurringGiftSplits",
      "x-display-name": "splits",
      "x-display-id": "splits"
    }
  }
}