{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/quickbooks/json-schema/quickbooks-recurringtransactionresponse-schema.json",
  "title": "recurringtransactionresponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/quickbooks-recurringtransaction-api-openapi.yml#/components/schemas/recurringtransactionresponse",
  "type": "object",
  "properties": {
    "SyncToken": {
      "type": "string",
      "description": "Version number of the object. It is used to lock an object for use by one app at a time. As soon as an application modifies an object, its SyncToken is incremented. Attempts to modify an object specifying an older SyncToken fails. Only the latest version of the object is maintained by QuickBooks Online.",
      "x-intuit-required": "Required for update"
    },
    "RecurringInfo": {
      "allOf": [
        {
          "$ref": "#/$defs/recurringinfo"
        }
      ],
      "description": "Describes the recurring schedules for transactions.",
      "x-intuit-required": "Required"
    },
    "RecurDataRef": {
      "allOf": [
        {
          "$ref": "#/$defs/referencetype"
        }
      ],
      "description": "Reference to the recur template associated with the transaction.",
      "x-intuit-required": "Optional",
      "x-intuit-filterable": true,
      "x-intuit-sortable": true
    },
    "Type": {
      "type": "string",
      "description": "Specifies the list of entities that are supported for recurring transactions: Bill,Purchase,CreditMemo,Deposit,Estimate,Invoice,JournalEntry,RefundReceipt,SalesReceipt,Transfer,VendorCredit or PurchaseOrder",
      "x-intuit-filterable": true
    },
    "Id": {
      "type": "string",
      "description": "Unique identifier for this object.",
      "x-intuit-required": "Optional",
      "x-intuit-filterable": true
    },
    "MetaData": {
      "allOf": [
        {
          "$ref": "#/$defs/modificationmetadata"
        }
      ],
      "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications.",
      "x-intuit-required": "Optional",
      "x-intuit-filterable": true
    }
  },
  "required": [
    "RecurringInfo"
  ],
  "$defs": {
    "modificationmetadata": {
      "type": "object",
      "title": "modificationmetadata",
      "properties": {
        "CreateTime": {
          "type": "string",
          "format": "date-time",
          "description": "Time the entity was created in the source domain.",
          "x-intuit-filterable": true,
          "x-intuit-sortable": true
        },
        "LastUpdatedTime": {
          "type": "string",
          "format": "date-time",
          "description": "Time the entity was last updated in the source domain.",
          "x-intuit-filterable": true,
          "x-intuit-sortable": true
        }
      }
    },
    "recurringinfo": {
      "type": "object",
      "title": "recurringinfo",
      "properties": {
        "Active": {
          "type": "boolean",
          "description": "This setting indicates whether the recurring schedule is enabled."
        },
        "RecurType": {
          "type": "string",
          "description": "The recur type which can be Automated, Reminded or UnScheduled.",
          "x-intuit-required": "Optional",
          "x-intuit-filterable": true,
          "x-intuit-sortable": true
        },
        "ScheduleInfo": {
          "allOf": [
            {
              "$ref": "#/$defs/recurringscheduleinfo"
            }
          ],
          "description": "Describes the scheduling information for the transaction.",
          "x-intuit-required": "Optional"
        },
        "Name": {
          "type": "string",
          "description": "The name of the recurring schedule template.",
          "x-intuit-required": "Optional",
          "x-intuit-filterable": true,
          "x-intuit-sortable": true
        }
      }
    },
    "recurringscheduleinfo": {
      "type": "object",
      "title": "recurringscheduleinfo",
      "properties": {
        "DayOfWeek": {
          "type": "string",
          "description": "The day of the week.",
          "x-intuit-required": "Optional"
        },
        "StartDate": {
          "type": "string",
          "format": "date-time",
          "description": "The start date for the recurring schedule",
          "x-intuit-required": "Optional"
        },
        "MaxOccurrences": {
          "type": "string",
          "description": "The max number of recurring occurrences.",
          "x-intuit-required": "Optional"
        },
        "RemindDays": {
          "type": "string",
          "description": "The days before start date for a reminded RecurType.",
          "x-intuit-required": "Optional"
        },
        "IntervalType": {
          "type": "string",
          "description": "Specifies the interval type. Values for IntervalTypecan be one of the following:Yearly— The allowed properties for yearly interval type are : \nScheduleInfo.StartDate\nScheduleInfo.EndDate or ScheduleInfo.MaxOccurrences\nScheduleInfo.DaysBefore (or ScheduleInfo.RemindDays for Reminded RecurType) \nScheduleInfo.MonthOfYear\nScheduleInfo.DayOfMonth\n\nMonthly— The allowed properties for monthly interval type are : \nScheduleInfo.NumInterval\nScheduleInfo.StartDate\nScheduleInfo.EndDate or ScheduleInfo.MaxOccurrences\nScheduleInfo.DaysBefore (or ScheduleInfo.RemindDays for Reminded RecurType)\n(ScheduleInfo.DayOfWeek and ScheduleInfo.WeekOfMonth) or ScheduleInfo.DayOfMonth\n\nWeekly— The allowed properties for weekly interval type are : \nScheduleInfo.NumInterval\nScheduleInfo.StartDate\nScheduleInfo.EndDate or ScheduleInfo.MaxOccurrence\nScheduleInfo.DaysBefore(or ScheduleInfo.RemindDays for Reminded RecurType)\nScheduleInfo.DayOfWeek\n\nDaily— The allowed properties for daily interval type are : \nScheduleInfo.NumInterval\nScheduleInfo.StartDate\nScheduleInfo.EndDate or ScheduleInfo.MaxOccurrences \nScheduleInfo.DaysBefore (or ScheduleInfo.RemindDays for Reminded RecurType)",
          "x-intuit-required": "Optional"
        },
        "WeekOfMonth": {
          "type": "string",
          "description": "The week of the month.",
          "x-intuit-required": "Optional"
        },
        "MonthOfYear": {
          "type": "string",
          "description": "The month of the year.",
          "x-intuit-required": "Optional"
        },
        "DaysBefore": {
          "type": "string",
          "description": "The days before the scheduled date.",
          "x-intuit-required": "Optional"
        },
        "NextDate": {
          "type": "string",
          "format": "date-time",
          "description": "The date when the next transaction is created.",
          "x-intuit-required": "Optional"
        },
        "NumInterval": {
          "type": "string",
          "description": "The interval based on the interval type.",
          "x-intuit-required": "Optional"
        },
        "EndDate": {
          "type": "string",
          "format": "date-time",
          "description": "The end date for the recurring schedule.",
          "x-intuit-required": "Optional"
        },
        "PreviousDate": {
          "type": "string",
          "format": "date-time",
          "description": "The date when the last transaction is created.",
          "x-intuit-required": "Optional"
        },
        "DayOfMonth": {
          "type": "string",
          "description": "The day of the month.",
          "x-intuit-required": "Optional"
        }
      }
    },
    "referencetype": {
      "type": "object",
      "title": "referencetype",
      "properties": {
        "name": {
          "type": "string",
          "description": "An identifying name for the object being referenced by value and is derived from the field that holds the common name of that object. This varies by context and specific type of object referenced. For example, references to a Customer object use Customer.DisplayName to populate this field. Optionally returned in responses, implementation dependent.",
          "x-intuit-required": "Optional"
        },
        "value": {
          "type": "string",
          "description": "The ID for the referenced object as found in the Id field of the object payload. The context is set by the type of reference and is specific to the QuickBooks company file.",
          "x-intuit-required": "Required"
        }
      },
      "required": [
        "value"
      ]
    }
  }
}